Registry API reference
ToolHive Registry API (0.1)
Download OpenAPI specification:Download
API for accessing MCP server registry data and deployed server information This API provides endpoints to query the MCP (Model Context Protocol) server registry, get information about available servers, and check the status of deployed servers.
Authentication is required by default. Use Bearer token authentication with a valid OAuth/OIDC access token. The /.well-known/oauth-protected-resource endpoint provides OAuth discovery metadata (RFC 9728).
Get registry
Get a registry by name
Authorizations:
path Parameters
| registryName required | string Registry Name |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
- 404
- 500
- 501
{- "createdAt": "string",
- "name": "string",
- "syncStatus": {
- "attemptCount": 0,
- "lastAttempt": "string",
- "lastSyncTime": "string",
- "message": "string",
- "phase": "string",
- "serverCount": 0
}, - "type": "string",
- "updatedAt": "string"
}List registries
List all registries
Authorizations:
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 401
- 500
{- "registries": [
- {
- "createdAt": "string",
- "name": "string",
- "syncStatus": {
- "attemptCount": 0,
- "lastAttempt": "string",
- "lastSyncTime": "string",
- "message": "string",
- "phase": "string",
- "serverCount": 0
}, - "type": "string",
- "updatedAt": "string"
}
]
}Delete server version from specific registry
Delete a server version from a specific managed registry
Authorizations:
path Parameters
| registryName required | string Registry name |
| serverName required | string Server name (URL-encoded) |
| version required | string Version (URL-encoded) |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 400
- 401
- 403
- 404
- 500
{- "property1": "string",
- "property2": "string"
}Get specific MCP server version in specific registry
Returns detailed information about a specific version of an MCP server from a specific registry.
Use the special version latest to get the latest version.
Authorizations:
path Parameters
| registryName required | string Registry name |
| serverName required | string URL-encoded server name (e.g., \ |
| version required | string URL-encoded version to retrieve (e.g., \ |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
- 404
{- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}List all versions of an MCP server in specific registry
Returns all available versions for a specific MCP server from a specific registry
Authorizations:
path Parameters
| registryName required | string Registry name |
| serverName required | string URL-encoded server name (e.g., \ |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
- 404
{- "metadata": {
- "count": 0,
- "nextCursor": "string"
}, - "servers": [
- {
- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": null,
- "property2": null
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}
]
}List servers in specific registry
Get a list of available servers from a specific registry
Authorizations:
path Parameters
| registryName required | string Registry name |
query Parameters
| cursor | string Pagination cursor for retrieving next set of results |
| limit | integer Maximum number of items to return |
| search | string Search servers by name (substring match) |
| version | string Filter by version ('latest' for latest version, or an exact version like '1.2.3') |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
{- "metadata": {
- "count": 0,
- "nextCursor": "string"
}, - "servers": [
- {
- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": null,
- "property2": null
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}
]
}Publish server to specific registry
Publish a server version to a specific managed registry
Authorizations:
path Parameters
| registryName required | string Registry name |
Request Body schema: application/jsonrequired
Server data
| $schema | string <uri> non-empty |
object (v0.ServerMeta) | |
| description | string [ 1 .. 100 ] characters |
Array of objects (model.Icon) | |
| name | string [ 3 .. 200 ] characters ^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$ |
Array of objects (model.Package) | |
Array of objects (model.Transport) | |
object (model.Repository) | |
| title | string [ 1 .. 100 ] characters |
| version | string |
| websiteUrl | string <uri> |
Responses
Request samples
- Payload
{- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}Response samples
- 201
- 400
- 401
- 403
- 404
- 409
- 500
{- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}Get specific MCP server version (aggregated)
Returns detailed information about a specific version of an MCP server from all registries.
Use the special version latest to get the latest version.
Authorizations:
path Parameters
| serverName required | string URL-encoded server name (e.g., \ |
| version required | string URL-encoded version to retrieve (e.g., \ |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
- 404
{- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}List all versions of an MCP server (aggregated)
Returns all available versions for a specific MCP server from all registries (aggregated view)
Authorizations:
path Parameters
| serverName required | string URL-encoded server name (e.g., \ |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
- 404
{- "metadata": {
- "count": 0,
- "nextCursor": "string"
}, - "servers": [
- {
- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": null,
- "property2": null
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}
]
}List servers (aggregated)
Get a list of available servers from all registries (aggregated view)
Authorizations:
query Parameters
| cursor | string Pagination cursor for retrieving next set of results |
| limit | integer Maximum number of items to return |
| search | string Search servers by name (substring match) |
| version | string Filter by version ('latest' for latest version, or an exact version like '1.2.3') |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 200
- 400
- 401
{- "metadata": {
- "count": 0,
- "nextCursor": "string"
}, - "servers": [
- {
- "_meta": {
- "io.modelcontextprotocol.registry/official": {
- "isLatest": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}, - "server": {
- "_meta": {
- "io.modelcontextprotocol.registry/publisher-provided": {
- "property1": null,
- "property2": null
}
}, - "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
- "icons": [
- {
- "mimeType": "image/png",
- "sizes": [
- "string"
], - "theme": "string"
}
], - "name": "io.github.user/weather",
- "packages": [
- {
- "environmentVariables": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
- "identifier": "@modelcontextprotocol/server-brave-search",
- "packageArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "registryType": "npm",
- "runtimeArguments": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRepeated": true,
- "isRequired": true,
- "isSecret": true,
- "name": "--port",
- "placeholder": "string",
- "type": "positional",
- "value": "string",
- "valueHint": "file_path",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "runtimeHint": "npx",
- "transport": {
- "headers": [
- {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": null,
- "property2": null
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- null
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}, - "version": "1.0.2"
}
], - "remotes": [
- {
- "headers": [
- {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "name": "SOME_VARIABLE",
- "placeholder": "string",
- "value": "string",
- "variables": {
- "property1": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}, - "property2": {
- "choices": [ ],
- "default": null,
- "description": null,
- "format": null,
- "isRequired": null,
- "isSecret": null,
- "placeholder": null,
- "value": null
}
}
}
], - "type": "stdio",
- "variables": {
- "property1": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}, - "property2": {
- "choices": [
- "string"
], - "default": "string",
- "description": "string",
- "format": "string",
- "isRequired": true,
- "isSecret": true,
- "placeholder": "string",
- "value": "string"
}
}
}
], - "repository": {
- "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
- "source": "github",
- "subfolder": "src/everything",
}, - "title": "Weather API",
- "version": "1.0.2",
}
}
]
}Publish server (not supported)
Publish a server to the registry. This server does not support publishing via this endpoint. Use the registry-specific endpoint /{registryName}/v0.1/publish instead.
Authorizations:
Request Body schema: application/json
Responses
Request samples
- Payload
{ }Response samples
- 401
- 501
{- "property1": "string",
- "property2": "string"
}