graphiti/mcp_server/config/config.yaml
Lars Varming 72933f1d5d Fix MCP server compatibility and upgrade to SDK 1.21.0
- Upgrade MCP SDK from 1.6.0 to 1.21.0 (latest)
- Add backward compatible tool wrappers (search_memory_nodes, etc.)
- Fix parameter compatibility (group_id/group_ids, last_n/max_episodes)
- Fix HTTP transport fallback to SSE (no more crashes)
- Update default transport to stdio for broader compatibility
- Add test import fallback for streamable_http
- Update documentation with compatibility notes

Fixes all issues identified in external code review:
 HTTP transport broken → graceful SSE fallback
 Tool name mismatches → compatibility wrappers added
 Parameter mismatches → dual parameter support
 Test imports fail → SSE fallback added
⚠️ Protocol version drift → SDK 1.21.0 installed (2024-11-05)

All changes in mcp_server/ only - zero modifications to graphiti_core/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 10:05:26 +01:00

111 lines
No EOL
3.8 KiB
YAML

# Graphiti MCP Server Configuration
# This file supports environment variable expansion using ${VAR_NAME} or ${VAR_NAME:default_value}
#
# IMPORTANT: Set SEMAPHORE_LIMIT environment variable to control episode processing concurrency
# Default: 10 (suitable for OpenAI Tier 3, mid-tier Anthropic)
# See README.md "Concurrency and LLM Provider 429 Rate Limit Errors" section for tuning guidance
server:
transport: "stdio" # Options: stdio, sse, http (http falls back to sse)
host: "0.0.0.0"
port: 8000
llm:
provider: "openai" # Options: openai, azure_openai, anthropic, gemini, groq
model: "gpt-5-mini"
max_tokens: 4096
providers:
openai:
api_key: ${OPENAI_API_KEY}
api_url: ${OPENAI_API_URL:https://api.openai.com/v1}
organization_id: ${OPENAI_ORGANIZATION_ID:}
azure_openai:
api_key: ${AZURE_OPENAI_API_KEY}
api_url: ${AZURE_OPENAI_ENDPOINT}
api_version: ${AZURE_OPENAI_API_VERSION:2024-10-21}
deployment_name: ${AZURE_OPENAI_DEPLOYMENT}
use_azure_ad: ${USE_AZURE_AD:false}
anthropic:
api_key: ${ANTHROPIC_API_KEY}
api_url: ${ANTHROPIC_API_URL:https://api.anthropic.com}
max_retries: 3
gemini:
api_key: ${GOOGLE_API_KEY}
project_id: ${GOOGLE_PROJECT_ID:}
location: ${GOOGLE_LOCATION:us-central1}
groq:
api_key: ${GROQ_API_KEY}
api_url: ${GROQ_API_URL:https://api.groq.com/openai/v1}
embedder:
provider: "openai" # Options: openai, azure_openai, gemini, voyage
model: "text-embedding-3-small"
dimensions: 1536
providers:
openai:
api_key: ${OPENAI_API_KEY}
api_url: ${OPENAI_API_URL:https://api.openai.com/v1}
organization_id: ${OPENAI_ORGANIZATION_ID:}
azure_openai:
api_key: ${AZURE_OPENAI_API_KEY}
api_url: ${AZURE_OPENAI_EMBEDDINGS_ENDPOINT}
api_version: ${AZURE_OPENAI_API_VERSION:2024-10-21}
deployment_name: ${AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT}
use_azure_ad: ${USE_AZURE_AD:false}
gemini:
api_key: ${GOOGLE_API_KEY}
project_id: ${GOOGLE_PROJECT_ID:}
location: ${GOOGLE_LOCATION:us-central1}
voyage:
api_key: ${VOYAGE_API_KEY}
api_url: ${VOYAGE_API_URL:https://api.voyageai.com/v1}
model: "voyage-3"
database:
provider: "falkordb" # Default: falkordb. Options: neo4j, falkordb
providers:
falkordb:
uri: ${FALKORDB_URI:redis://localhost:6379}
password: ${FALKORDB_PASSWORD:}
database: ${FALKORDB_DATABASE:default_db}
neo4j:
uri: ${NEO4J_URI:bolt://localhost:7687}
username: ${NEO4J_USER:neo4j}
password: ${NEO4J_PASSWORD}
database: ${NEO4J_DATABASE:neo4j}
use_parallel_runtime: ${USE_PARALLEL_RUNTIME:false}
graphiti:
group_id: ${GRAPHITI_GROUP_ID:main}
episode_id_prefix: ${EPISODE_ID_PREFIX:}
user_id: ${USER_ID:mcp_user}
entity_types:
- name: "Preference"
description: "User preferences, choices, opinions, or selections (PRIORITIZE over most other types except User/Assistant)"
- name: "Requirement"
description: "Specific needs, features, or functionality that must be fulfilled"
- name: "Procedure"
description: "Standard operating procedures and sequential instructions"
- name: "Location"
description: "Physical or virtual places where activities occur"
- name: "Event"
description: "Time-bound activities, occurrences, or experiences"
- name: "Organization"
description: "Companies, institutions, groups, or formal entities"
- name: "Document"
description: "Information content in various forms (books, articles, reports, etc.)"
- name: "Topic"
description: "Subject of conversation, interest, or knowledge domain (use as last resort)"
- name: "Object"
description: "Physical items, tools, devices, or possessions (use as last resort)"