{"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-meteoraAmmV2","version":"1.0.0"},"tools":[{"name":"claim","title":"Claim Trading Fees","description":"Claim the trading fees of the user's positions in a Meteora AMM V2 pool (not farming rewards).","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"poolAddress":{"type":"string","description":"The AMM V2 pool: poolAddress from getPositionsList for an existing position, else from getPoolAddress"},"baseToken":{"type":"string","description":"The base token address; one of the two tokens of poolAddress"},"quoteToken":{"type":"string","description":"The quote token address; one of the two tokens of poolAddress"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"},"positionAddress":{"description":"The position (positionAddress from getPositionsList); omit it to claim from every position with pending fees","type":"string"}},"required":["chainName","poolAddress","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":{"type":"string","description":"Human-readable summary of the action"},"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":"createMemePool","title":"Create Meme Pool","description":"Create a Meteora AMM V2 memecoin pool whose base fee decays from 50% to fee, priced at the ratio of the two seeded amounts.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"baseToken":{"type":"string","description":"The base token address"},"quoteToken":{"type":"string","description":"The quote token address"},"baseAmount":{"type":"string","description":"Amount of baseToken to seed in human-readable decimal format (e.g. '1.5'), or \"-1\" for the whole balance, not on both sides (for SOL, minus a reserve for rent and fees)"},"quoteAmount":{"type":"string","description":"Amount of quoteToken to seed in human-readable decimal format (e.g. '1.5'), or \"-1\" for the whole balance, not on both sides (for SOL, minus a reserve for rent and fees)"},"fee":{"type":"string","description":"Final base fee in percent: 0.25, 0.3, 1, 2, 4 or 6"},"useDynamicFee":{"type":"string","enum":["0","1"],"description":"Set to \"1\" to enable dynamic fees, or \"0\" for static fees"},"collectMode":{"type":"string","enum":["0","1"],"description":"Set to \"0\" to collect fees in both tokens, or \"1\" to collect fees only in the quote token"},"feeSchedulerMode":{"type":"string","enum":["0","1"],"description":"\"0\" linear decay over about 10 hours, \"1\" exponential over about 50 minutes"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"}},"required":["chainName","baseToken","quoteToken","baseAmount","quoteAmount","fee","useDynamicFee","collectMode","feeSchedulerMode","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":{"type":"string","description":"Human-readable summary of the action"},"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":"createPool","title":"Create AMM V2 Pool","description":"Create a Meteora AMM V2 pool with a fixed base fee, priced at the ratio of the two seeded amounts.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"baseToken":{"type":"string","description":"The base token address"},"quoteToken":{"type":"string","description":"The quote token address"},"baseAmount":{"type":"string","description":"Amount of baseToken to seed in human-readable decimal format (e.g. '1.5'), or \"-1\" for the whole balance, not on both sides (for SOL, minus a reserve for rent and fees)"},"quoteAmount":{"type":"string","description":"Amount of quoteToken to seed in human-readable decimal format (e.g. '1.5'), or \"-1\" for the whole balance, not on both sides (for SOL, minus a reserve for rent and fees)"},"fee":{"type":"string","description":"Base fee in percent: 0.25, 0.3, 1, 2, 4 or 6"},"useDynamicFee":{"type":"string","enum":["0","1"],"description":"Set to \"1\" to enable dynamic fees, or \"0\" for static fees"},"collectMode":{"type":"string","enum":["0","1"],"description":"Set to \"0\" to collect fees in both tokens, or \"1\" to collect fees only in the quote token"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"}},"required":["chainName","baseToken","quoteToken","baseAmount","quoteAmount","fee","useDynamicFee","collectMode","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":{"type":"string","description":"Human-readable summary of the action"},"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":"deposit","title":"Deposit Liquidity","description":"Deposit into a Meteora AMM V2 pool from an amount of one pool token (tokenIn); the other token is auto-filled at the pool price and must also be in the wallet.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"poolAddress":{"type":"string","description":"The AMM V2 pool: poolAddress from getPositionsList for an existing position, else from getPoolAddress"},"baseToken":{"type":"string","description":"The base token address; one of the two tokens of poolAddress"},"quoteToken":{"type":"string","description":"The quote token address; one of the two tokens of poolAddress"},"tokenIn":{"type":"string","description":"The address of the token to be deposited"},"amount":{"type":"string","description":"Amount of tokenIn in human-readable decimal format (e.g. '1.5'), or \"-1\" for the whole balance (for SOL, minus a reserve for rent and fees)"},"slippage":{"description":"Price tolerance in percent, above 0 and up to 50 (e.g. \"0.5\"); default \"1\"","type":"string"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"}},"required":["chainName","poolAddress","tokenIn","amount","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":{"type":"string","description":"Human-readable summary of the action"},"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":"withdraw","title":"Withdraw Liquidity","description":"Withdraw liquidity from the user's positions in a Meteora AMM V2 pool; \"-1\" exits fully, claiming fees and farming rewards and closing the position.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"poolAddress":{"type":"string","description":"The AMM V2 pool: poolAddress from getPositionsList for an existing position, else from getPoolAddress"},"baseToken":{"description":"The base token address; required for a partial amount, which is in its units; one of the two tokens of poolAddress","type":"string"},"quoteToken":{"type":"string","description":"The quote token address; one of the two tokens of poolAddress"},"amount":{"type":"string","description":"Amount of baseToken to withdraw in human-readable decimal format (e.g. '1.5'), or \"-1\" to exit the whole position"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"},"positionAddress":{"description":"The position (positionAddress from getPositionsList); required for a partial amount when the user has several positions in the pool; omit it with \"-1\" to exit them all","type":"string"}},"required":["chainName","poolAddress","amount","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":{"type":"string","description":"Human-readable summary of the action"},"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":"getPositionsList","title":"View AMM V2 Positions","description":"View user AMM V2 positions.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"}},"required":["chainName","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":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"pair":{"type":"string","description":"Mint addresses of token A and token B, joined by \"-\""},"poolAddress":{"type":"string","description":"Pool address"},"positionAddress":{"type":"string","description":"Position address"},"balance":{"type":"string","description":"Unlocked liquidity / 2^64; not a token amount"},"feeTokenA":{"type":"string","description":"Unclaimed fees in token A (first mint of pair)"},"feeTokenB":{"type":"string","description":"Unclaimed fees in token B (second mint of pair)"}},"required":["pair","poolAddress","positionAddress","balance","feeTokenA","feeTokenB"],"additionalProperties":false},"description":"User AMM V2 positions and balances"}},"required":["project","operation","data"],"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":"getPoolList","title":"Top AMM V2 Pools","description":"View top 20 Meteora AMM V2 liquidity pools sorted by TVL. Do not use if user did not request.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"}},"required":["chainName"],"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":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Pool name"},"tvl":{"type":"string","description":"Total value locked in USD"},"volume24h":{"type":"string","description":"24h trade volume in USD"}},"required":["name","tvl","volume24h"],"additionalProperties":false},"description":"Top AMM V2 liquidity pools by TVL"}},"required":["project","operation","data"],"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":"getPoolDetails","title":"Get Pool Details","description":"Receive detailed information (TVL, APR, 24h fees and volume) about the highest-TVL AMM V2 pool of a token pair.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"baseToken":{"type":"string","description":"The base token address"},"quoteToken":{"type":"string","description":"The quote token address"}},"required":["chainName","baseToken","quoteToken"],"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":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"object","properties":{"address":{"type":"string","description":"Pool address"},"name":{"type":"string","description":"Pool name"},"tvl":{"type":"string","description":"Total value locked (e.g. \"$1234.5678\")"},"volume24h":{"type":"string","description":"24h trade volume (e.g. \"$567.891\")"},"fee24h":{"type":"string","description":"24h fees (e.g. \"$12.3456\")"},"baseFee":{"type":"string","description":"Base fee in percent"},"allocation":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Token symbol"},"amount":{"type":"string","description":"Token amount in pool"},"amountUsd":{"type":"string","description":"Token amount in USD (e.g. \"$123.45\")"}},"required":["token","amount","amountUsd"],"additionalProperties":false},"description":"Token allocation breakdown"},"apr":{"type":"string","description":"Annual percentage rate (e.g. \"12.34%\")"},"dynamicFee":{"type":"string","description":"Whether dynamic fees are enabled (\"Yes\" or \"No\")"},"collectFeeMode":{"type":"string","description":"Fee collection mode"}},"required":["address","name","tvl","volume24h","fee24h","baseFee","allocation","apr","dynamicFee","collectFeeMode"],"additionalProperties":false,"description":"Pool metadata and statistics"}},"required":["project","operation","data"],"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":"getSupply","title":"Get Position Liquidity","description":"View the unlocked liquidity (not a token amount) of the user's positions in a Meteora AMM V2 pool.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"poolAddress":{"type":"string","description":"The AMM V2 pool: poolAddress from getPositionsList for an existing position, else from getPoolAddress"},"baseToken":{"description":"Not used; a given value must be a valid address","type":"string"},"quoteToken":{"description":"Not used; a given value must be a valid address","type":"string"},"userAddress":{"type":"string","description":"The Solana wallet address of the user"},"positionAddress":{"description":"The position (positionAddress from getPositionsList); omit it for the sum over all positions in the pool","type":"string"}},"required":["chainName","poolAddress","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":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"object","properties":{"lpBalance":{"type":"string","description":"Unlocked liquidity / 2^64, 2 decimals; not a token amount"}},"required":["lpBalance"],"additionalProperties":false,"description":"Unlocked liquidity of the user positions in the pool"}},"required":["project","operation","data"],"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":"getPoolAddress","title":"Resolve Pool Address","description":"Resolve the AMM V2 pool address by providing base and quote token addresses; returns the pair's highest-TVL pool.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"baseToken":{"type":"string","description":"The base token address"},"quoteToken":{"type":"string","description":"The quote token address"}},"required":["chainName","baseToken","quoteToken"],"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":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Resolved AMM V2 pool address"}},"required":["poolAddress"],"additionalProperties":false,"description":"Resolved pool address for the token pair"}},"required":["project","operation","data"],"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}]}}]}