Skip to main content
Glama

German Family Business Knowledge Graph MCP Server

README_MCP服务器使用说明.md7.33 kB
# Neo4j知识图谱MCP服务器使用说明 ## 概述 这个MCP(Model Context Protocol)服务器专门用于与Neo4j图数据库交互,让大模型能够访问和查询德国家族企业知识图谱数据。 ## 功能特性 ### 🔍 核心查询功能 - **节点搜索**: 根据名称、类型或关键词搜索节点 - **节点详情**: 获取指定节点的完整信息和相关关系 - **关系查找**: 查找节点之间的关系 - **路径查找**: 查找两个节点之间的路径 - **邻居获取**: 获取指定节点的邻居节点 ### 📊 分析功能 - **图结构分析**: 获取知识图谱的整体结构信息 - **中心性分析**: 分析节点在图中的重要性 - **全文搜索**: 在节点描述中进行全文搜索 - **模式信息**: 获取数据库的节点标签、关系类型等 ### 🛠 高级功能 - **自定义Cypher查询**: 支持执行安全的Cypher查询语句 - **批量数据处理**: 高效处理大量图数据 - **错误处理**: 完善的错误处理和日志记录 ## 安装配置 ### 1. 安装依赖 ```bash pip install -r mcp_requirements.txt ``` ### 2. 确保Neo4j运行 确保你的Neo4j数据库正在运行,并且已经导入了知识图谱数据: ```bash # 检查Neo4j状态 neo4j status # 如果未运行,启动Neo4j neo4j start ``` ### 3. 配置数据库连接 在 `neo4j_mcp_server.py` 中修改数据库连接参数: ```python NEO4J_URI = "bolt://localhost:7687" NEO4J_USERNAME = "neo4j" NEO4J_PASSWORD = "chenxingyu" # 修改为你的密码 ``` ### 4. 测试连接 ```bash python neo4j_mcp_server.py ``` ## MCP工具列表 ### 1. search_nodes **功能**: 搜索节点 **参数**: - `query` (必需): 搜索关键词 - `node_type` (可选): 节点类型过滤 - `limit` (可选): 结果数量限制,默认10 **示例**: ```json { "query": "家族企业", "node_type": "section", "limit": 5 } ``` ### 2. get_node_details **功能**: 获取节点详情 **参数**: - `node_id` (必需): 节点ID **示例**: ```json { "node_id": "part_1" } ``` ### 3. find_relationships **功能**: 查找关系 **参数**: - `source_node` (必需): 源节点ID或名称 - `target_node` (可选): 目标节点ID或名称 - `relationship_type` (可选): 关系类型过滤 - `direction` (可选): 关系方向 (incoming/outgoing/both) **示例**: ```json { "source_node": "part_1", "direction": "outgoing", "relationship_type": "INCLUDES" } ``` ### 4. find_paths **功能**: 查找路径 **参数**: - `start_node` (必需): 起始节点 - `end_node` (必需): 结束节点 - `max_depth` (可选): 最大路径深度,默认5 - `path_type` (可选): 路径类型 (shortest/all) **示例**: ```json { "start_node": "root", "end_node": "part_1_1", "max_depth": 3, "path_type": "shortest" } ``` ### 5. get_graph_structure **功能**: 获取图结构 **参数**: - `include_stats` (可选): 是否包含统计信息,默认true **示例**: ```json { "include_stats": true } ``` ### 6. get_neighbors **功能**: 获取邻居节点 **参数**: - `node_id` (必需): 节点ID或名称 - `depth` (可选): 邻居深度,默认1 - `relationship_type` (可选): 关系类型过滤 **示例**: ```json { "node_id": "part_1", "depth": 2, "relationship_type": "INCLUDES" } ``` ### 7. full_text_search **功能**: 全文搜索 **参数**: - `search_text` (必需): 搜索文本 - `limit` (可选): 结果数量限制,默认10 **示例**: ```json { "search_text": "创新", "limit": 15 } ``` ### 8. run_cypher_query **功能**: 执行Cypher查询 **参数**: - `query` (必需): Cypher查询语句 - `parameters` (可选): 查询参数 **注意**: 出于安全考虑,不允许执行修改数据的查询(DELETE、CREATE等) **示例**: ```json { "query": "MATCH (n:Node {type: $type}) RETURN n.name, n.description LIMIT 5", "parameters": {"type": "section"} } ``` ### 9. get_schema_info **功能**: 获取模式信息 **参数**: 无 ### 10. analyze_centrality **功能**: 中心性分析 **参数**: - `algorithm` (可选): 中心性算法 (degree/betweenness/closeness) - `limit` (可选): 结果数量限制,默认10 **示例**: ```json { "algorithm": "degree", "limit": 10 } ``` ## 使用场景示例 ### 场景1: 探索知识图谱结构 ``` 1. 使用 get_graph_structure 获取整体结构 2. 使用 search_nodes 搜索感兴趣的节点 3. 使用 get_node_details 查看节点详情 4. 使用 get_neighbors 探索相关节点 ``` ### 场景2: 查找特定信息 ``` 1. 使用 full_text_search 搜索关键词 2. 使用 find_relationships 查看节点关系 3. 使用 find_paths 找到信息路径 ``` ### 场景3: 分析图结构 ``` 1. 使用 analyze_centrality 找到重要节点 2. 使用 get_schema_info 了解数据模式 3. 使用 run_cypher_query 执行复杂分析 ``` ## 常用查询示例 ### 查找所有部分节点 ```json { "query": "MATCH (n:Node {type: 'section'}) RETURN n.name, n.id ORDER BY n.name", "parameters": {} } ``` ### 查找包含特定关键词的内容 ```json { "search_text": "创新", "limit": 10 } ``` ### 分析节点重要性 ```json { "algorithm": "degree", "limit": 20 } ``` ### 查找两个概念之间的关系 ```json { "start_node": "part_3", "end_node": "part_5", "max_depth": 4, "path_type": "shortest" } ``` ## 性能优化建议 1. **限制结果数量**: 对于大型查询,使用 `limit` 参数限制结果数量 2. **使用具体查询**: 尽量使用具体的节点ID而不是名称搜索 3. **缓存结果**: 对于重复查询,考虑缓存结果 4. **索引优化**: 确保Neo4j数据库有适当的索引 ## 错误处理 服务器包含完善的错误处理机制: - 数据库连接错误 - 查询语法错误 - 安全检查(防止危险操作) - 参数验证错误 所有错误都会返回详细的错误信息,便于调试。 ## 安全特性 1. **查询限制**: 不允许执行修改数据的查询 2. **参数验证**: 严格验证输入参数 3. **连接安全**: 使用安全的数据库连接 4. **日志记录**: 详细的操作日志 ## 日志和监控 服务器会记录详细的操作日志,包括: - 连接状态 - 查询执行 - 错误信息 - 性能统计 日志级别可以通过修改 `logging.basicConfig` 进行调整。 ## 故障排除 ### 常见问题 1. **连接失败** - 检查Neo4j服务是否运行 - 验证连接参数是否正确 - 检查网络连接 2. **查询无结果** - 检查数据是否已正确导入 - 验证查询语法 - 使用更宽泛的搜索条件 3. **性能问题** - 限制查询结果数量 - 优化Cypher查询 - 检查数据库索引 ### 调试技巧 1. 使用 `get_schema_info` 了解数据结构 2. 使用简单查询测试连接 3. 检查日志文件获取详细错误信息 4. 使用Neo4j浏览器验证数据 ## 扩展开发 如需添加新功能,可以: 1. 在 `list_tools()` 中添加新工具定义 2. 在 `call_tool()` 中添加工具调用处理 3. 实现具体的工具函数 4. 更新文档和示例 ## 联系支持 如遇到问题,请检查: 1. Neo4j数据库状态 2. Python依赖是否完整 3. 配置参数是否正确 4. 日志文件中的错误信息 --- *本MCP服务器为德国家族企业知识图谱项目的一部分,提供强大的图数据库查询能力。*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guangxiangdebizi/KnowledgeGraph-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server