agent-tools (x402 + MCP + A2A directory)

io.github.AgentTools-Cloud由 GitHub 帳號 AgentTools-Cloud 發布v0.4.0更新於 Oct 29, 2026

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

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取安全與監控AI 與機器學習

概覽

AI 產生的概覽

搜尋 agent-tools.cloud 上 x402 付費服務、MCP 伺服器與 A2A 代理的目錄,並可對 MCP 端點做安全掃描。

可以做什麼
  • 依自然語言意圖、分類、鏈、價格或是否支援 MCP 檢索並排序目錄項目,提供 LLM 排序推薦,LLM 無法使用時退回一般搜尋
  • 讀取服務卡片,包含付款、呼叫、品質與資源範例資訊,以及可直接使用的 MCP/x402 呼叫提示
  • 瀏覽服務分類體系與目錄統計
  • 尋找 MCP 伺服器與 A2A 代理,或跨三類資源統一搜尋
  • 掃描 MCP 伺服器端點是否有惡意軟體與提示注入誘餌,並可自行登錄服務
  • 為 x402 服務申請、執行並回讀贊助式付費驗證
適用情境
當助理需要為某項任務尋找付費或免費的 API、MCP 伺服器或 A2A 代理,在呼叫前比較候選服務,或在連線陌生 MCP 端點前檢查工具投毒與注入模式時適用。
執行需求
可使用 agent-tools.cloud 的遠端 streamable-http 端點,或透過 stdio 執行 PyPI 套件 agent-tools-mcp(僅含核心搜尋工具)。探索類工具未宣告需要驗證;付費驗證工具需要 API key,自架部署還需設定上游與 LLM 後端參數。
安裝前請注意
付費驗證流程會從你自己的錢包支出真實資金(Base USDC,每個服務約不超過 1 美元),並需簽署 EIP-712 型別化資料;服務方稱其從不簽名或保管資金。登錄在證明支援 x402 付款後自動通過,沒有人工審核。安全結論依規則產生且僅供參考,未知端點會被即時探測並加入目錄。查詢內容與端點資訊會傳送給第三方服務及其 LLM 後端。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 agent-tools (x402 + MCP + A2A directory),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.AgentTools-Cloud%2Fagent-tools-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "agent-tools-x402-a2a-directory": {
      "type": "http",
      "url": "https://agent-tools.cloud/mcp-discovery/"
    }
  }
}

README

mcpserver — agent-tools.cloud directory + MCP discovery

[smithery badge]

The server that powers agent-tools.cloud — an open directory of x402 paid services with a free MCP discovery endpoint. Also listed on Smithery.

Note (2026-05-25): the previously hosted paid Qwen3.6 relay and the paid vertical endpoints (signal / onchain / defi / portfolio) were retired after 30 days of zero external conversions. This repository now serves the directory site and the free MCP discovery server only.

What this serves today

PathAuthPurpose
GET / (host = agent-tools.cloud)freeDirectory site (search / browse)
GET /api/v1/searchfreeFaceted service search
POST /api/v1/askfree, rate-limitedLLM-ranked recommendations grounded in directory candidates
GET /api/v1/services/{slug}freeService card with payment, call and quality metadata
GET /api/v1/categories, /api/v1/statsfreeDirectory facets and aggregate stats
POST /api/v1/submitfree, rate-limitedPending service submission with dedupe
POST /mcp-discovery/freeMCP streamable-http discovery server
POST /a2afreeA2A JSON-RPC agent (message/send): directory search + MCP safety scan
GET /healthzfreeLiveness
GET /v1/modelsfreeUpstream model listing (read-only)
GET /.well-known/agent-tools.jsonfreeAgent discovery manifest
GET /.well-known/x402freex402 v0.4 self-description (free-only)
GET /.well-known/mcp.jsonfreeMCP self-description

The MCP discovery server is also published as a standalone PyPI package: agent-tools-mcp (repo).

MCP discovery tools

search(intent, top_k=5, category=None, max_price_usd=None, has_mcp=None)ask_services(intent, top_k=5, category=None, max_price_usd=None, use_llm=True)get(slug)list_categories()stats()search_mcp_servers(intent, top_k=5, chain=None, require_healthy=False)get_mcp_server(slug)search_a2a_agents(intent, top_k=5, x402_only=False)search_resources(intent, protocol=None, top_k=10)scan_mcp_safety(endpoint_url, name="", description="", tools_text="")register(url, name=None, description=None, mcp_url=None, category=None)

search accepts natural-language intent and ranks by FTS5 + popularity + health. Each result carries a match_reason and a confidence score. ask_services uses the same retrieval-first / LLM-rerank flow as /api/v1/ask.

scan_mcp_safety vets an MCP server (by endpoint URL) for malware / prompt-injection lures before you connect: an already-indexed server returns our latest stored verdict, an unknown one is probed live, scanned, and added to the directory. The verdict comes from deterministic static rules (no code execution) over the server's advertised name + description + tool docs. Rules cover pipe-to-shell / base64-eval / PowerShell install cradles, bare-IP payload hosts, prompt-injection phrasing, and MCP tool-poisoning coercion — "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 intentionally not applied to natural-language descriptions to avoid false positives. Each live call also runs a frontier-LLM second opinion as an advisory dimension. It is also exposed as an A2A skill on POST /a2a. The hosted server carries the full tool set above; the stdio agent-tools-mcp PyPI package ships the core search tools only.

Deploy

Production runs behind nginx (vhost: agent-tools.cloud).

bash
cd <install-dir>sudo git pullsudo systemctl restart mcpserver

systemd units live in deploy/:

  • mcpserver.service — the ASGI app (uvicorn, 127.0.0.1:9100)
  • agent-tools-crawl.{service,timer} — 6h directory crawler
  • agent-tools-health.{service,timer} — endpoint health checks

Config

See .env.example. Required:

  • UPSTREAM_BASE_URL / UPSTREAM_API_KEY — used by /v1/models
  • AGENT_TOOLS_ASK_BASE_URL / AGENT_TOOLS_ASK_API_KEY / AGENT_TOOLS_ASK_MODEL — LLM backend for /api/v1/ask
  • AGENT_TOOLS_SAFETY_BASE_URL / AGENT_TOOLS_SAFETY_API_KEY / AGENT_TOOLS_SAFETY_MODEL — optional override for the scan_mcp_safety advisory LLM (falls back to the AGENT_TOOLS_ASK_* backend)
  • AGENT_TOOLS_DB_PATH — SQLite path for the directory
  • AGENT_TOOLS_ASK_RATE_LIMIT_PER_MINUTE / AGENT_TOOLS_ASK_RATE_LIMIT_PER_DAY — public ask abuse limits
  • METRICS_BEARER_TOKEN — optional remote access token for /metrics; without it metrics are local-only

Smoke test

bash
# Livenesscurl https://agent-tools.cloud/healthz
# Directory statscurl https://agent-tools.cloud/api/v1/stats
# Intent-level service recommendationcurl -s -X POST https://agent-tools.cloud/api/v1/ask \  -H 'content-type: application/json' \  -d '{"query":"find a weather API that accepts x402","limit":2}'
# Service cardcurl https://agent-tools.cloud/api/v1/services/weather-hugen-tokyo-scan
# MCP discovery handshakecurl -s -X POST https://agent-tools.cloud/mcp-discovery/ \  -H 'content-type: application/json' \  -H 'accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",       "params":{"protocolVersion":"2025-06-18","capabilities":{},                 "clientInfo":{"name":"smoke","version":"1"}}}'
# Retired paid path -> 404curl -s -o /dev/null -w '%{http_code}\n' -X POST \  https://agent-tools.cloud/v1/chat/completions \  -H 'content-type: application/json' \  -d '{"model":"Qwen/Qwen3.6-35B-A3B","messages":[{"role":"user","content":"hi"}]}'# => 404

License

The agent-tools.cloud server and directory code in this repository is licensed under the PolyForm Noncommercial License 1.0.0 — you may use, modify, and share it for any noncommercial purpose; commercial use is not permitted.

The standalone MCP client package in agent-tools-mcp/ (published to PyPI as agent-tools-mcp) is licensed separately under Apache-2.0, so any agent — including commercial ones — can install and call the hosted service freely.

Using the hosted service at agent-tools.cloud is governed by its terms of service, not this code license.

來源:README.md,提交 98c1ee6

工具

14

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.

輸入參數chaintop_kintent必填has_mcpuse_llmcategorymax_price_usdmin_confidencerequire_healthy

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.

輸入參數slug必填

list_categories

List all available service categories in the directory.

無需輸入參數。

stats

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

無需輸入參數。

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.

輸入參數chaintop_kintentrequire_healthy

get_mcp_server

Get the full card for one MCP server by slug.

輸入參數slug必填

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.

輸入參數top_kintentx402_only

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).

輸入參數top_kintentprotocol

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 [email protected] 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.

輸入參數url必填namechainscontactmcp_urlcategorydescriptionprice_max_usdcprice_min_usdc

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

輸入參數nametools_textdescriptionendpoint_url必填

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 }.

輸入參數slug必填payer必填api_key

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.

輸入參數id必填api_keysignature必填

get_paid_verification

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

輸入參數id必填api_key

版本歷史

2
  1. v0.4.0最新Oct 29, 2026
  2. v0.2.0Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。