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 install → npm 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.
Summary
v1 published a multi-arch container image to GHCR (
publish-github-container-registryjob inmain.yml, built from a rootDockerfile). v2 dropped in with no Dockerfile — itsclient//server//cli/layout is gone, replaced by the single@modelcontextprotocol/inspectorpackage with amcp-inspectorlauncher entrypoint. Decide whether v2 ships a Docker image and, if so, add a v2Dockerfile+ the GHCR publish job.Split out of #1640 (which wired the npm
publishjob): 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)
Dockerfilefor the single-package/launcher architecture: multi-stage build (npm install→npm run build), a slim prod stage carrying the clientbuild/outputs +dist/+ runtime deps,ENTRYPOINT= the launcher (node clients/launcher/build/index.js --web,HOST=0.0.0.0,CLIENT_PORTexposed). Verifydocker build .and adocker runserving/.publish-github-container-registryjob into.github/workflows/main.yml: release-gated,docker/login-action→ ghcr.io,docker/metadata-action, QEMU + Buildx forlinux/amd64,linux/arm64,docker/build-push-action, andactions/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/inspectorsufficient for its users? If not shipping one, close this and drop the GHCR note from the README's release docs.Acceptance
Dockerfile+ GHCR job, with a verified localdocker build/docker run; or a documented decision not to ship an image.Follow-up from #1640; parent tracking #1636.