streamable-httpMITupdated 10d ago
Model Context Protocol server for findsaunaplunge.com: cold plunge, sauna and contrast-therapy venues across 23 US metros (548 venues, August 2026). 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.
What can you do with FindSaunaPlunge — US cold plunge & sauna studios?
FindSaunaPlunge MCP server
Model Context Protocol server for findsaunaplunge.com: cold plunge, sauna and contrast-therapy venues across 23 US metros (548 venues, August 2026). 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.
Install
Add FindSaunaPlunge — US cold plunge & sauna studios to your client. Pick the one you use.
claude mcp add --transport http findsaunaplunge-us-cold-plunge-sauna-stu https://findsaunaplunge.com/mcpcodex mcp add findsaunaplunge-us-cold-plunge-sauna-stu --url https://findsaunaplunge.com/mcp{
"mcpServers": {
"findsaunaplunge-us-cold-plunge-sauna-stu": {
"url": "https://findsaunaplunge.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"findsaunaplunge-us-cold-plunge-sauna-stu": {
"type": "http",
"url": "https://findsaunaplunge.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"findsaunaplunge-us-cold-plunge-sauna-stu": {
"url": "https://findsaunaplunge.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"findsaunaplunge-us-cold-plunge-sauna-stu": {
"serverUrl": "https://findsaunaplunge.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
5 tools
FindSaunaPlunge — US cold plunge & sauna studios exposes 5 tools to a connected agent.
- search_venues
- `query?`, `citySlug?`, `modality?`, `access?`, `maxDropInUsd?`, `limit?`
- get_venue
- `id`
- list_cities
- —
- get_city_stats
- `citySlug`
- get_data_freshness
- —
Score
72 / 100
Good
- Documentation22/25
- Maintenance19/25
- Trust13/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 2 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 5 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.0.1Latest | Aug 27, 2026 |
| 1.0.0 | Aug 27, 2026 |