x402-api
This MCP server lets AI agents access pay-per-call crypto/DeFi data via x402 USDC micropayments on Base, with inspect mode or optional auto-pay.
Fetch live crypto prices and top 24h movers (BTC, ETH, SOL) for 0.001 USDC.
Fetch gas prices across Ethereum, Base, Polygon, and Arbitrum for 0.001 USDC.
Get one ParaSwap DEX aggregate quote for a token swap for 0.002 USDC.
Scan ERC-20 tokens for GoPlus security flags and a risk heuristic for 0.003 USDC.
Sample top token holders and reported supply share for 0.005 USDC.
Scan DeFi yields across Aave, Compound, Morpho, Lido, Pendle, etc. with chain/asset/TVL filters for 0.005 USDC.
Get Hyperliquid and dYdX v4 hourly perpetual funding rates and indicative spreads for 0.008 USDC.
Profile a wallet's priced public balances and transaction counts via Blockscout for 0.008 USDC.
Run without payment in inspect mode, or set a Base wallet key for autonomous USDC auto-pay with a default 0.01 USDC per-call cap.
Provides perpetual funding rates data from the Binance exchange.
Utilizes the Coinbase-developed x402 protocol to facilitate pay-per-call USDC micropayments for crypto and DeFi data.
Enables Ethereum gas price tracking, wallet portfolio analysis, and security scanning for Ethereum-based tokens.
Provides perpetual funding rates data from the GMX decentralized exchange.
Provides perpetual funding rates data from the Hyperliquid platform.
Provides perpetual funding rates data from the OKX exchange.
Offers gas price monitoring and DeFi yield scanning across the Polygon network.
@x402-api/mcp-server
MCP server that gives Claude, ChatGPT, and any MCP-compatible AI agent access to pay-per-call crypto/DeFi data via the x402 protocol.
8 tools. No API keys. AI agents pay USDC micropayments on Base, per request.
Find this service: Official MCP Registry · Glama · Agent discovery manifest · OpenAPI.
██╗ ██╗██╗ ██╗ ██████╗ ██████╗
╚██╗██╔╝██║ ██║██╔═══██╗╚════██╗
╚███╔╝ ███████║██║ ██║ █████╔╝
██╔██╗ ╚════██║██║ ██║██╔═══╝
██╔╝ ██╗ ██║╚██████╔╝███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝Tools
Tool | API Endpoint | Cost | Description |
|
| 0.001 USDC | BTC/ETH/SOL + top 24h movers |
|
| 0.001 USDC | Multi-chain gas (ETH, Base, Polygon, Arbitrum) |
|
| 0.002 USDC | One ParaSwap aggregate route |
|
| 0.003 USDC | GoPlus security flags and heuristic |
|
| 0.005 USDC | Top-holder sample and supply share |
|
| 0.005 USDC | DefiLlama pool APYs and TVL |
|
| 0.008 USDC | Hyperliquid and dYdX hourly rates |
|
| 0.008 USDC | Observed Blockscout balances; partial coverage |
Related MCP server: x402farm-mcp
Quick Start
Option A: Inspect mode (no payment needed)
Just run it — any 402 responses will return human-readable payment instructions:
npx @x402-api/mcp-serverClaude will tell you what's needed when a tool requires payment.
Option B: Auto-pay mode (fully autonomous)
Install optional payment deps and set your wallet key:
npm install -g @x402-api/mcp-server
npm install -g viem
export X402_WALLET_PRIVATE_KEY=0x<your_private_key>
x402-api-mcpThe MCP server signs Base USDC EIP-3009 authorizations only when the API advertises that settlement mode. The default payment cap is 0.01 USDC per call. Fund the wallet with USDC on Base; the API operator sponsors gas in direct settlement mode.
Claude Desktop Integration
Add to your claude_desktop_config.json:
Without auto-pay (inspect mode)
{
"mcpServers": {
"x402-api": {
"command": "npx",
"args": ["@x402-api/mcp-server"]
}
}
}With auto-pay
{
"mcpServers": {
"x402-api": {
"command": "npx",
"args": ["@x402-api/mcp-server"],
"env": {
"X402_WALLET_PRIVATE_KEY": "0x<your_private_key>"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Environment Variables
Variable | Required | Description |
| Optional | Base wallet private key for EIP-3009 automatic payment. Requires |
| Optional | Per-call cap, default |
| Optional | Override API URL (default: |
How x402 Payments Work
This API uses the x402 protocol — HTTP 402 Payment Required:
Agent calls tool → MCP server makes API request
Server returns 402 with payment details (amount, USDC address, Base network)
Auto-pay mode: this client signs an EIP-3009 authorization and retries; the API settles it on Base
Inspect mode: MCP returns 402 details without signing or paying
Payment details:
Token: USDC on Base mainnet
Address:
0x60264c480b67adb557efEd22Cf0e7ceA792DefB7Chain: Base (chain ID 8453)
Amount: 0.001–0.008 USDC per call (< 1 cent USD)
Tool Reference
get_crypto_prices
No parameters. Returns current prices for BTC, ETH, SOL + top 24h movers.
Cost: 0.001 USDCget_gas_prices
No parameters. Returns gas prices for Ethereum, Base, Polygon, Arbitrum — slow/standard/fast tiers.
Cost: 0.001 USDCget_dex_quotes
Get one ParaSwap aggregate route. No independent comparison between DEX venues.
Parameter | Type | Required | Description |
| string | ✅ | Input token (e.g. |
| string | ✅ | Output token (e.g. |
| string | ✅ | Amount to swap (e.g. |
Cost: 0.002 USDCscan_token
Token security scan — detects rug-pull flags, honeypot patterns, mint authority, etc.
Parameter | Type | Required | Description |
| string | ✅ | Contract address or symbol (e.g. |
Cost: 0.003 USDCtrack_whales
Top-holder sample from GoPlus. Gini and recent transfer history unavailable.
Parameter | Type | Required | Description |
| string | ✅ | Contract address or symbol |
Cost: 0.005 USDCscan_yields
Top DeFi yield opportunities across Aave, Compound, Morpho, Lido, Pendle, etc.
Parameter | Type | Required | Description |
| string | ❌ | Filter by chain: |
| number | ❌ | Minimum TVL in USD (e.g. |
Cost: 0.005 USDCget_funding_rates
Hourly perpetual funding from Hyperliquid and dYdX v4. Spreads are indicative.
Parameter | Type | Required | Description |
| string | ❌ | Asset symbol (e.g. |
Cost: 0.008 USDCprofile_wallet
Observed priced wallet balances and available transaction counts. DeFi positions, PnL and risk score unavailable.
Parameter | Type | Required | Description |
| string | ✅ | Ethereum/Base wallet address ( |
Cost: 0.008 USDCDevelopment
git clone https://github.com/fernsugi/x402-api-mcp-server
cd x402-api-mcp-server
npm install
npm run build
npm startTo test without a payment wallet, simply run and see the 402 responses:
node dist/index.jsLinks
License
MIT
Three runnable workflows
Workflow | Tools | Total USDC |
| 0.008 | |
| 0.008 | |
| 0.003 |
Runnable Node examples start in inspect mode. Each demo has inputs, recorded provider output, coverage limits, a spending cap, and an agent prompt.
Optional X402_REFERRAL_SOURCE labels requests for first-party aggregate attribution (default mcp). It is a hint, not verified caller identity. The API journals no raw payer wallets, IP addresses, or signatures. X402_EXPECTED_PAY_TO pins the payment recipient to the official wallet by default. Tools advertise that auto-pay can spend money and repeated calls can incur another charge.
Cursor / other local MCP clients
Use the same mcpServers configuration shown above. For Cursor, put it in .cursor/mcp.json in your project. Inspect mode needs no wallet. Set X402_MAX_PER_CALL_USDC before enabling auto-pay; repeated calls spend again. Keep wallet credentials in local environment settings, outside Git.
Registry publication
The Publish MCP Registry GitHub workflow validates the matching npm version, then publishes server.json using GitHub OIDC. It runs on a published GitHub release or a manual dispatch from main. No npm token, GitHub PAT, or wallet key is stored in CI. Actions and official publisher source are pinned to verified commits. npm publication still happens separately before creating the release.
Available Tools
8 toolsget_crypto_pricesARead-onlyIdempotent
Get live cryptocurrency prices and top 24h movers. Returns BTC, ETH, SOL prices plus top gainers/losers. Costs 0.001 USDC per call (x402 micropayment on Base). Data sourced live from CoinGecko or CoinLore fallback.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructiveness, so safety is covered. The description adds genuinely useful behavior beyond the annotations: a 0.001 USDC x402 micropayment cost per call on Base and a CoinGecko-with-CoinLore-fallback data source. It omits rate limits or failure/payment behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, return payload second, cost/source last. Every sentence carries distinct, load-bearing information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with no output schema, the description discloses what is returned (prices and gainers/losers), the cost, and the data provenance. That is sufficient to call it correctly, though the exact response shape is only loosely described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly does not invent parameter semantics, and no schema-documented parameters need compensating for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get live cryptocurrency prices and top 24h movers') and enumerates the concrete outputs (BTC, ETH, SOL, gainers/losers). It does not explicitly differentiate itself from crypto-adjacent siblings like get_dex_quotes or get_gas_prices, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope (live spot prices plus movers) implies when it is appropriate, but there is no explicit when-to-use guidance or routing to alternatives such as get_dex_quotes. Usage must be inferred from the data it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dex_quotesARead-onlyIdempotent
Get one live ParaSwap aggregate route for a supported pair. Returns expected output and route components; no independent venue comparison. Costs 0.002 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Output token symbol or address (e.g. "USDC", "DAI", "0x...") | |
| from | Yes | Input token symbol or address (e.g. "ETH", "USDC", "0x...") | |
| chain | No | Chain to query (e.g. "ethereum", "base", "arbitrum"). Defaults to "ethereum". | |
| amount | Yes | Amount to swap (e.g. "1.5" for 1.5 ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds genuinely non-obvious context: this is a paid call (0.002 USDC per call via x402 on Base) and it returns a single aggregate route without independent venue comparison, which shapes both cost expectations and result interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying distinct information: what it returns, what it does not do, and what it costs. Nothing is padded and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does state the return shape (expected output plus route components) and the payment requirement. It leaves unsupported-pair failure behavior and any rate/latency expectations unstated, but covers enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so from/to/chain/amount are already documented with formats and examples. The description adds no parameter-level detail beyond 'supported pair', so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: fetch one live ParaSwap aggregate route for a supported token pair, and scopes it with 'no independent venue comparison'. That scope line separates it from a hypothetical multi-venue router, though no sibling tool is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'for a supported pair' and the per-call cost, which helps an agent weigh whether the call is worth making. There is no explicit when-to-use versus siblings like get_crypto_prices, and no stated when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_ratesARead-onlyIdempotent
Get hourly perpetual funding rates from Hyperliquid and dYdX v4. Current and predicted rates are compared as indicative spreads; fees and basis risk are excluded. Costs 0.008 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Asset symbol (e.g. "BTC", "ETH", "SOL"). Returns all assets if omitted. | |
| min_spread | No | Filter for arbitrage spreads >= N basis points (e.g. 0.5). Omit for no filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds genuinely new behavioral facts: a per-call cost of 0.008 USDC via x402 micropayment on Base (an auth/payment requirement) and an explicit data-quality caveat that fees and basis risk are excluded from the spread comparison. This is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core capability, then the comparison caveat, then the cost. Every sentence carries distinct, decision-relevant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry return-shape information; it conveys that both current and predicted rates are returned as spreads, which is reasonably complete for a two-optional-param read tool. It stops short of describing per-asset field structure or ordering, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (asset, min_spread) are already fully documented, including the basis-point unit and the omit-for-all-assets behavior. The description adds context about spreads being 'indicative' and fee-excluded, which mildly informs min_spread, but does not extend parameter meaning beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get hourly perpetual funding rates') and names the exact data sources (Hyperliquid, dYdX v4), so the agent knows precisely what it returns. It does not explicitly differentiate itself from siblings like get_dex_quotes or scan_yields, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention that 'current and predicted rates are compared as indicative spreads' implies the arbitrage-comparison use case, and the min_spread parameter reinforces it. However, there is no explicit when-to-use statement, no when-not-to-use, and no named alternative tool, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gas_pricesARead-onlyIdempotent
Get current gas prices across multiple chains: Ethereum, Base, Polygon, and Arbitrum. Returns slow/standard/fast tiers in gwei and estimated USD cost. Costs 0.001 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds meaningful context the annotations cannot convey: the exact return shape (slow/standard/fast tiers in gwei plus estimated USD cost) and a per-call payment requirement of 0.001 USDC via x402 on Base, which is critical for an agent to budget for.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability and followed by the return format and cost. Every clause carries information an agent needs; no filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return values (tier names, gwei units, USD estimates) and the payment mechanism. For a zero-parameter, read-only tool this covers everything an agent needs to invoke and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document; the baseline of 4 applies. Schema coverage is 100% on an empty object, meaning nothing is left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Get current gas prices') and enumerates the exact chains and tier structure returned, so the agent knows precisely what comes back. It does not, however, explicitly contrast itself with the nearest sibling get_crypto_prices, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no conditions for choosing this over get_crypto_prices or get_dex_quotes, and no exclusions. The only usage-relevant signal is the per-call cost, which is a constraint rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_walletARead-onlyIdempotent
Read priced public wallet balances and available transaction counts from Blockscout. Coverage may be partial; DeFi positions, PnL, and risk score are unavailable. Costs 0.008 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Filter by chain (e.g. "ethereum", "base", "arbitrum", "polygon"). Defaults to "all". | |
| address | Yes | Ethereum or Base wallet address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely non-redundant behavior: a 0.008 USDC x402 micropayment on Base is required per call, and results may be partial. It does not describe pagination or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, tightly front-loaded: capability first, then limitations, then cost. No filler and every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned data (balances, transaction counts) and its partial-coverage nature. It omits any response format or error behavior, but for a simple 2-parameter read tool the description is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are fully documented in the schema and a 3 is the baseline. The description adds little parameter-level detail and even introduces mild ambiguity: the address param says 'Ethereum or Base', while the chain param's examples include arbitrum and polygon.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read priced public wallet balances and available transaction counts') and names the data source (Blockscout), which cleanly separates it from siblings like get_crypto_prices, scan_token, and track_whales. The explicit coverage caveats further sharpen the boundary of what this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-not guidance by naming what is unavailable (DeFi positions, PnL, risk score), which steers the agent away for those needs, and discloses the per-call cost as a selection factor. It stops short of naming an alternative sibling tool to use instead, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_tokenARead-onlyIdempotent
Read GoPlus ERC-20 security flags and a disclosed risk heuristic. Unavailable metrics are null; this is not an audit. Costs 0.003 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to scan on (e.g. "ethereum", "base", "arbitrum", "polygon"). Defaults to "ethereum". | |
| token | Yes | Token contract address (0x...) or symbol (e.g. "PEPE", "UNI") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds genuinely new operational context: unavailable metrics return null, and each call costs 0.003 USDC via x402 on Base. That payment requirement is the kind of pre-call constraint an agent must know. Rate limits and failure modes are not covered, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what it reads and closled by the cost. Every clause carries actionable information (scope, not-an-audit caveat, null behavior, price, payment rail); nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter idempotent read tool with no output schema, the description covers the essential gaps: what is returned, how missing values appear, the limitation of the heuristic, and the payment model. An agent has everything needed to decide and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (chain with its default, token with address-or-symbol format) are fully documented in the schema. The description adds no additional parameter semantics, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (GoPlus ERC-20 security flags plus a risk heuristic), and immediately bounds the claim with 'this is not an audit.' None of the siblings (prices, gas, quotes, whales, yields, funding, wallet profile) overlap, so an agent can route to it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'this is not an audit' clause functions as an explicit when-not boundary, and the micropayment cost implies a paid-scan context. It does not name an alternative tool or describe when a scan is warranted versus simply reading on-chain data, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_yieldsARead-onlyIdempotent
Scan top DeFi yield opportunities across protocols: Aave, Compound, Morpho, Lido, Pendle, and more. Filter by chain, asset, and minimum TVL. Returns provider reported APY and TVL without a safety rating. Costs 0.005 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Filter by asset symbol (e.g. "ETH", "USDC", "stETH"). Omit for all assets. | |
| chain | No | Blockchain to filter by (e.g. "ethereum", "base", "arbitrum", "polygon"). Omit for all chains. | |
| limit | No | Maximum number of results to return (1–50). Defaults to 20. | |
| min_tvl | No | Minimum TVL in USD (e.g. 1000000 for $1M). Omit for no minimum. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld/non-destructive, and the description adds two high-value facts beyond them: a per-call cost of 0.005 USDC via x402 micropayment on Base, and the caveat that APY/TVL are provider-reported with no safety rating. Both materially affect invocation decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and scope, then the payment and caveat details. No filler; every clause carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what comes back (provider-reported APY and TVL), the absence of a safety rating, and that a micropayment is required. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented with examples and defaults. The description's filter mention adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scan') and resource ('top DeFi yield opportunities') and enumerates the covered protocols (Aave, Compound, Morpho, Lido, Pendle). This is distinguishable from siblings like get_dex_quotes or get_crypto_prices, which return prices/quotes rather than yield opportunities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the filter dimensions (chain, asset, min TVL) but never states when to prefer this tool over alternatives such as get_dex_quotes or get_funding_rates, nor any when-not-to-use condition. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_whalesARead-onlyIdempotent
Read a GoPlus sample of top ERC-20 holders and reported supply share. Full distribution, Gini, and recent transfer history are unavailable. Costs 0.005 USDC per call (x402 micropayment on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query (ethereum, base, arbitrum, polygon). Defaults to ethereum. | |
| token | Yes | Token contract address (0x...) or symbol (e.g. "ETH", "PEPE") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, non-destructive semantics, so the bar is lower. The description adds genuinely new operational context not in any structured field: a 0.005 USDC x402 micropayment on Base, and the crucial data limitation that results are a sample rather than a full holder distribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what is returned, followed by limitations and cost. Every sentence carries distinct information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of characterizing the return (sampled top holders, supply share) and flags what it deliberately omits, which is what an agent needs to judge fitness. It could say slightly more about the shape or size of the sample, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two parameters, so the schema fully documents chain and token formats. The description adds no parameter-level detail beyond what the schema already provides, making 3 the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: reading a GoPlus sample of top ERC-20 holders plus reported supply share. It is clearly distinct from siblings like scan_token or profile_wallet, though it does not explicitly name any sibling to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The exclusion clause ('full distribution, Gini, and recent transfer history are unavailable') usefully bounds expectations, and the cost note implies a deliberate-call context. However, it never says when to prefer this over scan_token or profile_wallet for holder analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.4- Changed
track_whales1 field changed- changed
Input schema / properties / chain / descriptionPrevious value: -"Chain to query (e.g. \"ethereum\", \"base\", \"solana\", \"arbitrum\"). Defaults to \"ethereum\"."New value: +"Chain to query (ethereum, base, arbitrum, polygon). Defaults to ethereum."
8 tool updates
v1.0.3- First observed
get_crypto_prices - First observed
get_dex_quotes - First observed
get_funding_rates - First observed
get_gas_prices - First observed
profile_wallet - First observed
scan_token - First observed
scan_yields - First observed
track_whales
TDQS
Scored across 8 tools
Each tool targets a clearly distinct data domain: spot prices, gas, DEX quotes, token security, whale holders, yields, funding rates, and wallet profiles. The descriptions explicitly state what each returns and what it excludes, leaving no ambiguity about when to use one over another.
All names use snake_case and follow a verb_noun pattern, but the verb set is mixed (get_, scan_, track_, profile_). The variety is semantically justified by each tool's purpose, though it is not a single uniform pattern.
Eight tools is an ideal size for a crypto data API, covering diverse data needs without redundancy. Each tool earns its place by providing a distinct data type.
The surface covers market data, security, yields, funding, and wallet basics, which is strong for a micropayment API. Minor gaps exist, such as historical price data and deeper wallet analytics, but the descriptions acknowledge provider limits and agents can work around them.
Maintenance
Related MCP Connectors
Paid market-data MCP: crypto, equities, smart-money, macro, wallet PnL. x402 per call on Base.
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Related MCP Servers
FlicenseNot gradedqualityBmaintenanceMCP server exposing 1,000+ pay-per-call API endpoints across agent infrastructure (memory, coordination, secrets, verification), data, compute, finance, weather, geography, and reference categories — payments via x402 protocol in USDC on Base.-- AlicenseNot gradedqualityDmaintenanceMCP server that provides AI agents with pay-per-call access to a suite of tools (honeypot check, token market, DeFi yields, etc.) via USDC on Base using the x402 protocol.4 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server providing 50+ crypto, market intelligence, and AI inference endpoints with x402 pay-per-request micropayments on Base.2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server exposing 10 curated tools for AI agents, providing crypto trading signals, on-chain analysis, and web utilities via pay-per-call x402 endpoints on the Base network.MIT