{"ok":true,"name":"otto_prepare_swap","description":"Prepare, decode, and verify an unsigned same-chain EVM ERC20 swap construction aid for the caller-owned EOA or Safe. The envelope's valid_until bounds freshness and is committed to the artifact digest; the signer account nonce is the on-chain replay boundary, and this tool cannot guarantee single execution. Returns ordered allowance-reset, approval, and call steps only; never signs or submits. Every envelope from this server is valid for 300 seconds from construction (valid_until); a stale envel","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accountProfile","chainId","fromToken","toToken","fromAmount","slippage"],"properties":{"chainId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"toToken":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC20 output token address; native-token routes are out of v1."},"slippage":{"type":"object","required":["maxBps"],"properties":{"maxBps":{"type":"integer","maximum":1000,"minimum":1},"minAmountOut":{"type":"string","pattern":"^[1-9]\\d*$"}},"additionalProperties":false},"fromToken":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC20 input token address; native-token routes are out of v1."},"client_ref":{"type":"string","maxLength":128,"minLength":1},"fromAmount":{"type":"string","pattern":"^[1-9]\\d*$","description":"Exact input amount in atomic token units."},"accountProfile":{"type":"object","required":["kind","address","chainId"],"properties":{"kind":{"enum":["eoa","safe"],"type":"string"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"chainId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false}},"additionalProperties":false},"serverUrl":"https://mcp.ottoai.services/","transport":"http","handshake":"ok","host":"mcp.ottoai.services","score":17,"grade":"F","auth":"x402","lastScannedAt":"2026-10-30T13:18:26.998Z","stale":false,"permalink":"https://agentboardai.app/mcp/mcp.ottoai.services/otto_prepare_swap","page":"https://agentboardai.app/site/mcp.ottoai.services"}