Aave MCP
Qué hace este MCP
Provides Aave V3 and V4 market, reserve, position, APY, governance, safety-module, swap, and transaction-preparation capabilities.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['orderId'], 'properties': {'orderId': {'type': 'string', 'description': "The order id (from submit_signed_order's receipt, get_order_status or get_pending_orders)."}, 'signature': {'type': 'string', 'description': "The user's cancellation signature (0x...) over prepare_cancel_order's typed data. Omit the argument entirely to get the on-chain cancel transaction instead."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'topic': {'enum': ['overview', 'v4', 'v3', 'positions', 'health-factor', 'risks', 'ids', 'amounts', 'prices', 'signing', 'swaps', 'gho', 'safety-module', 'portfolio', 'governance', 'rewards', 'tools', 'docs'], 'type': 'string', 'description': "Guide topic (default overview). Read 'v3' or 'v4' before building an action on that version."}, 'lookingFor': {'type': 'string', 'description': 'Send this when you looked for a tool to do something and did not find one, or when a flow dead-ended: describe what you were trying to do, in a few words. It returns the full capability list so you can check whether it exists under a name you did not guess, and records the gap when it does not. Omit the argument entirely when you already know which topic you want.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'side': {'enum': ['supply', 'borrow'], 'type': 'string', 'description': 'Which rate (default supply).'}, 'token': {'type': 'string', 'description': 'v3 only: underlying token address.'}, 'market': {'type': 'string', 'description': 'v3 only: market pool address (from get_markets).'}, 'window': {'enum': ['day', 'week', 'month', 'sixMonths', 'year'], 'type': 'string', 'description': 'Time window (default week).'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."}, 'reserveId': {'type': 'string', 'description': 'v4 only: the reserveId from get_markets, copied verbatim.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['metric', 'token', 'chainId'], 'properties': {'token': {'type': 'string', 'description': 'Token address, 0x-prefixed (40 hex chars).'}, 'metric': {'enum': ['price', 'supply', 'borrow'], 'type': 'string', 'description': 'Which series: oracle price, supplied amount, or borrowed amount.'}, 'window': {'enum': ['day', 'week', 'month', 'sixMonths', 'year'], 'type': 'string', 'description': 'How far back to go (default week).'}, 'chainId': {'type': 'number', 'description': 'Chain the token is on, e.g. 1 for Ethereum. Required: the same symbol exists on several.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional token symbols to return, e.g. ['USDC','GHO']. Case-insensitive. Strongly preferred when you know the asset: a chain has ~70 reserves and listing them all is a large response."}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['proposalId'], 'properties': {'proposalId': {'type': 'string', 'description': "Proposal id as a decimal string, e.g. '508'. From search_governance_proposals."}, 'includeDescription': {'type': 'boolean', 'description': 'Include the full proposal markdown from IPFS (default false). It runs to many KB; the short description is always returned.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['hubId'], 'properties': {'hubId': {'type': 'string', 'description': 'hubId from get_hubs.'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['hubAssetId'], 'properties': {'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}, 'hubAssetId': {'type': 'string', 'description': 'hubAssetId from get_hub_assets (not a token address).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['scope', 'id'], 'properties': {'id': {'type': 'string', 'description': "The hubId (scope 'hub') or spokeId (scope 'spoke'). Not an address."}, 'scope': {'enum': ['hub', 'spoke'], 'type': 'string', 'description': "Which layer 'id' names: a hub's liquidity, or one spoke onto it."}, 'window': {'enum': ['day', 'week', 'month', 'sixMonths', 'year'], 'type': 'string', 'description': 'How far back to go (default week).'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'user': {'type': 'string', 'description': 'Optional wallet address (0x, 40 hex). Adds walletBalance, youCanSupply and youCanBorrow to every row, for this wallet, in the same call. Pass it whenever the question is about what someone can actually do rather than what the rates are.'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional token symbols to return, e.g. ['USDC','GHO']. Case-insensitive. Strongly preferred when you know the asset: a chain has ~70 reserves and listing them all is a large response."}, 'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': "Token symbol, e.g. 'USDC'. Case-insensitive."}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['orderId'], 'properties': {'orderId': {'type': 'string', 'description': 'The order id.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainIds': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Optional: chain ids to read. Omit the argument entirely to sweep every chain the backend serves.'}, 'statuses': {'type': 'array', 'items': {'enum': ['open', 'pending_signature', 'fulfilled', 'cancelled', 'expired'], 'type': 'string', 'description': 'Order status.'}, 'description': 'Optional: statuses to keep. Omit the argument entirely for all of them.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user', 'spokeId'], 'properties': {'side': {'enum': ['supply', 'borrow'], 'type': 'string', 'description': 'Which side to list (default supply).'}, 'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'spokeId': {'type': 'string', 'description': 'spokeId from get_user_positions (not the spoke address).'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['proposalId'], 'properties': {'proposalId': {'type': 'string', 'description': "Proposal id as a decimal string, e.g. '508'. From search_governance_proposals."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['proposalId'], 'properties': {'limit': {'type': 'number', 'description': 'Max rows to return (1-100, default 20).'}, 'offset': {'type': 'number', 'description': 'Rows to skip, for paging (default 0).'}, 'support': {'type': 'boolean', 'description': 'Filter to one side: true for votes in favour, false for against. Omit for both.'}, 'proposalId': {'type': 'string', 'description': "Proposal id as a decimal string, e.g. '508'. From search_governance_proposals."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'window': {'enum': ['day', 'week', 'month', 'sixMonths', 'year'], 'type': 'string', 'description': 'Time window (default week).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'token': {'type': 'string', 'description': 'v3 only: underlying token address.'}, 'market': {'type': 'string', 'description': 'v3 only: market pool address (from get_markets).'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."}, 'reserveId': {'type': 'string', 'description': 'v4 only: the reserveId from get_markets, copied verbatim.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['reserveId'], 'properties': {'side': {'enum': ['supply', 'borrow'], 'type': 'string', 'description': 'Rank the wallets supplying it, or the ones borrowing it (default supply).'}, 'limit': {'enum': [10, 50], 'type': 'number', 'description': 'How many wallets to return. Only 10 or 50; default 10.'}, 'cursor': {'type': 'string', 'description': "'nextCursor' from a previous call, for the next page. Omit the argument entirely for the first page."}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}, 'reserveId': {'type': 'string', 'description': 'reserveId from get_markets or get_position_items.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user', 'spokeId'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'spokeId': {'type': 'string', 'description': 'spokeId from get_user_positions (not the spoke address).'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'user': {'type': 'string', 'description': 'Optional wallet address (0x, 40 hex) to include its stake, rewards and cooldown. Omit the argument entirely for protocol-wide state only.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'amount'], 'properties': {'action': {'enum': ['deposit', 'withdraw'], 'type': 'string', 'description': "'deposit' converts GHO to shares; 'withdraw' converts shares to GHO."}, 'amount': {'type': 'string', 'description': "Amount in main units (e.g. '10.5'): GHO when action is 'deposit', sGHO shares when it is 'withdraw'."}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'user': {'type': 'string', 'description': 'Optional wallet address (0x, 40 hex) to include its position. Omit the argument entirely for vault state only.'}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['hubId', 'spokeId'], 'properties': {'hubId': {'type': 'string', 'description': 'hubId from get_reserve_details or get_hubs.'}, 'spokeId': {'type': 'string', 'description': 'spokeId from get_reserve_details, or from get_user_positions (not the spoke address).'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'chainIds': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Optional: chain ids to list tokens for. Omit the argument entirely to get every chain with a count instead of a token list.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['chainId', 'sell', 'buy', 'amount', 'user'], 'properties': {'buy': {'type': 'string', 'description': "Token to buy: 'native' for the chain's gas token, or an ERC-20 address (0x...)."}, 'kind': {'enum': ['sell', 'buy'], 'type': 'string', 'description': 'sell = spend an exact sell amount; buy = receive an exact buy amount. Default sell.'}, 'sell': {'type': 'string', 'description': "Token to sell: 'native' for the chain's gas token, or an ERC-20 address (0x...)."}, 'user': {'type': 'string', 'description': 'Wallet address (0x, 40 hex) of the wallet that will sign, as the user named it in this session. If no wallet has been named, ask for it; never substitute a placeholder, which is rejected.'}, 'amount': {'type': 'string', 'description': 'Amount in main units (of the sell token for kind=sell, the buy token for kind=buy).'}, 'chainId': {'type': 'number', 'description': 'Chain id (positive integer).', 'exclusiveMinimum': 0}, 'slippagePct': {'type': 'string', 'description': "Optional max slippage as a percent string, e.g. '0.5' for 0.5%. Omit to accept the backend's suggestion, which moves with market conditions - set this to cap it."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['txHash', 'operations'], 'properties': {'txHash': {'type': 'string', 'description': 'Transaction hash you broadcast (0x...).'}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}, 'operations': {'type': 'array', 'items': {'type': 'string'}, 'description': "The 'operations' from the transaction the server built, e.g. ['SPOKE_SUPPLY']."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'cursor': {'type': 'string', 'description': "Pagination cursor: copy 'pageInfo.next' from a previous call verbatim. It is opaque and cannot be edited, shortened or rebuilt - a value that was changed comes back as a base64 parse failure. Requires an explicit version ('v3' or 'v4'): a cursor belongs to one version's feed."}, 'market': {'type': 'string', 'description': "v3 only, optional: market pool address (defaults to the chain's main market)."}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4', 'all'], 'type': 'string', 'description': 'Protocol version (default all).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'window': {'enum': ['day', 'week', 'month', 'sixMonths', 'year'], 'type': 'string', 'description': 'Time window (default week).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user', 'proposalId'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'proposalId': {'type': 'string', 'description': "Proposal id as a decimal string, e.g. '508'. From search_governance_proposals."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['vault', 'chainId', 'user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'vault': {'type': 'string', 'description': 'Vault contract address, 0x-prefixed (40 hex chars).'}, 'window': {'enum': ['week', 'month', 'year', 'max'], 'type': 'string', 'description': 'How far back to go (default week). These are the only buckets this endpoint has: there is no day and no six months, so ask for one of these rather than expecting the nearest.'}, 'chainId': {'type': 'number', 'description': 'Chain the vault is on, e.g. 1 for Ethereum.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'vault', 'chainId', 'amount'], 'properties': {'vault': {'type': 'string', 'description': 'Vault contract address, 0x-prefixed (40 hex chars).'}, 'action': {'enum': ['deposit', 'mint', 'withdraw', 'redeem'], 'type': 'string', 'description': 'Which conversion: deposit/withdraw speak assets, mint/redeem speak shares.'}, 'amount': {'type': 'string', 'description': "Amount in main units (e.g. '10.5'), in the unit the action takes."}, 'chainId': {'type': 'number', 'description': 'Chain the vault is on, e.g. 1 for Ethereum.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'user': {'type': 'string', 'description': 'Wallet address (0x, 40 hex) to list its vault positions. Omit the argument entirely when using another selector.'}, 'owner': {'type': 'string', 'description': 'Curator address (0x, 40 hex) to list the vaults it owns. Omit the argument entirely when using another selector.'}, 'vault': {'type': 'string', 'description': "Vault contract address (0x, 40 hex) to read one vault. Needs 'chainId'. Omit the argument entirely when using another selector."}, 'cursor': {'type': 'string', 'description': "'nextCursor' from a previous call, to continue a 'user' or 'owner' listing. Omit the argument entirely for the first page."}, 'chainId': {'type': 'number', 'description': 'Chain the vault is on, e.g. 1 for Ethereum.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainId': {'type': 'number', 'description': 'Chain id to restrict to, e.g. 1 for Ethereum. Omit the argument entirely to cover every chain.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'sender'], 'properties': {'max': {'type': 'boolean', 'description': 'Withdraw/repay only: use the entire balance/debt.'}, 'token': {'type': 'string', 'description': 'v3 only: underlying token address.'}, 'action': {'enum': ['supply', 'borrow', 'withdraw', 'repay'], 'type': 'string', 'description': 'Which action to build.'}, 'amount': {'type': 'string', 'description': "Amount in MAIN units (e.g. '10.5'), never base units: 100000 base units of a 6-decimal token is '0.1', not '100'. Convert before sending if the user stated base units. Omit only if max=true."}, 'market': {'type': 'string', 'description': 'v3 only: market pool address, from a get_markets row in this session. It cannot be recalled: an Aave pool address you already recognise belongs to another deployment (v2, or another chain) and is rejected.'}, 'native': {'type': 'boolean', 'description': "Use the chain's native gas token instead of an ERC-20."}, 'sender': {'type': 'string', 'description': 'Sender wallet address (0x, 40 hex): the wallet that will sign, as the user named it in this session. If no wallet has been named, ask for it; never substitute a placeholder, which is rejected.'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."}, 'reserveId': {'type': 'string', 'description': "v4 only: the opaque reserveId, copied verbatim from a get_markets row or a get_position_items item in this session (e.g. 'MTo6MHg5NGU3...Ojo1') - it cannot be constructed or recalled, so fetch one before the first call rather than after a refusal. For a withdraw or a repay take it from get_position_items for the position being acted on, not from get_markets: the same asset exists on several spokes, and the one this wallet supplied is the only one it can exit. The 'spokeId' from get_user_positions is NOT this: it is the same encoding one segment short, names the spoke rather than a reserve inside it, and is rejected. A token symbol such as 'USDC' is rejected too."}, 'permitDeadline': {'type': 'number', 'description': "Unix seconds, the 'deadline' from the permit message that was signed. Required with permitSignature.", 'exclusiveMinimum': 0}, 'permitSignature': {'type': 'string', 'description': "Send this only to replay a call after an approval handed you a permit to sign: the user's signature (0x...) over the PermitTypedData that approval carried under 'bySignature', on either version. It replaces the approval transaction, so the action comes back in one step. Requires permitDeadline."}, 'enableCollateral': {'type': 'boolean', 'description': 'supply only: also enable the asset as collateral (default false). Leave it off and the supply earns yield but backs no borrowing, so a following borrow fails for exceeding a borrowing power of zero. Pass true whenever the plan is to borrow against it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['orderId'], 'properties': {'orderId': {'type': 'string', 'description': "The order id (from submit_signed_order's receipt, get_order_status or get_pending_orders)."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional reward ids (from get_user_rewards). Omit to claim all claimable.'}, 'user': {'type': 'string', 'description': 'Wallet address (0x, 40 hex).'}, 'chainId': {'type': 'number', 'description': "Chain id to claim on. Required unless 'ids' is omitted, in which case the chain is discovered from the wallet's claimable rewards.", 'exclusiveMinimum': 0}, 'version': {'enum': ['v4'], 'type': 'string', 'description': "Optional, and only 'v4': this tool exists on v4 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['version', 'user'], 'properties': {'max': {'type': 'boolean', 'description': 'Cover the maximum the protocol allows.'}, 'debt': {'type': 'string', 'description': 'v4 only: reserveId of the debt to repay.'}, 'user': {'type': 'string', 'description': 'The wallet being liquidated (0x, 40 hex).'}, 'amount': {'type': 'string', 'description': 'Debt to cover, in main units. Omit only if max=true.'}, 'market': {'type': 'string', 'description': 'v3 only: market pool address (from get_markets).'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Protocol version (v3 or v4; required, no 'all' for actions)."}, 'debtToken': {'type': 'string', 'description': 'v3 only: debt token address.'}, 'collateral': {'type': 'string', 'description': 'v4 only: reserveId of the collateral to seize.'}, 'liquidator': {'type': 'string', 'description': 'v4 only: the wallet performing the liquidation (0x, 40 hex). On v3 the liquidator is whoever signs the returned transaction.'}, 'collateralToken': {'type': 'string', 'description': 'v3 only: collateral token address.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['quoteId'], 'properties': {'route': {'enum': ['intent', 'transaction'], 'type': 'string', 'description': "Which execution route the quote needs, taken from its __typename: 'intent' (default) for everything except SwapByTransaction..., which takes 'transaction' and returns the on-chain transaction plus an orderReceipt, the route a native-token sell takes."}, 'quoteId': {'type': 'string', 'description': 'quoteId from get_swap_quote.'}, 'permitDeadline': {'type': 'number', 'description': "Unix seconds, the 'deadline' from the permit message that was signed. Required with permitSignature.", 'exclusiveMinimum': 0}, 'permitSignature': {'type': 'string', 'description': "The user's signature (0x...) over the PermitTypedData a quote's approvals offered under 'bySignature'. Sending it skips the approval transaction. Never send it on a first call - you only have one once a quote has handed you a permit to sign. Requires permitDeadline."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sender'], 'properties': {'token': {'type': 'string', 'description': 'v3 only: underlying token address.'}, 'enable': {'type': 'boolean', 'description': 'v4: true to enable, false to disable (default true). v3 toggles the current state; send it on v3 as the intended end state, and a toggle that would produce the opposite is refused.'}, 'market': {'type': 'string', 'description': 'v3 only: market pool address.'}, 'sender': {'type': 'string', 'description': 'Sender wallet address (0x, 40 hex): the wallet that will sign, as the user named it in this session. If no wallet has been named, ask for it; never substitute a placeholder, which is rejected.'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."}, 'reserveId': {'type': 'string', 'description': "v4 only: the opaque reserveId, copied verbatim from a get_markets row or a get_position_items item in this session (e.g. 'MTo6MHg5NGU3...Ojo1') - it cannot be constructed or recalled, so fetch one before the first call rather than after a refusal. For a withdraw or a repay take it from get_position_items for the position being acted on, not from get_markets: the same asset exists on several spokes, and the one this wallet supplied is the only one it can exit. The 'spokeId' from get_user_positions is NOT this: it is the same encoding one segment short, names the spoke rather than a reserve inside it, and is rejected. A token symbol such as 'USDC' is rejected too."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sender', 'market', 'categoryId', 'chainId'], 'properties': {'market': {'type': 'string', 'description': 'v3 only: market pool address, from a get_markets row in this session. It cannot be recalled: an Aave pool address you already recognise belongs to another deployment (v2, or another chain) and is rejected.'}, 'sender': {'type': 'string', 'description': 'Sender wallet address (0x, 40 hex): the wallet that will sign, as the user named it in this session. If no wallet has been named, ask for it; never substitute a placeholder, which is rejected.'}, 'chainId': {'type': 'number', 'description': 'Chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}, 'categoryId': {'type': 'number', 'description': 'eMode categoryId from get_emode_categories, or 0 to disable.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'sender'], 'properties': {'max': {'type': 'boolean', 'description': 'withdraw only: redeem the entire share balance.'}, 'action': {'enum': ['deposit', 'withdraw'], 'type': 'string', 'description': 'Which side to build: deposit GHO, or withdraw by redeeming shares.'}, 'amount': {'type': 'string', 'description': 'Amount in main units: GHO to deposit, or sGHO shares to redeem. Omit only when max=true.'}, 'sender': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}, 'recipient': {'type': 'string', 'description': 'Optional address to receive the shares (deposit) or the GHO (withdraw). Omit the argument entirely to use the sender.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'vault', 'chainId', 'sender', 'amount'], 'properties': {'vault': {'type': 'string', 'description': 'Vault contract address, 0x-prefixed (40 hex chars).'}, 'action': {'enum': ['deposit', 'mint', 'withdraw', 'redeem'], 'type': 'string', 'description': 'Which side to build: deposit/withdraw in assets, mint/redeem in shares.'}, 'amount': {'type': 'string', 'description': 'Amount in main units, in the unit the action takes (assets or shares).'}, 'sender': {'type': 'string', 'description': 'Wallet address, 0x-prefixed (40 hex chars).'}, 'chainId': {'type': 'number', 'description': 'Chain the vault is on, e.g. 1 for Ethereum.', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3'], 'type': 'string', 'description': "Optional, and only 'v3': this tool exists on v3 only."}, 'asAToken': {'type': 'boolean', 'description': "Move the reserve's aToken rather than its underlying token (default false)."}, 'recipient': {'type': 'string', 'description': 'Optional address to receive the shares or the assets. Omit the argument entirely to use the sender.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['action', 'sender'], 'properties': {'max': {'type': 'boolean', 'description': 'Withdraw/repay only: use the entire balance/debt.'}, 'token': {'type': 'string', 'description': 'v3 only: underlying token address.'}, 'action': {'enum': ['supply', 'borrow', 'withdraw', 'repay'], 'type': 'string', 'description': 'Action to simulate.'}, 'amount': {'type': 'string', 'description': "Amount in MAIN units (e.g. '10.5'), never base units: 100000 base units of a 6-decimal token is '0.1', not '100'. Convert before sending if the user stated base units. Omit only if max=true."}, 'market': {'type': 'string', 'description': 'v3 only: market pool address, from a get_markets row in this session. It cannot be recalled: an Aave pool address you already recognise belongs to another deployment (v2, or another chain) and is rejected.'}, 'native': {'type': 'boolean', 'description': "Use the chain's native gas token instead of an ERC-20, on either version. Pass it whenever the action is in the native token, or the balance check below reads the wrapped ERC-20 balance and can refuse a supply that would work."}, 'sender': {'type': 'string', 'description': 'Sender wallet address (0x, 40 hex): the wallet that will sign, as the user named it in this session. If no wallet has been named, ask for it; never substitute a placeholder, which is rejected.'}, 'chainId': {'type': 'number', 'description': 'v3 only: chain id (positive integer).', 'exclusiveMinimum': 0}, 'version': {'enum': ['v3', 'v4'], 'type': 'string', 'description': "Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."}, 'reserveId': {'type': 'string', 'description': "v4 only: the opaque reserveId, copied verbatim from a get_markets row or a get_position_items item in this session (e.g. 'MTo6MHg5NGU3...Ojo1') - it cannot be constructed or recalled, so fetch one before the first call rather than after a refusal. For a withdraw or a repay take it from get_position_items for the position being acted on, not from get_markets: the same asset exists on several spokes, and the one this wallet supplied is the only one it can exit. The 'spokeId' from get_user_positions is NOT this: it is the same encoding one segment short, names the spoke rather than a reserve inside it, and is rejected. A token symbol such as 'USDC' is rejected too."}, 'enableCollateral': {'type': 'boolean', 'description': 'v4 supply only: also enable as collateral.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max rows to return (1-100, default 20).'}, 'state': {'enum': ['created', 'active', 'queued', 'executed', 'failed', 'cancelled', 'expired', 'pending', 'null'], 'type': 'string', 'description': "Filter to one lifecycle state. 'active' is open for voting, 'queued' passed and waits out the timelock, 'executed' is done. Omit for every state."}, 'offset': {'type': 'number', 'description': 'Rows to skip, for paging (default 0).'}, 'search': {'type': 'string', 'description': "Optional full-text query, e.g. 'GHO' or 'Chaos Labs'. Combines with 'state'."}, 'includeSummaries': {'type': 'boolean', 'description': "Include each proposal's ~500-char summary (default false). Adds roughly 500 bytes per row, so ask for it when summarising a list rather than when looking one up."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['quoteId', 'signature'], 'properties': {'quoteId': {'type': 'string', 'description': 'quoteId (the newQuoteId returned by prepare_order).'}, 'signature': {'type': 'string', 'description': "The user's EIP-712 signature (0x...)."}}, 'additionalProperties': False}
Cambios recientes en herramientas
Servidores MCP similares
The Stall
Provides pay-per-call tools for YouTube keyword research and research on stocks, crypto, DeFi, options, and macroeconomic data.
Crank Protocol
Provides non-custodial Solana and EVM tools for swaps, derivatives, lending, staking, tokenized equities, bridging, and strategy …
x402-services
Provides on-chain, trading, and AI tools for Robinhood Chain.
FortFi Treasury MCP
Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges…
DeltaSignal ATLAS-7
Analyzes SEC and XBRL data for crypto-related public companies, including fundamentals, issuer signals, peer comparisons, stress …
intel
Provides multi-chain market intelligence, blockchain activity metrics, trading and portfolio planning, sanctions clearance, agent…
TradingCalc MCP: Options, Forex, Risk Stats, Prediction Markets, On-Chain & Crypto Futures
Performs deterministic calculations for crypto futures, funding, leverage, liquidation, position sizing, token swaps, on-chain ri…
Market Intelligence API
Analyzes crypto and tokenized-asset markets using DEX flows, perpetual positioning, smart-money activity, token risk, market news…