|
1 | | -# Contributing to Docker MCP Registry |
2 | | - |
| 1 | +# 🤝 Contributing to Docker MCP Registry |
3 | 2 | Thank you for your interest in contributing to the official Docker MCP Registry. |
4 | 3 | This document outlines how to contribute to this project. |
5 | 4 |
|
6 | | -## Pull request process |
7 | | - |
8 | | -- 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. |
| 5 | +## 🔄 Pull request process overview |
9 | 6 | - Fork the repository to your own GitHub account and clone it locally. |
10 | | -- 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. |
11 | | -- Correctly format your commit messages, see Commit message guidelines below. |
| 7 | +- Repository includes a `servers` folder where you should add a new folder with a `server.yaml` inside. |
| 8 | +- Repository includes a `scripts` folder with bash scripts to automate some of the steps. |
| 9 | +- 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._ |
12 | 10 | - Open a PR by ensuring the title and its description reflect the content of the PR. |
13 | 11 | - Ensure that CI passes, if it fails, fix the failures. |
14 | 12 | - Every pull request requires a review from the Docker team before merging. |
15 | 13 | - Once approved, all of your commits will be squashed into a single commit with your PR title. |
16 | 14 |
|
17 | | -## Getting Started |
18 | | - |
19 | | -You will need to provide: |
| 15 | +## 📋 Step-by-Step Guide |
| 16 | +### 1️⃣ Fork this repository |
| 17 | +Fork the repository to your own GitHub account and clone it locally. |
20 | 18 |
|
| 19 | +### 2️⃣ Add your entry locally |
| 20 | +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: |
21 | 21 | - A valid name for your MCP |
22 | 22 | - The GitHub URL of your project. The project needs to have a valid Dockerfile. |
23 | 23 | - A brief description of your MCP Server. |
24 | | - |
25 | | -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. |
| 24 | +- A category for the MCP server, one of: |
| 25 | +* 'ai' |
| 26 | +* 'data-visualization' |
| 27 | +* 'database' |
| 28 | +* 'devops' |
| 29 | +* 'ecommerce' |
| 30 | +* 'finance' |
| 31 | +* 'games' |
| 32 | +* 'communication' |
| 33 | +* 'monitoring' |
| 34 | +* 'productivity' |
| 35 | +* 'search' |
| 36 | + |
| 37 | +#### 🚀 Generate folder and `server.yaml` using `new-server.sh` script |
| 38 | +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` |
| 39 | + |
| 40 | +You can call the tool passing the MCP server name, category, and github url. |
26 | 41 |
|
27 | 42 | ``` |
28 | 43 | ./scripts/new-server.sh My-ORGDB-MCP databases https://github.com/myorg/my-orgdb-mcp |
@@ -65,26 +80,38 @@ source: |
65 | 80 | # - param_name |
66 | 81 | ``` |
67 | 82 |
|
68 | | -If you want to use a Docker image built by your organisation, you can pass it to the script as follows: |
| 83 | +If you want to provide a specific Docker image built by your organisation, you can pass it to the script as follows: |
69 | 84 |
|
70 | 85 | ``` |
71 | 86 | IMAGE_NAME=myorg/myimage ./scripts/new-server.sh My-ORGDB-MCP databases https://github.com/myorg/my-orgdb-mcp |
72 | 87 | ``` |
73 | 88 |
|
74 | | -As you can see, the configuration block has been commented out. If you need to pass environmental variables or secrets, please uncomment the |
75 | | -necessary lines. |
| 89 | +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. |
| 90 | + |
| 91 | +🔒 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. |
| 92 | + |
| 93 | +### 3️⃣ Run & Test your MCP Server locally |
| 94 | +🚧 tbd |
| 95 | + |
| 96 | +### 4️⃣ Create `commit` and raise the Pull Request |
| 97 | +🚧 tbd |
| 98 | + |
| 99 | +### 5️⃣ Wait for review and approval |
| 100 | +Upon approval your entry will be processed and it will be available in 24 hours at: |
| 101 | +- [MCP catalog](https://hub.docker.com/mcp) |
| 102 | +- [Docker Desktop's MCP Toolkit](https://www.docker.com/products/docker-desktop/) |
| 103 | +- [Docker Hub `mcp` namespace](https://hub.docker.com/u/mcp) (for MCP servers built by Docker) |
76 | 104 |
|
77 | | -## Testing your MCP Server |
78 | 105 |
|
79 | | -## Code of Conduct |
| 106 | +## 📜 Code of Conduct |
80 | 107 |
|
81 | 108 | This project follows a Code of Conduct. Please review it in |
82 | 109 | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). |
83 | 110 |
|
84 | | -## Questions |
| 111 | +## ❓ Questions |
85 | 112 |
|
86 | 113 | If you have questions, please create an issue in the repository. |
87 | 114 |
|
88 | | -## License |
| 115 | +## 📄 License |
89 | 116 |
|
90 | 117 | By contributing, you agree that your contributions will be licensed under the MIT License. |
0 commit comments