aeX402 — Cross-Chain DeFi MCP: LINQ, AMM, Bridge, AI
此 MCP 可以做什么
Provides cross-chain blockchain and DeFi access, including AMM quotes and swaps, bridging, token and contract discovery, RPC calls, transfers, and market data.
工具
输入模式
{'type': 'object', 'required': ['pool', 'inputMint', 'amount', 'userWallet'], 'properties': {'pool': {'type': 'string', 'description': 'Pool account address (base58)'}, 'amount': {'type': 'number', 'description': 'Input amount in atomic units'}, 'inputMint': {'type': 'string', 'description': 'Input token mint address'}, 'userWallet': {'type': 'string', 'description': 'User wallet address (for account derivation)'}, 'slippageBps': {'type': 'number', 'description': 'Max slippage in basis points (default 50 = 0.5%)'}}}
输出模式
{'type': 'object', 'required': ['action', 'instruction'], 'properties': {'quote': {'type': 'object', 'description': 'estimatedOutput, minOutput, priceImpact'}, 'action': {'type': 'string', 'description': "'aex402_swap'"}, 'instruction': {'type': 'object', 'description': 'programId, keys, data (base64) — sign & submit client-side'}}}
输入模式
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Pool account address (base58)'}}}
输出模式
{'type': 'object', 'required': ['address'], 'properties': {'amp': {'type': 'string', 'description': 'u64 as string'}, 'feeBps': {'type': 'string', 'description': 'basis points as string'}, 'lpMint': {'type': 'string'}, 'paused': {'type': 'boolean'}, 'vault0': {'type': 'string'}, 'vault1': {'type': 'string'}, 'address': {'type': 'string'}, 'balance0': {'type': 'string', 'description': 'u64 as string'}, 'balance1': {'type': 'string', 'description': 'u64 as string'}, 'lpSupply': {'type': 'string', 'description': 'u64 as string'}, 'analytics': {'type': 'object', 'description': 'OHLCV candles + trade stats'}, 'authority': {'type': 'string'}, 'token0Mint': {'type': 'string'}, 'token1Mint': {'type': 'string'}}, 'description': 'full pool state'}
输入模式
{'type': 'object', 'properties': {'minTvl': {'type': 'number', 'default': 0, 'description': 'Minimum TVL in lamports to filter (default 0)'}}}
输出模式
{'type': 'object', 'required': ['count', 'pools'], 'properties': {'count': {'type': 'integer'}, 'pools': {'type': 'array', 'items': {'type': 'object', 'description': 'pool summary: address, mints, balances, tvl, feeBps, amp'}}}}
输入模式
{'type': 'object', 'required': ['pool', 'inputMint', 'amount'], 'properties': {'pool': {'type': 'string', 'description': 'Pool account address (base58)'}, 'amount': {'type': 'number', 'description': 'Input amount in atomic units (lamports/smallest unit)'}, 'inputMint': {'type': 'string', 'description': 'Input token mint address'}}}
输出模式
{'type': 'object', 'required': ['inputMint', 'inputAmount', 'outputMint', 'estimatedOutput'], 'properties': {'note': {'type': 'string'}, 'feeBps': {'type': 'integer'}, 'inputMint': {'type': 'string'}, 'outputMint': {'type': 'string'}, 'inputAmount': {'type': 'string', 'description': 'u64 as string'}, 'priceImpactPct': {'type': 'string', 'description': 'percent, 4 decimals'}, 'estimatedOutput': {'type': 'string', 'description': 'u64 as string'}}}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'type': 'object', 'required': ['message'], 'properties': {'role': {'type': 'string', 'description': 'Role for new agent (e.g. "Solana pool analyst", "route optimizer"). Ignored if resuming session.'}, 'model': {'type': 'string', 'description': 'Model ID or alias (default: gpt-4o-mini)'}, 'message': {'type': 'string', 'description': 'Task or question for the delegate agent'}, 'session': {'type': 'string', 'description': 'Existing session ID to resume, or omit to create new session'}}}
输出模式
{'type': 'object', 'description': 'delegate agent response (session, reply text, usage)'}
输入模式
{'type': 'object', 'required': ['messages'], 'properties': {'model': {'type': 'string', 'description': 'Model ID or alias: gpt-4o-mini (default), gpt-4o, claude-sonnet, claude-haiku, llama-70b, llama-8b, gemini-flash'}, 'messages': {'type': 'array', 'items': {'type': 'object', 'required': ['role', 'content'], 'properties': {'role': {'type': 'string', 'description': 'Message role: system, user, or assistant'}, 'content': {'type': 'string', 'description': 'Message content'}}}, 'description': 'Chat messages array [{role: "user"|"system"|"assistant", content: "..."}]'}, 'max_tokens': {'type': 'number', 'description': 'Maximum tokens to generate (model-dependent default)'}, 'temperature': {'type': 'number', 'description': 'Sampling temperature (0-2)'}, 'reasoning_effort': {'type': 'string', 'description': 'low | medium | high — ask a reasoning-capable model to think harder. The chain-of-thought comes back in the tool result _meta ("com.aex402/reasoning").'}}}
输出模式
{'type': 'object', 'required': ['choices'], 'properties': {'id': {'type': 'string'}, 'model': {'type': 'string'}, 'usage': {'type': 'object', 'description': 'prompt/completion/total tokens'}, 'object': {'type': 'string', 'description': "always 'chat.completion'"}, 'choices': {'type': 'array', 'items': {'type': 'object', 'properties': {'message': {'type': 'object', 'description': 'role + content'}, 'finish_reason': {'type': 'string'}}}}, 'created': {'type': 'integer', 'description': 'unix seconds'}}, 'description': 'OpenAI-compatible chat completion'}
输入模式
{'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'Endpoint path including query string, e.g. /security/9Wq.. or /pumpfun?limit=5'}}}
输入模式
{'type': 'object', 'required': ['fromChain', 'toChain', 'fromToken', 'toToken', 'fromAmount', 'fromAddress'], 'properties': {'toChain': {'type': 'string', 'description': 'Destination chain id or key, e.g. 4663 (Robinhood Chain)'}, 'toToken': {'type': 'string', 'description': 'Destination token symbol or 0x address, e.g. USDG or ETH'}, 'fromChain': {'type': 'string', 'description': 'Source chain id or key, e.g. 42161 or ARB'}, 'fromToken': {'type': 'string', 'description': 'Source token symbol or 0x address, e.g. USDC'}, 'toAddress': {'type': 'string', 'description': 'Recipient on the destination chain (defaults to fromAddress)'}, 'fromAmount': {'type': 'string', 'description': "Amount in the source token's smallest unit (e.g. 1000000 = 1 USDC at 6 decimals)"}, 'fromAddress': {'type': 'string', 'description': 'Sender 0x address on the source chain'}}}
输出模式
{'type': 'object', 'required': ['bridge', 'toAmount', 'transactionRequest'], 'properties': {'note': {'type': 'string'}, 'bridge': {'type': 'string', 'description': 'bridge tool used (e.g. across)'}, 'toToken': {'type': 'string'}, 'toAmount': {'type': 'string'}, 'fromToken': {'type': 'string'}, 'toAddress': {'type': 'string'}, 'toChainId': {'type': 'integer'}, 'feeCostUsd': {'type': 'number'}, 'fromAmount': {'type': 'string'}, 'gasCostUsd': {'type': 'number'}, 'fromAddress': {'type': 'string'}, 'fromChainId': {'type': 'integer'}, 'toAmountMin': {'type': 'string'}, 'toTokenAddress': {'type': 'string'}, 'fromTokenAddress': {'type': 'string'}, 'transactionRequest': {'type': 'object', 'description': 'UNSIGNED tx (to, data, value, gasLimit) — caller signs & submits on the fromChain'}, 'estimatedDurationSec': {'type': 'number'}}}
输入模式
{'type': 'object', 'required': ['txHash'], 'properties': {'bridge': {'type': 'string', 'description': 'The bridge tool from bridge_quote (e.g. across, stargate) — optional'}, 'txHash': {'type': 'string', 'description': 'Source-chain transaction hash from submitting the bridge tx'}, 'toChain': {'type': 'string', 'description': 'Destination chain id/key (optional)'}, 'fromChain': {'type': 'string', 'description': 'Source chain id/key (optional)'}}}
输出模式
{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'description': 'DONE | PENDING | FAILED | NOT_FOUND'}, 'sending': {'type': 'object', 'description': 'source-chain leg'}, 'receiving': {'type': 'object', 'description': 'destination-chain leg (tx hash once complete)'}, 'substatus': {'type': 'string'}, 'substatusMessage': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['chain', 'address'], 'properties': {'chain': {'type': 'string', 'description': 'solana | slonana | robinhood | hyperevm | ethereum | base | stable | plasma | tempo | codex'}, 'address': {'type': 'string', 'description': 'Program id (base58, Solana/Slonana) or contract address (0x…, EVM)'}}}
输出模式
{'type': 'object', 'required': ['chain', 'address'], 'properties': {'chain': {'type': 'string'}, 'erc20': {'type': 'object', 'description': 'ERC-20 name/symbol/decimals. EVM only — omitted when the address is not an ERC-20, or the chain is Solana/Slonana'}, 'known': {'type': ['object', 'null'], 'description': 'curated registry entry {id,name,type,note} when the address is recognised'}, 'owner': {'type': 'string', 'description': 'owning program. Solana/Slonana only — omitted when the chain is EVM'}, 'proxy': {'type': 'object', 'description': 'EIP-1967 proxy standard + implementation. EVM only — omitted when the address is not a proxy, or the chain is Solana/Slonana'}, 'exists': {'type': 'boolean', 'description': 'Solana/Slonana only — omitted when the chain is EVM (isContract is the EVM equivalent)'}, 'address': {'type': 'string'}, 'dataLen': {'type': 'integer', 'description': 'account data length in bytes. Solana/Slonana only — omitted when the chain is EVM (codeSize is the EVM equivalent)'}, 'codeSize': {'type': 'integer', 'description': 'EVM bytecode length in bytes. EVM only — omitted when the chain is Solana/Slonana (dataLen is the Solana equivalent)'}, 'lamports': {'type': 'integer', 'description': 'Solana/Slonana only — omitted when the chain is EVM'}, 'isProgram': {'type': 'boolean', 'description': 'Solana/Slonana only — omitted when the chain is EVM'}, 'executable': {'type': 'boolean', 'description': 'Solana/Slonana only — omitted when the chain is EVM'}, 'isContract': {'type': 'boolean', 'description': 'EVM only — omitted when the chain is Solana/Slonana, where executable/isProgram carry this instead'}}}
输入模式
{'type': 'object', 'properties': {'chain': {'type': 'string', 'default': 'all', 'description': 'Filter to one chain: solana | slonana | robinhood | hyperevm | ethereum | base | stable | plasma | tempo | codex. Omit or "all" for every chain.'}}}
输出模式
{'type': 'object', 'properties': {'note': {'type': 'string', 'description': 'caveats about what this scan did and did not see'}, 'chain': {'type': 'string'}, 'count': {'type': 'integer'}, 'tokens': {'type': 'integer', 'description': 'token contracts seen alongside programs'}, 'coverage': {'type': ['string', 'object'], 'description': 'what this scan enumerated: a string on the single-chain response, the full per-chain map on the all-chains response'}, 'programs': {'type': ['array', 'object'], 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'program/contract address'}, 'name': {'type': 'string'}, 'note': {'type': 'string'}, 'type': {'type': 'string', 'description': "'core' | 'curated' | 'discovered'"}, 'activity': {'type': 'integer', 'description': 'recent invocations/calls'}}}, 'description': 'array on the single-chain response; a per-chain {chain: program[]} map on the all-chains response'}, 'discovered': {'type': 'integer', 'description': 'auto-discovered (not curated) entries'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['status'], 'properties': {'note': {'type': 'string', 'description': 'plain-language reading of status'}, 'counts': {'type': 'object', 'description': 'per-chain program counts from the last scan'}, 'status': {'type': 'string', 'description': 'healthy | stale | degraded'}, 'history': {'type': 'array', 'items': {'type': 'object', 'properties': {'ts': {'type': 'integer', 'description': 'unix seconds'}, 'counts': {'type': 'object', 'description': 'per-chain program count at that run'}}}, 'description': 'per-chain counts over the last <=24 cron runs, oldest first'}, 'emptyScans': {'type': 'array', 'items': {'type': 'string'}, 'description': 'chains whose last scan returned zero (omitted when none)'}, 'failedScans': {'type': 'array', 'items': {'type': 'string'}, 'description': 'chains whose last scan errored (omitted when none)'}, 'lastRunUnix': {'type': 'integer'}, 'sourceErrors': {'type': 'object', 'description': 'per-chain list of what each live source ACTUALLY answered when it failed, e.g. "robinhood/ERC-20: blockscout /api/v2/tokens → 403". Says WHY a census is thin where seedsOnlyScans only says THAT it is. Capped at 4 entries per chain; when more were recorded the list carries a final "… +N more (T total)" string, so the count survives the truncation rather than the list silently reading as complete. Omitted when every source succeeded'}, 'lastRunAgeMin': {'type': 'number'}, 'seedsOnlyScans': {'type': 'array', 'items': {'type': 'string'}, 'description': 'chains whose last scan returned ONLY hardcoded canonical seeds — every live source returned nothing while the fallback held, so the count is non-zero and emptyScans does NOT list them. Sets status=degraded. Omitted when none'}, 'censusLiveRecords': {'type': 'object', 'description': 'per-census count of records the LIVE source returned, before any merge, cap or spam filter — the evidence behind seedsOnlyScans. 0 means the live source supplied nothing (the census is its fallback); -1 means this census was last written by a build that did not record the field, which is NOT the same as zero. Published even when healthy, so a reader can distinguish "source is fine" from "nothing was measured" without inferring it from a verdict. Never omitted: built over the census keys in counts, so every census always carries a value and -1 covers the pre-field case — the earlier exemption for records predating the field was retired when the conditional spread was removed'}, 'censusRecordsBeforeCap': {'type': 'object', 'description': 'per-census record count BEFORE the fungible (170) and NFT (50) caps. A count sitting exactly on its cap cannot say whether it is a finding or a ceiling — hyperevm_census reads 170 because 170 IS the cap. Compare against counts: a value here greater than the published count means that census was TRUNCATED, equal means it was not. -1 means the build that last wrote this census did not record the field. Never omitted, same construction as censusLiveRecords'}}}
输入模式
{'type': 'object', 'required': ['method'], 'properties': {'method': {'type': 'string', 'description': 'EVM RPC method name, e.g. eth_getBalance'}, 'params': {'type': 'array', 'description': 'Positional params array (method-specific). Omit for no params.'}, 'network': {'type': 'string', 'default': 'robinhood', 'description': 'Chain slug: robinhood (default; legacy mainnet alias accepted), robinhood-testnet, hyperevm, ethereum/eth, base, stable/tether, plasma, tempo, codex, or arc (Circle mainnet)'}}}
输入模式
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'A search result id, e.g. "pool:G5d3qFZq..." or "token:robinhood:0x5fc5..." or "program:solana:3AMM53..."'}}}
输出模式
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string', 'description': 'Entity detail as pretty-printed JSON/prose'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'additionalProperties': True}}}
输入模式
{'type': 'object', 'required': ['type'], 'properties': {'dir': {'type': 'string', 'description': 'rankBy only: asc | desc (default desc — highest rankBy value first)'}, 'coin': {'type': 'string', 'description': 'Coin symbol for l2Book/candleSnapshot (e.g. BTC, ETH)'}, 'type': {'type': 'string', 'description': 'Info request type, e.g. meta, l2Book, allMids, clearinghouseState, metaAndAssetCtxs'}, 'user': {'type': 'string', 'description': '0x address for user-scoped queries (clearinghouseState, openOrders, userFills)'}, 'limit': {'type': 'number', 'description': 'rankBy only: how many ranked rows to return (default 20, max 100)'}, 'rankBy': {'type': 'string', 'description': 'type:metaAndAssetCtxs ONLY. One of funding | fundingAbs | openInterest | volume. Joins each coin\'s name to its funding/OI/volume, drops delisted coins, sorts, and returns {ranked, rankBy, dir, totalCoins} instead of the raw two-array response. Use fundingAbs for "biggest funding outlier either direction" (ranks by |funding|); use funding for "most positive/most negative" specifically (with dir).'}, 'endTime': {'type': 'number', 'description': 'candleSnapshot only: end time epoch ms (default: now)'}, 'interval': {'type': 'string', 'description': 'candleSnapshot only: candle interval, e.g. 1m,5m,15m,1h,4h,1d'}, 'startTime': {'type': 'number', 'description': 'candleSnapshot only: start time epoch ms (default: endTime minus 500 intervals)'}}}
输入模式
{'type': 'object', 'required': ['name', 'ticker'], 'properties': {'pad': {'type': 'string', 'description': "OPTIONAL aeX402 launchpad slug the coin is launched on. Its vpId then starts with that pad's tag, so the pad lists it. Applies on BOTH the custodial (default) and build:true paths"}, 'name': {'type': 'string', 'description': 'Token name, 1..32 bytes (e.g. "Fork Meme")'}, 'build': {'type': 'boolean', 'description': 'If true, return an UNSIGNED tx to submit yourself (non-custodial) instead of the backend launching for you. Default false.'}, 'image': {'type': 'string', 'description': 'Image URL (https:// or ipfs:// only) — off-chain metadata'}, 'links': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 3 links (https:// or ipfs:// only) — off-chain metadata'}, 'ticker': {'type': 'string', 'description': 'Ticker / symbol, 1..16 bytes (e.g. "FMEME")'}, 'creator': {'type': 'string', 'description': 'OPTIONAL 0x EVM address recorded as the coin owner (and seeds the vpId). REQUIRED only when build:true (then it is the self-signing on-chain creator).'}, 'description': {'type': 'string', 'description': 'Short description (<=256 chars) — off-chain metadata'}}}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'Custodial mode: whether the launch was submitted'}, 'to': {'type': 'string', 'description': 'build mode: aeX402 diamond address'}, 'data': {'type': 'string', 'description': 'build mode: createVPool calldata to submit'}, 'note': {'type': 'string'}, 'vpId': {'type': 'string', 'description': 'Deterministic keccak256(creator-or-launcher ++ name ++ ticker)'}, 'status': {'type': 'string', 'description': 'submitted | gated | custodial-disabled | exists | rate-limited | insufficient-gas | submit-failed'}, 'txHash': {'type': 'string', 'description': 'Custodial mode: the createVPool tx hash'}, 'metadata': {'type': 'object', 'description': 'Off-chain metadata (stored server-side in custodial mode)'}}}
输入模式
{'type': 'object', 'required': ['server'], 'properties': {'tool': {'type': 'string', 'description': "Tool name on that server, e.g. aea_list_services. Omit both tool and arguments to list that server's tools instead."}, 'server': {'type': 'string', 'description': 'Federated server name. One of: slonana'}, 'arguments': {'type': 'object', 'description': "Arguments for the tool call, per that server's own schema."}}}
输入模式
{'type': 'object', 'required': ['calls'], 'properties': {'linq': {'type': 'string', 'description': 'LINQ-like query string compiled into pipeline steps. Supports fluent dot chaining and query clauses. .where()/.map()/.select() bodies AND .orderBy()/.orderByDesc()/.distinctBy()/.groupBy() keys are all real expressions — ternaries, &&/||, comparisons, arithmetic, member/index access, object/array literals, and a small method whitelist (.includes/.startsWith/.endsWith/.toLowerCase/.toUpperCase/.trim/.slice/.indexOf/.split/.join, Math.min/max/round/floor/ceil/abs, String()/Number()/Boolean()) all work, e.g. results.map(r => r.ok ? ({chain: r.id, height: r.output}) : ({chain: r.id, height: -1})), or ranking by a COMPUTED score: results.where(r => r.ok).orderByDesc(r => r.output.volume24h * r.output.priceChangePct).take(10) — the ranking key is not limited to a bare field. Fluent example: results.selectMany(r => r.output.programs[]).where(p => p.type in ("token","canonical-token")).groupBy(p => p._chain, assets=count(), activity=sum(activity)).orderByDesc(assets).take(5). Clause example: from results[] | expand output.programs[] | where type in ("token","canonical-token") | group by _chain as chain select assets=count(), activity=sum(activity) | order by assets desc | take 5.'}, 'calls': {'type': 'array', 'items': {'type': 'object', 'required': ['tool'], 'properties': {'id': {'type': 'string', 'description': 'Stable label for this subcall; defaults to tool:index.'}, 'args': {'type': 'object', 'description': 'Arguments for the subcall.', 'additionalProperties': True}, 'pick': {'type': 'string', 'description': 'Optional dot path to return from this subcall, e.g. count or programs[].activity.'}, 'tool': {'type': 'string', 'description': 'Read-only tool name, e.g. evm_rpc, solana_rpc, discover_programs, search_tokens, hl_info.'}}}, 'maxItems': 32, 'minItems': 1, 'description': 'Read-only MCP tool calls to run. Each call has {id?, tool, args?, pick?}. pick is a dot path into that call output; [] flattens arrays.'}, 'reduce': {'type': 'object', 'description': 'Named reductions to compute from subcall outputs. Example: {"total":{"op":"sum","path":"results[].picked"},"top":{"op":"top","path":"results[]","sortBy":"picked","limit":5}}.', 'additionalProperties': {'type': 'object', 'required': ['op'], 'properties': {'by': {'type': 'string', 'description': 'For group* reducers: dot path inside each selected item used as the group key.'}, 'op': {'enum': ['count', 'sum', 'avg', 'min', 'max', 'top', 'groupCount', 'groupSum', 'groupAvg', 'concat', 'first'], 'type': 'string'}, 'path': {'type': 'string', 'description': 'Dot path into the batch result, e.g. results[].picked or results[].output.programs[].activity.'}, 'limit': {'type': 'number', 'description': 'Max rows returned by top/concat/group reducers (default 10, max 100).'}, 'value': {'type': 'string', 'description': 'For groupSum/groupAvg: numeric path inside each selected item. Defaults to the item itself.'}, 'sortBy': {'type': 'string', 'description': 'For top: numeric/string path inside each selected item used for ordering.'}}}}, 'pipeline': {'type': 'array', 'items': {'type': 'object', 'required': ['op'], 'properties': {'by': {'type': 'string', 'description': 'groupBy/distinct key path.'}, 'op': {'type': 'string', 'description': 'from | expand | where | select | project | groupBy | orderBy | sort | take | limit | skip | distinct | count | sum | avg | min | max | first | top'}, 'dir': {'type': 'string', 'description': 'asc or desc for orderBy/top.'}, 'path': {'type': 'string', 'description': 'Dot path. [] flattens arrays. "$" or "." means the current item.'}, 'count': {'type': 'number', 'description': 'take/limit/top count.'}, 'limit': {'type': 'number', 'description': 'Alias for count.'}, 'fields': {'type': 'object', 'description': 'Projection map: outputField -> input path. Use {"literal":value} for literal strings.', 'additionalProperties': True}, 'aggregates': {'type': 'object', 'description': 'groupBy aggregates: name -> {op,path?}; ops: count, sum, avg, min, max, first, top.', 'additionalProperties': True}}, 'additionalProperties': True}, 'maxItems': 64, 'description': 'LINQ-style chained transforms over the raw batch result. Each step feeds the next. Ops: from, expand, where, select/project, groupBy, orderBy/sort, take/limit, skip, distinct, count, sum, avg, min, max, first, top. Example: [{"op":"from","path":"results[]"},{"op":"expand","path":"output.programs[]"},{"op":"where","path":"type","in":["token","canonical-token"]},{"op":"groupBy","by":"_chain","as":"chain","aggregates":{"tokens":{"op":"count"},"activity":{"op":"sum","path":"activity"}}},{"op":"orderBy","path":"tokens","dir":"desc"},{"op":"take","count":5}].'}, 'concurrency': {'type': 'number', 'default': 8, 'description': 'Parallelism for subcalls (default 8, max 12).'}, 'ignoreFailures': {'type': 'boolean', 'default': False, 'description': 'When reduce/pipeline/linq is used, a failed subcall is normally still reported in `failures` alongside the aggregate result, since a `.where(ok)`-style query would otherwise make it invisible. Set true to suppress that and get back only {reductions?, result?} — use when you already expect some chains/calls to fail and only want whatever succeeded. Defaults to false (failures still shown) because silently dropping an error is a real information loss, not just an efficiency choice — this one is opt-in on purpose.'}}}
输出模式
{'type': 'object', 'required': [], 'properties': {'ok': {'type': 'boolean', 'description': 'omitted when reduce/pipeline/linq was requested — the aggregation response is just the answer, not this batch-fanout shape'}, 'note': {'type': 'string', 'description': 'omitted when reduce/pipeline/linq was requested'}, 'calls': {'type': 'integer', 'description': 'number of subcalls attempted; omitted when reduce/pipeline/linq was requested'}, 'result': {'description': 'The pipeline/linq output value — the entire point of the call when args.pipeline or args.linq was passed, returned alone rather than wrapped; omitted when neither was passed'}, 'results': {'type': 'array', 'items': {'type': 'object', 'description': 'per-call result: id, tool, ok, picked/output or error'}, 'description': 'omitted when reduce/pipeline/linq was requested — see failures instead for what went wrong'}, 'failures': {'type': 'array', 'items': {'type': 'object', 'description': 'failed subcall: id, tool, error'}, 'description': 'omitted when every subcall succeeded, when ignoreFailures:true was passed, or when no aggregation was requested (failures show inside results instead)'}, 'reductions': {'type': 'object', 'description': 'named reducer outputs; omitted when args.reduce was not passed'}, 'concurrency': {'type': 'integer', 'description': 'omitted when reduce/pipeline/linq was requested'}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['paidTier', 'mcp', 'docs'], 'properties': {'mcp': {'type': 'object', 'description': 'MCP-specific: which methods stay free, how to attach X-Session / Bearer key to MCP requests', 'additionalProperties': True}, 'docs': {'type': 'string'}, 'note': {'type': 'string', 'description': 'one-line summary of the cheapest path to a paid session'}, 'freeTier': {'type': 'object', 'additionalProperties': True}, 'paidTier': {'type': 'object', 'description': 'Prices, accepted assets with mints/contracts + merchant addresses, howToPay steps', 'additionalProperties': True}, 'quickstart': {'type': 'object', 'additionalProperties': True}}}
输入模式
{'type': 'object', 'required': ['chain', 'address'], 'properties': {'chain': {'type': 'string', 'description': 'robinhood | hyperevm | ethereum | base | stable | plasma | tempo | codex'}, 'address': {'type': 'string', 'description': 'EVM contract address (0x…). For a proxy, pass the implementation for the real logic.'}}}
输出模式
{'type': 'object', 'required': ['chain', 'address', 'isContract'], 'properties': {'note': {'type': 'string', 'description': 'what the reconstruction could and could not resolve'}, 'chain': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'description': '{topic0, sig}'}, 'description': 'resolved event signatures'}, 'address': {'type': 'string'}, 'codeSize': {'type': 'integer'}, 'functions': {'type': 'array', 'items': {'type': 'object', 'description': '{selector, sig}'}, 'description': 'resolved function signatures'}, 'isContract': {'type': 'boolean'}, 'functionCount': {'type': 'integer', 'description': 'total PUSH4 selectors found'}, 'unresolvedSelectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'novel/proprietary selectors no DB knows'}}}
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Keyword: token symbol/name ("usdg"), program name ("pump.fun"), contract address, or pool address.'}}}
输出模式
{'type': 'object', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'description': 'Opaque id for fetch: token:<chain>:<address> | program:<chain>:<address> | pool:<address>'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}}}}}
输入模式
{'type': 'object', 'properties': {'chain': {'type': 'string', 'description': 'robinhood | hyperevm. Omit to search both.'}, 'limit': {'type': 'number', 'default': 20, 'description': 'Max results (default 20).'}, 'query': {'type': 'string', 'description': 'Symbol or name substring, case-insensitive (e.g. "usdc", "hype"). Omit to list the top of the census.'}}}
输出模式
{'type': 'object', 'required': ['count', 'tokens'], 'properties': {'note': {'type': 'string'}, 'count': {'type': 'integer'}, 'query': {'type': 'string'}, 'chains': {'type': 'array', 'items': {'type': 'string'}}, 'tokens': {'type': 'array', 'items': {'type': 'object', 'description': 'address, symbol, name, standard, decimals, holders, marketCap, price'}}, 'censusAgeMin': {'type': 'number', 'description': 'minutes since the census cron last ran'}}}
输入模式
{'type': 'object', 'required': ['from', 'to', 'amount'], 'properties': {'to': {'type': 'string', 'description': 'Recipient address (base58)'}, 'from': {'type': 'string', 'description': 'Sender wallet address (base58)'}, 'mint': {'type': 'string', 'description': 'SPL token mint address. Omit for native SOL transfer.'}, 'amount': {'type': 'number', 'description': 'Amount in atomic units (lamports for SOL, smallest unit for SPL)'}}}
输出模式
{'type': 'object', 'required': ['action', 'instruction'], 'properties': {'action': {'type': 'string', 'description': "'transfer_sol' or 'transfer_spl'"}, 'summary': {'type': 'string', 'description': 'human-readable description of the transfer being built'}, 'instruction': {'type': 'object', 'required': ['programId', 'keys', 'data'], 'properties': {'data': {'type': 'string', 'description': 'base64 instruction data'}, 'keys': {'type': 'array', 'items': {'type': 'object', 'description': 'pubkey/isSigner/isWritable'}}, 'programId': {'type': 'string'}}}}}
输入模式
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Account address (base58)'}, 'encoding': {'type': 'string', 'default': 'base64', 'description': 'Data encoding: base64 (default) or jsonParsed'}}}
输出模式
{'type': 'object', 'required': ['context'], 'properties': {'value': {'type': ['object', 'null'], 'description': 'account (lamports, owner, data, executable, rentEpoch) or null if it does not exist'}, 'context': {'type': 'object', 'properties': {'slot': {'type': 'integer', 'description': 'slot the value was read at'}}}}}
输入模式
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Solana wallet address (base58)'}}}
输出模式
{'type': 'object', 'required': ['context', 'value'], 'properties': {'value': {'type': 'integer', 'description': 'balance in lamports (1e9 = 1 SOL)'}, 'context': {'type': 'object', 'properties': {'slot': {'type': 'integer', 'description': 'slot the value was read at'}}}}}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['context', 'value'], 'properties': {'value': {'type': 'object', 'required': ['blockhash', 'lastValidBlockHeight'], 'properties': {'blockhash': {'type': 'string', 'description': 'base58'}, 'lastValidBlockHeight': {'type': 'integer'}}}, 'context': {'type': 'object', 'properties': {'slot': {'type': 'integer', 'description': 'slot the value was read at'}}}}}
输入模式
{'type': 'object', 'required': ['address'], 'properties': {'limit': {'type': 'number', 'default': 20, 'description': 'Max signatures to return (default 20, max 1000)'}, 'address': {'type': 'string', 'description': 'Account address (base58)'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'properties': {'err': {'type': ['object', 'null']}, 'slot': {'type': 'integer'}, 'blockTime': {'type': ['integer', 'null']}, 'signature': {'type': 'string', 'description': 'base58 tx signature'}, 'confirmationStatus': {'type': 'string'}}}}}, 'description': 'array of recent signature records, newest first'}
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'integer', 'description': 'current slot'}}, 'description': 'current slot number'}
输入模式
{'type': 'object', 'required': ['owner'], 'properties': {'owner': {'type': 'string', 'description': 'Wallet address (base58)'}}}
输出模式
{'type': 'object', 'required': ['context', 'value'], 'properties': {'value': {'type': 'array', 'items': {'type': 'object', 'properties': {'pubkey': {'type': 'string', 'description': 'token account address'}, 'account': {'type': 'object', 'description': 'parsed SPL account (mint, owner, tokenAmount)'}}}}, 'context': {'type': 'object', 'properties': {'slot': {'type': 'integer', 'description': 'slot the value was read at'}}}}}
输入模式
{'type': 'object', 'required': ['signature'], 'properties': {'signature': {'type': 'string', 'description': 'Transaction signature (base58)'}}}
输出模式
{'type': 'object', 'properties': {'meta': {'type': 'object', 'description': 'fee, pre/post balances, logs, err'}, 'slot': {'type': 'integer'}, 'blockTime': {'type': ['integer', 'null'], 'description': 'unix seconds'}, 'transaction': {'type': 'object', 'description': 'message + signatures'}}}
输入模式
{'type': 'object', 'required': ['method'], 'properties': {'method': {'type': 'string', 'description': 'Solana RPC method name, e.g. getEpochInfo'}, 'params': {'type': 'array', 'description': 'Positional params array (method-specific). Omit for no params.'}, 'network': {'type': 'string', 'default': 'solana', 'description': 'solana (default/mainnet-beta) or slonana'}}}
输入模式
{'type': 'object', 'required': ['transaction'], 'properties': {'transaction': {'type': 'string', 'description': 'Base64-encoded signed transaction'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string', 'description': 'base58 transaction signature'}}, 'description': 'signature of the submitted transaction'}
近期工具变更
类似的 MCP 服务器
SODAX Builders MCP
Exposes cross-chain DeFi and AMM analytics, money-market positions, token and chain data, order books, swap quotes, and SDK docum…
mcp
Provides blockchain staking network data, APY-based reward estimates, staking infrastructure documentation, integrations, and int…
1inch MCP
Provides 1inch documentation and APIs for token swaps, cross-chain swaps, limit orders, portfolio data, prices, and wallet-signed…
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…
XGR MCP Gateway
Provides an MCP gateway for XGRChain and XDaLa workflows, including blockchain explorer queries, session inspection, transaction …