Read-only cryptocurrency portfolio management MCP server for Binance, Coinbase, and Kraken
Crypto Portfolio MCP Server has 15 READ_ONLY tools with generally consistent schemas and descriptions. Naming is verb-forward and clear (get_*, check_*). Descriptions are present and substantive (80-200 chars typical), but lack actionable context for when/why to use each tool. Schemas are properly typed with enums where appropriate (e.g., timeframe, condition). However, no output schemas are documented, LLMs cannot plan downstream chaining without knowing what fields each tool returns. All tools are read-only, so no irreversible operation warnings are needed, but error handling guidance is absent. Security is sound (no API keys exposed as parameters), but composition could be stronger, some tools overlap (e.g., check_price_alert vs check_multiple_alerts). No tool annotations (readOnlyHint) are present.
Calculate total profit/loss for the portfolio (limited by exchange API availability)
Find price differences for the same coin across exchanges
Check 24h trading volume and liquidity for portfolio coins
Check multiple price alerts at once
Check if a price alert condition is met for a specific coin
Get all coin balances from all exchanges with USD values
No output schemas documented. LLMs cannot plan tool chaining or extract required downstream fields without knowing what each tool returns. Baseline requires 100% of A+ tools to have documented return types.
No error handling guidance. Descriptions lack recovery instructions (e.g., 'If exchange connection fails, try again in 30 seconds'). Tool descriptions mention API limitations (e.g., 'limited by exchange API availability') but don't guide what the LLM should do if the call fails.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get top winning and losing coins in your portfolio by price change
Get real-time prices for specified coins or all portfolio coins
Get diversification score (1-10) with warnings and recommendations
Get current crypto market fear & greed index (0-100)
Get portfolio allocation breakdown by coin with percentages
Get portfolio performance metrics over time
Get percentage of portfolio in stablecoins
Get total portfolio value in USD across all exchanges
Assess portfolio risk based on asset volatility
Overlapping tool functionality. check_price_alert (singular) and check_multiple_alerts (plural) both check price conditions. This forces LLMs to reason about which variant to use, increasing decision latency and error rate. Consolidate into a single check_price_alerts tool accepting an array.
Parameter descriptions lack actionable constraints. E.g., get_biggest_movers.limit says 'Number of results per category (default: 5)' but does not specify range (1-100?). LLMs cannot validate their own input without numeric bounds in the description.
No tool annotations present. All 15 tools are read-only, but none carry the readOnlyHint annotation (io.modelcontextprotocol/toolAnnotations). This prevents client UIs from signaling safety to users and blocks future capability negotiation.