Skip to content

release: publish as defectdojo-mcp-server - #8

Merged
devGregA merged 1 commit into
mainfrom
release/pypi-name
Oct 28, 2026
Merged

devGregA merged 1 commit into
mainfrom
release/pypi-name

Conversation

@devGregA

Copy link
Copy Markdown
Contributor

Gets the server ready to publish.

An unrelated project already owns defectdojo-mcp on PyPI, so the README's uvx defectdojo-mcp would have installed that package, not this server. The distribution is now defectdojo-mcp-server. Both defectdojo-mcp-server and defectdojo-mcp commands are installed and run the same server. The MCP registry name stays io.github.DefectDojo/defectdojo-mcp.

Changes

  • pyproject.toml: distribution renamed, second console script added. __init__.py reads its version from the new name.
  • server.json: PyPI identifier updated, and the ghcr image added as an OCI package so Docker users can install from the registry too.
  • Dockerfile: io.modelcontextprotocol.server.name label, which the registry checks for OCI packages.
  • release.yml:
    • the image is also tagged with the bare version (0.1.0) that server.json names;
    • the build fails if server.json's versions disagree with the package;
    • the registry publish waits for both PyPI and the image;
    • mcp-publisher is pinned to v1.8.1 and checked against its release checksum instead of downloading latest.
  • README: install lines use defectdojo-mcp-server, with a note that the defectdojo-mcp package on PyPI is a different project. Docker uses ghcr.io/defectdojo/defectdojo-mcp.
  • CONTRIBUTING and CHANGELOG: the publish setup and the package names.

Testing

  • ruff, mypy --strict and pytest: 290 passed, 1 skipped.
  • uv build: the wheel is defectdojo_mcp_server-0.1.0 with both entry points. uvx --from <wheel> defectdojo-mcp-server --version prints 0.1.0.
  • server.json validates against its schema. The workflow's new version check passes, and fails on a deliberately wrong image tag.
  • docker build: the image has the registry label, and both commands report 0.1.0.

To publish (after the repo is public)

  1. PyPI: add a pending trusted publisher for defectdojo-mcp-server (owner DefectDojo, repo defectdojo-mcp, workflow release.yml, environment pypi).
  2. Create the pypi environment in the repo settings.
  3. Set the repository variables PUBLISH_PYPI, PUBLISH_IMAGE and PUBLISH_MCP_REGISTRY to true.
  4. Push tag v0.1.0. After the image lands, make the defectdojo-mcp container package public if it isn't already, then re-run the registry job if it failed on visibility.

🤖 Generated with Claude Code

An unrelated project owns defectdojo-mcp on PyPI, so `uvx defectdojo-mcp`
would install it. The distribution becomes defectdojo-mcp-server and keeps
the defectdojo-mcp command. The MCP registry name is unchanged.

- server.json: PyPI identifier, plus the ghcr image as an OCI package
- Dockerfile: io.modelcontextprotocol.server.name label for the registry
- release.yml: image tagged with the bare version server.json names,
  server.json versions checked against the package, registry publish waits
  for PyPI and the image, mcp-publisher pinned and checksum-verified
- README, CONTRIBUTING, CHANGELOG: new install line and publish setup

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@devGregA
devGregA merged commit e153d66 into main Oct 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant