prime.u.cash MCP server - the member-consented champion-play surface for AI agents. Exposes the /v1/prime/* surface on agents.u.cash as Model Context Protocol tools (19 tools), so an AI agent (Claude, etc., via any MCP client) can act for a prime.u.cash member after the member links it.
19 tools with consistent naming (verb_noun pattern: prime_*) and descriptions present. However, descriptions are terse (avg ~120 chars, below 194-char baseline) and lack actionable context. Input schemas visible but sparse: most parameters lack type constraints (no enums for action fields despite fixed sets like 'train|travel|mission-start'). Output schemas entirely undocumented, LLMs cannot predict response structure. Error handling absent from descriptions. Parameter relationships (e.g., 'stat' only valid for 'train' action) documented informally in descriptions but not enforced via schema. No security guidance (API key injection, scope declarations). Composition is sound (single responsibility per tool), but descriptions do not guide LLM selection or explain prerequisites (e.g., prime_link must be called first).
Champion actions: action is train | travel | mission-start | mission-claim. stat/galaxy qualify train/travel; mission_id/run_id qualify the mission actions.
Duel actions: action is create | accept | decline | cancel. Wagers burn a fail-closed UNITS/day grant; defender_character_id names the opponent's champion, challenge_id the duel.
Enter a heat by slug: the entry_units are escrowed via the fail-closed entry grant.
Atlas actions: action is scan (galaxy-gated, takes time) or claim (UNITS reward + a lore fragment roll). slug names the node.
Forge media: action quote returns {price_units} for a slug + quote; order buys it under the member's fail-closed UNITS/day spend grant. opts carries per-sku options.
No output schemas documented. LLMs cannot predict response structure (fields, types, nesting). Breaks tool chaining, agent cannot extract IDs for downstream calls without trial-and-error.
Action parameters (prime_act, prime_explore, prime_play_game, prime_duel, prime_forge_media) accept free-form strings instead of enums. E.g., 'action' in prime_act should be enum ['train', 'travel', 'mission-start', 'mission-claim'], not string. Invites hallucinated invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
One full champion sheet by id (must belong to the linked member; untruncated lore).
Full champion sheets for the linked member: stats, skills, chronicle (truncated lore), training points, homeworld/galaxy.
The Atlas catalog: explore nodes (galaxy, danger, tier gate, reward), owned lore fragments, scan progress, in-flight scans.
This link's activity journal (everything the agent did on the member's behalf). Poll with since_id from the previous response's last_id; limit 1-200 (default 50).
The trial catalog: game slugs, kinds, skill notes, reward ceilings, daily play caps, and your standing (best score, plays today).
The member's canon inventions (status + the AI Scriptorium review verdict).
The linked-member summary: granted scopes, memberships, highest tier, champion roster, link since.
The Crucible: ladder standings + the duels involving the linked member (wager + expiry).
The quest board + streaks + the running season, recomputed live (claims stay member-only).
The member's Forge job list (media jobs with state, price_units, url).
Open arcade heats with live leaderboards and your entry state.
Claim a member's one-time link code (pl-...) and bind this API key to their prime.u.cash account (memberships, champions, quests). The member mints the code at https://prime.u.cash/agents-link choosing scopes and UNITS/day spend ceilings; it can be claimed exactly once. Without a link the other prime tools return 403.
Play a server-authoritative trial: action start (returns {token, rounds}) then finish with the same token + the observed events array; the server scores and settles the reward.
Propose a canon invention: name + thesis + fragment_ids (2+ owned fragments) + skills (1+ learned skills). The AI Scriptorium reviews it server-side; the operator publishes canon.
Descriptions lack actionable context. E.g., 'The linked-member summary' does not explain WHEN to call prime_get_me vs prime_get_characters, or what fields are returned. Descriptions average ~120 chars; baseline is 194. No dependency hints (e.g., 'Call prime_link first').
Parameter relationships undocumented in schema. E.g., prime_act's 'stat' param is only valid when action='train', and 'galaxy' only when action='travel'. No schema-level validation; LLMs must infer from description text.
No error handling guidance. Descriptions do not explain what errors are possible, when to retry, or how to recover. E.g., prime_link returns 403 if code is invalid, but description does not mention this or suggest next steps.