Registry API
For the vibe coders: llms.txt
The Smithery Registry API provides a programmatic way to search for MCP servers. This documentation will walk you through using the Registry API to obtain a remote MCP server.
Concepts
Our registry contains an index of MCP servers. Every server may have different ways of launching or connecting to them. Server authors specify a configuration schema, which is a JSON schema that defines the structure of the configuration that is required to connect to the server.
Authentication
All endpoints require authentication via a bearer token. You can create an API key here.
Include the following header in your API requests:
List Servers
Retrieves a paginated list of all available servers.
Query Parameters
q
(optional): Search query. We use semantic search, so treat this as a prompt.page
(optional): Page number for pagination (default: 1)pageSize
(optional): Number of items per page (default: 10)
Filtering
- Text Search: Simply type any text to search semantically (e.g.,
machine learning
) - Owner Filter: Use
owner:username
to filter by repository owner (e.g.,owner:smithery-ai
) - Repository Filter: Use
repo:repository-name
to filter by repository name (e.g.,repo:fetch
) - Deployment Status: Use
is:deployed
to show only deployed servers
You can combine multiple filters together. For example:
Response
The response includes basic information about each server and pagination details to help you navigate through the list of servers.
Get Server
Retrieves information about a specific server by its qualified name. The qualified name is a unique human-readable identifier for the server. You can find the qualified name from the server page's url: https://smithery.ai/server/{qualifiedName}
.
Response Type
The response contains a comprehensive record of the server, including connection details and security information.
Properties
name
Type: string
Qualified name of the MCP server in the format owner/repository
.
displayName
Type: string
Human-readable name of the MCP server.
iconUrl
Type: string | null
URL to the server's icon image, or null
if no icon is available.
connections
Type: Array
Specifies how to connect to this server. Each object in the array represents a different connection method.
Property | Type | Description |
---|---|---|
type | string | Connection type. Either "http" or "stdio" . |
url | string | HTTP URL to connect to (for http type). |
configSchema | object | JSON Schema defining required configuration options. |
security
Type: object
Information about the server's security status.
Property | Type | Description |
---|---|---|
scanPassed | boolean | null | Whether the server has passed security checks. null if no scan has been performed. |
We use Invariant to scan for tool poisoning, rug pulls, cross-origin escalations, and prompt injection attacks.
tools
Type: Array
| null
List of tools that this server provides, or null
if no tools have been retrieved.
Property | Type | Description |
---|---|---|
name | string | Name of the tool. |
description | string | Description of the tool. |
inputSchema | object | JSON Schema defining the required parameters for the tool. |
Note: Tool information is cached from the server's last deployment. The actual tools returned by the MCP server at runtime may differ based on configuration or server updates.
Next Step
Once you have retrieved a server and its URL, you can connect to it using the Connect to MCPs guide.