freshcrate
Skin:/
Home > MCP Servers > registry

registry

A community driven registry service for Model Context Protocol (MCP) servers.

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

A community driven registry service for Model Context Protocol (MCP) servers.

README

MCP Registry

The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.

๐Ÿ“ค Publish my MCP server | โšก๏ธ Live API docs | ๐Ÿ‘€ Ecosystem vision | ๐Ÿ“– Full documentation

Development Status

2025-10-24 update: The Registry API has entered an API freeze (v0.1) ๐ŸŽ‰. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patienceโ€”your involvement has been key to getting us here!

2025-09-08 update: The registry has launched in preview ๐ŸŽ‰ (announcement blog post). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in GitHub discussions or in the #registry-dev Discord (joining details here).

Current key maintainers:

Contributing

We use multiple channels for collaboration - see modelcontextprotocol.io/community/communication.

Often (but not always) ideas flow through this pipeline:

  • Discord - Real-time community discussions
  • Discussions - Propose and discuss product/technical requirements
  • Issues - Track well-scoped technical work
  • Pull Requests - Contribute work towards issues

Quick start:

Pre-requisites

Running the server

# Start full development environment
make dev-compose

This starts the registry at localhost:8080 with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.

Note: The registry uses ko to build container images. The make dev-compose command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.

By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose.

The setup can be configured with environment variables in docker-compose.yml - see .env.example for a reference.

Alternative: Running a pre-built Docker image

Pre-built Docker images are automatically published to GitHub Container Registry:

# Run latest stable release
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest

# Run latest from main branch (continuous deployment)
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main

# Run specific release version
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0

# Run development build from main branch
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d

Available tags:

  • Releases: latest, v1.0.0, v1.1.0, etc.
  • Continuous: main (latest main branch build)
  • Development: main-<date>-<sha> (specific commit builds)

Publishing a server

To publish a server, we've built a simple CLI. You can use it with:

# Build the latest CLI
make publisher

# Use it!
./bin/mcp-publisher --help

See the publisher guide for more details.

Other commands

# Run lint, unit tests and integration tests
make check

There are also a few more helpful commands for development. Run make help to learn more, or look in Makefile.

Architecture

Project Structure

โ”œโ”€โ”€ cmd/                     # Application entry points
โ”‚   โ””โ”€โ”€ publisher/           # Server publishing tool
โ”œโ”€โ”€ data/                    # Seed data
โ”œโ”€โ”€ deploy/                  # Deployment configuration (Pulumi)
โ”œโ”€โ”€ docs/                    # Documentation
โ”œโ”€โ”€ internal/                # Private application code
โ”‚   โ”œโ”€โ”€ api/                 # HTTP handlers and routing
โ”‚   โ”œโ”€โ”€ auth/                # Authentication (GitHub OAuth, JWT, namespace blocking)
โ”‚   โ”œโ”€โ”€ config/              # Configuration management
โ”‚   โ”œโ”€โ”€ database/            # Data persistence (PostgreSQL)
โ”‚   โ”œโ”€โ”€ service/             # Business logic
โ”‚   โ”œโ”€โ”€ telemetry/           # Metrics and monitoring
โ”‚   โ””โ”€โ”€ validators/          # Input validation
โ”œโ”€โ”€ pkg/                     # Public packages
โ”‚   โ”œโ”€โ”€ api/                 # API types and structures
โ”‚   โ”‚   โ””โ”€โ”€ v0/              # Version 0 API types
โ”‚   โ””โ”€โ”€ model/               # Data models for server.json
โ”œโ”€โ”€ scripts/                 # Development and testing scripts
โ”œโ”€โ”€ tests/                   # Integration tests
โ””โ”€โ”€ tools/                   # CLI tools and utilities
    โ””โ”€โ”€ validate-*.sh        # Schema validation tools

Authentication

Publishing supports multiple authentication methods:

  • GitHub OAuth - For publishing by logging into GitHub
  • GitHub OIDC - For publishing from GitHub Actions
  • DNS verification - For proving ownership of a domain and its subdomains
  • HTTP verification - For proving ownership of a domain

The registry validates namespace ownership when publishing. E.g. to publish...:

  • io.github.domdomegg/my-cool-mcp you must login to GitHub as domdomegg, or be in a GitHub Action on domdomegg's repos
  • me.adamjones/my-cool-mcp you must prove ownership of adamjones.me via DNS or HTTP challenge

Community Projects

Check out community projects to explore notable registry-related work created by the community.

More documentation

See the documentation for more details if your question has not been answered here!

Release History

VersionChangesUrgencyDate
v1.7.9## What's Changed * deploy: update prod to v1.7.8 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1256 * build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.234.0 to 3.235.0 in /deploy by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1259 * docs: add ToolHive Registry Server to community projects by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1261 * docs(authentication): note OpenSSL 3.x requirement for Ed25519 bHigh5/12/2026
v1.7.8## What's Changed * deploy: update prod to v1.7.7 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1251 * build(deps): bump pulumi/actions from 6.6.1 to 7.0.0 in the actions group by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1254 * metrics: stop counting client-cancelled requests as server errors by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1255 **Full Changelog**: https://github.com/modelcontextprotocol/regiHigh5/5/2026
v1.7.6## What's Changed * deploy: update prod to v1.7.5 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1228 * auth: bind GitHub OIDC token exchange to a per-deployment audience by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1229 * docs: document GitHub OIDC audience binding for self-hosters and CI users by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1230 **Full Changelog**: https://github.com/modelcontextprotocol/registry/High4/30/2026
v1.7.0## What's Changed * deploy: update prod to v1.6.0 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/1172 * build(deps): bump goreleaser/goreleaser-action from 7.0.0 to 7.1.0 in the actions group by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1189 * build(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1188 * build(deps): bump github.com/go-git/go-git/v5 fromHigh4/25/2026
v1.6.0## What's Changed * build(deps): bump the opentelemetry group with 6 updates by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1044 * build(deps): bump github.com/google/go-containerregistry from 0.20.7 to 0.21.2 by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/1026 * chore(deploy): bump production image tag to 1.5.0 by @tadasant in https://github.com/modelcontextprotocol/registry/pull/1043 * build(deps): bump the actions group with 2 upHigh4/15/2026
v1.5.0## What's Changed * update schema url point to the actual location by @deerajkumar18 in https://github.com/modelcontextprotocol/registry/pull/884 * Bump production to v1.4.1 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/952 * build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.219.0 to 3.220.0 in /deploy by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/953 * Update SECURITY.md to use GitHub Security Advisories by @localden in https://Low3/6/2026
v1.4.1## What's Changed * Revert "Restrict @claude bot to mcp org only, fix fork behavior" by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/851 * Promote prod to 1.4.0 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/852 * Ensure no downtime during rollouts by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/854 * Default to the local registry in the UI by @filmor in https://github.com/modelcontextprotocol/registry/pull/799 * build(deLow2/10/2026
v1.4.0## What's Changed ### Notable changes * chore: Release server.json schema version 2025-12-11 by @tadasant in https://github.com/modelcontextprotocol/registry/pull/841 * Update OpenAPI spec to use v0.1 endpoints and make _meta optional by @tadasant in https://github.com/modelcontextprotocol/registry/pull/811 * Add a PUT method to the OpenAPI specification by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/838 * Add DELETE method to the OpenAPI specification by @rdimitroLow12/16/2025
v1.3.10## What's Changed * improve: Add hint about making GitHub org membership public in error messages by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/772 * docs: Update API changelog for v1.3.9 release by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/774 * Update Claude Code GitHub Action from beta to v1 by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/773 * Promote prod to v1.3.9 by @domdomegg in https://github.com/modelcontextpLow11/18/2025
v1.3.9## What's Changed * Promote prod to 1.3.8 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/745 * docs(community): update project link and name to ToolSDK MCP Registry by @Seey215 in https://github.com/modelcontextprotocol/registry/pull/747 * build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.205.0 to 3.206.0 in /deploy by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/752 * build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.Low11/17/2025
v1.3.8## What's Changed * Promote prod to 1.3.7 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/727 * Bump go to 1.24.9 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/732 * Use the official govulncheck-action by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/733 * build(deps): bump cloud.google.com/go/kms from 1.23.0 to 1.23.2 by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/729 * build(deps): bump gitLow11/3/2025
v1.3.7## What's Changed * Promote prod to 1.3.6 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/722 * Fix the image tag to strip the v prefix by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/726 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v1.3.6...v1.3.7Low10/29/2025
v1.3.6## What's Changed * Add support for ECDSA P-384 by @joelverhagen in https://github.com/modelcontextprotocol/registry/pull/685 * Fix main by implementing a go1.24 compliant parseRawPrivateKey method by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/707 * build(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/709 * feat: add community project link to browsable database by @rosmur in https://github.comLow10/29/2025
v1.3.5## What's Changed * Revert cosign to 3.10.1 instead of 4.0.0 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/706 * Update README with API freeze announcement by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/704 * Clarify the docs around _meta publisher extensions by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/695 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v1.3.4...v1.3.5Low10/24/2025
v1.3.4## What's Changed * Promote prod to 1.3.3 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/687 * build(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/688 * Add failure modes telemetry by @pree-dew in https://github.com/modelcontextprotocol/registry/pull/646 * Disable automatic sync schedule in sync-db.yml by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/693 * Enable dependaLow10/24/2025
v1.3.3## What's Changed * Populate the version details for local builds by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/683 * Promote prod to 1.3.2 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/684 * Improve golang type documentation and examples by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/631 * Make mcpb package version optional and fix schema validation by @rdimitrov in https://github.com/modelcontextprotocol/registry/pulLow10/16/2025
v1.3.2## What's Changed * Deploy 1.3.1 to production by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/676 * Fix latest release download URLs by @jonathanhefner in https://github.com/modelcontextprotocol/registry/pull/677 * build(deps): bump anchore/sbom-action from 0.20.6 to 0.20.7 in the actions group by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/680 * Add hint icon to in-browser UI community projects by @jonathanhefner in https://github.com/moLow10/16/2025
v1.3.1## What's Changed * Split deploying to prod and staging by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/666 * Deploy v1.3.0 to production by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/668 * Fix the image reference for prod: from v1.3.0 to 1.3.0 by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/669 * build(deps): bump golangci/golangci-lint-action from 6.1.1 to 8.0.0 in the actions group by @dependabot[bot] in https://githuLow10/15/2025
v1.3.0## What's Changed * Use intermediate env vars for Pulumi passphrases by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/595 * Update community projects with mcp-registry-spec-sdk by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/594 * build(deps): bump pulumi/actions from 6.5.0 to 6.6.0 in the actions group by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/593 * Add myself to the maintainers list by @rdimitrov in https://gitLow10/14/2025
v1.2.3## What's Changed * fix: renumber migrations to fix staging deployment by @tadasant in https://github.com/modelcontextprotocol/registry/pull/592 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v1.2.2...v1.2.3Low9/30/2025
v1.2.2## What's Changed * Apply gofmt formatting to all Go files by @tadasant in https://github.com/modelcontextprotocol/registry/pull/588 * Add a workflow for cancelling stuck pulumi locks by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/589 * fix: add server name validation and clean invalid data before migration 009 by @tadasant in https://github.com/modelcontextprotocol/registry/pull/591 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v1.2Low9/30/2025
v1.2.1## What's Changed * docs: add MCP Server for MCP Registry to community-projects by @formulahendry in https://github.com/modelcontextprotocol/registry/pull/579 * build(deps): bump docker/login-action from 3.5.0 to 3.6.0 in the actions group by @dependabot[bot] in https://github.com/modelcontextprotocol/registry/pull/577 * fix: handle NULL status values in migration 008 by @tadasant in https://github.com/modelcontextprotocol/registry/pull/578 * Ensure we populate sane defaults for NULL values Low9/30/2025
v1.2.0## What's Changed * Fix atomic latest version update to prevent missing isLatest flags by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/530 * docs: update download link of mcp-publisher to 1.1.0 by @formulahendry in https://github.com/modelcontextprotocol/registry/pull/551 * Update prod to follow the release cycles by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/547 * build(deps): bump actions/cache from 4.2.4 to 4.3.0 in the actions group by @depLow9/30/2025
v1.1.0## What's Changed * Update the publishing docs to refer to the v1.0.0 release by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/380 * ci: Add concurrency groups to prevent deployment conflicts by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/381 * docs: Simplify publisher CLI installation instructions by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/382 * docs: add homebrew installation notes for mcp-publisher by @chenrui333 inLow9/24/2025
v1.0.0## What's Changed * Clean up schema by simplifying version structure by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/379 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v0.0.3...v1.0.0Low9/8/2025
v0.0.3## What's Changed * Fix API title and redirect to external docs by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/372 * Add security warnings to Argument schema definition by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/371 * Add filtering functionality to server list endpoint by @domdomegg in https://github.com/modelcontextprotocol/registry/pull/374 * Split registry and mcp-publisher into seperate release assets by @rdimitrov in https://github.comLow9/8/2025
v0.0.2## What's Changed * Install Syft by @rdimitrov in https://github.com/modelcontextprotocol/registry/pull/373 **Full Changelog**: https://github.com/modelcontextprotocol/registry/compare/v0.0.1...v0.0.2Low9/8/2025
v0.0.1## What's Changed * Init world. Basic registry API server <WIP> by @sridharavinash in https://github.com/modelcontextprotocol/registry/pull/4 * Update README to reflect binary name change by @sridharavinash in https://github.com/modelcontextprotocol/registry/pull/5 * Add count to server response and fix Makefile paths by @sridharavinash in https://github.com/modelcontextprotocol/registry/pull/6 * Add Swagger API documentation and handlers for v0 by @sridharavinash in https://github.com/modeLow9/8/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

toolhiveToolHive is an enterprise-grade platform for running and managing Model Context Protocol (MCP) servers.v0.29.0
Paylink๐ŸŒ Simplify payment processing with PayLink, a unified API for multi-provider checkouts, ensuring reliable transactions and seamless integration.main@2026-06-06
musterMCP tool management and workflow proxyv0.3.1
tekmetric-mcp๐Ÿ” Ask questions about your shop data in natural language and get instant answers about appointments, customers, and repair orders with Tekmetric MCP.main@2026-06-05
whatsapp-agentkitBuild custom WhatsApp AI agents with Claude Code in under 30 minutes, no coding needed.main@2026-06-05

More from modelcontextprotocol

python-sdkThe official Python SDK for Model Context Protocol servers and clients
typescript-sdkThe official TypeScript SDK for Model Context Protocol servers and clients
modelcontextprotocolSpecification andย documentation for the Model Context Protocol
go-sdkThe official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration with Google.

More in MCP Servers

AstrBotAgentic IM Chatbot infrastructure that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. โœจ
agentscopeBuild and run agents you can see, understand and trust.
claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.
langchain4jLangChain4j is an open-source Java library that simplifies the integration of LLMs into Java applications through a unified API, providing access to popular LLMs and vector databases. It makes impleme