| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Give the correct URL address in the mcp.json and the main README ## Motivation and Context Improve documentation ## How Has This Been Tested? No Testing. ## Breaking Changes N/A ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed |
||
| .. | ||
| build.sh | ||
| main.go | ||
| mcp.json | ||
| README.md | ||
MCP Registry Publisher Tool
The MCP Registry Publisher Tool is designed to publish Model Context Protocol (MCP) server details to an MCP registry. This tool currently only handles GitHub authentication via device flow and manages the publishing process.
Building the Tool
You can build the publisher tool using the provided build script:
# Build for current platform
./build.sh
# Build for all supported platforms (optional)
./build.sh --all
The compiled binary will be placed in the bin directory.
Usage
# Basic usage
./bin/mcp-publisher --registry-url <REGISTRY_URL> --mcp-file <PATH_TO_MCP_FILE>
# Force a new login even if a token exists
./bin/mcp-publisher --registry-url <REGISTRY_URL> --mcp-file <PATH_TO_MCP_FILE> --login
Command-line Arguments
--registry-url: URL of the MCP registry (required)--mcp-file: Path to the MCP configuration file (required)--login: Force a new GitHub authentication even if a token already exists (overwrites existing token file)--token: Use the provided token instead of GitHub authentication (bypasses the device flow)
Authentication
The tool uses GitHub device flow authentication:
- The tool automatically retrieves the GitHub Client ID from the registry's health endpoint
- When first run (or with
--loginflag), the tool will initiate the GitHub device flow - You'll be provided with a URL and a code to enter
- After successful authentication, the tool saves the token locally for future use
- The token is sent in the HTTP Authorization header with the Bearer scheme
NOTE : Authentication is made on behalf of a OAuth App which you must authorize for respective resources (e.g org)
Example
- Prepare your
mcp.jsonfile with your server details:
{
"name": "io.github.yourusername/your-repository",
"description": "Your MCP server description",
"version_detail": {
"version": "1.0.0"
},
"packages": [
{
"registry_name": "npm",
"name": "your-npm-package",
"version": "1.0.0",
"package_arguments": [
{
"description": "Specify services and permissions",
"is_required": true,
"format": "string",
"value": "-s",
"default": "-s",
"type": "positional",
"value_hint": "-s"
}
],
"environment_variables": [
{
"name": "API_KEY",
"description": "API Key to access the server"
}
]
}
],
"repository": {
"url": "https://github.com/yourusername/your-repository",
"source": "github"
}
}
- Run the publisher tool:
./bin/mcp-publisher --registry-url "https://mcp-registry.example.com" --mcp-file "./mcp.json"
-
Follow the authentication instructions in the terminal if prompted.
-
Upon successful publication, you'll see a confirmation message.
Important Notes
- The GitHub Client ID is automatically retrieved from the registry's health endpoint
- The authentication token is saved in a file named
.mcpregistry_tokenin the current directory - The tool requires an active internet connection to authenticate with GitHub and communicate with the registry
- Make sure the repository and package mentioned in your
mcp.jsonfile exist and are accessible