Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 46 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,43 @@
# Contributing to Docker MCP Registry

# 🤝 Contributing to Docker MCP Registry
Thank you for your interest in contributing to the official Docker MCP Registry.
This document outlines how to contribute to this project.

## Pull request process

- All commits must include a Signed-off-by trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin.
## 🔄 Pull request process overview
- Fork the repository to your own GitHub account and clone it locally.
- Make your changes. To add a new MCP Server, create a new folder under `servers` with the name of your server and add a `server.yaml` inside.
- Correctly format your commit messages, see Commit message guidelines below.
- Repository includes a `servers` folder where you should add a new folder with a `server.yaml` inside.
- Repository includes a `scripts` folder with bash scripts to automate some of the steps.
- Correctly format your commit messages, see Commit message guidelines below. _Note: All commits must include a Signed-off-by trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin._
- Open a PR by ensuring the title and its description reflect the content of the PR.
- Ensure that CI passes, if it fails, fix the failures.
- Every pull request requires a review from the Docker team before merging.
- Once approved, all of your commits will be squashed into a single commit with your PR title.

## Getting Started

You will need to provide:
## 📋 Step-by-Step Guide
### 1️⃣ Fork this repository
Fork the repository to your own GitHub account and clone it locally.

### 2️⃣ Add your entry locally
Add your entry by creating a new folder following the `owner@name` template, and create a `server.yaml` inside describing your MCP server. You will need to provide:
- A valid name for your MCP
- The GitHub URL of your project. The project needs to have a valid Dockerfile.
- A brief description of your MCP Server.

Let's assume we have a new MCP Server to access my org's database. The MCP is called `My-ORGDB-MCP` and the GitHub repo is located at: https://github.com/myorg/my-orgdb-mcp We have created a bash script to simplify the creation process.
- A category for the MCP server, one of:
* 'ai'
* 'data-visualization'
* 'database'
* 'devops'
* 'ecommerce'
* 'finance'
* 'games'
* 'communication'
* 'monitoring'
* 'productivity'
* 'search'

#### 🚀 Generate folder and `server.yaml` using `new-server.sh` script
You can use our script to automate the creation of the files. Let's assume we have a new MCP Server to access my org's database. The MCP is called `My-ORGDB-MCP` and the GitHub repo is located at: `https://github.com/myorg/my-orgdb-mcp`

You can call the tool passing the MCP server name, category, and github url.

```
./scripts/new-server.sh My-ORGDB-MCP databases https://github.com/myorg/my-orgdb-mcp
Expand Down Expand Up @@ -65,26 +80,38 @@ source:
# - param_name
```

If you want to use a Docker image built by your organisation, you can pass it to the script as follows:
If you want to provide a specific Docker image built by your organisation, you can pass it to the script as follows:

```
IMAGE_NAME=myorg/myimage ./scripts/new-server.sh My-ORGDB-MCP databases https://github.com/myorg/my-orgdb-mcp
```

As you can see, the configuration block has been commented out. If you need to pass environmental variables or secrets, please uncomment the
necessary lines.
As you can see, the configuration block has been commented out. If you need to pass environmental variables or secrets, please uncomment the necessary lines.

🔒 If you don't provide a Docker image, we will build the image for you and host it in [Docker Hub's `mcp` namespace](https://hub.docker.com/u/mcp), the benefits are: image will include cryptographic signatures, provenance tracking, SBOMs, and automatic security updates. Otherwise, self-built images still benefit from container isolation but won't include the enhanced security features of Docker-built images.

### 3️⃣ Run & Test your MCP Server locally
🚧 tbd

### 4️⃣ Create `commit` and raise the Pull Request
🚧 tbd

### 5️⃣ Wait for review and approval
Upon approval your entry will be processed and it will be available in 24 hours at:
- [MCP catalog](https://hub.docker.com/mcp)
- [Docker Desktop's MCP Toolkit](https://www.docker.com/products/docker-desktop/)
- [Docker Hub `mcp` namespace](https://hub.docker.com/u/mcp) (for MCP servers built by Docker)

## Testing your MCP Server

## Code of Conduct
## 📜 Code of Conduct

This project follows a Code of Conduct. Please review it in
[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).

## Questions
## Questions

If you have questions, please create an issue in the repository.

## License
## 📄 License

By contributing, you agree that your contributions will be licensed under the MIT License.
49 changes: 43 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,51 @@
# Official Docker MCP Registry
# 🐳 Official Docker MCP Registry

## Contributing to the Docker MCP Registry
Welcome to the Official Docker MCP (Model Context Protocol) Registry! This repository serves as a curated catalog of MCP servers that can be easily discovered, deployed, and integrated with any MCP Client and compatible with Docker tooling.

We welcome contributions to the Official Docker MCP Registry! If you'd like to contribute, please review the [CONTRIBUTING](CONTRIBUTING.md) guide for details on how to get started.
Entries in this catalog will be available at:
- [MCP catalog](https://hub.docker.com/mcp)
- [Docker Desktop's MCP Toolkit](https://www.docker.com/products/docker-desktop/)
- [Docker Hub `mcp` namespace](https://hub.docker.com/u/mcp) (for MCP servers built by Docker)

[TODO] Adding an MCP Server to the Docker Registry (why is good)
## 🤖 What is MCP?
The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely connect with external data sources and tools. Read more at [MCP Official Documantation](https://modelcontextprotocol.io/introduction).

To modify or remove an MCP Server from the registry, please open an issue in this repository.
## ✨ Why Use the Docker MCP Registry?
- **Enterprise Security**: MCP servers built by Docker include cryptographic signatures, provenance tracking, and Software Bills of Materials (SBOMs) for maximum trust and compliance
- **Container Isolation**: All MCP servers run in isolated containers, protecting your host system from potential security vulnerabilities
- **Curated Quality**: All MCP servers undergo review to ensure they meet quality and security standards
- **Easy Discovery**: Browse and find MCP servers for your specific use cases or share yours to millions of developers using Docker tools
- **Docker Integration**: Seamless deployment with Docker containers

Any MCP Server that is not compliant, will be condemned and removed from the registry.
## 🤝 Contributing to the Docker MCP Registry
We welcome contributions to the Official Docker MCP Registry! If you'd like to contribute, you can submit a PR with the metadata information and it will be added to the [MCP catalog](https://hub.docker.com/mcp), to [Docker Desktop's MCP Toolkit](https://www.docker.com/products/docker-desktop/), and (for MCP servers images built by Docker) in `mcp` namespace in [Docker Hub](https://hub.docker.com/u/mcp).

To add your MCP server to the registry, please review the [CONTRIBUTING](CONTRIBUTING.md) guide for detailed instructions. We support two types of submissions:

### 🏗️ Option A: Docker-Built Official Image (Recommended)
Have Docker build and maintain your server image with enhanced security features. You'll submit the required information via pull request and upon approval Docker will build, sign, and publish your image to mcp/your-server-name on Docker Hub and the catalog entry will be available in the catalog in 24 hours.

_**Benefits: Your image will include cryptographic signatures, provenance tracking, SBOMs, and automatic security updates**_

### 📦 Option B: Self-Provided Pre-Built Image
In this option, you'll provide an already built image which will be used directly in the catalog.

_**Note: Self-built images still benefit from container isolation but won't include the enhanced security features of Docker-built images.**_

## ✏️ Modifying or Removing Servers
To request modifications or removal of an existing MCP Server:
1. For modifications: Submit a Pull Request with your proposed changes
2. For removal requests: Open an issue explaining the reason for removal

## ✅ Compliance and Quality Standards
All MCP servers in this registry must:
- Follow security best practices
- Include comprehensive documentation
- Provide working Docker deployment
- Maintain compatibility with MCP standards
- Include proper error handling and logging

_**Non-compliant servers will be reviewed and may be removed from the registry.**_

## License

Expand Down
Loading