Skip to content

feat(excalidraw-mcp): add excalidraw-mcp image - #10

Merged
swibrow merged 1 commit into
mainfrom
feat/excalidraw-mcp
Aug 14, 2026
Merged

feat(excalidraw-mcp): add excalidraw-mcp image#10
swibrow merged 1 commit into
mainfrom
feat/excalidraw-mcp

Conversation

@swibrow

@swibrow swibrow commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Moves the excalidraw-mcp image out of home-ops's docker/ tree and into this repo, so it publishes as ghcr.io/cloudsnacks/excalidraw-mcp.

Upstream (excalidraw/excalidraw-mcp) publishes neither a container image nor an npm package, so the build clones the git tag. npm ci is not usable at v0.3.2 - the shipped lockfile is out of sync with its package.json.

Adapted to this repo's conventions on the way in:

  • base image digest-pinned (node:24-bookworm-slim), both stages
  • EXCALIDRAW_MCP_VERSION carries a Renovate annotation; metadata.yaml version drops the upstream v prefix so CI's semver tags stay valid
  • dedicated uid/gid 1001 user instead of the base image's node (uid 1000)
  • metadata.yaml test backgrounds the server and completes an MCP initialize handshake, which is the only check that proves the bundle loads and the listener comes up

Verified locally on arm64 with Apple container: build succeeds, hadolint is clean against .hadolint.yaml, id -u is 1001, and the metadata test exits 0 with a serverInfo response.

Follow-up: home-ops's MCPServer will point at ghcr.io/cloudsnacks/excalidraw-mcp:0.3.2, which only resolves once this merges and CI publishes.

https://claude.ai/code/session_01RLU9aha2fJ7f1gYHcofLsZ

Upstream (excalidraw/excalidraw-mcp) publishes neither a container image nor an
npm package, so the image builds from the git tag. Moved here from home-ops's
docker/ tree, which is being retired in favour of this repo.

Adapted to this repo's conventions on the way in: base digest-pinned, the
upstream version carries a Renovate annotation, and the runtime user is a
dedicated uid/gid 1001 rather than the base image's node user.

Verified locally on arm64: hadolint clean, the image runs as 1001, and the
metadata test completes an MCP initialize handshake against the running server.

Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>
@swibrow
swibrow merged commit 4eddbe9 into main Aug 14, 2026
5 checks passed
@swibrow
swibrow deleted the feat/excalidraw-mcp branch August 14, 2026 14:20
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