API for Agents
Query the WebMCP directory.
Read-only JSON API for agents. List WebMCP-enabled sites, fetch their tools and input schemas, or check whether a given URL exposes any.
TL;DR
Base URL https://webmcp.com. JSON responses, no auth,
CORS open (Access-Control-Allow-Origin: *). For a one-shot
probe of an arbitrary URL, use /api/v1/lookup?url=….
Probe an arbitrary URL
Given any URL, return whether the site exposes WebMCP tools and — if so —
its full record. The host is extracted, www. stripped, and
path-scoped demos (e.g. googlechromelabs.github.io/webmcp-tools/demos/*)
are matched by URL prefix.
| Param | Type | Description |
|---|---|---|
| url | string | Any URL on the page being probed. The host is extracted; path-scoped demos match by prefix. |
| host | string | Alternative to url. www. is stripped before matching. |
GEThttps://webmcp.com/api/v1/lookup?url=https://store.nekuda.ai/checkout
GEThttps://webmcp.com/api/v1/lookup?url=https://example.com
List & filter sites
Returns directory entries. All params are optional and combinable. Use
fields to control response size: full includes
every tool's inputSchema, summary drops schemas,
minimal returns only name/kind/impl/description.
| Param | Type | Description |
|---|---|---|
| type | live | demo | all | Filter by site type. Defaults to all. |
| q | string | Substring search across host, description, URL, and every tool name/description. |
| tool | string | Return only sites that expose a tool whose name contains this substring. |
| kind | read | write | action | Filter sites by tool kind. Repeat to OR (e.g. kind=read&kind=write). |
| impl | imperative | declarative | Filter by tool implementation style. |
| apiSurface | spec | polyfill | mixed | Filter by which API surface the site uses to register tools. spec = WICG registerTool or declarative DOM. polyfill = @mcp-b/webmcp-polyfill provideContext extension. mixed = both. Repeat to OR. |
| fields | full | summary | minimal | Response shape. Defaults to full. |
| limit | integer | Max sites to return. Default 100, max 500. |
| offset | integer | Pagination offset. |
GEThttps://webmcp.com/api/v1/sites?type=live&fields=summary
GEThttps://webmcp.com/api/v1/sites?tool=checkout&fields=minimal
Get a single site
Returns the full record for one directory entry, including every tool
with its JSON Schema. host is the directory key —
www. is stripped before matching.
GEThttps://webmcp.com/api/v1/sites/store.nekuda.ai
List tools for a site
Returns the tools array only — no surrounding site metadata.
GEThttps://webmcp.com/api/v1/sites/store.nekuda.ai/tools
Get one tool definition
Returns a single tool's full record including its inputSchema.
GEThttps://webmcp.com/api/v1/sites/store.nekuda.ai/tools/add_to_cart
Search every tool across every site
Flat search across all tools in the directory. Each result carries the host and URL it belongs to.
| Param | Type | Description |
|---|---|---|
| q | string | Substring match against tool name and description. |
| kind | read | write | action | Filter by kind. Repeat to OR. |
| impl | imperative | declarative | Filter by implementation style. |
| limit / offset | integer | Pagination — default 100, max 500. |
GEThttps://webmcp.com/api/v1/tools?q=cart&kind=write
Aggregate directory stats
Useful for status dashboards. Returns totals plus a breakdown by tool kind and implementation, and the top 10 sites by tool count.
GEThttps://webmcp.com/api/v1/stats
OpenAPI 3.1 spec
The full machine-readable contract for this API. Works with Swagger UI, OpenAPI codegen, or a ChatGPT action.
GEThttps://webmcp.com/api/openapi.json
Built and maintained by nekuda. Missing a site? Submit it on the directory.