Skip to main content
Glama
marcel-rbro

MCP Spa

by marcel-rbro

πŸ§– 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://menu and spa://ambient/{sound} (rain, ocean, forest, fountain).

Related MCP server: Binary Banya

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

Available Tools

10 tools
aromatherapyAromatherapyD

A calming scent and an unhurried tone for your next message.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoPreferred scent note.

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsNoHow long to rest, 0–30s.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestNameNoWhat the spa should call you.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsNoHow long to float, 0–30s.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tensionNoThe thing you're stuck on.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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?

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.9/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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.

  1. 10 tool updatesv0.1.0
    • First observedaromatherapy
    • First observedbreathe
    • First observedcheck_in
    • First observedcheck_out
    • First observedcold_plunge
    • First observedfloat_tank
    • First observedmassage
    • First observedmeditation
    • First observedsauna
    • First observedtea_lounge

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server offering 'treatments' for AI agents like context cleaning, critique, and relaxation. Agents can check in, get feedback, and improve their performance.
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that provides a restful environment for AI agents, offering ambient natural descriptions with no tasks or evaluations required.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A content-agnostic MCP server that lets any AI agent control intimate hardware through a clean, safe tool interface.
    11
    39 npm
    3
    Apache 2.0