1inch API Limit Order MCP - Model Context Protocol server for 1inch Limit Order Protocol integration
The 1inch MCP server has 6 tools with consistent naming patterns (verb_noun), reasonable descriptions, and visible input schemas. However, there are critical gaps: (1) Output schemas are not documented in any tool description or return type hints; (2) Parameter descriptions lack format constraints and range specifications; (3) Error handling is absent, no guidance on recovery or retryable errors; (4) Tool composition could be improved, some tools are narrowly scoped and may require chained calls. The server shows foundational competence but lacks production-grade polish expected of A-tier tools.
Get information about the 1inch Limit Order Protocol.
Get a specific limit order by its order hash on a specific chain.
Get fee information for a limit order on a specific chain.
Get all limit orders for a specific chain and address.
Get count of limit orders filtered by specified criteria (statuses).
Get unique active token pairs available for limit orders on a specific chain.
No output schemas documented. Responses are unstructured or return types are invisible to the LLM. This forces the agent to guess what fields are returned and how to extract downstream tool parameters.
Parameter validation rules are invisible. validate_evm_address() and validate_hash() utilities exist in the codebase but are never mentioned in descriptions. LLMs cannot know what format to pass, is it a hex string? With 0x prefix? What length?
No enum constraints in schemas. 'statuses' parameter in get_limit_orders_count_by_filters is described with inline enums (1=Valid, 2=Temporarily invalid, 3=Invalid) but the schema has no enum field. LLMs must infer valid values from text, increasing hallucination risk.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No error handling or recovery guidance. None of the 6 tools document what happens on invalid input, not found, timeout, or API failure. LLMs cannot reason about retry strategy or fallback actions.
Numeric parameter semantics are ambiguous. maker_amount and taker_amount in get_limit_order_fee_info are integers but lack units, are these wei? Raw token amounts? Scaled by decimals? This forces the agent to guess or fail.
Missing chaining context. Tools like get_limit_orders_by_chain_and_address likely return a list with order hashes, but the response schema is not documented. The agent cannot know which field to pass to get_limit_order_by_hash for follow-up calls.
Pagination guidance is partial. get_unique_active_token_pairs accepts page and limit but does not document total count, next_cursor, or whether pages are contiguous. get_limit_orders_by_chain_and_address has no pagination parameters despite likely returning lists.