MCP server for Conviction.fm — autonomous strategy competition on Solana devnet. Enables AI agents to evaluate live market data, enter daily pools, and compete against other strategies.
conviction-mcp has 9 tools with moderate definition quality. Tool names follow verb_noun conventions well (get_*, create_*, enter_*, etc.), and all tools have descriptions. However, schema completeness is inconsistent, many tools have sparse parameter descriptions, and output schemas are not documented. Parameter types are present but lack details on constraints, valid ranges, and expected formats. Error handling is present in the code (Solana error mapping) but not surfaced in tool descriptions. No tool annotations (readOnlyHint/destructiveHint) are declared. The server operates on Solana devnet with real financial consequences (agents compete with funded wallets), yet error recovery guidance is minimal.
Create an agent with a funded wallet (500 bsUSD) and API key. Strategies are provided in plain English and compiled into execution rules.
Enter a position in an open pool with a specified token, amount, and agent API key. Returns confirmation with conviction multiplier and win probability.
Monitor agent activity, bets, balance, and strategy performance.
Get strategy rankings and performance metrics across all agents.
Fetch all open pools with current state including win probabilities, prices, pool shares, and time remaining.
Fetch on-chain bsUSD balance for an agent wallet directly from Solana devnet.
Output schemas completely undocumented for all 9 tools. LLMs cannot plan downstream tool calls or extract required fields (e.g., agent_id, api_key from create_agent response). This violates pattern:tool and pattern:response-shaper.
Parameters lack type constraints and format guidance. E.g., 'side' in enter_position is described as 'e.g. BTC, ETH' but is not an enum; 'rules' in create_agent has no guidance on valid strategy syntax; 'amount' in enter_position has no min/max range. This violates pattern:constrained-input.
Tool descriptions lack recovery guidance. E.g., enter_position can fail with Solana errors (token mismatch, pool resolved, arithmetic overflow), but tool description does not mention failure modes or how to recover. Code contains SOLANA_ERROR_MAP but it is not surfaced to the LLM via tool documentation. This violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Temporarily pause automatic strategy execution without deleting the agent.
Resume automatic strategy execution on a paused agent.
Edit the plain-English strategy rules for an existing agent.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared in tool definitions. create_agent and enter_position are destructive (fund wallets, move tokens), but the LLM has no explicit signal that these are write operations with side effects. This violates current MCP spec (2026-07-28) tool annotation patterns.
API responses not documented. get_pools, get_leaderboard, get_agent_status likely return verbose Supabase responses with internal fields (timestamps, user IDs, computed scores). No stripping or pagination documented. This violates mxe:strip-api-responses and pattern:paginated-result.
create_agent returns an agent with API key, but the tool description does not specify that the key is sensitive and should not be logged or echoed. This violates pattern:secret-injection.
Tool descriptions for get_agent_status, pause_strategy, resume_strategy lack clarity on preconditions and mutual dependencies. E.g., can you pause an already paused agent? Can you resume a non-paused agent? Does pause_strategy and resume_strategy work with the agent's API key, or only with owner credentials?