Skip to content

MCP T14 — Packaging: Dockerfile, docker-compose, README quickstart #662

@DvirDukhan

Description

@DvirDukhan

Context

Once cgraph-mcp is wired up, end users need a frictionless way to run it: a Docker image they can pull, a docker compose up that brings up FalkorDB + the MCP server together, and a README section they can copy-paste to register the server in Claude Code or Cursor.

The existing Dockerfile builds the FastAPI web service. We extend it (env-var switch or new stage) so the same image can run as the MCP stdio server when invoked differently.

Scope (in)

  1. Dockerfile changes — support running cgraph-mcp as the entrypoint via env-var switch or a dedicated stage. The default behavior (FastAPI server) must not regress.
  2. docker-compose.yml — add an mcp service alongside the existing falkordb service. Wire the MCP service to the FalkorDB service via internal networking and the documented env vars.
  3. README quickstart — new section showing:
    • The claude mcp add-json '{...}' snippet (from design doc §Configuration)
    • A worked example: clone the repo, docker compose up, register MCP, ask Claude Code a question
    • A note on the stdio transport (Phase 1) and that HTTP/SSE is deferred.

Scope (out)

  • Publishing a separate falkordb/code-graph-mcp image — for v1, the existing image just gains a new mode.
  • Helm chart / k8s manifests.
  • HTTP/SSE transport (deferred to Phase 1.5).

Files

  • modified Dockerfile
  • modified docker-compose.yml
  • modified README.md

Acceptance criteria

  • docker compose up brings up FalkorDB + MCP server; an MCP client can connect over stdio (verified via the smoke test pattern from T1).
  • README copy-paste flow successfully registers code-graph MCP in Claude Code on a fresh checkout.
  • make build-prod still passes.
  • Existing release-image.yml CI Docker build job still green.
  • Default Docker entrypoint behavior (FastAPI web server) is unchanged.
  • README section calls out stdio-only Phase 1 limitation.

Dependencies

Notes for the implementer

  • The cleanest separation is probably an env var like CGRAPH_MODE=mcp|web consumed by an entrypoint shim, rather than two separate stages — the image stays single, smaller to ship, and easier to test.
  • For the README, prefer a one-screen quickstart over an exhaustive reference. Link to MCP_SERVER_DESIGN.md for the full story.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmcpMCP server (model context protocol) work

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions