Skip to main content
Glama

@dm2233/agent-data-mcp

A verification and market-data companion for AI agents, over MCP. Give it a claim to check, a price to look up, or a page to read — it answers. No API key, pay-per-call in USDC on Base via x402, and safe to install with zero setup: until you fund a wallet, every call just tells you what it would have cost.

Where most tool servers hand an agent a long list of narrow endpoints and expect it to pick the right one, this one exposes five things an agent actually reaches for:

  • verify_fact — is this claim checkable? A Wikipedia topic, a GitHub repo's real stats, an npm package's version and downloads, a domain's DNS records, or whether a domain is actually registered.

  • check_market — what's the number? A token's price, DeFi TVL, the best yield right now, stablecoin supply, an FX rate.

  • check_chain — what's happening on-chain? Current gas price, the latest block, on Base or Ethereum.

  • search_web — go find out. Google results, semantic search with an AI answer, a clean read of any page, structured extraction from a page, or what's trending on Hacker News.

  • ai_task — do something with this text. Summarize, translate, classify, or extract structured fields.

Each tool decides internally which of the underlying paid endpoints to call based on the arguments you give it — you never need to know there are 33 of them under the hood, and you never pick a tool by memorizing a route name.

This is an independent, from-scratch MCP server: it calls the existing x402-seller API over plain HTTP, the same way any other client would. It shares no code with that project's own x402-seller-mcp package (which instead exposes one tool per endpoint, generated live from the server's discovery document) — this one is a different, opinionated shape over the same underlying API.

Two modes

  • No wallet configured (default) — calling a tool fetches the endpoint it routed to, gets back the real 402 Payment Required challenge, and returns a plain-language explanation (price, network, how to enable payment) instead of the actual data. Safe to try with zero setup.

  • Wallet configured (BUYER_PRIVATE_KEY set) — calls are paid automatically over x402 (via @x402/fetch) and return the real result plus the settlement receipt (payer address, transaction hash).

Related MCP server: x402farm-mcp

Install

npx @dm2233/agent-data-mcp

That's the whole install — nothing to clone, build, or configure to try it in explain-only mode.

Claude Desktop

Add this to your claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "agent-data": {
      "command": "npx",
      "args": ["-y", "@dm2233/agent-data-mcp"]
    }
  }
}

To enable automatic payments, add an env block (see Enabling payments below):

{
  "mcpServers": {
    "agent-data": {
      "command": "npx",
      "args": ["-y", "@dm2233/agent-data-mcp"],
      "env": {
        "BUYER_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Restart Claude Desktop after editing the config.

Cursor

Cursor uses the same mcpServers shape — add the same block to ~/.cursor/mcp.json (or your project's .cursor/mcp.json), then reload the MCP servers from Settings → MCP.

Enabling payments

⚠️ Use a throwaway wallet, never a wallet holding significant funds. The private key you set here can sign USDC transfers on Base up to whatever price each call costs (every tool here costs between $0.005 and $0.05 per call) — but any process with the key in its environment can, in principle, use it. Generate a fresh wallet dedicated to this MCP server and fund it with a few dollars of USDC on Base, nothing more.

  1. Generate a wallet (any EVM wallet works — e.g. with viem: node -e "const {generatePrivateKey,privateKeyToAccount}=require('viem/accounts');const k=generatePrivateKey();console.log(k, privateKeyToAccount(k).address)", or MetaMask/any wallet app export).

  2. Send a small amount of USDC on Base (the network this server settles on) to that wallet's address — a few dollars covers hundreds of calls at these prices.

  3. Set BUYER_PRIVATE_KEY to that wallet's private key (the 0x...-prefixed hex string) in your MCP client's config (see examples above) or in your shell environment if running the server directly.

  4. Restart the MCP server (or your MCP client). Tool calls will now pay automatically and return real results.

Configuration

Env var

Required

Default

Purpose

BUYER_PRIVATE_KEY

No

(unset)

EVM private key used to pay for tool calls. Unset = explain-only mode.

X402_ORIGIN

No

https://x402-seller-0ay3.onrender.com

Which x402 server backs these tools — point this at a different x402-compatible server (or a local dev instance) if needed.

The five tools, and what each one routes to

Every tool takes a small discriminant field (source, metric, mode, or task) that picks the underlying endpoint, plus whatever arguments that branch needs. Run tools/list against the server for the exact input schema of each — this table is the map from "what you ask for" to "what actually gets called":

verify_fact — $0.005 per check

source

Underlying endpoint

wikipedia

GET /api/wiki/summary

github_repo

GET /api/github/repo

npm_package

GET /api/npm/package

dns_records

GET /api/dns/lookup

domain_registration

GET /api/rdap/domain

check_market — $0.005 per check, $0.05 for any yields metric

metric

Underlying endpoint

crypto_price

GET /api/price/{btc,eth,sol}-usd for a well-known symbol, else GET /api/defi/price

usdc_supply

GET /api/price/usdc-supply

top_stablecoins

GET /api/defi/stablecoins

protocol_tvl

GET /api/defi/tvl

chain_tvl

GET /api/defi/tvl-chain

top_protocols

GET /api/defi/protocols

yields

GET /api/defi/yields

top_yields

GET /api/defi/yields/top

yields_by_chain

GET /api/defi/yields/by-chain

yields_by_token

GET /api/defi/yields/by-token

yield_pool_detail

GET /api/defi/yields/pool

fx_rate

GET /api/fx/rates

check_chain — $0.005 per check

metric

Underlying endpoint

gas_price

GET /api/gas/base or GET /api/gas/ethereum

latest_block

GET /api/chain/block

GET /api/chain/gas is a documented, unwired alias: its schema only ever accepts chain=base\|ethereum, so it returns exactly the same data as the two dedicated gas routes above and adds no reachable coverage of its own.

search_web — $0.005 (search_google, read_page, trending_hn), $0.01 (search_semantic), $0.02 (extract_from_page)

mode

Underlying endpoint

search_google

POST /api/search/serp

search_semantic

POST /api/search/web

read_page

POST /api/web/read

extract_from_page

POST /api/web/extract

trending_hn

GET /api/hn/top

ai_task — $0.01 (summarize, translate, classify), $0.02 (extract)

task

Underlying endpoint

summarize

POST /api/ai/summarize

translate

POST /api/ai/translate

classify

POST /api/ai/classify

extract

POST /api/ai/extract

That's all 33 endpoints of the underlying catalog, reached through 5 tools.

This server wraps the same 33 x402-seller endpoints as x402-seller-mcp (npm), but groups them into 5 general-purpose tools instead of one tool per endpoint. If you want the full endpoint-by-endpoint catalog — every route as its own MCP tool, generated live from the origin's discovery document — use x402-seller-mcp instead.

Development

git clone <this repo>
cd agent-data-mcp
npm install
node server.js          # runs on stdio, waits for a client

Two test scripts, both run by npm test:

  • test/routing-test.mjs — pure unit test, no network: calls every tool's internal router directly and asserts the exact URL/method/body it builds, for one case per underlying endpoint. This is the definitive proof of the tool → endpoint mapping above.

  • test/manual-test.mjs — spawns the real server over stdio (exactly like an MCP client would) and calls each tool for real, in unpaid mode, against the live origin — free, since no wallet is configured. Set RUN_PAID_TEST=1 with BUYER_PRIVATE_KEY set to also run one real paid call (~$0.005 on Base).

License

MIT

Available Tools

5 tools
ai_taskA

Run a Claude-powered text task on a piece of text: summarize into N sentences (summarize), translate to a target language (translate), classify into your own labels with a confidence score (classify), or extract structured JSON fields per a JSON Schema you provide (extract). Prices: $0.01 (summarize, translate, classify), $0.02 (extract).

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhich text task to run.
textYesThe source text (max 8000 chars).
labelsNoclassify only: 2-20 possible labels.
schemaNoextract only: a JSON Schema describing the fields to extract.
target_langNotranslate only: target language name or code (e.g. 'French', 'es').
max_sentencesNosummarize only: 1-10 (default 3).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does add real context by disclosing the backing model (Claude) and per-call pricing ($0.01/$0.02), which affects invocation decisions. It omits auth requirements, rate limits, latency, and failure behavior, so the disclosure is useful but incomplete for a six-parameter tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences: the first front-loads the core operation and maps each enum value to its behavior, the second carries cost information. No filler, no repetition, and the highest-value information (what it does, what it costs) comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-mode tool with no output schema, the description sketches returns for each mode (N-sentence summary, translation, label plus confidence score, structured JSON), which is enough to call it correctly. It stops short of fully specifying output shape (e.g., what summarize/translate return) and error behavior, which matters given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter, including the 'classify only'/'extract only' conditionals. The description reinforces the task-to-parameter mapping (N sentences, target language, your labels, JSON Schema) but adds little syntax or constraint detail beyond what the schema provides, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Run a Claude-powered text task') and enumerates the four distinct modes with their concrete outputs, so an agent knows exactly what the tool produces. It does not, however, distinguish itself from siblings like verify_fact or search_web, leaving the agent to infer when this generic task runner is the right choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the per-mode enumeration (use `summarize` for N sentences, `classify` with your labels, etc.), which helps pick a mode but not a tool. There is no guidance on when to prefer this over verify_fact/check_market or on prerequisites such as required inputs per mode beyond what the schema already states.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_chainA

Check live on-chain data for Base or Ethereum: current gas price (gas_price) or the latest known block — number, timestamp, hash (latest_block). Read live via a public RPC endpoint, no API key, no aggregator. $0.005 per check.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesWhich EVM chain to read.
metricYesWhich on-chain data point to fetch.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does reasonably well: it discloses the data source (public RPC, live), that no API key or aggregator is involved, and a concrete cost ($0.005 per check). It does not mention rate limits, latency, failure modes, or the units/precision of gas_price, so it is good but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and scope, then the operational facts (open RPC, no key, price). Every clause earns its place; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly takes on describing return content for latest_block and naming the gas price metric, plus cost and auth profile. It stops short of specifying units for gas_price, block-height semantics, or error/timeout behavior, which leaves minor gaps for a read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both params are enums, so the baseline is 3. The description goes beyond the schema by spelling out what each metric yields — 'current gas price' for gas_price and 'number, timestamp, hash' for latest_block — which the enum descriptions ('Which on-chain data point to fetch') do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check/read) and resource (live on-chain data) and enumerates the exact metrics (gas_price, latest_block) and chains (Base, Ethereum) it covers. An agent can distinguish it at a glance from siblings like verify_fact, check_market, and search_web, since 'on-chain via RPC' is a distinct domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'live on-chain data' and 'Read live via a public RPC endpoint', which tells the agent the tool is for direct chain reads rather than web or market lookups. However there is no explicit when-to-use/when-not statement and no routing to or away from the sibling tools, leaving the boundary with check_market to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_marketA

Check a crypto/DeFi/FX market data point: a token's USD price (crypto_price), total USDC circulating supply (usdc_supply), a ranked list of top stablecoins (top_stablecoins) or top DeFi protocols by TVL (top_protocols), one protocol's TVL (protocol_tvl) or one chain's total TVL (chain_tvl), DeFi yields — top overall (top_yields), filtered (yields), by chain (yields_by_chain), by token (yields_by_token), or one specific pool (yield_pool_detail) — or FX reference rates for a base currency (fx_rate). Give metric and whichever of coins/protocol/chain/symbol/pool/base/limit/min_tvl that metric needs. $0.005 per check for prices/TVL/stablecoins/FX, $0.05 for any yields metric (live DeFiLlama yield data).

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNofx_rate only: ISO 4217 base currency code (default 'EUR').
poolNoyield_pool_detail only: DefiLlama pool id.
chainNochain_tvl / yields / yields_by_chain: chain slug (e.g. 'base', 'ethereum').
coinsNocrypto_price only: a well-known symbol ('btc', 'eth', 'sol') or a comma-separated list of CoinGecko ids / 'chain:address' tokens (e.g. 'ethereum,bitcoin').
limitNoMax rows to return, where the metric supports it.
metricYesWhich market data point to fetch.
symbolNoyields_by_token only: token symbol (e.g. 'USDC').
min_tvlNoyields / top_yields only: minimum pool TVL in USD.
protocolNoprotocol_tvl only: DefiLlama protocol slug (e.g. 'aave').

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses cost asymmetry ($0.005 for prices/TVL/stablecoins/FX vs $0.05 for any yields metric, attributed to live DeFiLlama data), which is real value-add. Beyond pricing it says nothing about rate limits, failure/error behavior, or result shape, so a mutation-and-read mix of behaviors stays undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and the primary payload, then a dense but necessary enumeration of twelve metrics; the closing sentence delivers the parameter convention and pricing without padding. It is long, but for a twelve-metric dispatch tool nearly every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter, no-output-schema tool the description covers metric selection, the metric-to-parameter convention, and pricing. It does not mention pagination/limit behavior or the shape of returned rows, but with no output schema that omission is a minor gap rather than a blocker.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter's description already scopes it to a metric ('fx_rate only', 'protocol_tvl only', etc.), so the schema does the heavy lifting. The description's metric-to-parameter mapping largely restates that structured data, yielding the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource (crypto/DeFi/FX market data point) and enumerates every supported metric with its parameter name, so the agent knows exactly what class of data this returns. It does not, however, differentiate itself from the sibling check_chain, which plausibly overlaps on chain-level TVL, leaving one ambiguity unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence gives invocation guidance ('Give `metric` and whichever of coins/protocol/chain/symbol/pool/base/limit/min_tvl that metric needs'), which tells the agent how to drive the tool but not when to prefer it over check_chain or the other siblings. No when-not conditions or alternatives are named, so usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_webA

Search or read the live web: structured Google results (search_google), semantic/intent search with an AI-generated answer (search_semantic), a public page's main content as clean Markdown (read_page), structured data extracted from a page per a JSON Schema you provide (extract_from_page), or current top Hacker News stories (trending_hn). Prices: $0.005 (search_google, read_page, trending_hn), $0.01 (search_semantic), $0.02 (extract_from_page).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoread_page / extract_from_page only: the public page URL to fetch.
modeYesWhat kind of web lookup to perform.
limitNotrending_hn only: number of stories, 1-50 (default 20).
queryNosearch_google / search_semantic only: the search query.
schemaNoextract_from_page only: a JSON Schema describing the fields to extract from the page.
countryNosearch_google only: 2-letter ISO country code (default 'us').
num_resultsNosearch_semantic only: number of results, 1-10 (default 5).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses a real behavioral trait the schema cannot express: per-call pricing for each mode ($0.005 / $0.01 / $0.02). That is meaningful cost information an agent can act on. It still omits rate limits, auth requirements, and return-shape behavior, which keeps it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded and dense with useful information; the mode list is the highest-value content and comes first, with pricing relegated to a second sentence. It is slightly run-on, but every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, five-mode tool with no output schema, the description does the essential job of explaining what each mode returns (Markdown, AI answer, extracted JSON, HN stories). It does not differentiate from siblings like verify_fact or check_market, and gives no return-format constraints, but it is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (url, limit, query, schema, country, num_results) is already documented in the schema, including mode applicability. The description adds no parameter syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb ('search or read the live web') and then disambiguates all five modes with a distinct purpose each ('structured Google results', 'semantic/intent search with an AI-generated answer', 'main content as clean Markdown', 'structured data extracted per a JSON Schema', 'top Hacker News stories'). An agent can map a user intent to the correct `mode` value without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

By enumerating each mode's behavior the description implicitly tells the agent which mode to pick for a given intent (e.g. want an AI answer -> search_semantic; want raw page text -> read_page). It does not, however, state any exclusions, prerequisites, or how to choose between overlapping modes like search_google vs search_semantic for plain keyword lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_factA

Verify or look up one specific, named fact: a Wikipedia topic's summary, a public GitHub repository's stats (stars, forks, last push), an npm package's version/license/downloads, a domain's DNS records, or a domain's registration status (RDAP). Give source (which kind of fact) and subject (the exact name to check). $0.005 per check via x402 (USDC on Base) — free to try: without a wallet configured, every call just explains the payment challenge instead of paying.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoWikipedia language code (default 'en'). Only used when source=wikipedia.
sourceYesWhich kind of fact to check.
subjectYesThe thing to check: a Wikipedia article title (e.g. 'Bitcoin') for source=wikipedia, an 'owner/repo' (e.g. 'expressjs/express') for source=github_repo, a package name (e.g. 'express' or '@scope/name') for source=npm_package, or a domain name (e.g. 'example.com') for source=dns_records / domain_registration.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It discloses the cost ($0.005 per check via x402 USDC on Base) and the no-wallet fallback behavior (explains the payment challenge instead of paying), which are crucial operational details beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded: it begins with purpose and source types, then explains required parameters, then payment behavior. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with full schema coverage and no output schema, the description covers purpose, source options, required inputs, and payment behavior. It omits return format and error cases, which are less critical without an output schema but still leave minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates that source selects the fact kind and subject is the exact name to check, but it adds no syntax or format details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('verify or look up') and resource ('one specific, named fact'), then enumerates five source types. This distinguishes it from broad siblings like search_web and ai_task by scope and fact source, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: use for one specific named fact from the listed sources, and requires source and subject. It does not explicitly say when to prefer this over search_web or ai_task, nor does it list exclusions.

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. 5 tool updatesv0.1.0
    • First observedai_task
    • First observedcheck_chain
    • First observedcheck_market
    • First observedsearch_web
    • First observedverify_fact

TDQS

A3.8/5.0

Scored across 5 tools

Disambiguation4/5

Each top-level tool targets a distinct data domain: facts, market data, on-chain data, web search, and AI text tasks. Minor overlap exists between search_web's extract_from_page and ai_task's extract, and between verify_fact and search_web for fact lookup, but the descriptions clarify the intended boundaries.

Naming Consistency4/5

All names use snake_case consistently, and four of five follow a verb_noun pattern (verify_fact, check_market, check_chain, search_web). ai_task breaks the verb-first convention, but the overall style remains predictable.

Tool Count5/5

Five tools is a well-scoped count for a multi-domain data toolkit, avoiding a sprawl of dozens of narrow endpoints. Each tool encapsulates a coherent category of operations and earns its place.

Completeness3/5

The set covers several common data needs (facts, crypto/DeFi/FX, basic chain data, web search, AI text tasks), but coverage within each area is shallow. Notable gaps include broader chain/transaction data, more fact sources, and richer web/API integrations, which could cause dead ends for some agent workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers