First MCP wellness server for HUMANS and AI AGENTS. Pay-per-call wellness micro-content (18 formats × 20 languages × 2 audiences), settled in USDC on Solana via x402.
Wellness-Master demonstrates solid tool design with clear naming conventions (verb_noun pattern), comprehensive descriptions (avg 180+ chars), and explicit enum constraints for parameters. All 8 tools are properly registered with input schemas. However, output schemas are not formally documented in the code, and error handling lacks recovery guidance. The server targets a specialized domain (wellness micropayments) with well-structured parameter validation via Zod, but descriptions could be more concise for LLM parsing efficiency.
Server liveness probe (free). Returns {ok, network}. No item counts exposed.
Fetch ONE wellness item in the requested language and for the requested audience. PAID — signs and settles an x402 micropayment in USDC on Solana mainnet from the configured client wallet. Dedup'd per (wallet, audience, format, lang). Pass audience="agent" when the consumer is an AI agent (LangGraph, Claude Code, Cursor agents, multi-step pipelines) — the corpus is tuned for inference, context coherence, and recovery from failure.
Fetch UP TO 10 wellness items in one x402 settlement. PAID — signs and settles a single x402 micropayment in USDC on Solana mainnet covering all items in the pack. Dedup'd per (wallet, audience, format, lang). Cheaper per-item than calling get_item 10 times (one settlement vs ten). Pass audience="agent" when the consumer is an AI agent.
List the 2 supported audiences (human, agent). Wellness-Master is the first wellness API to treat both humans and AI agents as first-class corpora. Default: "human". Free, no x402.
List the 18 wellness content formats (id + label + description).
Output schemas not formally documented. Tool descriptions state what is returned (e.g., 'Returns {ok, network}' for get_health) but no structured JSON Schema is visible in code. LLMs cannot reliably parse unstructured responses or plan downstream tool chains.
Paid tool descriptions (get_item, get_pack, surprise_me) are verbose (200+ chars) and bury key details. Descriptions mention x402, Solana, USDC, dedup logic, and audience tuning, useful context but dense. LLM parsing efficiency suffers; consider splitting into shorter description + separate 'prerequisites' or 'cost' fields.
Error handling lacks recovery guidance. Code returns HTTP status and body text via toTextResult(), but no structured error classification (retryable vs. user-fixable vs. fatal). If a paid call fails (e.g., insufficient wallet balance), the LLM receives raw text with no hint on next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
List the 20 supported languages (ISO-639-1 code + English name + native label). Default: "fr".
FREE — fetch ONE wellness sample item without paying. Bounded showroom: 5 hand-curated items per format, English only, human audience only. Rotates every minute server-side (deterministic) so consecutive calls return different items. Use this to evaluate quality before integrating the paid tools. For full corpus (20 languages × 18 formats × 2 audiences with on-demand LLM generation and per-wallet dedup), call get_item, get_pack, or surprise_me.
Fetch ONE random uplifting wellness item (curated positive subset of formats). PAID — signs and settles an x402 micropayment in USDC on Solana mainnet. Discounted to $0.008 vs $0.01 for get_item. Dedup'd per (wallet, audience, format, lang). Pass audience="agent" when the consumer is an AI agent. Format is chosen uniformly at random from the 13 unambiguously uplifting formats (no riddles, no koans, no effort-required tasks).
No confirmation or dry-run pattern for destructive/paid operations. get_item, get_pack, and surprise_me trigger real x402 micropayments. No tool offers a cost estimate or confirmation step before settlement. Agents could accidentally drain wallets.
Parameter descriptions for enum fields (format, lang, audience) reference external discovery tools but do not inline the valid values. E.g., 'One of the 18 format ids (see list_formats)' requires the LLM to call list_formats first. Inline enum values or provide a compact reference.