Update all documentation to reference the stable `/v0.1/` API version instead of the development `/v0/` version. Didn't update internal references (e.g. in admin-only docs) as that probably make sense to keep pointed at v0 as the "dev" option. Authored by Claude Code, reviewed by me. --------- Co-authored-by: Claude <noreply@anthropic.com>
2.7 KiB
Generic Registry API Specification
A standardized RESTful HTTP API for MCP registries to provide consistent endpoints for discovering and retrieving MCP servers.
Also see:
- For authentication and authorization, see the registry authorization specification.
Browse the Complete API Specification
📋 View the full API specification interactively: Open openapi.yaml in an OpenAPI viewer like Stoplight Elements.
The official registry has some more endpoints and restrictions on top of this. See the official registry API spec for details.
Quick Reference
Core Endpoints
GET /v0.1/servers- List all servers with paginationGET /v0.1/servers/{serverName}/versions- List all versions of a serverGET /v0.1/servers/{serverName}/versions/{version}- Get specific version of server. Use the special versionlatestto get the latest version.POST /v0.1/publish- Publish new server (optional, registry-specific authentication)DELETE /v0.1/servers/{serverName}/versions/{version}- Delete specific server version (optional, not implemented by official registry)
Server names and version strings should be URL-encoded in paths.
Authentication
No authentication required by default. Subregistries may optionally require authentication following the registry authorization specification.
Content Type
All requests and responses use application/json
Pagination
List endpoints use cursor-based pagination for efficient, stable results.
Usage
- Initial request: Omit the
cursorparameter - Subsequent requests: Use the
nextCursorvalue from the previous response - End of results: When
nextCursoris null or empty, there are no more results
Important: Always treat cursors as opaque strings. Never manually construct or modify cursor values.
Basic Example: List Servers
curl https://registry.example.com/v0.1/servers?limit=10
{
"servers": [
{
"server": {
"name": "io.modelcontextprotocol/filesystem",
"description": "Filesystem operations server",
"version": "1.0.2"
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"publishedAt": "2025-01-01T10:30:00Z",
"isLatest": true
}
}
}
],
"metadata": {
"count": 10,
"nextCursor": "com.example/my-server:1.0.0"
}
}
For complete endpoint documentation, view the OpenAPI specification in a schema viewer.