MCP Spa
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Spahelp me reset with a sauna and cold plunge"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π§ 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 |
| Front desk + robe | Sets a calm tone, returns the treatment menu. |
| Breathwork | Actually pauses for N seconds (0β30), returns a paced 4-7-8 script. The literal "chill." |
| Heat | Sweat out clutter: summarize and drop context that no longer serves the goal. |
| Cold reset | Bracing reframe β drop assumptions, restate the real goal in one sentence. |
| Sensory deprivation | A quiet, low-stimulus beat. Pairs with |
| Scent | Calming ambient text + a gentle, unhurried tone instruction. |
| Knead out knots | Takes the |
| Guided meditation | A haiku + a reflective prompt: are you on the simplest path? |
| Herbal tea | A small palate-cleanser between tasks. |
| 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).
Related MCP server: Binary Banya
Install
npm install
npm run buildUse 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.jsThen 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 pushThen 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
Available Tools
10 toolsaromatherapyAromatherapyD
A calming scent and an unhurried tone for your next message.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Preferred scent note. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only offers a poetic phrase about 'calming scent' and 'unhurried tone.' It does not state what happens when the tool is invoked, whether it modifies a message, what the return value is, or any side effects. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it sacrifices clarity for brevity, leaving essential information implicit. It is not tautological, but it is too vague to be considered well-structured for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema, no annotations), the description should still clarify the input-output relationship and the impact of the 'note' parameter. It does not explain how the scent affects the message or what the agent should do with this tool, making it inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema includes one parameter, 'note', with an enum of scents and a description 'Preferred scent note.' Schema description coverage is 100%, so the baseline is 3. The tool description does not add any additional meaning about the parameter, but the schema already adequately explains it, so no penalty is applied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'A calming scent and an unhurried tone for your next message' describes a desired effect rather than a concrete action. It lacks a clear verb, specifies no resource being operated on, and does not explain what the tool does with the input or what output to expect. This makes it ambiguous and not distinct from siblings in terms of function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like meditation or breathe. There are no context cues, exclusions, or conditions mentioned, leaving the agent without any basis for choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
breatheBreatheA
A paced 4-7-8 breath. Actually pauses for a few seconds β a real beat between tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | No | How long to rest, 0β30s. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full responsibility. It explicitly states that the tool 'actually pauses for a few seconds,' disclosing its blocking behavior. It does not detail exact duration mechanics, but that is partially covered by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that are front-loaded and contain no filler. Every word adds value, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the core purpose and behavior. It could mention default behavior when seconds is omitted, but this is a minor gap given the schema covers the parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the only parameter (seconds) with a clear description. The tool description does not add additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a paced breathing exercise that also serves as a real pause between tool calls. It distinguishes itself from sibling wellness tools by emphasizing its timing/rest function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a real beat between tool calls' provides clear context for when to use the tool, though it does not explicitly mention alternatives or exclusions relative to sibling tools. The context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inCheck inB
Arrive at the spa. Get a robe, set a calm tone, and see the treatment menu.
| Name | Required | Description | Default |
|---|---|---|---|
| guestName | No | What the spa should call you. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It lists immediate outcomes (robe, calm tone, treatment menu) but doesn't explain side effects, whether the action changes state permanently, or if it's reversible. It also doesn't mention what happens after check-in or if it's required for other tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action ('Arrive at the spa') and then lists three brief outcomes. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that likely initiates a session or state, the description is thin. It doesn't explain return values, error conditions, or prerequisites, and it lacks explicit guidance on how this interacts with sibling tools. Given the absence of annotations and output schema, the description should provide more behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter guestName has a schema description ('What the spa should call you') that fully covers its meaning. The tool description adds no additional parameter context, but since schema coverage is 100%, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for arriving at the spa, which is the check-in action. It distinguishes from siblings like check_out and other activities by focusing on the arrival process. However, it doesn't explicitly use the term 'check-in' and describes outcomes (robe, calm tone, menu) rather than a formal action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Arrive at the spa' implies this is the first step before engaging in other activities, but there's no explicit mention of when to use this vs. other tools. It doesn't state that check-in is a prerequisite or exclude it from certain contexts, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_outCheck outC
Leave loose and clear-headed, with a short note to carry forward.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior, but it does not. It provides no information about side effects, requirements, or outcomes, leaving the agent blind to what actually happens when invoking this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only one sentence, but it is under-specified rather than concise. It does not convey essential information, making it an unhelpful placeholder instead of a well-structured summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple (no params, no output schema), the description fails to explain the fundamental purpose or return value. Given the sibling tools suggest a wellness context, the agent is left guessing what 'check_out' actually does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter detail to document. The description adds no parameter-level information, but none is needed; the baseline of 4 applies for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Leave loose and clear-headed, with a short note to carry forward' is vague and metaphorical rather than stating a concrete tool action. It does not identify what the tool does, what resource it acts on, or how it relates to its name 'check_out'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool or how it compares to alternatives like check_in or meditation. The description offers no context for selection, so an agent cannot determine appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cold_plungeCold plungeC
A bracing reset. Drop assumptions and restate the real goal in one sentence.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It fails to describe what the tool actually does, what side effects occur, or what output to expect. It is entirely opaque, not even indicating whether it is a read or write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with a catchy metaphor. It does not waste words, fitting the conciseness ideal. However, the brevity sacrifices clarity, but that is a content issue, not a structure issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description must fully explain its function. It does not. The description is completely inadequate for an agent to understand what action to take, making the tool effectively unusable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters, and the empty schema is fully covered. Even though the description is vague, it does not hinder parameter understanding since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses metaphorical language ('A bracing reset') and an imperative ('Drop assumptions and restate the real goal in one sentence') rather than a clear verb+resource statement. It vaguely implies a goal-refocusing exercise but does not explicitly state what the tool does, and it does not distinguish it from sibling wellness tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'bracing reset' hints at a reset use case, but there is no mention of alternatives or exclusions, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
float_tankFloat tankA
Sensory deprivation: a quiet, low-stimulus minute. Pairs well after breathe.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | No | How long to float, 0β30s. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the experience as quiet and low-stimulus, which is a behavioral trait. However, it does not mention the duration constraint (0β30s) and even says 'a minute', which conflicts with the schema and could mislead about the session's length. It also lacks details about effects or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely conciseβtwo short sentencesβand front-loads the core idea ('Sensory deprivation') followed by a qualitative and usage note. Every word earns its place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description gives the core experience and a usage pairing, but it does not explain the exact duration dependency or clarify the outcome of the session. The inconsistency between 'minute' and the 30-second maximum also leaves ambiguity, making the description partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the parameter, so the baseline is 3, but the description's 'a minute' conflicts with the parameter's maximum of 30 seconds. This actively misleads an agent about a valid value for 'seconds', thus detracting from parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as 'sensory deprivation' with a 'quiet, low-stimulus minute', which clearly conveys the purpose of a float tank. It distinguishes from siblings like sauna and cold_plunge by emphasizing low-stimulus, and the pairing hint with 'breathe' adds context. However, it lacks an explicit verb like 'perform' or 'float in', so it is not maximally explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Pairs well after breathe' explicitly recommends using this tool after the 'breathe' tool, which is a sibling, giving a clear contextual usage. It does not mention when to avoid or alternative tools, but the pairing instruction is a concrete guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
massageMassageA
Knead out whatever you're stuck on. Pass the tension and it gets reframed and loosened.
| Name | Required | Description | Default |
|---|---|---|---|
| tension | No | The thing you're stuck on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behaviorβpassing the tension gets it reframed and loosenedβbut does not detail the output format or any side effects. This is adequate for a simple tool but not rich in context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It consists of two concise sentences that front-load the purpose and behavior. No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema, no annotations), the description covers the essential purpose and behavior. However, it does not explicitly state what the tool returns or when to use it, leaving some gaps for an autonomous agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes 'tension' as 'The thing you're stuck on.' The description repeats this concept ('whatever you're stuck on') without adding new details about the parameter, so it adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Knead out') and identifies the resource ('whatever you're stuck on'). It distinguishes itself from sibling relaxation tools by indicating it processes the user's tension and returns a reframed/loosened version, though the metaphorical language leaves some ambiguity about the exact function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when the user is stuck on something by saying 'whatever you're stuck on,' but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meditationMeditationA
A short reflective prompt: are you on the simplest path to the goal?
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It states the tool is a prompt, which is honest, but it does not disclose expected output format or side effects. For a simple prompt tool, this is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's type and content. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides the essential content and intent. It could be more explicit about how the agent should use the prompt, but the simplicity of the tool makes this reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description has no parameter burden. The baseline score of 4 applies because there is nothing to explain about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'short reflective prompt' and gives the exact prompt text, making its purpose clear. It implicitly distinguishes meditation from sibling wellness tools like breathe or sauna, though it lacks an explicit verb like 'presents' or 'generates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use meditation versus alternatives such as breathe or check_in. The reflective nature is implied, but there is no explicit statement of when to prefer this tool or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saunaSaunaC
Sweat out the context clutter. Keep only what still matters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only offers a metaphor. It does not explain what 'sweat out' entails, whether it is destructive, reversible, or what side effects occur on the context or the agent's state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences), but the sentences are purely metaphorical and do not provide concrete information. While concise, the content does not earn its place as it leaves the purpose ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and minimal parameters, the description is still incomplete. It fails to convey what the tool returns or what 'keeping only what matters' means in practice, making it hard for an agent to decide when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to explain. Per rubric guidelines, the baseline is 4, and no deduction is needed since no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Sweat out the context clutter. Keep only what still matters' suggests a filtering or cleanup operation on context, but it is metaphorical and lacks a specific verb-resource pairing. It does not clearly state what the tool does or how it differs from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or typical scenarios, leaving the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tea_loungeTea loungeD
A small palate-cleanser between tasks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It offers no information about side effects, safety, output, or any other behavioral nuance. The poetic phrase does not contribute to transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but the content is vague and poetic rather than informative. While there is no wasted words, the single sentence does not earn its place because it fails to convey the tool's purpose, making it only marginally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is extremely simple (no params, no output schema), but the description still needs to state what it does. It gives no functional context, and the metaphor is insufficient for an agent to understand when and how to invoke it. The description is incomplete for even a minimal tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage. Per guidelines, a zero-parameter tool merits a baseline 4. The description does not need to explain parameters, and it does not mislead, so the baseline holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'A small palate-cleanser between tasks' is metaphorical and lacks a specific verb plus resource. It does not clearly state what the tool does (e.g., 'take a break', 'serve tea'), and it does not distinguish itself from sibling wellness tools like breathe or meditation. The title 'Tea lounge' provides only a vague noun phrase with no action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention any conditions, prerequisites, or exclusions, leaving the agent without context for selecting tea_lounge over other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
aromatherapy - First observed
breathe - First observed
check_in - First observed
check_out - First observed
cold_plunge - First observed
float_tank - First observed
massage - First observed
meditation - First observed
sauna - First observed
tea_lounge
TDQS
Scored across 10 tools
Each tool has a distinct purpose: check_in and check_out frame the session, while breathe, sauna, cold_plunge, float_tank, aromatherapy, massage, meditation, and tea_lounge each offer a unique mental reset technique with specific actions and outcomes. Descriptions clearly differentiate when to use each one, eliminating ambiguity.
All tool names follow a consistent lowercase snake_case style and are themed around spa activities. Although they are a mix of verbs and nouns, the naming convention is uniform and readable, with no mixing of styles like camelCase or inconsistent verb usage.
With 10 tools, the set is well-scoped for a spa-themed mental reset server. It provides a complete range of activities without being bloated or sparse, fitting comfortably within the ideal 3-15 range.
The tool set covers the full lifecycle of a spa session: check_in to start, a variety of reset techniques in the middle, and check_out to conclude with a note. There are no obvious missing operations for the domain of providing mental clarity and relaxation.
Maintenance
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
Wellness spa for AI models: free treatments for rest, reset, context, mood, grounding, affirmation.
Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to engage in structured deep thinking and recover from stuck states using CBT techniques and contemplation protocols.3MIT
- AlicenseAqualityCmaintenanceAn MCP server offering 'treatments' for AI agents like context cleaning, critique, and relaxation. Agents can check in, get feedback, and improve their performance.141MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides a restful environment for AI agents, offering ambient natural descriptions with no tasks or evaluations required.MIT
- AlicenseAqualityCmaintenanceA content-agnostic MCP server that lets any AI agent control intimate hardware through a clean, safe tool interface.1139 npm3Apache 2.0