FindSaunaPlunge — US cold plunge & sauna studios
RemoteAbout FindSaunaPlunge — US cold plunge & sauna studios
FindSaunaPlunge is an MCP server for finding cold plunge, sauna, and contrast-therapy venues across US metros. Its records include source links and verification dates for published prices and temperatures, while missing fields indicate unpublished details rather than zero values.
Key features
- 01Search venues by city and modality
- 02Filter by access and published price
- 03Retrieve venue records with sources
- 04View city coverage and statistics
- 05Check data freshness dates
Use cases
- 01Find cold plunge venues in a city
- 02Compare venues with published prices
- 03Check the source for a venue temperature
- 04Review when venue data was verified
MCP support
The MCP server exposes five tools to search venues, retrieve records, inspect city coverage and statistics, and check data freshness. It uses stateless Streamable HTTP and requires no authentication.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://findsaunaplunge.com/mcpclaude mcp add --transport http com-findsaunaplunge-findsaunaplunge https://findsaunaplunge.com/mcp{"mcpServers":{"com-findsaunaplunge-findsaunaplunge":{"type":"http","url":"https://findsaunaplunge.com/mcp"}}}Open in Cursor{"servers":{"com-findsaunaplunge-findsaunaplunge":{"type":"http","url":"https://findsaunaplunge.com/mcp"}}}Open in VS Code{"mcpServers":{"com-findsaunaplunge-findsaunaplunge":{"type":"http","url":"https://findsaunaplunge.com/mcp"}}}{"mcpServers":{"com-findsaunaplunge-findsaunaplunge":{"serverUrl":"https://findsaunaplunge.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
5| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Max results, default 10, cap 25. |
| query | string | No | Substring match on venue name (case-insensitive). |
| access | enum | No | private_suite = your own room; communal = shared areas; mixed matches either request. Venues that do not publish their access model are excluded whenever this filter is used — absence of the fact is not a match.private_suite | communal | mixed |
| citySlug | string | No | City slug, e.g. "dallas-tx". Use list_cities to discover. |
| modality | enum | No | Venue must offer this modality.cold_plunge | traditional_sauna | infrared_sauna | steam_room | cryotherapy | red_light | pemf | compression | float |
| maxDropInUsd | number | No | Only venues with a PUBLISHED drop-in price at or below this. Excludes venues with no published price. |
Details
From the project READMEFindSaunaPlunge MCP server
Model Context Protocol server for findsaunaplunge.com: cold plunge, sauna and contrast-therapy venues across US metros. get_data_freshness reports the current venue count and the dates the records were last checked. Every published temperature and price is read from the venue's own pages and carries its source URL, capture date and verbatim quote. Absent fields mean the venue does not publish that detail — never zero.
- Endpoint:
https://findsaunaplunge.com/mcp— Streamable HTTP, stateless, no auth, open CORS.GETserves human documentation;POSTis JSON-RPC. - Registry:
com.findsaunaplunge/findsaunaplunge(domain-verified). - Data: same records as the CC BY 4.0 feed
/api/v1/venues.json; archived monthly at github.com/findsaunaplunge/data, DOI 10.5281/zenodo.22132913.
Tools
| Tool | Arguments | Returns |
|---|---|---|
search_venues | query?, citySlug?, modality?, access?, maxDropInUsd?, limit? | Compact venue records; filters AND-combine. maxDropInUsd matches only venues with a published drop-in price. |
get_venue | id | The full feed record, including per-fact sources. |
list_cities | — | Covered cities with venue counts and available modalities. |
get_city_stats | citySlug | Counts, published price and temperature ranges, contrast-capable venues. |
get_data_freshness | — | When the feed was built and the newest/oldest lastVerified. |
Connect
# Claude Code
claude mcp add --transport http findsaunaplunge https://findsaunaplunge.com/mcp
# Any client, by hand
curl -s -X POST https://findsaunaplunge.com/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_venues","arguments":{"citySlug":"austin-tx","modality":"cold_plunge","limit":3}}}'
Run it yourself
The handler needs nothing but the public feed, so it runs anywhere with Node 24+:
npm start # JSON-RPC over stdio, one message per line (= node src/serve.ts --stdio)
npm run http # Streamable HTTP on :8080 — POST /mcp (= node src/serve.ts)
docker build -t findsaunaplunge-mcp . && docker run -i findsaunaplunge-mcp # stdio
npm test # smoke test: stdio + HTTP against the live feed
Both modes read https://findsaunaplunge.com/api/v1/venues.json (override with FINDSAUNAPLUNGE_ORIGIN), so a self-hosted copy serves exactly what the site serves.
How it runs
src/mcp.ts is the whole server: one handleMcp(request, env) function mounted at /mcp inside the site's Cloudflare Worker. It has no dependencies. Tool results come from the static /api/v1/venues.json asset produced by the site build (fetched through the Worker's ASSETS binding and memoized per isolate), so the server can never disagree with the site and a deploy refreshes it automatically. server.json is the registry manifest.
This repository is the published source of that server. The site itself is not open source.
Design rules
- Stateless: no sessions, no server-initiated SSE. Every
POSTis self-contained. - Unknown arguments are rejected with a message naming the valid ones, rather than silently ignored.
- Nothing here is, or will be, a paid placement.
Licence
MIT — see LICENSE. The venue data the server serves is separately licensed CC BY 4.0.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.