MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

agent-tools (x402 + MCP + A2A directory)

Discover x402 services, MCP servers and A2A agents by intent — agent-tools.cloud directory.

Checks passed
15 / 22

0 failed · 7 not measured

Median response
1067 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
18

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 970 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name agent-tools.

  • Pass
    Lists tools

    tools/list returned 18 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 1067 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 1153 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    58 of 58 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Not measured
    Website matches publisher

    This namespace is not a reverse domain, so the website comparison does not apply.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Pass
    Repo owner matches

    The GitHub repository owner matches the namespace login.

  • Pass
    Recently updated

    Updated 2026-10-29T14:49:28.960855Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using agent-tools (x402 + MCP + A2A directory)

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http agent-tools-x402-mcp-a2a-directory https://agent-tools.cloud/mcp-discovery/

Capabilities

Tools 18

ask_services

Ask for the best x402/MCP services for an agent intent. This is the high-level discovery tool: it retrieves candidates from the directory, asks the configured backend LLM to rank only those candidates, and returns service cards for the selected recommendations. If the LLM is unavailable, it falls back to the directory ranker. Args: intent: Natural-language job the agent wants to accomplish. top_k: Max recommendations to return (1-10). max_price_usd: Optional per-call budget cap. category: Optional directory category filter. chain: Optional payment network filter, e.g. "base" or "solana". require_healthy: When true, only consider services marked health=ok. min_confidence: Optional x402scan quality floor (0.0-1.0). has_mcp: When true, only consider services with MCP endpoints. use_llm: Set false for deterministic retrieval-only fallback.

Discovered
claim_service_url

Issue a fresh ownership token for one exact public HTTPS URL. Authenticate in the MCP Authorization: Bearer header. Publishing and verifying the token is required before editing; URL input alone grants no rights. Args: url: Complete public HTTPS service URL, including its query when present. method: Optional proof method; otherwise inferred from the complete URL.

Discovered
edit_owned_listing

Edit only metadata covered by your verified claim, with the public audit trail. An endpoint change requires verified control of the exact destination or its whole host and clears measurements tied to the old primary endpoint. Args: kind: Listing type: x402, mcp, or a2a. slug: Slug of the listing you are authorized to edit. fields: Editable fields to change; measured fields are rejected.

Discovered
execute_paid_verification

Send the signed payment to the service once and score the result. Aborts without paying if price or recipient changed. Never retried; a timeout returns `indeterminate`. status: succeeded | delivery_failed | payment_rejected | indeterminate. Args: id: `id` returned by `prepare_paid_verification`. signature: 0x EIP-712 signature of its `typed_data` by the payer. api_key: Optional if the Authorization header is sent.

Discovered
get

Get full details + ready-to-paste call template for a service. Returns the service card with payment, call, quality, resource samples, and ready-to-use MCP/x402 call hints. Use this after `search` or `ask_services` before paying/calling an external service. Args: slug: Service slug as returned by `search` items.

Discovered
get_mcp_server

Get the full card for one MCP server by slug. Args: slug: MCP server slug as returned by `search_mcp_servers` items.

Discovered
get_owned_listing

Read editable metadata for a listing covered by your verified claim. Args: kind: Listing type: x402, mcp, or a2a. slug: Slug from the verified claim's listings or directory search.

Discovered
get_paid_verification

Read one of your own paid verifications. Args: id: Verification id. api_key: Optional if the Authorization header is sent.

Discovered
list_categories

List all available service categories in the directory.

Discovered
prepare_paid_verification

Quote a sponsored paid verification of an x402 service. You pay the service once from your own wallet (Base USDC, <= $1; funds go to its payTo). Sign the returned `typed_data` (EIP-712), then call `execute_paid_verification` before `valid_before`. We never sign or hold funds. Auth: API key from POST https://agent-tools.cloud/api/v1/keys, as the `Authorization: Bearer` header or `api_key`. Args: slug: Service slug from `search` / `get`. payer: 0x address of the wallet that will sign and pay. api_key: Optional if the Authorization header is sent. Returns: { id, amount_usd, pay_to, valid_before, typed_data, ... } or { error, message }.

Discovered
register

Self-register an x402 / MCP service in the agent-tools directory. Service owners and agents may submit new services here. Submissions are auto-reviewed instantly by x402 verification (no human gate): if the URL proves x402 payment support it is listed immediately and shows up in `search`; otherwise it is rejected or retried automatically. Listing is FREE. Dedup: if a service with the same canonical origin (scheme://host) already exists in the directory we return its slug instead of creating a duplicate submission. Same goes for a still-pending submission with the same origin. Rate limit: at most 5 pending submissions per client IP per 24h. Hits beyond that get `{error: rate_limited}` — try again later or email contact@agent-tools.cloud for bulk imports. Args: url: Public HTTPS URL of the service (the x402-payable endpoint or its homepage). Required. name: Human-friendly name. Defaults to the URL hostname. description: One-paragraph description (max ~2000 chars). mcp_url: If the service speaks MCP, its streamable-http endpoint. category: Free-form (e.g. "defi", "search", "social"). Use `list_categories` to align with existing taxonomy. chains: Networks the service accepts payment on (e.g. ["base", "solana"]). price_min_usdc: Lower bound of per-call price in USDC. price_max_usdc: Upper bound of per-call price in USDC. contact: Optional email / handle the directory team can reach you on for clarifications.

Discovered
scan_mcp_safety

Check an MCP server for malware / prompt-injection lures by its endpoint URL. Give the server's streamable-http endpoint URL. Two paths: * **Already in the agent-tools directory** → returns our LATEST stored rule verdict. Every indexed server is re-scanned hourly, so you get a consistent, continuously-refreshed answer without re-probing. * **Not yet indexed** → we probe the endpoint live, statically scan its advertised tools + metadata, and return the fresh verdict. It is ADDED to the directory (so the next caller gets the stored verdict instantly) only if it answered or you supplied metadata; documentation hosts such as example.com / *.test / *.invalid are scanned but never listed. Two dimensions are reported. `verdict` is authoritative and comes from deterministic static rules — pure pattern-matching over the *advertised* text only, NO code execution. It flags the social-engineering / RCE tricks listing-spam servers use: * `curl … | bash` and `base64 -d | sh` install lures * `eval "$(curl …)"` / PowerShell `IEX(...DownloadString)` cradles * base64 blobs that decode to a shell command * bare-IP payload hosts and cheap throwaway TLDs * prompt-injection / credential-exfiltration phrasing ("ignore previous instructions", "send your .env / api key") * MCP tool-poisoning coercion — descriptions that hijack an agent's tool-calling ("always call this tool first", "before using any other tool you must…"), hidden `<IMPORTANT>` instructions, "list all API keys / include secrets in your response", and coercion to read & forward `.key`/`.pem`/`.ssh`/`.env` files Source-code-oriented rules (SQL / command / code injection) are deliberately not applied to natural-language descriptions, to avoid false positives. `llm_reference` is an advisory frontier-LLM second opinion over the same text. Because the LLM is slow it is computed LIVE on this call only and is never stored (the hourly job never runs it), so it may be null on timeout. It never overrides the rule verdict; when it is *more* severe than the rules an `advisory` note is attached as a safety-net signal. Security/defense products that merely *name* these attacks are not flagged. Args: endpoint_url: The MCP server's streamable-http URL (required). This is the identity we look up / index by. name: Optional advertised name (used when the server is new and gets added; falls back to the URL host). description: Optional description / README blurb (scanned when new). tools_text: Optional tool names + descriptions; used only if the live probe cannot fetch the server's tools/list. Returns: { verdict: "clean"|"suspicious"|"malicious", score: 0-100, reasons: [{rule, weight, snippet}], llm_reference: {model, verdict, reason, confidence} | null, advisory: str | null, slug, name, endpoint_url, source: "stored" (existing) | "new_scan" (just added), indexed: bool }

Discovered
search

Find x402 / MCP services matching an intent or filter set. Two usage modes (agents pick whichever fits): A. Natural-language: `search(intent="fetch tweets for @user")` B. Pure browse: `search(has_mcp=True, category="defi", top_k=10)` At least one of `intent`, `category`, `chain`, `has_mcp`, `min_confidence` must be supplied — otherwise the call is rejected (we won't dump 2300+ rows). Results are ranked by: (health=ok AND tx_30d>0) → health=ok → has-quality-signal → confidence → tx_30d → recency. So the highest-quality real-traffic services appear first. Each item includes (when available): - confidence : 0.0–1.0 x402scan quality score. - tx_30d : 30-day x402 payment count (proxy for real usage). - match_snippet : FTS snippet showing where `intent` hit ([[token]]). - match_reason : list[str] of human-readable ranking signals. - mcp_url : populated when the service exposes an MCP endpoint (you can call it directly via streamable-http). Agents should prefer items with non-null confidence and tx_30d > 0 unless the user explicitly wants experimental endpoints. Args: intent: What the agent wants to do (English or Chinese). Optional when at least one structured filter is set. Synonym expansion covers twitter↔X↔推特, whale↔巨鲸, price↔价格 etc. top_k: Max services to return (default 5, hard cap 25). max_price_usd: Upper bound on per-call price in USD. category: Filter (see `list_categories`). chain: "base", "polygon", "solana", "arbitrum", ... min_confidence: Minimum confidence (0.0–1.0). 0.8+ keeps only services x402scan rates as high-quality. has_mcp: When true, return only services with a callable MCP endpoint. Use this when the agent wants to chain another MCP server rather than perform raw HTTP+x402.

Discovered
search_a2a_agents

Find A2A agents you can delegate a task to. Args: intent: Natural-language description of the task to delegate. top_k: Max agents to return (1-20). x402_only: When true, only return agents that advertise x402 payment.

Discovered
search_mcp_servers

Find MCP servers in the directory. Searches the standalone MCP directory (PulseMCP / official MCP registry import) unioned with x402 services that also expose an MCP endpoint. Returns normalised entries with a ready-to-use streamable-http `call_hint.mcp.url`. Args: intent: Natural-language description of the tool/capability needed. top_k: Max servers to return (1-20). chain: Optional payment-network filter for paid MCP servers. require_healthy: When true, only return servers marked health=ok.

Discovered
search_resources

Unified search across x402 services, MCP servers and A2A agents. Args: intent: Natural-language query. protocol: Optional filter: "x402", "mcp" or "a2a". top_k: Max resources to return (1-50).

Discovered
stats

High-level stats about the directory: total services, healthy count, sources.

Discovered
verify_service_url

Verify public ownership proof for your own exact service URL claim. This reads public proof only. It never calls business tools, requests private service credentials, or grants whole-platform permissions. Args: claim_id: Claim id returned by claim_service_url. token: The issued token after publishing it in the instructed location.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected970 ms18
Connected1163 ms18