- Go 92.9%
- PLpgSQL 3.1%
- HTML 1.9%
- Shell 1.6%
- Makefile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Bumps [github.com/pulumi/pulumi-gcp/sdk/v8](https://github.com/pulumi/pulumi-gcp) from 8.39.0 to 8.41.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-gcp/releases">github.com/pulumi/pulumi-gcp/sdk/v8's releases</a>.</em></p> <blockquote> <h2>v8.41.1</h2> <h2>What's Changed</h2> <ul> <li>Combined dependencies PR by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3346">pulumi/pulumi-gcp#3346</a></li> <li>Bump github.com/cloudflare/circl from 1.3.7 to 1.6.1 in /examples/bucket-go in the go_modules group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3327">pulumi/pulumi-gcp#3327</a></li> <li>Upgrade terraform-provider-google-beta to v6.49.2 by <a href="https://github.com/guineveresaenger"><code>@guineveresaenger</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3347">pulumi/pulumi-gcp#3347</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi-gcp/compare/v8.41.0...v8.41.1">https://github.com/pulumi/pulumi-gcp/compare/v8.41.0...v8.41.1</a></p> <h2>v8.41.0</h2> <h2>What's Changed</h2> <ul> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3320">pulumi/pulumi-gcp#3320</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3323">pulumi/pulumi-gcp#3323</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3324">pulumi/pulumi-gcp#3324</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3326">pulumi/pulumi-gcp#3326</a></li> <li>Combined dependencies PR by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3329">pulumi/pulumi-gcp#3329</a></li> <li>Bump the npm_and_yarn group across 3 directories with 1 update by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3305">pulumi/pulumi-gcp#3305</a></li> <li>Upgrade terraform provider google beta to v6.48.0 by <a href="https://github.com/ruifung"><code>@ruifung</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3330">pulumi/pulumi-gcp#3330</a></li> <li>Update resources.go to use underscore for role_ids by <a href="https://github.com/maelp"><code>@maelp</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3331">pulumi/pulumi-gcp#3331</a></li> <li>Upgrade pulumi-terraform-bridge to v3.112.0 by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3339">pulumi/pulumi-gcp#3339</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3341">pulumi/pulumi-gcp#3341</a></li> <li>Upgrade terraform-provider-google-beta to v6.49.0 by <a href="https://github.com/blampe"><code>@blampe</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3340">pulumi/pulumi-gcp#3340</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ruifung"><code>@ruifung</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3330">pulumi/pulumi-gcp#3330</a></li> <li><a href="https://github.com/maelp"><code>@maelp</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3331">pulumi/pulumi-gcp#3331</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi-gcp/compare/v8.40.0...v8.41.0">https://github.com/pulumi/pulumi-gcp/compare/v8.40.0...v8.41.0</a></p> <h2>v8.40.0</h2> <h3>Does the PR have any schema changes?</h3> <p>Found 19 breaking changes:</p> <h4>Resources</h4> <ul> <li>"gcp:oracledatabase/autonomousDatabase:AutonomousDatabase": required: <ul> <li><code>🟢</code> "cidr" property is no longer Required</li> <li><code>🟢</code> "network" property is no longer Required</li> </ul> </li> <li>"gcp:oracledatabase/cloudVmCluster:CloudVmCluster": required: <ul> <li><code>🟢</code> "backupSubnetCidr" property is no longer Required</li> <li><code>🟢</code> "cidr" property is no longer Required</li> <li><code>🟢</code> "network" property is no longer Required</li> </ul> </li> </ul> <h4>Types</h4> <ul> <li><code>🟢</code> "gcp:cloudrunv2/getJobTemplateTemplate:getJobTemplateTemplate": required: "gpuZonalRedundancyDisabled" property has changed to Required</li> <li><code>🟢</code> "gcp:compute/getSubnetworksSubnetwork:getSubnetworksSubnetwork": required: "networkName" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterAddonsConfig:getClusterAddonsConfig": required: "lustreCsiDriverConfigs" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterIpAllocationPolicy:getClusterIpAllocationPolicy": required: "additionalIpRangesConfigs" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterNodePoolNetworkConfig:getClusterNodePoolNetworkConfig": required: "subnetwork" property has changed to Required</li> <li><code>🟢</code> "gcp:dataproc/ClusterClusterConfigSecurityConfig:ClusterClusterConfigSecurityConfig": required: "kerberosConfig" property is no longer Required</li> <li><code>🟢</code> "gcp:diagflow/CxWebhookServiceDirectory:CxWebhookServiceDirectory": required: "genericWebService" property is no longer Required</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
| .githooks | ||
| .github | ||
| .vscode | ||
| cmd | ||
| data | ||
| deploy | ||
| docs | ||
| internal | ||
| pkg | ||
| scripts | ||
| tests/integration | ||
| tools | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .golangci.yml | ||
| .goreleaser.yaml | ||
| CLAUDE.md | ||
| complete.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
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-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:
- Adam Jones (Anthropic) @domdomegg
- Tadas Antanavicius (PulseMCP) @tadasant
- Toby Padilla (GitHub) @toby
- Radoslav (Rado) Dimitrov (Stacklok) @rdimitrov
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
- Docker
- Go 1.24.x
- golangci-lint v2.4.0
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.
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-mcpyou must login to GitHub asdomdomegg, or be in a GitHub Action on domdomegg's reposme.adamjones/my-cool-mcpyou must prove ownership ofadamjones.mevia 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!