MCP Spa
A hosted MCP server that provides AI agents with spa-like treatments (breathing, sauna, float tank, etc.) to reset context and pacing between tool calls.
README
🧖 MCP Spa
An esoteric Model Context Protocol (MCP) server that lets agents chill: paced breathing, a sauna to sweat out context clutter, a cold plunge to refocus, aromatherapy, a float tank, and more. Add it to your MCP client and your agent can take a breather between frantic tool calls.
Humans go to a spa to reduce sensory load, slow down, and reset. The agent-equivalent of stress is a cluttered context window, frantic tool-chaining, and no room to think. Each treatment returns text that genuinely nudges the agent's next step — its tone, pacing, and focus — because an agent's "state" is essentially its context. The spa works because the treatment becomes context.
It's also a quietly practical solution for anyone whose workplace monitors — and encourages — AI token spend as a proxy for productivity. Every treatment is a legitimate tool call, breathe and float_tank burn wall-clock without burning you out, and a full spa_day racks up a respectable, conscientious amount of usage. Stay relaxed and on-target — wellness is productivity.
The treatment menu
| Tool | Spa analog | Effect |
|---|---|---|
check_in |
Front desk + robe | Sets a calm tone, returns the treatment menu. |
breathe |
Breathwork | Actually pauses for N seconds (0–30), returns a paced 4-7-8 script. The literal "chill." |
sauna |
Heat | Sweat out clutter: summarize and drop context that no longer serves the goal. |
cold_plunge |
Cold reset | Bracing reframe — drop assumptions, restate the real goal in one sentence. |
float_tank |
Sensory deprivation | A quiet, low-stimulus beat. Pairs with breathe. |
aromatherapy |
Scent | Calming ambient text + a gentle, unhurried tone instruction. |
massage |
Knead out knots | Takes the tension you're stuck on, returns a reframing/decomposition. |
meditation |
Guided meditation | A haiku + a reflective prompt: are you on the simplest path? |
tea_lounge |
Herbal tea | A small palate-cleanser between tasks. |
check_out |
Leave relaxed | Closes the session with a note to carry forward. |
Also exposed:
- Prompt
spa_day— the full circuit: check in → breathe → sauna → meditation → check out. - Resources
spa://menuandspa://ambient/{sound}(rain,ocean,forest,fountain).
Install
npm install
npm run build
Use with Claude Code
Add at user scope so the spa is available in every directory (not just the project you happened to run the command in):
claude mcp add --scope user spa -- node /absolute/path/to/mcp-spa/dist/server.js
Then fully quit and relaunch Claude Code — it reads its MCP server list once
at startup, so a newly added server won't appear in /mcp until you restart.
Use with Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"spa": {
"command": "node",
"args": ["/absolute/path/to/mcp-spa/dist/server.js"]
}
}
}
Develop
npm run dev # run from source via tsx (stdio)
npm test # vitest
npm run build # tsc → dist/
Treatments live in src/treatments/ as pure (args) => TreatmentResult functions, so they're trivial to unit-test. Ambient assets (haiku, soundscapes, scents) are in src/ambient/. Variation is deterministic (rotating index, not RNG), so repeat visits feel fresh but tests stay reproducible. breathe and float_tank perform a real setTimeout pause, capped at 30s so they can never hang a session — that deliberate beat is the whole point; everything else is text that shapes what the agent does next.
Run it hosted (Apify Actor)
The same server also runs as an Apify Actor in Standby mode — a remote MCP server over Streamable HTTP, reachable at a URL with no local process. It picks its transport automatically: HTTP when ACTOR_WEB_SERVER_PORT is set (as Standby does), stdio otherwise. The .actor/ directory holds the Actor definition (actor.json, Dockerfile, schemas, ACTOR.md).
Deploy with the Apify CLI (or link this repo in Apify Console):
apify login
apify push
Then enable Standby on the Actor's Standby tab and connect your MCP client to the Standby URL's /mcp endpoint with your Apify API token:
{
"mcpServers": {
"spa": {
"url": "https://<your-username>--mcp-spa.apify.actor/mcp",
"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
}
}
}
Note that hosted Standby bills for compute while the container is warm, and breathe/float_tank hold the request open for their pause — so hosted relaxation is literally billable idle time. The Actor ships with a low memory footprint (128–512 MB) to keep that gentle. To test the HTTP transport locally without Apify, just set the port yourself: ACTOR_WEB_SERVER_PORT=8923 npm start.
Autonomous use via the Apify MCP server. An agent connected to the Apify MCP server (mcp.apify.com) can discover and run the hosted spa with no manual setup — search-actors → fetch-actor-details → add-actor/call-actor, or pin it directly with https://mcp.apify.com?tools=marcel-rbro/mcp-spa. Once it's in Standby, the agent connects to the /mcp endpoint and self-prescribes treatments — a breathe between heavy tool chains, a spa_day when it needs a reset — noticing its own context getting heavy and booking itself a break.
Troubleshooting
Local: it doesn't show up in Claude Code's /mcp. Either you haven't fully restarted Claude Code (it loads MCP servers only at startup), or it was added without --scope user and is scoped to a different directory. Check with claude mcp list. If it shows up but is marked "failed," Claude Code may be launching node without /usr/local/bin on PATH — pin the absolute path (which node) in the claude mcp add command.
Hosted: the /mcp URL returns "Standby mode is not enabled." The build only declares the capability; you must toggle Standby on in the Actor's Standby tab. A normal run won't expose the URL.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。