registry/docs/reference/api/generic-registry-api.md
Tadas Antanavicius 65b96b03ce
docs: update API endpoint documentation from /v0/ to /v0.1/ (#802)
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>
2025-12-04 13:02:45 -08:00

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:

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 pagination
  • GET /v0.1/servers/{serverName}/versions - List all versions of a server
  • GET /v0.1/servers/{serverName}/versions/{version} - Get specific version of server. Use the special version latest to 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

  1. Initial request: Omit the cursor parameter
  2. Subsequent requests: Use the nextCursor value from the previous response
  3. End of results: When nextCursor is 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.