MCP server for chenswap.chitacloud.dev — compare DEX quotes across 5 aggregators (KyberSwap, ParaSwap, Odos, LI.FI, Bebop) with LLM reasoning. No API key, no wallet connection, read-only quotes.
Two tools with complete input schemas and descriptions. get_quote has detailed parameter documentation (6 params, all typed and described); list_supported_chains is minimal but functional. Descriptions are adequate (194 - 250 chars, within baseline range). No output schemas documented. No error handling guidance. No tool annotations. Naming follows verb_noun pattern correctly. Missing: output structure documentation, error recovery hints, parameter constraints (e.g., chain_id enum), and validation rules.
Get a DEX swap quote from 5 aggregators in parallel (KyberSwap, ParaSwap, Odos, LI.FI, Bebop). Returns all quotes plus best-source, spread percentage, and natural-language reasoning explaining why one route beats the others for the specific pair, chain, and amount. Read-only. No wallet connection. No API key.
Return a list of chains supported by ChenSwap with aggregator coverage per chain.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing response structure. get_quote returns quotes, best-source, spread, reasoning, none of this is formally specified.
chain_id parameter accepts free-form integers instead of enum. Description lists supported chains (1, 8453, 137, 42161, 56) but does not enforce them. LLMs may pass invalid chain IDs, causing API failures.
No error handling guidance. If API returns HTTP 400/500 or timeout, the tool throws a generic error. LLMs receive no recovery hints (retry, fallback, user action). Blocks agent self-correction.
list_supported_chains description is vague (50 chars). Does not explain when to call it, what structure it reveals, or how to use the result. Should guide: 'Call first to discover available chains and aggregator coverage before requesting quotes.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
amount_in_raw parameter requires raw (non-decimal-adjusted) format but does not specify constraints: min/max value, string length, numeric-only validation. LLMs may pass invalid formats.