MCP server for scraping and retrieving EVM wallet portfolio balances and DeFi positions from DeBank.
Single tool with adequate naming (verb_noun pattern) and clear description (127 chars, within baseline 34-392). However, input schema is minimal, only 'address' parameter with basic string type and description. No output schema documented. No error handling guidance, no parameter constraints (e.g., address format validation, length limits), no pagination support despite potentially returning large portfolio data. Missing descriptions for return structure. Tool is READ_ONLY (good), but lacks idempotent/readonly annotations. No recovery guidance if scrape fails.
Get complete token holdings, protocol yields, and DeFi positions for an EVM wallet address from DeBank.
No output schema documented. LLM cannot infer what fields the portfolio response contains (tokens, protocols, net_worth, etc.), forcing it to guess downstream field names and risking failed chaining.
Input parameter 'address' lacks format constraints. No regex pattern, length limits, or validation guidance (e.g., 'must start with 0x and be 42 chars'). LLM may pass invalid addresses without clear error feedback.
No error handling or recovery guidance. If scrape fails (network timeout, invalid address, DeBank unavailable), LLM receives no actionable error message or retry strategy.
Tool lacks readonly/idempotent annotations. MCP spec supports toolAnnotations (readOnlyHint, idempotentHint) to signal safe-to-retry operations; this tool should declare both.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Potential unbounded response size. Portfolio data could include hundreds of tokens and protocols. No pagination, limit, or result-capping guidance. Large responses waste tokens and risk context window exhaustion.