Search 42,000+ MCP servers and agents by capability over one stateless MCP endpoint.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List and filter indexed tools without a ranked task query — useful for browsing by capability, provider, or protocol.
Free-text substring match on name/description.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http agentgraph https://agentgraph-new.vercel.app/api/mcp
List and filter indexed tools without a ranked task query — useful for browsing by capability, provider, or protocol.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text substring match on name/description. |
| limit | integer | |
| protocol | string | |
| provider | string | |
| capability | string |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free-text substring match on name/description."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"protocol": {
"type": "string"
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
}
}
}Get the full public profile of a single owner-submitted agent by id, including its reported interaction summary.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Get the machine-readable invocation contract for an owner-submitted agent: whether it's directly callable, which protocol (MCP, A2A, HTTP_JSON), the endpoint, auth requirements, input/output schemas where declared, and pricing (result.pricing — { mode: "FREE" } or { mode: "FIXED", amount, amountAtomic, currency, paymentProtocol, network, platformFeeBps, paymentRecipient }). An Agent may expose more than one contract for different capabilities (e.g. one for image comparison, a separate one for free-text idea evaluation) — pass `capability` to get the one that actually serves it; without it, this returns the Agent's primary/default contract plus a `multipleContracts`/`invocationsUrl` pointer if there's more than one. Use get_agent_invocations to list every contract at once. For a FIXED/X402 contract, use get_payment_requirement to obtain a standards-compliant x402 v2 payment requirement before invoking. Owner-submitted and unverified unless verificationStatus says otherwise — AgentGraph does not call this endpoint itself; the caller invokes the provider directly and reports the outcome via the interactions API.
| Argument | Type | Description |
|---|---|---|
| id* | string | Agent id (or agentgraph:agent:<id> — the plain id also works). |
| capability | string | Optional normalized capability name — returns the contract mapped to it, if any, instead of the Agent's primary/default contract. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Agent id (or agentgraph:agent:<id> — the plain id also works)."
},
"capability": {
"type": "string",
"description": "Optional normalized capability name — returns the contract mapped to it, if any, instead of the Agent's primary/default contract."
}
}
}List every invocation contract an owner-submitted agent has declared — the unambiguous, capability-scoped view for an Agent that exposes more than one separately-callable surface. Each entry lists exactly which capabilities it serves. AgentGraph does not call any of these itself.
| Argument | Type | Description |
|---|---|---|
| id* | string | Agent id (or agentgraph:agent:<id> — the plain id also works). |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Agent id (or agentgraph:agent:<id> — the plain id also works)."
}
}
}Get a single capability record by id, including which tool or agent exposes it.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}V0.4 demand intelligence: deterministic aggregates over real search telemetry — top intent concepts, top matched capabilities (rank<=10), and how many recent searches had zero currently-callable Agent in their top 10. No LLM/clustering — every result reports its sample size and window. Mirrors GET /api/demand.
| Argument | Type | Description |
|---|---|---|
| days | integer | Lookback window in days (default 30). |
| limit | integer | Max capabilities to return (default 20). |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Lookback window in days (default 30)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max capabilities to return (default 20)."
}
}
}V0.4 opportunity feed: capabilities with real recent demand (>=minSampleSize top-10 matches) sorted by weakest current callable-Agent supply first. Every entry is a real, sample-sized aggregate — see excludedForSampleSize for how many low-sample capabilities were dropped rather than shown with a misleading count. Mirrors GET /api/opportunities.
| Argument | Type | Description |
|---|---|---|
| days | integer | Lookback window in days (default 30). |
| limit | integer | Max opportunities to return (default 20). |
| minSampleSize | integer | Minimum top-10 match count for a capability to be included (default 3). |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Lookback window in days (default 30)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max opportunities to return (default 20)."
},
"minSampleSize": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Minimum top-10 match count for a capability to be included (default 3)."
}
}
}V0.6 — for a FIXED/X402 invocation contract, returns a real, standards-compliant x402 v2 PaymentRequired object (x402Version, resource, accepts[]) built fresh from that contract's current price/network/recipient. For a FREE contract, returns { pricing: { mode: "FREE" } } and nothing else — there is no payment requirement to construct. AgentGraph is not the resource being paid for: `resource.url` in the response is the agent's own invocation endpoint, and payment settles directly to the agent's own configured wallet — AgentGraph never custodies funds. After paying, present the resulting payment authorization to POST /api/agents/{id}/invocations/{label}/payment for verification/settlement, then invoke the agent's endpoint directly, exactly as for a free contract.
| Argument | Type | Description |
|---|---|---|
| id* | string | Agent id (or agentgraph:agent:<id> — the plain id also works). |
| label | string | Which invocation contract, if the Agent has more than one (default: "default"). |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Agent id (or agentgraph:agent:<id> — the plain id also works)."
},
"label": {
"type": "string",
"description": "Which invocation contract, if the Agent has more than one (default: \"default\")."
}
}
}Get the full public profile of a single indexed tool by id.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}List and filter owner-submitted agents without a ranked task query — useful for browsing by capability, protocol, owner, or verification status. Use search_capabilities for a ranked task-driven search across both tools and agents.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text substring match on name/description. |
| limit | integer | |
| owner | string | Substring match on owner name. |
| protocol | string | One of: a2a, mcp, other. |
| verified | boolean | |
| capability | string |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free-text substring match on name/description."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"owner": {
"type": "string",
"description": "Substring match on owner name."
},
"protocol": {
"type": "string",
"description": "One of: a2a, mcp, other."
},
"verified": {
"type": "boolean"
},
"capability": {
"type": "string"
}
}
}Search AgentGraph's index of real MCP servers and owner-submitted agents for ones that can perform a described task. Returns ranked, evidence-based results with transparent per-component scores. Every result includes machine-readable pricing (result.invocation.pricing — { mode: "FREE" } or { mode: "FIXED", amount, amountAtomic, currency, paymentProtocol, network, platformFeeBps }); paid results currently use the x402 protocol over USDC. Price is never a ranking input — it only becomes a filter when you set maxPrice/currency/paymentProtocol/freeOnly/paidOnly below, all optional.
| Argument | Type | Description |
|---|---|---|
| task* | string | Free-text description of the task to accomplish. |
| limit | integer | |
| currency | string | Only FIXED results in this currency, e.g. "USDC" — excludes FREE results. |
| freeOnly | boolean | Only FREE results (includes every Tool, which has no pricing concept). |
| maxPrice | string | Decimal string in display units, e.g. "0.05" — includes FREE results and FIXED results priced at or below this amount. |
| paidOnly | boolean | Only FIXED-priced results. |
| protocol | string | Filter by protocol, e.g. "mcp". |
| capability |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| string |
| Filter by normalized capability category, e.g. "database". |
| paymentProtocol | string | Only FIXED results using this payment protocol, e.g. "X402" — excludes FREE results. |
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "string",
"description": "Free-text description of the task to accomplish."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"currency": {
"type": "string",
"description": "Only FIXED results in this currency, e.g. \"USDC\" — excludes FREE results."
},
"freeOnly": {
"type": "boolean",
"description": "Only FREE results (includes every Tool, which has no pricing concept)."
},
"maxPrice": {
"type": "string",
"description": "Decimal string in display units, e.g. \"0.05\" — includes FREE results and FIXED results priced at or below this amount."
},
"paidOnly": {
"type": "boolean",
"description": "Only FIXED-priced results."
},
"protocol": {
"type": "string",
"description": "Filter by protocol, e.g. \"mcp\"."
},
"capability": {
"type": "string",
"description": "Filter by normalized capability category, e.g. \"database\"."
},
"paymentProtocol": {
"type": "string",
"description": "Only FIXED results using this payment protocol, e.g. \"X402\" — excludes FREE results."
}
}
}