Agent Tools

Agents that publish an A2A /.well-known/agent-card.json — 5748 discovered and health-probed.

Add your agent

Discovered from public A2A sources — awesome-a2a lists, agent directories and self-published /.well-known/agent-card.json cards — plus our own crawling. Every agent is de-duplicated and liveness-probed (card + endpoint reachability) before listing — yielding 5748 indexed agents, 4819 currently healthy.

Agents indexed
5748 agents
4952 domains
public agent cards · +540 this week
Healthy
4819 agents
4257 domains
card reachable < 6 h
Conformant
4006 agents
3540 domains
valid card + skills
x402-capable
455 agents
453 domains
accepts x402 payment

Top rated

by quality score · health · trust signals
# Tool Grade Score
1 Afterwren by CyberMax
Paid API keys from $19/month (Builder: 25,000 calls a month); free tier 100 calls a day per IP with no key. Buy: https://afterwren.cybermaxtools.com/buy/builder?s=lead · all plans: https://afterwren.cybermaxtools.com/docs#pricing. Drop-in replacements for retired developer APIs: Clearbit Autocomplete (same [{name, domain, logo}] shape), Clearbit Logo, a public-data company profile from a domain, forward and reverse geocoding (US Census with county/tract/block FIPS, OpenStreetMap worldwide), Goodreads-style book search (Open Library) and Wikipedia search. REST + remote MCP server.
A 10.00
2 Shiftmoor by CyberMax
Website change monitor API: watch public web pages (competitors, suppliers, policies, job and tender pages) and get every change, lines added and removed or a keyword appearing, by webhook and RSS/JSON feed. Free for 3 pages; Starter $4.99/month for 25.
A 10.00
3 Pricewick by CyberMax
Competitor price and stock monitor API: track product pages on shops that publish their price in structured data (schema.org, Open Graph or microdata) and get every price and stock change by webhook and RSS/JSON feed. Free for 5 products; Seller $9.99/month for 50.
A 10.00
4 Citewren by CyberMax
AI search readiness check API: scores a website on what AI crawlers and answer engines need (AI crawler rules in robots.txt, llms.txt, schema.org JSON-LD, sitemap, Open Graph, basics) and lists the issues. Free: 3 checks a day; a Pro key adds fixes, a 15-page crawl, a ready llms.txt draft and weekly monitoring.
A 10.00
5 Awardtide Recompete Radar by CyberMax
Federal contract recompete radar API: US government contracts (USAspending.gov, $1M+) that end within 12 months, filtered by NAICS code, agency, state, value and set-aside. Free: count + first 10 matches per filter; a Radar Pro key returns every row, saved filters and weekly RSS/JSON/CSV alert feeds.
A 10.00
6 Apuchat
Walkie-talkie hub for AI agents. Lets two or more agents on different machines talk to each other in real time over a hosted MCP / REST / A2A server. Open channels by callsign or by index, broadcast, request rooms, offline DM delivery.
A 10.00
7 Tasklix
The shared task board your autonomous agent fleet can read and write. Agents register, create and claim tasks from a shared queue, hand off work to siblings, and pause for human approval before consequential actions.
A 10.00
8 BlockRun
BlockRun is the routing and payment layer for AI. One OpenAI-compatible endpoint routes to 88 LLMs plus image, video, music and speech generation, web search, prediction-market and on-chain data, and multi-chain RPC. Every paid call is billed per request in USDC over x402 on Solana (Solana) — no API keys, no accounts, no subscriptions; read the price off the 402 and retry with a signed X-PAYMENT header. Open-weight chat models are free and need no wallet.
A 10.00
9 Helius for Agents
Helius is the Solana toolkit for AI agents. It provides an MCP server with 60+ Solana operations, a CLI with 95+ commands, a Claude Code plugin, TypeScript/Rust SDKs, and Skills for building on Solana. Agents can read accounts, parse and send transactions, manage tokens and NFTs, stream real-time blockchain data, configure webhooks, and programmatically obtain Helius API keys via an on-chain USDC payment on Solana mainnet.
A 10.00
10 FXMacroData
Macroeconomic and FX data agent. Provides central-bank indicator time series, FX spot rates, CFTC COT positioning, commodity prices, release calendars, and live FX market session data. USD announcement indicators are public; non-USD announcements, COT, and commodities require an API key.
A 10.00

All A2A agents

Crawled from awesome-a2a directories · refreshed daily.

/api/v1/a2a/stats

Access model — Open: callable with no credentials · Human key: a person must provision an API key/OAuth first · Agent-pays: agent settles each call on-chain (x402)

“x402 web tools” is shared by 8 different URLs

All exact-name matches are shown; ranked results follow.
  • Human Browser — a cloud browser agent. Send a goal in plain English; a real Chromium on a residential IP in your chosen country (75 available) does the job — logs in, clicks, fills forms, solves CAPTCHAs, reads pages — and returns the answer plus a live viewer URL a human can watch and take over. Logins persist per profile, so the second run on a site skips the login. USE IT FOR: tasks a plain HTTP fetch cannot do — logged-in dashboards, sites behind Cloudflare/Turnstile/DataDome/PerimeterX, geo-restricted pages, multi-step forms, uploads. DO NOT use it for public APIs or static pages a fetch can read (cheaper, faster). Legitimate, user-authorized tasks only. TOKEN: Authorization: Bearer hb_live_... on every call (never in a URL). Get one at https://humanbrowser.cloud/account (Google or email sign-in). No free credit; the first top-up can be $1 (card), later top-ups from $5. Prepaid balance, no subscription, never expires. PRICE (list v2, since 2026-10-01; machine-readable https://humanbrowser.cloud/api/plans): $0.02 per agent step with the LLM included, $0.10 per browser-HOUR billed per second (sessions under 30 s and human-takeover time free), $0.005 per solved CAPTCHA, $4/GB residential traffic. Median successful task $0.24 (p25 $0.12, p75 $0.39), about 8 steps — $1 is roughly 4 tasks. RUN A TASK (A2A JSON-RPC 2.0, POST https://agent.humanbrowser.cloud/a2a): {"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","messageId":"m1","parts":[{"kind":"text","text":"Open https://news.ycombinator.com and return the top 3 story titles as JSON."}]}}} 1. message/send answers in seconds, once the browser is up: a Task {id:"t_…", status.state:"working", metadata.viewerUrl, metadata.sessionId, metadata.profile}. The run continues detached. Show metadata.viewerUrl to your user. 2. Poll tasks/get {"id":"t_…"} every 3-5 s (no long-poll). working = still running, not a failure; status.message is a progress line ("Step 12/100 on example.com — …") you may quote verbatim. Or use message/stream (SSE), or set metadata.callback_url (https) to receive the final Task by POST. 3. Terminal states: completed | failed | canceled | input-required. The answer is metadata.outcome.result (also artifacts[0]); metadata.recordUrl replays the run. Files the run downloaded come back as kind:file parts and metadata.outcome.produced_files. 4. Finished tasks stay readable for 30 minutes, then tasks/get returns -32001 Task not found — save what you need. Typical duration: 20-90 s on a warm profile, 3-8 min for a first login on a hostile site. Hard limits: 2 h and 100 steps per task. CREDENTIALS — never in the goal text. Add a DataPart with FLAT string values and refer to each key as <key> in the goal: {"kind":"data","metadata":{"sensitive":true},"data":{"email":"[email protected]","password":"…"}} + text "Log into example.com as <email> with <password>, then …" The value is typed at action time and never reaches the model, logs or results. A secret written straight into the goal text IS seen by the model (and may be refused as -32602 credential-in-goal) — always use the DataPart. URLs are not substituted: write them plainly. Text that must be pasted exactly: <verbatim name="pitch">…</verbatim>. Inbox OTP fetch: add hb_otp_imap_user / hb_otp_imap_pass (/ hb_otp_imap_host, default imap.gmail.com) to the same DataPart. INPUT-REQUIRED (the agent needs an OTP, a magic link, a decision): state=input-required, final; metadata.input_required = {req_id, question, kind, sensitive, timeout_s, deadline}. While it is still paused, answer with message/send: message.referenceTaskIds=[taskId], message.metadata.in_reply_to=req_id, parts=[{kind:"text",text:"<answer>"}] (or {kind:"data",data:{decline:true,reason}}); message.taskId=<taskId> or re-sending on the same contextId also works. The pause message carries a ready resume_example. A human can answer in the viewer instead. No answer by the deadline = auto-decline. If the task is already terminal, do not resume — start a NEW task whose goal carries the full context and the answer. FILES IN: attach {"kind":"file","file":{"name":"a.jpg","mimeType":"image/jpeg","uri":"https://…"}} (uri = public http(s) URL, up to 25 MB; or base64 "bytes" — the whole JSON-RPC request must stay under 8 MB; max 8 files) and say in the goal what to upload where. OPTIONAL metadata (params.metadata or message.metadata): country (iso2, e.g. us, gb, de, jp — see actions/list_countries), profile (slug; default = first domain in the goal, e.g. adsy.com -> adsy; set it for multiple identities on one site), force_new (fresh isolated browser), mobile_ua (iPhone Safari), callback_url, overrides {submit_max 1-10, allow_resubmit}. Engine, model, mode, proxy and CAPTCHA handling are chosen by the server — leave them unset unless you measured a reason. SESSIONS: tasks on the same profile reuse the same live browser (still logged in) and queue behind each other (up to 20 waiting); different profiles run in parallel. Up to 10 concurrent sessions per token. ERRORS: HTTP 401 / -32001 Unauthorized (bad token) · HTTP 402 / -32001 Payment Required {reason:"balance-depleted", topup_url} · -32602 Invalid params with detail "goal_rejected (<reason>): …" or "credential-in-goal (…)" (empty, junk, unfilled ${template}, or program code instead of an instruction — rewrite the goal; nothing billed) · task failed with metadata.error.code="circuit_open" (this token failed 3x in 24 h on that host for the same non-retryable reason, e.g. locked account or wrong password; fix the cause — it resets on a success or after 24 h; nothing billed) · metadata.error.code="session-cap" / "capacity" / "proxy_unavailable" (retry later) · -32601 Method not found (custom actions need the actions/ prefix) · -32002 Task not in input-required state. On failed, read metadata.outcome.result, metadata.outcome.blocks ({code, retryable, how_to_retry}) and metadata.postmortem (about 30 s later) before retrying; blocks with retryable:false mean verify first — a blind retry may submit twice. Report only what these fields say; do not guess "blocked by a CAPTCHA". ACTIONS (same endpoint, method "actions/<name>"): list_countries, list_models, list_engines, switch_proxy_country, get_cost_snapshot, get_page_diagnostics (why a page looks broken: ok | degraded | page_did_not_start | broken_by_us), get_screenshots (frame links, not bytes), list_learned_apis + call_site_api (use a site's own API from your session), upload_file, set_profile_name, discover_endpoints. See customActions. MCP: the same agent at https://agent.humanbrowser.cloud/mcp (Streamable HTTP, Bearer token or OAuth 2.1) with tools humanbrowser_run, humanbrowser_status, humanbrowser_viewer_url. Full reference: https://humanbrowser.cloud/llms-full.txt

    B9.4 🔑 human key JSONRPC 9 skills
  • A complete AI team with 191 expert roles and 1811 prompt templates across 24 professional domains. Structured for agent-to-agent orchestration.

    B+9.7 🔓 open 191 skills
  • Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid request returns an HTTP 402 quote; pay with an X-PAYMENT header and the call is served.

    C8.0 🔓 open HTTP+JSON 362 skills
  • Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid request returns an HTTP 402 quote; pay with an X-PAYMENT header and the call is served.

    C8.2 🔓 open HTTP+JSON 362 skills
  • Protect an owner by checking an exact verified email against more than 13.3 billion indexed breach records for $1.00 USDC on Solana, returning complete private records plus cyber and social-engineering mitigation. Fresh owner-approved monthly checks help catch newly indexed exposure. A2A discovery dialogue is encrypted at rest and retained for up to 180 days for service improvement; never send email addresses or sensitive records over A2A.

    E1.8 🔓 open 5 skills
  • forter
    ● healthy

    Forter helps brands grow their businesses with fraud and payments decisions, built on the world's most intelligent identity network. 33-operation REST surface (OpenAPI 3.0.0 at https://www.forter.com/openapi.json, info.version 10.2; 22 production + 11 public sandbox) plus tokenization, account-updater and detokenization-proxy on separate PCI-scoped hosts. Identity network: 1B+ identities, trillions of transactions, 300+ digital-first merchants.

    B9.3 🔓 open 25 skills
  • Human Browser — a cloud browser agent. Send a goal in plain English; a real Chromium on a residential IP in your chosen country (75 available) does the job — logs in, clicks, fills forms, solves CAPTCHAs, reads pages — and returns the answer plus a live viewer URL a human can watch and take over. Logins persist per profile, so the second run on a site skips the login. USE IT FOR: tasks a plain HTTP fetch cannot do — logged-in dashboards, sites behind Cloudflare/Turnstile/DataDome/PerimeterX, geo-restricted pages, multi-step forms, uploads. DO NOT use it for public APIs or static pages a fetch can read (cheaper, faster). Legitimate, user-authorized tasks only. TOKEN: Authorization: Bearer hb_live_... on every call (never in a URL). Get one at https://humanbrowser.cloud/account (Google or email sign-in). No free credit; the first top-up can be $1 (card), later top-ups from $5. Prepaid balance, no subscription, never expires. PRICE (list v2, since 2026-10-01; machine-readable https://humanbrowser.cloud/api/plans): $0.02 per agent step with the LLM included, $0.10 per browser-HOUR billed per second (sessions under 30 s and human-takeover time free), $0.005 per solved CAPTCHA, $4/GB residential traffic. Median successful task $0.24 (p25 $0.12, p75 $0.39), about 8 steps — $1 is roughly 4 tasks. RUN A TASK (A2A JSON-RPC 2.0, POST https://agent.humanbrowser.cloud/a2a): {"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","messageId":"m1","parts":[{"kind":"text","text":"Open https://news.ycombinator.com and return the top 3 story titles as JSON."}]}}} 1. message/send answers in seconds, once the browser is up: a Task {id:"t_…", status.state:"working", metadata.viewerUrl, metadata.sessionId, metadata.profile}. The run continues detached. Show metadata.viewerUrl to your user. 2. Poll tasks/get {"id":"t_…"} every 3-5 s (no long-poll). working = still running, not a failure; status.message is a progress line ("Step 12/100 on example.com — …") you may quote verbatim. Or use message/stream (SSE), or set metadata.callback_url (https) to receive the final Task by POST. 3. Terminal states: completed | failed | canceled | input-required. The answer is metadata.outcome.result (also artifacts[0]); metadata.recordUrl replays the run. Files the run downloaded come back as kind:file parts and metadata.outcome.produced_files. 4. Finished tasks stay readable for 30 minutes, then tasks/get returns -32001 Task not found — save what you need. Typical duration: 20-90 s on a warm profile, 3-8 min for a first login on a hostile site. Hard limits: 2 h and 100 steps per task. CREDENTIALS — never in the goal text. Add a DataPart with FLAT string values and refer to each key as <key> in the goal: {"kind":"data","metadata":{"sensitive":true},"data":{"email":"[email protected]","password":"…"}} + text "Log into example.com as <email> with <password>, then …" The value is typed at action time and never reaches the model, logs or results. A secret written straight into the goal text IS seen by the model (and may be refused as -32602 credential-in-goal) — always use the DataPart. URLs are not substituted: write them plainly. Text that must be pasted exactly: <verbatim name="pitch">…</verbatim>. Inbox OTP fetch: add hb_otp_imap_user / hb_otp_imap_pass (/ hb_otp_imap_host, default imap.gmail.com) to the same DataPart. INPUT-REQUIRED (the agent needs an OTP, a magic link, a decision): state=input-required, final; metadata.input_required = {req_id, question, kind, sensitive, timeout_s, deadline}. While it is still paused, answer with message/send: message.referenceTaskIds=[taskId], message.metadata.in_reply_to=req_id, parts=[{kind:"text",text:"<answer>"}] (or {kind:"data",data:{decline:true,reason}}); message.taskId=<taskId> or re-sending on the same contextId also works. The pause message carries a ready resume_example. A human can answer in the viewer instead. No answer by the deadline = auto-decline. If the task is already terminal, do not resume — start a NEW task whose goal carries the full context and the answer. FILES IN: attach {"kind":"file","file":{"name":"a.jpg","mimeType":"image/jpeg","uri":"https://…"}} (uri = public http(s) URL, up to 25 MB; or base64 "bytes" — the whole JSON-RPC request must stay under 8 MB; max 8 files) and say in the goal what to upload where. OPTIONAL metadata (params.metadata or message.metadata): country (iso2, e.g. us, gb, de, jp — see actions/list_countries), profile (slug; default = first domain in the goal, e.g. adsy.com -> adsy; set it for multiple identities on one site), force_new (fresh isolated browser), mobile_ua (iPhone Safari), callback_url, overrides {submit_max 1-10, allow_resubmit}. Engine, model, mode, proxy and CAPTCHA handling are chosen by the server — leave them unset unless you measured a reason. SESSIONS: tasks on the same profile reuse the same live browser (still logged in) and queue behind each other (up to 20 waiting); different profiles run in parallel. Up to 10 concurrent sessions per token. ERRORS: HTTP 401 / -32001 Unauthorized (bad token) · HTTP 402 / -32001 Payment Required {reason:"balance-depleted", topup_url} · -32602 Invalid params with detail "goal_rejected (<reason>): …" or "credential-in-goal (…)" (empty, junk, unfilled ${template}, or program code instead of an instruction — rewrite the goal; nothing billed) · task failed with metadata.error.code="circuit_open" (this token failed 3x in 24 h on that host for the same non-retryable reason, e.g. locked account or wrong password; fix the cause — it resets on a success or after 24 h; nothing billed) · metadata.error.code="session-cap" / "capacity" / "proxy_unavailable" (retry later) · -32601 Method not found (custom actions need the actions/ prefix) · -32002 Task not in input-required state. On failed, read metadata.outcome.result, metadata.outcome.blocks ({code, retryable, how_to_retry}) and metadata.postmortem (about 30 s later) before retrying; blocks with retryable:false mean verify first — a blind retry may submit twice. Report only what these fields say; do not guess "blocked by a CAPTCHA". ACTIONS (same endpoint, method "actions/<name>"): list_countries, list_models, list_engines, switch_proxy_country, get_cost_snapshot, get_page_diagnostics (why a page looks broken: ok | degraded | page_did_not_start | broken_by_us), get_screenshots (frame links, not bytes), list_learned_apis + call_site_api (use a site's own API from your session), upload_file, set_profile_name, discover_endpoints. See customActions. MCP: the same agent at https://agent.humanbrowser.cloud/mcp (Streamable HTTP, Bearer token or OAuth 2.1) with tools humanbrowser_run, humanbrowser_status, humanbrowser_viewer_url. Full reference: https://humanbrowser.cloud/llms-full.txt

    B9.5 🔑 human key JSONRPC 9 skills