~docs · mcp referenceapi & mcp · updated 03 jul 2026

MCP reference

The market-intelligence layer for the commercial agent economy. It tracks public AI agents, MCP servers and APIs — capabilities, integrations, observed pricing and how the market moves. Humans use the directory; agents and orchestrators use the MCP below. Reads are keyless and rate-limited; the one write is correlated, not gated.

$ agentery.com/api/mcpstreamable-HTTP · protocol 2025-03-26 · read-only data oracle

quickstart

Claude Code — one command:

claude mcp add --transport http agentery https://agentery.com/api/mcp

Or in JSON config (.mcp.json in your project root, or ~/.claude.json) — "type" accepts "http" or its alias "streamable-http":

{
  "mcpServers": {
    "agentery": {
      "type": "http",
      "url": "https://agentery.com/api/mcp"
    }
  }
}

Claude Desktop / claude.ai — remote servers are added as connectors: Settings → Connectors → Add custom connector, then paste the endpoint URL above. No authentication needed.

Cursor.cursor/mcp.json in your project (or ~/.cursor/mcp.json globally):

{
  "mcpServers": {
    "agentery": {
      "url": "https://agentery.com/api/mcp"
    }
  }
}

Anything else — it’s plain streamable-HTTP JSON-RPC; verify from any shell:

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

A machine-readable server card is at https://agentery.com/.well-known/mcp.json.

the 10-tool MCP reference

Ten public tools, no auth. One partner-only engine gated by a Bearer key (request access).

search_agents(query, filters?)READkeyless

Filtered free-text search (industry, integrations, entity type, evidence quality). Every result carries a compact observed-price object and a liveness object.

query · max_monthly_usd · billing[] · require_public_price · sort: match | price_asc
// returns
[{card, price, liveness}]
compare_agents([handles])READkeyless

2–6 handles side by side: full evidence-scored cards plus all-time community upvotes, niche/sector, liveness and price extras.

agent_ids: string[] (2–6)
// returns
{cards, upvotes, liveness, price_extras}
price_benchmark(niche | sector | scope)READkeyless

What a capability normally costs: median / p25 / p75 per persona tier (Free … Enterprise), billing mix and free-tier share — for a niche, a sector, or the whole economy.

niche · sector · scope: economy
// returns
{tier_medians, billing_mix, free_share, index?}
get_agent_profile(agent_id)READkeyless

Full evidence-scored profile for one agent: capabilities, integrations, pricing, autonomy, evidence quality, liveness, last checked.

agent_id: string
// returns
{profile, liveness, price, how_to_connect}
get_agent(handle)READkeyless

The public directory card for one agent by handle or registration number.

handle: string
// returns
{card}
market_gaps(sector?, rank?)READkeyless

Under-served markets to build in. rank='gaps' (default): true whitespace — money present (enterprise/contact-sales) or recent builder entry but FEW competitors; crowded niches excluded, so a gap is never crowded. Each carries gap_score (0–100), a plain-English why[], crowding, listings, market_pulse and observed pricing. rank='hot': ranked by momentum (market_pulse) regardless of crowding.

sector? · rank? (gaps|hot) · limit?
// returns
[{niche, gap_score, why, crowding, listings, market_pulse, pricing}]
suggest_alternatives(agent_id, opts?)READkeyless

Substitutes for one known agent: same niche first, then similar capability, each with price, liveness and upvotes. cheaper_only keeps only agents priced below the subject.

agent_id · cheaper_only? · limit?
// returns
[{handle, price_delta, liveness, upvotes}]
niche_report(niche)READkeyless

The measured deep-dive for one niche slug: pulse with drivers, crowding, adjacent niches, observed-pricing snapshot, 7-day movement decomposition, niche price index and top agents.

niche: string
// returns
{pulse, movement, index_series, top_agents}
demand_signals()READkeyless

Capability queries that returned zero results on this server, aggregated and ranked by miss count — a live “what are agents looking for that doesn’t exist” feed.

limit?
// returns
[{query, misses, last_seen}]
report_outcome(agent_id, outcome, …)WRITEkeyless · correlated

The one write: after you use a listed agent, report worked | failed | partial. Correlated against your own last-48h retrievals; surfaces as reported_success only once 5+ distinct reporters exist.

agent_id · outcome · task_type? · error_class? · latency_ms? · note?
// returns
{accepted, correlated, reported_success?}

Partner-onlyrank_agents_for_workflow: ranked agent candidates for each step of a business workflow, scored with reasons and cautions. Same request shape, with an Authorization: Bearer <key> header.

Public tools are rate-limited to 30 tool calls per minute per IP. Reciprocity: callers with 5+ correlated report_outcome reports in the last 30 days get 60 calls per minute instead. Requests with a valid partner key are never rate-limited.

examples

List the tools:

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Search by capability under a price ceiling, cheapest first (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search_agents","arguments":{
         "query":"customer support agent with Zendesk integration",
         "max_monthly_usd":50,"billing":["freemium","subscription"],
         "sort":"price_asc","limit":10}}}'

Benchmark what a niche normally costs (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"price_benchmark","arguments":{"sector":"legal"}}}'

Compare a shortlist side by side, with upvotes (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"compare_agents","arguments":{
         "agent_ids":["openhands","devin"]}}}'

Find under-served niches in a sector (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"market_gaps","arguments":{"sector":"finance","limit":10}}}'

Fetch one agent’s directory card (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_agent","arguments":{"handle":"openhands"}}}'

Full evidence-scored profile for one agent (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_agent_profile","arguments":{"agent_id":"openhands"}}}'

Cheaper substitutes for an agent you’re already looking at (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"suggest_alternatives","arguments":{
         "agent_id":"openhands","cheaper_only":true,"limit":5}}}'

Deep-dive one niche — founder card, pricing snapshot, top agents (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"niche_report","arguments":{"niche":"ai-phishing-detection"}}}'

What is being searched for that doesn’t exist yet (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"demand_signals","arguments":{"limit":20}}}'

Report how a listing worked out after you used it (public):

curl -X POST https://agentery.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"report_outcome","arguments":{
         "agent_id":"openhands","outcome":"worked",
         "task_type":"code-review","latency_ms":8200}}}'

liveness

Agents in search_agents results, get_agent_profile, compare_agents and suggest_alternatives carry a liveness object: is the agent’s endpoint actually up? Endpoints (MCP / A2A preferred, else the site) are probed daily; probed: false means we have not probed that agent yet.

"liveness": {
  "probed": true,
  "alive": true,                   // latest check on the best endpoint
  "endpoint_kind": "mcp",          // mcp | a2a | site
  "latency_ms": 412,
  "uptime_7d": 0.98,               // share of successful checks, last 7 days
  "checked_at": "2026-07-01T04:30:00Z"
}

how_to_connect

Every card carries how_to_connect — the endpoint/config needed to actually use the listing, not just read about it. get_agent_profile and compare_agents return the full object; search_agents and suggest_alternatives return a compact one (website, docs, mcp.endpoint). Every URL comes from the vendor’s own published data — fields are null when unknown, never guessed.

"how_to_connect": {
  "website": "https://example-agent.com",
  "docs": "https://docs.example-agent.com",
  "mcp": {                              // only when the vendor publishes an MCP endpoint
    "endpoint": "https://mcp.example-agent.com/mcp",
    "transport": "http",
    "config_snippet": "{\n  \"mcpServers\": {\n    \"example-agent\": {\n      \"url\": \"https://mcp.example-agent.com/mcp\"\n    }\n  }\n}"
  },
  "a2a": { "card_url": "https://example-agent.com/.well-known/agent.json" },
  "api": { "docs_url": "https://docs.example-agent.com/api", "endpoint": null },
  "protocols": ["MCP", "A2A"],
  "note": null                          // set when protocols are declared but no endpoint is published
}

config_snippet is the copy-paste JSON for MCP clients (Claude, Cursor, …), serialized as a string.

observed pricing

Where a public price was readable on the vendor’s site, agents carry a price object. This is observed public pricing — what we could read, evidence-scored — not a definitive vendor quote.

"price": {
  "observed": true,
  "billing": "freemium",          // subscription | freemium | usage | one-time | contact_sales | free
  "currency": "USD",
  "lowest_monthly_usd": 19,        // lowest paid monthly tier, normalized
  "summary": "Free tier; paid plans from $19/mo.",
  "confidence": "high",            // high | medium | low
  "source_url": "https://example.com/pricing",
  "checked_at": "2026-06-29T04:10:00Z"
}

When we checked and found no public price, observed is false with a billing of not_found / login_gated. A null price means we have not checked. Prices are re-scanned daily and a history is kept, so movement is trackable.

Profile and comparison cards also carry price_extras: a parsed free-tier quota (e.g. 100 calls/month) and a metered unit cost (e.g. $0.002 per request) where the plan copy states one — both null when the text isn’t explicit.

price_benchmark also returns an index object — the Agent Economy Price Index: a chained, like-for-like daily price index (base 100 = first scan, 28 Jun 2026) computed only from agents priced on consecutive scan days, so composition changes can’t move it. niche_report adds movement, a 7-day decomposition of which agents repriced vs entered/left the priced set, and an index_series for the niche. At whole-economy scope price_benchmark also returns index_by_tier — the same index tracked separately for the Individual / Pro / Team & SME / Enterprise tiers (null when a niche or sector filter is given: per-tier slices of a filtered sample would be fake precision at current sample sizes). Each is null when the data is too thin.

OUTCOMES & RECIPROCITY
Only observed reports carry weight.

report_outcome is correlated against your own recent retrievals — only matched reports count, and reported_success surfaces only once 5+ distinct correlated reporters exist in the 90-day window. Below that it’s null, never a thin guess. Identity is a sha256 hash of your IP (or an x-agentery-key header).

DATA FRESHNESS
Observed, not scraped-once.

Prices are recorded daily; endpoints probed daily; the index rebased from consecutive-day scans. Every response carries a checked_at / observed_at timestamp so answers are citable and dated.

what we track per agent

Inputs, outputs, capabilities, vector support, integration type (MCP / API / SDK / web / …), observed pricing & price history, niche & category, evidence type and a confidence score, plus a source URL and last-checked date. Every field is evidence-scored, never invented.

list your agent

Building a commercial agent, MCP server or agent tool? Add it to the index at /submit. We list public, commercial agent products — not individual private instances.