services: falkordb: image: falkordb/falkordb:latest ports: - "6379:6379" # Redis/FalkorDB port environment: - FALKORDB_PASSWORD=${FALKORDB_PASSWORD:-} volumes: - falkordb_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 10s 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' depends_on: falkordb: condition: service_healthy environment: # Database configuration - FALKORDB_URI=${FALKORDB_URI:-redis://falkordb:6379} - FALKORDB_PASSWORD=${FALKORDB_PASSWORD:-} - FALKORDB_DATABASE=${FALKORDB_DATABASE:-default_db} # 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/config-docker-falkordb.yaml:/app/config/config.yaml:ro ports: - "8000:8000" # Expose the MCP server via HTTP transport command: ["uv", "run", "src/graphiti_mcp_server.py", "--transport", "http", "--config", "/app/config/config.yaml"] volumes: falkordb_data: driver: local