One portal for crypto trading across DEX perps, prediction markets, and DeFi yield via the Mithril API. Supports metered credits or bring-your-own-key modes.
Mithril MCP has clear, action-oriented tool names (all start with verbs: get_, place_) and reasonable descriptions (80 - 180 chars, within baseline 34 - 392 range). All 5 tools have input schemas with type definitions and parameter descriptions. However, output schemas are completely undocumented, the code returns raw JSON strings from the Mithril API without specifying what fields agents should expect. Error handling is present but generic (humanize() function maps codes to English, but doesn't classify errors as retryable/user-fixable/fatal). Parameter descriptions lack format constraints (e.g., 'market' accepts '{BASE}-USD-PERP' but no enum or regex pattern is declared). No pagination support visible for list-returning tools (mithril_dex_get_markets, mithril_dex_get_fills). Tool composition is reasonable, each tool has one responsibility, but no idempotency guarantees stated.
Get account balance and margin on a DEX.
Get recent fills / trade history on a DEX.
List all tradeable perpetual markets on a DEX, normalized across Hyperliquid, Paradex, Extended, Pacifica, Hibachi, Aftermath, Carbon, Avantis.
Get open positions (size, entry, unrealized PnL, liquidation price) on a DEX.
Place a maker/limit order. MOVES REAL FUNDS — confirm with the user first.
Output schemas completely undocumented. Tools return raw JSON strings from Mithril API with no declared field structure. Agents cannot plan downstream calls or extract specific data without trial-and-error parsing.
Parameter format constraints missing. 'market' parameter accepts '{BASE}-USD-PERP' format but no enum, regex pattern, or formal constraint is declared. LLMs will hallucinate invalid formats.
No pagination support for list-returning tools. mithril_dex_get_markets and mithril_dex_get_fills may return large result sets with no limit, offset, or cursor parameters. Large responses will exhaust context windows.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Error handling lacks classification. humanize() function converts error codes to English sentences, but does not categorize errors as retryable, user-fixable, or fatal. Agents cannot determine appropriate recovery strategy.
Destructive tool (mithril_dex_place_limit_order) lacks confirmation/dry-run pattern. Tool moves real funds but has no confirmation step or dry-run mode to prevent accidental execution.