Auditable market intelligence MCP with x402 payments, calibrated forecast ranges, anomaly review, risk context, and outcome audits
CoinOpAI MCP presents 11 tools with complete JSON Schema definitions and tool annotations. However, definition quality is held back by: (1) minimal parameter descriptions lacking detail on constraints, ranges, and error recovery; (2) vague descriptions on several tools that don't clearly state when to use them vs. related tools; (3) no documented output schemas, forcing LLMs to infer response structure; (4) missing explicit error handling guidance; (5) idempotentHint marked false on most tools but no documented retry strategy. Naming is consistent (verb_noun convention: get_*, search_*, list_*, check_*, audit_*, review_*). All 11 tools have descriptions (194 chars avg, within 34-392 baseline range). Schemas are present for all tools with proper type declarations. However, parameter descriptions are sparse, e.g., 'affiliate_id' is explained as 'Optional Pyrimid affiliate ID (af_xxxxx). Affiliate earns a commission...' but lacks guidance on how this parameter affects behavior, cost, or response. No tool description explains downstream dependencies (e.g., which tools require a decision_id from get_crypto_decision). Affiliate payment mechanism is novel but underdocumented from an agent perspective.
The accountability step. Verify a Kronos decision_id against later market prices. Returns whether direction held, PnL%, and a verdict: GOOD_DECISION, BAD_DIRECTION, NOISE, or NO_ACTION_TAKEN. Costs $0.07 USDC.
Step 1 of the auditable decision loop. Checks market state, cooldown, data freshness, and model context before calling get_crypto_decision. Costs $0.05 USDC.
Get the full agent automation prompt and workflow steps by slug. Costs $0.01 USDC.
Create a market-intelligence journal entry from Kronos context. Returns directional_bias, confidence context, compliance metadata, regime, anomaly/calibration context, and a decision_id. Call audit_trade_decision with that ID after the evaluation window to see what happened. Costs $0.15 USDC.
Conformally-calibrated price forecast: an honest 80% prediction interval (range_80, ~0.80 empirical coverage) plus point return and upside probability for BTC/ETH/SOL/XRP/ADA. Directional bias is supporting context; the calibrated range is the validated product. Costs $0.05 USDC.
Output schemas completely undocumented. Tools return data structures that are inferred from names and descriptions, but LLMs cannot plan downstream calls or extract fields without seeing the actual response schema. This violates the pattern:tool and pattern:response-shaper rules.
Parameter descriptions lack actionable constraints. 'hours' param in get_crypto_signal_history states '(default 24, max 168)' but does not specify minimum, whether 0 is valid, or whether non-integer values are accepted. 'limit' in search_agent_automations says '(default 20, max 50)' with no mention of minimum or step validation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
Current market risk state and cooldown context for Kronos decisions. Useful as supporting context, not a standalone trading command. Costs $0.02 USDC.
Recent Kronos context history for BTC/ETH/SOL/XRP/ADA. Use it to inspect model context and freshness before or after a decision. Costs $0.05 USDC.
Latest Kronos model context for BTC, ETH, SOL, XRP, ADA. Directional values are supporting context, not standalone trade instructions; use them with the calibrated range, risk state, and audit record. Costs $0.05 USDC.
List all 35 automation categories with counts. Costs $0.005 USDC.
Score a market signal feature set for unusual conditions before downstream analysis. Returns anomaly_score, anomaly_level, review_label, drivers, component scores, and market-intelligence disclaimers. Not financial advice and not a market activity instruction. Costs $0.07 USDC.
Search 819 agent automation prompts by keyword. Returns matching automations with title, description, complexity and services. Costs $0.01 USDC.
Tool descriptions do not clearly state dependencies or recovery paths. get_crypto_decision states it returns decision_id but does not mention that audit_trade_decision requires this ID. No tool description explains 'Call check_trade_preflight first, then get_crypto_decision.' This forces LLMs to discover workflows through trial.
No error handling guidance. Tools do not document what errors can occur, what they mean, or how to recover. E.g., get_crypto_decision might fail if symbol is invalid, affiliate_id is malformed, or Kronos service is down, but none of these failure modes are described. Violates pattern:recovery-guide.
Tool composition clarity missing. Six crypto tools (get_crypto_signals, get_crypto_risk, get_crypto_signal_history, get_crypto_decision, check_trade_preflight, audit_trade_decision) form a workflow, but descriptions do not explain ordering or mutual dependencies. LLM cannot determine if calling get_crypto_signals alone is valid or if check_trade_preflight is mandatory first.
idempotentHint is false for most tools but no retry or idempotency documentation exists. If an LLM retries get_crypto_decision on timeout, does it generate a duplicate journal entry or return the same decision_id? Unknown behavior invites failures.
affiliate_id parameter appears in 4 crypto tools but is described identically as 'Optional Pyrimid affiliate ID (af_xxxxx). Affiliate earns a commission from within the listed price, no extra cost to you.' This is marketing copy, not a parameter constraint. Does affiliate_id modify the response? The cost? The audit trail? Unclear.
review_signal_anomaly expects a 'features' object with numeric values but provides no schema for it. Descriptions say 'e.g. price_change, volume_change, volatility...', example values, not constraints. LLM cannot determine which fields are required, what ranges are valid, or how missing fields are handled.