Smithery MCP Registry Scraper
Smithery MCP Registry Scraper — MCP Server Catalog
Scrape the Smithery Model Context Protocol (MCP) server registry for server metadata, use counts, verification status, deployment info, and optionally full tool/resource/prompt schemas. Smithery is the dominant MCP directory referenced directly by Claude Desktop, Cursor, and Windsurf as their default server registry — making it the canonical index for the MCP ecosystem.
What can you do with this data?
- AI agent builders — Discover MCP servers that match your agent's domain and wire in the right tools without manually browsing the directory. Pull the full catalog, filter by keyword or use count, and integrate.
- IDE and editor integrations — Export the registry to populate server-picker UIs in Cursor, Windsurf, Zed, or any MCP-capable client. The
qualified_namefield is the stable identifier each client uses for configuration. - Competitive intelligence — Track which servers are gaining use counts fastest, who is verified, and what tool schemas they expose. Smithery is the first-mover registry for MCP.
- Developer relations teams — Export servers in your product category with homepage URLs and display names to identify ecosystem participants and reach out.
- Security and compliance — Audit the full catalog for config schemas that accept sensitive parameters before onboarding servers to your platform.
What does the Smithery MCP Registry Scraper do?
The scraper calls Smithery's public JSON API at registry.smithery.ai/servers with page-based pagination. Three modes are available: full catalog sweep, keyword search, or single-server detail lookup. Setting includeTools: true adds a second API call per server to fetch the tool schema, resource definitions, and prompt specs — this doubles run time for large catalogs but adds the structured data that distinguishes one server from another.
What data does it extract?
Catalog / search mode (all runs):
| Field | Type | Description |
|---|---|---|
qualified_name |
string | Unique namespace/slug identifier (e.g. upstash/context7-mcp) |
display_name |
string | Human-readable server name |
description |
string | Server description from the registry |
icon_url |
string | Server icon image URL |
homepage_url |
string | Server homepage or documentation URL |
verified |
boolean | Whether Smithery has verified this server |
use_count |
number | Cumulative installs reported by Smithery |
is_deployed |
boolean | Whether the server has a hosted remote deployment |
by_smithery |
boolean | Whether published by Smithery itself |
remote |
boolean | Whether the server supports remote connections |
deployment_url |
string | Remote deployment URL when is_deployed is true |
server_url |
string | Direct URL to the Smithery server page |
created_at |
string | Creation timestamp (ISO 8601) |
Additional fields when includeTools: true (one extra HTTP call per server):
| Field | Type | Description |
|---|---|---|
tools_count |
number | Number of tools the server exposes |
resources_count |
number | Number of resources the server exposes |
prompts_count |
number | Number of prompts the server exposes |
tools |
array | Tool names and descriptions as "name|description" strings |
resources |
array | Resource names and URIs as "name|uri" strings |
prompts |
array | Prompt names and descriptions as "name|description" strings |
connection_type |
string | Primary connection type (http or stdio) |
config_schema_json |
string | JSON-encoded config schema for the connection |
The config_schema_json field is what makes includeTools: true worth the extra cost for integration builders — it shows exactly what parameters (API keys, base URLs, options) a server requires for configuration.
How to use it
Full catalog:
{
"mode": "catalog",
"maxItems": 0,
"includeTools": false,
"verifiedOnly": false
}
Search by keyword:
{
"mode": "search",
"query": "github",
"maxItems": 50
}
Single server with full tool schemas:
{
"mode": "server_detail",
"qualifiedName": "upstash/context7-mcp"
}
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | catalog |
catalog, search, or server_detail |
query |
string | "" |
Search keyword (search mode) |
qualifiedName |
string | "" |
Server identifier (server_detail mode) |
verifiedOnly |
boolean | false |
Limit to Smithery-verified servers |
includeTools |
boolean | false |
Fetch per-server detail (tools, resources, prompts, config schema) |
maxItems |
integer | 10 |
Max servers to return. 0 = no limit. |
Pricing
Pay-per-record pricing: $0.001 per server plus $0.10 per run start. Scraping 5,000 servers costs approximately $5.10. With includeTools: true, run time increases but the per-record charge stays the same.
FAQ
How do I scrape the full Smithery catalog?
Set mode: catalog and maxItems: 0. The scraper pages through the registry at 100 servers per page and collects every listing. There are currently 5,000+ servers, which takes a few minutes.
What is the difference between catalog mode and server_detail mode?
Catalog mode pulls listing data for all servers — fast and good for bulk exports. server_detail fetches a single server's full schema. Alternatively, set includeTools: true in catalog or search mode to enrich every record with tool and config schema data.
Does this scraper need proxies? No. Smithery's public registry API is open — no authentication, no geographic restriction.
Can I filter to verified servers only?
Yes. Set verifiedOnly: true in any mode.