MongoDB知识图谱MCP服务器
模型上下文协议(MCP)服务器的高性能Python实现,通过基于MongoDB的知识图存储系统为您的AI代理提供持久内存。
概述
此MCP服务器使您的AI代理能够使用高效存储在MongoDB中的结构化知识图创建、管理和调用信息。
安装
需求
- Python 3.10或更高版本
- MongoDB 4.4或更高版本
- MCP Python SDK 1.2.0+
- 通过管理依赖关系
uv(推荐)
再进行
# Using uv (recommended)
uv sync
# Or using pip
pip install -e .发展依赖性
# Install development dependencies
uv sync --group dev
# Or using pip
pip install -e .[dev]配置
MongoDB设置
确保MongoDB在您的系统上运行:
# macOS with Homebrew
brew services start mongodb-community
# Ubuntu/Debian
sudo systemctl start mongod环境变量
export MONGODB_URI=mongodb://localhost:27017
export MONGODB_DATABASE=knowledge_graph_db
export MONGODB_COLLECTION_PREFIX=kg_ # optional使用Claude Desktop
设置
将此添加到您的claude_desktop_config.json中:
紫外线
{
"mcpServers": {
"mongodb-knowledge-graph": {
"command": "uv",
"args": [
"run",
"mongodb_knowledge_graph/main.py",
"run",
"mongodb_knowledge_graph"
],
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DATABASE": "knowledge_graph_db",
}
}
}
}VS代码安装说明
将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open Settings (JSON).
您可以选择将其添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。
请注意mcp中不需要密钥.vscode/mcp.json文件。
紫外线
{
"mcp": {
"servers": {
"mongodb-knowledge-graph": {
"command": "uv",
"args": [
"run",
"mongodb_knowledge_graph/main.py"
],
"env":{
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DATABASE": "knowledge_graph_db",
}
}
}
}
}MCP工具
服务器公开了以下工具:
📊 图表概述
get_graph_summary-在不加载完整数据的情况下获取图形统计信息read_graph-检索整个图形(对于大型数据集,请谨慎使用)
🔍 实体管理
create_entities-高效批量创建实体delete_entities-删除实体并级联删除关系add_observations-通过重复数据删除添加观察结果delete_observations-删除具体观察结果
🔗 关系管理
create_relations-高效地批量创建关系delete_relations-删除特定关系
🎯 查询和搜索操作
search_nodes-按名称、类型或观察内容搜索实体open_nodes-按名称检索特定实体get_subgraph-通过深度控制探索实体邻域find_path-发现实体之间的最短路径
运行测试
# Run all tests
uv run pytest
# Test MongoDB functionality (requires running MongoDB)
TEST_MONGODB=1 uv run pytest tests/test_mongodb_*
# Run with coverage
uv run pytest --cov=mongodb_knowledge_graph --cov-report=html
# Test specific functionality
uv run pytest tests/test_knowledge_graph.py -v最佳实践
对于大型图形
- 使用
get_graph_summary()而不是read_graph() - 搜索
search_nodes()而不是加载所有内容 - 探索当地
get_subgraph()而不是泛泛的询问
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 通过测试进行更改
- 运行完整的测试套件(
uv run pytest) - 确保MongoDB测试通过(
TEST_MONGODB=1 uv run pytest) - 提交拉取请求
许可证
该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。
支持
有关问题、疑问或贡献,请访问 .
______________________________________________________________________
