Releasing¶
Releases publish the Python distributions to PyPI with GitHub OIDC and then publish the matching metadata to the official MCP Registry. No long-lived PyPI or MCP Registry token is stored in GitHub.
One-time repository setup¶
- Sign in to PyPI and open Your account > Publishing > Add a new pending publisher.
- Use these values:
| Field | Value |
|---|---|
| PyPI project name | proton-safe-mcp |
| GitHub owner | fbossiere |
| Repository | proton-safe-mcp |
| Workflow | release.yml |
| Environment | pypi |
- In GitHub, create an environment named
pypi. Restrict deployments to version tags when the repository plan supports deployment branch and tag rules.
The pending publisher creates the PyPI project during the first successful workflow run. Do not manually upload the same version first.
Prepare a release¶
- Update
src/proton_safe_mcp/__init__.py,server.json, the package version insideserver.json, the documentation version, andCHANGELOG.mdto the same semantic version. - Run the complete quality gate from Development.
- Merge the release changes to
main. - Create a GitHub release whose tag is exactly
vfollowed by the package version, for examplev1.0.1.
Publishing the GitHub release starts .github/workflows/release.yml. The workflow verifies version
consistency, rebuilds and tests the distributions, publishes them to PyPI, and only then publishes
server.json to the MCP Registry.
Verify publication¶
- PyPI:
https://pypi.org/project/proton-safe-mcp/ - MCP Registry API:
https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.fbossiere/proton-safe-mcp - Clean installation: