Graphiti内存MCP服务器
A. 模型上下文协议(MCP) 使用Neo4j和Graphiti框架提供内存和知识图操作的服务器。
特性
- 📝 添加记忆:通过自动实体提取将事件和信息存储在知识图中
- 🧠 搜索节点:使用自然语言查询知识图中的实体
- 🔗 搜索事实:查找实体之间的关系和连接
- 📚 检索剧集:获取历史事件和回忆
- 🗑️ 管理工具:删除剧集、边缘并清除图表
- 🤖 AI驱动:可选的OpenAI集成,用于增强实体提取
- 📊 实时数据:直接连接到您的Neo4j数据库
- 🛠️ 内装式诊断器:全面的错误消息和故障排除
安装
先决条件
- Neo4j数据库:您需要一个正在运行的Neo4j实例
# Install Neo4j (via Homebrew on macOS)
brew install neo4j
# Start Neo4j
neo4j start- Python 3.10+:MCP服务器需要
从 PyPI 安装
pip install graphiti-memory从源代码安装
git clone https://github.com/alankyshum/graphiti-memory.git
cd graphiti-memory
pip install -e .配置
MCP配置
添加到您的MCP客户端配置文件中(例如,Claude Desktop配置):
{
"mcpServers": {
"graphiti-memory": {
"command": "graphiti-mcp-server",
"env": {
"NEO4J_URI": "neo4j://127.0.0.1:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "your-password-here",
"OPENAI_API_KEY": "your-openai-key-here",
"GRAPHITI_GROUP_ID": "default"
}
}
}
}Neo4j设置
- 设置密码 (首次设置):
neo4j-admin dbms set-initial-password YOUR_PASSWORD- 测试连接:
# HTTP interface
curl http://127.0.0.1:7474
# Bolt protocol
nc -zv 127.0.0.1 7687可用工具
1.add_memory
在知识图中添加一个事件或记忆。这是添加信息的主要方式。
示例:
{
"name": "add_memory",
"arguments": {
"name": "Project Discussion",
"episode_body": "We discussed the new AI feature roadmap for Q2. Focus on improving entity extraction.",
"source": "text",
"group_id": "project-alpha"
}
}参数:
name:剧集名称(必填)episode_body:要存储的内容-文本、消息或JSON(必填)source:内容类型-“文本”、“消息”或“json”(默认:“文本”)group_id:用于组织数据的可选命名空间source_description:可选描述
2.搜索_存储_节点
使用自然语言在知识图中搜索节点(实体)。
示例:
{
"name": "search_memory_nodes",
"arguments": {
"query": "machine learning",
"max_nodes": 10
}
}退货:具有UUID、名称、摘要、标签和时间戳的节点列表。
3.搜索_记忆_事实
在知识图中搜索实体之间的事实(关系)。
示例:
{
"name": "search_memory_facts",
"arguments": {
"query": "what technologies are related to AI",
"max_facts": 10
}
}退货:包含源、目标和关系详细信息的事实三元组列表。
4.get_episodes
检索特定组的最近剧集。
示例:
{
"name": "get_episodes",
"arguments": {
"group_id": "project-alpha",
"last_n": 10
}
}5.删除_密码
从知识图中删除一集。
示例:
{
"name": "delete_episode",
"arguments": {
"uuid": "episode-uuid-here"
}
}6.删除_删除_边缘
从知识图中删除一个事实(实体边)。
示例:
{
"name": "delete_entity_edge",
"arguments": {
"uuid": "edge-uuid-here"
}
}7.get_entity_edge
通过UUID检索特定实体边。
示例:
{
"name": "get_entity_edge",
"arguments": {
"uuid": "edge-uuid-here"
}
}8.清晰的图形
清除知识图中的所有数据(销毁)。
示例:
{
"name": "clear_graph",
"arguments": {}
}用法
使用克劳德桌面
在中配置 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"graphiti-memory": {
"command": "graphiti-mcp-server",
"env": {
"NEO4J_URI": "neo4j://127.0.0.1:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "your-password",
"OPENAI_API_KEY": "your-openai-key-here",
"GRAPHITI_GROUP_ID": "default"
}
}
}
}备注: OPENAI_API_KEY 是可选的。没有它,实体提取将受到限制,但服务器仍将工作。
独立测试
直接从命令行测试服务器:
export NEO4J_URI="neo4j://127.0.0.1:7687"
export NEO4J_USER="neo4j"
export NEO4J_PASSWORD="your-password"
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | graphiti-mcp-server故障排除
连接失败
错误: Connection refused 或 ServiceUnavailable
解决方案:
- 检查Neo4j是否正在运行:
neo4j status - 启动Neo4j:
neo4j start - 验证端口7687是否可访问:
nc -zv 127.0.0.1 7687
认证失败
错误: Unauthorized 或 authentication failure
解决方案:
- 验证密码是否正确
- 重置密码:
neo4j-admin dbms set-initial-password NEW_PASSWORD - 更新MCP配置中的密码
- 使用测试工具验证:
test_neo4j_auth
未找到包
错误: neo4j package not installed
此软件包会自动安装 neo4j 附属国。如果您看到此错误:
pip install neo4j发展
设置开发环境
git clone https://github.com/alankyshum/graphiti-memory.git
cd graphiti-memory
pip install -e ".[dev]"运行测试
# Test the server
python -m graphiti_memory.server << 'EOF'
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
EOF建筑
MCP Client (Claude Desktop / Cline / etc.)
↓
Graphiti-Memory Server
↓
Neo4j Database服务器:
- 在stdin上监听JSON-RPC消息
- 将诊断记录到stderr
- 在stdout上使用JSON-RPC进行响应
- 保持持久的Neo4j连接
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
链接
- GitHub: https://github.com/alankyshum/graphiti-memory
- PyPI: https://pypi.org/project/graphiti-memory/
- 问题: https://github.com/alankyshum/graphiti-memory/issues
- MCP规范: https://modelcontextprotocol.io
鸣谢
专为与以下设备一起使用而构建:
- 模型上下文协议(MCP)
- Neo4j
- 格拉菲蒂 -知识图谱框架
