Graphiti MCP Server ð§
ããŒã«ã«Graphiti MCP Server ð§ ã«ã€ããŠ
Graphiti MCP Serverã¯ãAIãšãŒãžã§ã³ãåãã«Neo4jã§ãã¬ããžã°ã©ãã管çã»æ€çŽ¢ãããµãŒããŒã§ããã«ã¹ã¿ã ãšã³ãã£ãã£æœåºãšã»ãã³ãã£ãã¯æ€çŽ¢ã«å¯Ÿå¿ããDockerã§ãããã€ã§ããŸãã
äž»ãªæ©èœ
- 01Neo4jã«ãããã¬ããžã°ã©ã管ç
- 02ã«ã¹ã¿ã ãšã³ãã£ãã£æœåº
- 03ã»ãã³ãã£ãã¯æ€çŽ¢
- 04OpenAIã¢ãã«é£æº
- 05Dockerãããã€å¯Ÿå¿
掻çšã·ãŒã³
- 01AIãšãŒãžã§ã³ãçšã®ã°ã©ãæ å ±ã®ä¿åãšæ€çŽ¢
- 02ããã¹ãããã®ã«ã¹ã¿ã ãšã³ãã£ãã£æœåº
- 03ã»ãã³ãã£ãã¯æ€çŽ¢ã«ããç¥èã®ååŸ
MCP 察å¿
SSEãWebSocketãstdioã®åãã©ã³ã¹ããŒããéããŠãMCPã¯ã©ã€ã¢ã³ãã«ãã¬ããžã°ã©ãæ©èœãæäŸããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
Graphiti MCP Server ð§
ð Neo4j ã䜿çšããModel Context ProtocolïŒMCPïŒãšçµ±åããããAI ãšãŒãžã§ã³ãåãã®é«æ§èœãªãã¬ããžã°ã©ããµãŒããŒã§ãã
ð ç¹é·
- ð Neo4j ã«ããåçãªãã¬ããžã°ã©ã管ç
- ð€ OpenAI ã¢ãã«ãšã®ã·ãŒã ã¬ã¹ãªçµ±å
- ð MCPïŒModel Context ProtocolïŒããµããŒã
- ð³ Docker 察å¿ã®ãããã€
- ð¯ ã«ã¹ã¿ã ãšã³ãã£ãã£æœåºæ©èœ
- ð é«åºŠãªã»ãã³ãã£ãã¯æ€çŽ¢æ©èœ
ð ïž ã€ã³ã¹ããŒã«
åææ¡ä»¶
- Docker ãš Docker Compose
- Python 3.10 以é
- OpenAI API ããŒ
- æäœ 4GB ã® RAMïŒ8GB ãæšå¥šïŒ
- 2GB ã®ç©ºããã£ã¹ã¯å®¹é
ã¯ã€ãã¯ã¹ã¿ãŒã ð
- ãªããžããªãã¯ããŒã³ããŸãïŒ
git clone https://github.com/gifflet/graphiti-mcp-server.git
cd graphiti-mcp-server
- ç°å¢å€æ°ãèšå®ããŸãïŒ
cp .env.sample .env
.envãç·šéããŠèšå®ãè¡ããŸãïŒ
# Required for LLM operations
OPENAI_API_KEY=your_openai_api_key_here
MODEL_NAME=gpt-4.1-mini
# Optional: Custom OpenAI endpoint (e.g., for proxies)
# OPENAI_BASE_URL=https://api.openai.com/v1
# Neo4j Configuration (defaults work with Docker)
NEO4J_URI=bolt://neo4j:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=demodemo
- ãµãŒãã¹ãèµ·åããŸãïŒ
docker compose up -d
- ã€ã³ã¹ããŒã«ã確èªããŸãïŒ
# Check if services are running
docker compose ps
# Check logs
docker compose logs graphiti-mcp
ä»£æ¿æ¹æ³ïŒç°å¢å€æ°
ç°å¢å€æ°ãçŽæ¥æå®ããŠå®è¡ã§ããŸãïŒ
OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up
ð§ èšå®
ãµãŒãã¹ã®ããŒã ð
| ãµãŒãã¹ | ããŒã | çšé |
|---|---|---|
| Neo4j Browser | 7474 | ã°ã©ããèŠèŠåããããã® Web ã€ã³ã¿ãŒãã§ãŒã¹ |
| Neo4j Bolt | 7687 | ããŒã¿ããŒã¹æ¥ç¶ |
| Graphiti MCP | 8000 | MCP ãµãŒããŒã®ãšã³ããã€ã³ã |
ç°å¢å€æ° ð§
OpenAI ã®èšå®
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
OPENAI_API_KEY | â | - | OpenAI API ã㌠|
OPENAI_BASE_URL | â | - | ã«ã¹ã¿ã OpenAI API ãšã³ããã€ã³ãïŒOpenAI SDK ã䜿çšïŒ |
MODEL_NAME | â | gpt-4.1-mini | 䜿çšããã¡ã€ã³ã® LLM ã¢ãã« |
SMALL_MODEL_NAME | â | gpt-4.1-nano | 軜éãªã¿ã¹ã¯åãã®å°å LLM ã¢ãã« |
LLM_TEMPERATURE | â | 0.0 | LLM ã®æž©åºŠïŒ0.0ïœ2.0ïŒ |
EMBEDDER_MODEL_NAME | â | text-embedding-3-small | åã蟌ã¿ã¢ãã« |
Neo4j ã®èšå®
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
NEO4J_URI | â | bolt://neo4j:7687 | Neo4j æ¥ç¶ URI |
NEO4J_USER | â | neo4j | Neo4j ã®ãŠãŒã¶ãŒå |
NEO4J_PASSWORD | â | demodemo | Neo4j ã®ãã¹ã¯ãŒã |
ãµãŒããŒã®èšå®
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
MCP_SERVER_HOST | â | - | MCP ãµãŒããŒã®ãã€ã³ãå ãã¹ã |
SEMAPHORE_LIMIT | â | 10 | LLM åŒã³åºãã®åæå®è¡æ°ã®äžé |
Azure OpenAI ã®èšå®ïŒä»»æïŒ
Azure OpenAI ã®ãããã€ã§ã¯ãæšæºã® OpenAI èšå®ã®ä»£ããã«ä»¥äžã®ç°å¢å€æ°ã䜿çšããŸãã
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
AZURE_OPENAI_ENDPOINT | â * | - | Azure OpenAI ã®ãšã³ããã€ã³ã URL |
AZURE_OPENAI_API_VERSION | â * | - | Azure OpenAI ã® API ããŒãžã§ã³ |
AZURE_OPENAI_DEPLOYMENT_NAME | â * | - | Azure OpenAI ã®ãããã€å |
AZURE_OPENAI_USE_MANAGED_IDENTITY | â | false | èªèšŒã« Azure ãããŒãžã ID ãäœ¿çš |
AZURE_OPENAI_EMBEDDING_ENDPOINT | â | - | åã蟌ã¿çšã®å¥ãšã³ããã€ã³ã |
AZURE_OPENAI_EMBEDDING_API_VERSION | â | - | åã蟌ã¿çšã® API ããŒãžã§ã³ |
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME | â | - | åã蟌ã¿çšã®ãããã€å |
AZURE_OPENAI_EMBEDDING_API_KEY | â | - | åã蟌ã¿çšã®å¥ã® API ã㌠|
* Azure OpenAI ã®äœ¿çšæã«å¿ é ã§ã
泚ïŒ
OPENAI_BASE_URL㯠OpenAI Python SDK ãçŽæ¥äœ¿çšããŸãããããã·æ§æãã«ã¹ã¿ã ãšã³ããã€ã³ãã§åœ¹ç«ã¡ãŸãSEMAPHORE_LIMIT㯠LLM API åŒã³åºãã®åæå®è¡æ°ãå¶åŸ¡ããŸããã¬ãŒãå¶éã«éããå Žåã¯å€ãäžããã¹ã«ãŒããããé«ããå Žåã¯å€ãäžããŠãã ãã- Azure ã®èšå®ã¯æšæºã® OpenAI èšå®ã«ä»£ãããã®ã§ããäž¡æ¹ã®èšå®ãæ··åšãããªãã§ãã ãã
Neo4j ã®èšå® ðïž
Neo4j ã®ããã©ã«ãèšå®ïŒ
- ãŠãŒã¶ãŒåïŒ
neo4j - ãã¹ã¯ãŒãïŒ
demodemo - URIïŒ
bolt://neo4j:7687ïŒDocker ãããã¯ãŒã¯å ïŒ - éçºåãã«æé©åãããã¡ã¢ãªèšå®
Docker ç°å¢å€æ° ð³
ç°å¢å€æ°ãçŽæ¥æå®ããŠå®è¡ã§ããŸãïŒ
OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up
Azure OpenAI ã®å ŽåïŒ
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com \
AZURE_OPENAI_API_VERSION=2024-02-01 \
AZURE_OPENAI_DEPLOYMENT_NAME=your-deployment \
OPENAI_API_KEY=your_key \
docker compose up
ð ã€ã³ãã°ã¬ãŒã·ã§ã³
Cursor IDE ãšã®ã€ã³ãã°ã¬ãŒã·ã§ã³ ð¥ïž
- Cursor MCP ã®èšå®ãè¡ããŸãïŒ
{
"mcpServers": {
"Graphiti": {
"command": "uv",
"args": ["run", "graphiti_mcp_server.py"],
"env": {
"OPENAI_API_KEY": "your_key_here"
}
}
}
}
- Docker ããŒã¹ã®ã»ããã¢ããã®å ŽåïŒ
{
"mcpServers": {
"Graphiti": {
"url": "http://localhost:8000/sse"
}
}
}
- Cursor ã®ãŠãŒã¶ãŒã«ãŒã«ã« Graphiti ã®ã«ãŒã«ã远å ããŸãïŒ
graphiti_cursor_rules.mdcãåç §ïŒ - Cursor ã§ãšãŒãžã§ã³ãã®ã»ãã·ã§ã³ãéå§ããŸã
ãã®ä»ã® MCP ã¯ã©ã€ã¢ã³ã
ãã®ãµãŒããŒã¯æšæºã® MCP ãã©ã³ã¹ããŒãããµããŒãããŠããŸãïŒ
- SSEïŒServer-Sent EventsïŒïŒ
http://localhost:8000/sse - WebSocketïŒ
ws://localhost:8000/ws - StdioïŒ ããã»ã¹éã®çŽæ¥éä¿¡
ð» éçº
ããŒã«ã«éçºç°å¢ã®ã»ããã¢ãã
- äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸãïŒ
# Using uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
# Or using pip
pip install -r requirements.txt
- Neo4j ãããŒã«ã«ã§èµ·åããŸãïŒ
docker run -d \
--name neo4j-dev \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/demodemo \
neo4j:5.26.0
- ãµãŒããŒãå®è¡ããŸãïŒ
# Set environment variables
export OPENAI_API_KEY=your_key
export NEO4J_URI=bolt://localhost:7687
# Run with stdio transport
uv run graphiti_mcp_server.py
# Or with SSE transport
uv run graphiti_mcp_server.py --transport sse --use-custom-entities
ãã¹ã
# Run basic connectivity test
curl http://localhost:8000/health
# Test MCP endpoint
curl http://localhost:8000/sse
ð ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããããåé¡
ð³ Docker ã®åé¡
# Clean up and restart
docker compose down -v
docker compose up --build
# Check disk space
docker system df
ãã°ãšãããã°
# View all logs
docker compose logs -f
# View specific service logs
docker compose logs -f graphiti-mcp
docker compose logs -f neo4j
# Enable debug logging
docker compose up -e LOG_LEVEL=DEBUG
ããã©ãŒãã³ã¹ã®åé¡
- ã¡ã¢ãªïŒ
docker-compose.ymlã§ Neo4j ã®ããŒããµã€ãºãå¢ãããŸã - ã¹ãã¬ãŒãžïŒ Neo4j ã®ããŒã¿ããªã¥ãŒã ã®äœ¿çšç¶æ³ãç£èŠããŸã
- ãããã¯ãŒã¯ïŒ ããŒã 7474ã7687ã8000 ããã¡ã€ã¢ãŠã©ãŒã«ã§ãããã¯ãããŠããªãã確èªããŸã
ðïž ã¢ãŒããã¯ãã£
âââââââââââââââââââ ââââââââââââââââââââ âââââââââââââââââââ
â MCP Client â â Graphiti MCP â â Neo4j â
â (Cursor) âââââºâ Server âââââºâ Database â
â â â (Port 8000) â â (Port 7687) â
âââââââââââââââââââ ââââââââââââââââââââ âââââââââââââââââââ
â
âŒ
ââââââââââââââââââââ
â OpenAI API â
â (LLM Client) â
ââââââââââââââââââââ
ã³ã³ããŒãã³ã
- Neo4j DatabaseïŒ ã°ã©ãã®ä¿åãšã¯ãšãª
- Graphiti MCP ServerïŒ API 局㚠LLM æäœ
- OpenAI IntegrationïŒ ãšã³ãã£ãã£æœåºãšã»ãã³ãã£ãã¯åŠç
- MCP ProtocolïŒ AI ãšãŒãžã§ã³ãéã®æšæºåãããéä¿¡
ð€ ã³ã³ããªãã¥ãŒã·ã§ã³
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ããéä¿¡ããŠãã ããã
ð ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ã㯠MIT License ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸãã詳现㯠LICENSE ãã¡ã€ã«ãã芧ãã ããã
ð è¬èŸ
- åªããã°ã©ãããŒã¿ããŒã¹ãæäŸãã Neo4j ããŒã
- 匷å㪠LLM ã¢ãã«ãæäŸãã OpenAI
- ãããã³ã«ä»æ§ãæäŸãã MCP community
- ãã¬ããžã°ã©ãã®ãã¬ãŒã ã¯ãŒã¯ãæäŸãã Graphiti Core
ãå°ãã§ããïŒ ã€ã·ã¥ãŒãäœæããããäžèšã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã¬ã€ããã確èªãã ããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã