Skip to content

Decide + wire v2 Docker image (GHCR) — v2 has no Dockerfile #1646

Description

@cliffhall

Summary

v1 published a multi-arch container image to GHCR (publish-github-container-registry job in main.yml, built from a root Dockerfile). v2 dropped in with no Dockerfile — its client//server//cli/ layout is gone, replaced by the single @modelcontextprotocol/inspector package with a mcp-inspector launcher entrypoint. Decide whether v2 ships a Docker image and, if so, add a v2 Dockerfile + the GHCR publish job.

Split out of #1640 (which wired the npm publish job): the npm publish and the container publish are independent jobs, and the container piece needs a net-new, docker build-tested Dockerfile that couldn't be produced/verified alongside the workflow change.

What's needed (if we ship an image)

  • A v2 Dockerfile for the single-package/launcher architecture: multi-stage build (npm installnpm run build), a slim prod stage carrying the client build/ outputs + dist/ + runtime deps, ENTRYPOINT = the launcher (node clients/launcher/build/index.js --web, HOST=0.0.0.0, CLIENT_PORT exposed). Verify docker build . and a docker run serving /.
  • Port the v1 publish-github-container-registry job into .github/workflows/main.yml: release-gated, docker/login-action → ghcr.io, docker/metadata-action, QEMU + Buildx for linux/amd64,linux/arm64, docker/build-push-action, and actions/attest-build-provenance (packages: write, attestations: write, id-token: write).

Decision to make first

Does v2 need a container image at all, or is npx @modelcontextprotocol/inspector sufficient for its users? If not shipping one, close this and drop the GHCR note from the README's release docs.

Acceptance

  • Either: a v2 Dockerfile + GHCR job, with a verified local docker build/docker run; or a documented decision not to ship an image.

Follow-up from #1640; parent tracking #1636.

Metadata

Metadata

Assignees

Labels

v2Issues and PRs for v2

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions