services: graphiti-mcp: image: zepai/knowledge-graph-mcp:latest build: context: . dockerfile: Dockerfile env_file: - path: .env required: false # Makes the file optional. Default value is 'true' environment: # Database configuration for KuzuDB - KUZU_DB=${KUZU_DB:-:memory:} - KUZU_MAX_CONCURRENT_QUERIES=${KUZU_MAX_CONCURRENT_QUERIES:-1} # LLM provider configurations - OPENAI_API_KEY=${OPENAI_API_KEY} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - GROQ_API_KEY=${GROQ_API_KEY} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT} # Embedder provider configurations - VOYAGE_API_KEY=${VOYAGE_API_KEY} - AZURE_OPENAI_EMBEDDINGS_ENDPOINT=${AZURE_OPENAI_EMBEDDINGS_ENDPOINT} - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=${AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT} # Application configuration - GRAPHITI_GROUP_ID=${GRAPHITI_GROUP_ID:-main} - SEMAPHORE_LIMIT=${SEMAPHORE_LIMIT:-10} - CONFIG_PATH=/app/config/config.yaml - PATH=/root/.local/bin:${PATH} volumes: - ./config.yaml:/app/config/config.yaml:ro # Optional: If you want to persist KuzuDB data, uncomment the following line # and change KUZU_DB to /data/kuzu.db # - kuzu_data:/data ports: - "8000:8000" # Expose the MCP server via HTTP for SSE transport command: ["uv", "run", "graphiti_mcp_server.py", "--transport", "sse", "--config", "/app/config/config.yaml"] # Optional: Volume for persistent KuzuDB storage # volumes: # kuzu_data: