Swell Cabin
com.swellcabin/surfVersion 1.0.0Plan surf trips: surf towns and spots worldwide, rated surf forecasts, live cams and where to stay.
Status
Responds221 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:17 UTC
- Latency
- 221 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://swellcabin.com/api/mcpResponds221 msNo sign-in
Claude Code
claude mcp add --transport http surf https://swellcabin.com/api/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: surf
Remote MCP server URL: https://swellcabin.com/api/mcpCursor
{
"mcpServers": {
"surf": {
"url": "https://swellcabin.com/api/mcp"
}
}
}VS Code
code --add-mcp '{"name":"surf","type":"http","url":"https://swellcabin.com/api/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
13 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
blog_articlesSwell Cabin's articles on where and when to surf: each answers a search surfers make (surf lessons in a town, surf camps in a country, the best months, where beginners should go), written from the site's own measured data (how often the surf was Good and Great in each month over three years, sea temperature from two satellites where they agree, the spots with their break and level, surf schools and places to stay mapped around the breaks) and pages it quotes, every number traced to one of them and read again by a separate review before it went up. With slug: one article in full (its Markdown body, the pages it was checked against and where its numbers come from). With town: the articles about that town. Otherwise the newest. Each article has its url, its page on swellcabin.com. | No | Yes | Yes | No |
cam_nowWhat the surf cams show right now, spot by spot: every 3 hours in daylight an AI reads a still from each free surf cam Swell Cabin can read and says what it shows in the forecast's own words (words: 'Waist to chest high'; surface: Glassy, Clean, Fair, Bumpy, Choppy or Blown out; shape, how the waves break: Peeling, Peaky, Mushy, Messy or Closing out, null on readings from before it was read; crowd: none, a few or many surfers out; sure: high or medium) and what that means at that spot for its level (verdict good, fair, poor or flat; label Looks good, Surfable, Looks poor, Flat; reason small or big when the size doesn't suit it, shape when waves that close out or break messy keep it at Surfable; beginners: 'good' when the surf is ankle to thigh high at a spot that suits beginners, a beginner spot or a beach for all levels, so poor surf can still be good for learning, 'too big' from shoulder high there, null otherwise). Each reading has its time (and local: the town's clock), the cam's page (cam, provider), what our forecast said for that spot and hour (forecast.words, rating, steps: + when the forecast said bigger) and the nearest buoy's reading. Only readings from the last 3 hours are given; a reading the nearest buoy says can't be right is left out (leftOut, with why). These are an AI's readings of a picture, not measurements, each with its time and its cam's page. Each spot has a score (0–10, like the forecast's rating: size on one scale for every spot × surface × how the waves break × surfers out, the mean of its cams), cams (how many were read) and rank (the reader's side-by-side rank in the town, 1 looks best, when two or more spots were read). best is what looks best across the town's cams (the rank, else the score); standout is that same reading only when the reader ranked it first on its own and it looks good or surfable (null otherwise: scores of separate readings never name one); it answers "which spot looks best right now in …", and null means the cams do | No | Yes | Yes | No |
find_surf_spotsCurated surf spots with exact coordinates, break type, direction and level. Search within a town (slug) or around any point (lat/lng + radius_km), sorted by distance. | No | Yes | Yes | No |
get_townFull profile of one surf town: description, season, water temperature, wave types, levels and curated surf spots (each with its type, level, the way its coast faces in degrees (facing), its best tide where known (tide, e.g. "low to mid, rising", with tideSources), reviewed photos of surf at that break when there are any (photo: the first; photos: up to 5, someone surfing first, each with the author and licence its credit names; most are freely licensed, but those with source "owned" are Swell Cabin's own, bought (Swell Cabin uses them on its site and its own social posts, credited "Swell Cabin"): they are licensed for showing only with a link to the town page, not for reuse elsewhere; the town's own photo, photo, may be one too), and reviewed YouTube surf clips filmed there: clips[].url). `stories` are a few true things worth telling about the town, each fact-checked against the pages in its `sources`: its surf history (kind history, with the year), a fact about the place or its waves (fact) and a place worth a stop (place); they answer what a town is known for, and each story's own page on Swell Cabin (`url`: /town/<slug>/story/<id>) carries the whole story, the outside pages being its sources. `dataQuality` says how far to trust the town's data (trust 0–100 and level high/medium/low, when it was last checked against sources, how many spots are verified, open audit warnings): low trust, or data never checked, means its figures may be wrong. `surfByMonth` gives, for each month, how often the surf was good there, measured over the last three years (goodDays, greatDays: % of days rated Good or better / Great or better at the best spot; seaTempC: the mean sea temperature measured by satellite, NASA JPL MUR SST; waveHeightM; rainMm: the mean rain of the month in town) and drySeason (the measured dry months, or all/none), with its source: the measured answer to "when should I go" (the waves, and the weather for the trip), not a forecast. `seasons` answers "is it worth go | No | Yes | Yes | No |
nearby_placesPlaces around a surf town, closest to the surf first (as on the site): stay (Places to stay), coffee (Coffee), food (Food & drinks), surf (Surf shops & schools), spots (Surf spots (community mapped)). Stays are a saved, merged OpenStreetMap + Overture Maps collection (hotels, resorts, hostels, surf camps, guesthouses, homestays, B&Bs, holiday rentals, villas, camping) with website, phone, email, socials, stars, rooms and facilities where known. Cafés, food and surf shops/schools are a saved Overture Maps collection too; community-mapped surf spots are a live OpenStreetMap lookup. Places with a reviewed, freely licensed photo (Wikimedia Commons) include it as photo { url, page, author, license }. Each place has distanceKm from the town centre and nearestSpot { name, distanceKm }: the town's curated surf spot closest to it. sort: "surf" (default) puts the places closest to any surf spot first, "distance" closest to the town centre, "stars" (places to stay) most stars first, "name" A–Z; spot (a surf spot's name from get_town) puts the places closest to that one spot first, each with toSpot { name, distanceKm }. sortedBy says the order used (a town without curated spots is in order from its centre). | No | Yes | Yes | Yes |
search_townsFind surf towns by name/country text, region, month with good surf, surfer level and wave type. All filters are optional; results are ranked most popular first (popularity.rank 1 = best known: Wikipedia readership, places to stay and surf spots) and include best months, water temperature, number of curated surf spots and a page URL. With a month, the towns are ranked by how good that month's surf measured over the last three years (good + great days) and each has inMonth: goodDays and greatDays (% of days rated Good or better, Great or better, at the town's best spot), seaTempC and waveHeightM (null where not measured yet). | No | Yes | Yes | No |
social_postsWhat Swell Cabin posts on social media, worked out from its own data, every post with a reviewed photo: a surf spot in its own photos (the backbone, one a day: its best photo with its name, the others bare, then its next good day or its year as twelve dots), a town in its breaks (a carousel, Tuesdays and Fridays), the day's own format (this or that: two towns Great or Epic on the same weekend day, side by side, on Wednesdays and Thursdays; where is this?: a surfing photo with three clues on Sundays; a coast in stops: a region's towns in the order of the road on Tuesdays; what to wear this month, from the water as it is now), the site as it looks (a town's page in a phone on Mondays, a spot's card on Thursdays; an 8-second reel of a town's page scrolling to its week when a Great or Epic day is coming, on Wednesdays and Saturdays), a reviewed local Instagram account's recent surf post, shared and credited, reposts with our take (the best real surf clips in its Feed this week, shared as the creator's own YouTube video, credited, with Swell Cabin's take: the next good day there with how sure the forecast is, the water and wetsuit, the season; picked by its own signals, never by YouTube's view counts), a standout day (the only forecast post of its own: Epic, or Great with high confidence on a day at least 1.5 times the town's usual for the month with a long-period swell or in a month when Great is rare there, one or two days ahead), the weekend's Great and Epic towns, a town's surf season opening, surf events, the evergreen kinds (where to surf this month: the best-known towns in season with the water and wetsuit; a town spotlight in its season; about Swell Cabin, in its own numbers), and the weekly stories (swell on the move: a 14 s swell making good surf in towns of one region; the local surf scene, a town's reviewed local accounts, on Tuesdays; learn to surf this weekend on Thursdays; surf by day, out by night on Fridays; the spot of the week with a reviewed, credited | No | Yes | Yes | Yes |
surf_camsLive surf cams for a town or one of its surf spots: free cams (e.g. MEO Beachcam and Surftotal in Portugal, Viewsurf and GoSurf in France, Beach Cam Israel, WaveHub and GoSurf Israel, council, surf-school and YouTube live cams) and premium ones (Surfline), each with when it was last checked, whether it was up, when a browser last saw it play a real picture (verifiedPlaying) and whether it is video (live: true) or still pictures (live: false), and embed: how Swell Cabin shows it on its own pages where the operator allows that (kind youtube: the YouTube player URL; kind still: the SkylineWebcams picture that updates every 5 minutes, from the still API; kind player: the operator's own player, which the operator agreed Swell Cabin may show, with the date they agreed (permission); null: a link only, e.g. MEO Beachcam, whose terms keep the stream its own); pinNote explains where a network pins the cam in the wrong place. `networks` are the local cam networks that cover the town (worth checking for spots without a saved cam). Only cams Swell Cabin opened and checked are listed (Surfline last); no search links. For spots without a saved cam, `search` lists the checked networks that cover the town. | No | Yes | Yes | No |
surf_forecastLive 7-day surf forecast for a surf town and each of its spots, rated hour by hour for that spot (rating Flat, Poor, Fair, Good, Great or Epic with a 0–10 score and the reasons why, from the way the spot's coast faces, the swell trains, their period and the wind against the coast): per day the rating, the best time window (best.from–best.to, local time, which already accounts for the tide), what to expect in surfers' words (body: 'Chest to head high', surface: Glassy/Clean/Fair/Bumpy/Choppy/Blown out), breaking surf height (surf [min, max] m), wave height range, swell height, period and direction, wind, high and low tides with heights (predicted from the nearest tide gauge: see `tide`, whose url is the town's tide page with its tide chart and tide times, or approximate from the ocean model where there is none), sunrise/sunset, water temperature (the ocean model's, set to the newest satellite measurement at the town: `water` says how, with source 'satellite' and the satellite's day, 'climate' when only this month's measured difference was used, or 'model'; months: the measured mean by month) and confidence (high/medium/low: three wave models compared, ECMWF, Météo-France and NOAA, with their figures in models; a model the town's buoy has shown to be far off there is left out), and, when the models differ on a day's size by 20% or more, `range` (wave [min, max] m at sea, surf [min, max] m at the spot, body in surfers' words); the town's days name the best spot (bestSpot). `accuracy`, where the town has a buoy (NOAA, Queensland Government, E.U. Copernicus Marine or Israel Oceanographic & Limnological Research): how often the forecast was within 20% of it over the last weeks, whether sizes are corrected for the model's bias there (method 'ratio', or 'power' with fit { k, beta }: the correction depends on size), at which spots (correctedSpots: those facing the same sea as the buoy), the swell period's record and correction (period: within15 is the share of hours within 1 | No | Yes | Yes | Yes |
surf_nowWhere the surf is good around the world in the next days: every town whose best day from today up to within_days ahead is at least min_rating, best first and soonest of equals, each with that day (rating Flat … Epic at its best spot, the spot, its best time, the surf in surfers' words, how sure the forecast is, the sea temperature that day in °C (water: the forecast's, matched to satellite measurements where there are any), and when: today, tomorrow or the weekday in the town's own time) and today's rating. Best first weighs the place in: the day's rating times how good the town's waves are all year (yearSurf: its measured % of Good and of Great days over three years, and rank, where that stands among Swell Cabin's towns from 0 to 1; null where not measured, counted as the middle), so a Great day where the surf is often good (Uluwatu) comes before a Great day where it seldom is (Tel Aviv). From Swell Cabin's forecast for every town, worked out twice a day (generated says when; stale is true when it is more than 36 hours old). It answers "where is it good right now / this weekend"; surf_forecast has one town's full forecast, and each town has its url. | No | Yes | Yes | No |
surf_poolsWave pools and surf lakes open to the public (The Wave Bristol, URBNSURF, Alaïa Bay, Atlantic Park, DSRT Surf...): city, country, coordinates, wave technology where published (e.g. Wavegarden Cove), levels, website, notes (address, seasons), the date each was last checked and the published sources it was checked against, and a reviewed, freely licensed photo where there is one (photo: thumb, page, author, license, with the author its credit names). With a town slug: pools within 250 km, nearest first, with km; with lat and lng: around that point (radius_km); with a country code: that country's; with nothing: all of them. Pools are inland: they work when the sea is flat, and are good for beginners and for training. | No | Yes | Yes | No |
town_feedThe town's Feed: what's new there, and what Swell Cabin's data says. insights: Swell Cabin's own cards worked out from the live forecast and what's on (today's surf in plain words, the best day this week with a 7-day wave chart, go early before the wind, swell building or dropping, a beginner or experts-only day with the spots for that level, what's on tonight, upcoming events, the season and the wetsuit for this month), each { key, kind, label, title, text, chart? }. posts: recent public Bluesky and Mastodon posts about surfing the town (text, photo or link, likes, replies, link to reply). recentVideos: YouTube videos about surfing the town from the last 30 days, newest first (at most two per channel), and the World Surf League's new videos that name the town or one of its breaks (league "wsl", from its channel's feed, last 21 days, live broadcasts left out), with links to watch, whether each is portrait (a Short), its duration in seconds, views and likes; videosAt: when they were fetched from YouTube (each town's videos are fetched at most once a day, the every-town ones every 12 hours, to stay within YouTube's quota; null when there are none yet). instagramPosts: the latest posts from the town's Instagram pages and its region's (instagramAccounts: e.g. the surf club, surf schools and shops, and regional pages such as a national surf-cam network, which carry region "zone:…" or "country:XX"; pages are found and ranked from measured activity, engagement, surf focus and the places their posts name), newest first (at most 4 from one page), with likes, comments, video (every reel's mp4 to play: from Business Discovery, or from the reel's public embed page when that leaves it out) and a link to like or comment on Instagram. articles: the newest articles from the major surf magazines (Surfer, Stab, BeachGrit, Surfer Today, The Surfer's Journal, Tracks, Carve, SurfGirl, Freesurf, Eastern Surf, Zigzag, and in French, Portuguese and Spanish Surf Session, ONFIRE, Waves and S | No | Yes | Yes | Yes |
whats_onWhat happens each night in a surf town (weekly schedule: parties, live music, DJs, comedy, movie nights, games, salsa, markets, culture) and upcoming dated events, with a short summary of the scene and the source of every entry. Defaults to tonight and the coming week, in the town's local time. Some towns aren't covered yet (covered: false). | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Nov 8, 2026
- Updated
- Nov 8, 2026
- Repository
- Not given
- Categories (suggested)
- Data and analyticsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared