{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-swaps","version":"1.0.0"},"tools":[{"name":"swapEvm","title":"EVM Token Swap","description":"Execute an EVM token swap on a particular chain using multiple DEX aggregators. Supports both exact input and exact output swaps with configurable slippage and price impact protection. tokenIn and tokenOut must be different addresses.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["ethereum","bsc","polygon","arbitrum","optimism","base","avalanche","zksync","scroll","metis","sonic","hyperevm","plasma","monad"],"description":"Chain name where to execute the swap transaction"},"tokenIn":{"type":"string","description":"Input token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token like ETH, BNB)"},"tokenOut":{"type":"string","description":"Output token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token like ETH, BNB)"},"amount":{"type":"string","description":"Amount to swap in decimal format. Cannot be zero. For exact input (isExactIn=true), this is the input amount; use \"-1\" to swap entire balance. For exact output (isExactIn=false), this is the desired output amount; \"-1\" is not allowed."},"isExactIn":{"type":"boolean","description":"If true, swap exact input amount and receive variable output. If false, swap variable input to receive exact output amount."},"slippage":{"description":"Slippage tolerance percentage (e.g., \"0.5\" for 0.5%). Default: 0.5%. Min: 0.001%, max: 25%. Cannot be used together with limitAmount — use one or the other.","type":"string"},"priceImpact":{"description":"Maximum acceptable price impact percentage (e.g., \"3.0\" for 3%). Default: 3%. Max: 90%. Protects against unfavorable trades.","type":"string"},"limitAmount":{"description":"For exact input (isExactIn=true): minimum acceptable output amount. For exact output (isExactIn=false): maximum willing to spend. Cannot be used together with slippage — use one or the other.","type":"string"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","tokenIn","tokenOut","amount","isExactIn","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"transactions":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"number","description":"EVM chain ID"},"transaction":{"type":"object","properties":{"target":{"type":"string","description":"Target contract address"},"data":{"type":"string","description":"ABI-encoded calldata"},"value":{"description":"Native token value in wei","type":"string"}},"required":["target","data"],"additionalProperties":false,"description":"EVM transaction parameters"}},"required":["chainId","transaction"],"additionalProperties":false},"description":"EVM transactions to sign and broadcast (approve + swap)"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"swapSolana","title":"Solana Token Swap","description":"Execute a Solana token swap using Jupiter aggregator. Returns a serialized transaction for the user to sign and execute. tokenIn and tokenOut must be different addresses.\nNext: sign the returned serialized transaction with the user's Solana wallet, then submit it to the Solana network.","inputSchema":{"type":"object","properties":{"tokenIn":{"type":"string","description":"Input token mint address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token SOL)"},"tokenOut":{"type":"string","description":"Output token mint address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token SOL)"},"amount":{"type":"string","description":"Amount to swap in decimal format (e.g., \"1.5\"). Must be a positive number. Use \"-1\" to swap entire balance (only with isExactIn=true)."},"isExactIn":{"type":"boolean","description":"If true, swap exact input amount and receive variable output. If false, swap variable input to receive exact output amount. Default: true."},"slippage":{"description":"Slippage tolerance percentage (e.g., \"0.5\" for 0.5%). Default: 0.5%. Maximum: 50%.","type":"string"},"userWallet":{"type":"string","description":"The wallet address of the user's Solana wallet"},"minAmountOut":{"description":"The minimum amount of the output token to receive","type":"string"},"maxAmountIn":{"description":"The maximum amount of the input token to spend","type":"string"}},"required":["tokenIn","tokenOut","amount","isExactIn","userWallet"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"swapTon","title":"TON Token Swap","description":"Execute a TON token swap using CoffeeSwap aggregator. Returns transaction parameters for the user to sign and execute. tokenIn and tokenOut must be different addresses.","inputSchema":{"type":"object","properties":{"tokenIn":{"type":"string","description":"Input token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token TON)"},"tokenOut":{"type":"string","description":"Output token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token TON)"},"amount":{"type":"string","description":"Amount to swap in decimal format (e.g., \"10.5\"). Must be a positive number. Use \"-1\" to swap entire balance (only with isExactIn=true)."},"isExactIn":{"type":"boolean","description":"If true, swap exact input amount and receive variable output. If false, swap variable input to receive exact output amount. Default: true."},"slippage":{"description":"Slippage tolerance percentage (e.g., \"0.1\" for 0.1%). Default: 0.1%.","type":"string"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["tokenIn","tokenOut","amount","isExactIn","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"transactions":{"type":"array","items":{"type":"object","properties":{"to":{"type":"string","description":"Recipient address in friendly format"},"value":{"type":"string","description":"Amount in nanoTON as a decimal string"},"body":{"type":"string","description":"Base64-encoded BOC of the message body"},"sendMode":{"type":"number","description":"TON send mode flags"}},"required":["to","value","body","sendMode"],"additionalProperties":false},"description":"TON transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}