MAF GraphRAG Part 2: MCP 服务器
使用说明(Markdown 格式):
- 项目简介
- 这是 MAF + GraphRAG 系列的 Part 2:MCP 服务器实现。通过 FastMCP 将 GraphRAG 的查询能力暴露为可被 AI 客户端通过 MCP 协议访问的服务器端接口,包含本地搜索、全局搜索、实体列表与实体详情等工具。
- 主要功能点
- 提供 FastMCP 服务器对象,支持通过 HTTP/Streamable HTTP 传输。
- 暴露 MCP 工具端点,包括:
- search_knowledge_graph(总入口,支持 local/global 调用)
- local_search(实体级别搜索)
- global_search(面向主题的全局搜索)
- list_entities(浏览实体)
- get_entity(实体详情)
- 服务器与 MCP Inspector 结合使用,便于调试和交互测试。
- 与 GraphRAG 的数据输出结构对接,能够从 GraphRAG 的 output 目录加载 Parquet 文件,提供检索上下文和来源信息。
- 支持跨浏览器的 CORS,方便前端/浏览器或其他客户端访问。
- 安装步骤
- 安装依赖:使用 Poetry 安装项目依赖
- poetry install
- 环境变量配置(需要 Azure/OpenAI 相关凭据等,详见 .env 示例)
- 典型情况下需要配置图谱数据、Azure OpenAI 相关信息等。
- 启动 MCP 服务器
- poetry run python run_mcp_server.py
- 服务器启动后默认监听本地地址 http://127.0.0.1:8011/mcp,具体端口请以运行时输出为准。
- 使用 MCP Inspector 进行测试
- npx @modelcontextprotocol/inspector
- 在 Inspector 中将传输协议设置为 Streamable HTTP,URL 设置为 http://localhost:8011/mcp,连接后即可看到可用工具及其参数。
- 安装依赖:使用 Poetry 安装项目依赖
- 服务器配置(客户端使用信息,JSON 形式,供 MCP 客户端参考;注:客户端配置在此处为示例,实际客户端连接可参考仓库提供的服务器地址)
{
"server_name": "graphrag-mcp",
"command": "poetry run python -m mcp_server.server",
"args": []
}
说明:
- server_name 与服务器标识保持一致,clients 用于显示和日志记录。
- command 为启动服务器的命令,args 为空表示直接启动。
- 基本使用方法
- 使用 MCP Inspector 或其他 MCP 客户端连接后,选定工具:
- search_knowledge_graph:输入查询、选择 local/global 等参数,获取整合的回答和上下文。
- local_search:针对具体实体的问题(如人员、项目等)的局部检索。
- global_search:针对组织层面的主题性检索。
- list_entities / get_entity:浏览和查询具体实体信息。
- 数据来源与上下文:服务器会返回答案、上下文信息以及来源文本片段,便于审计与追溯。
- 使用 MCP Inspector 或其他 MCP 客户端连接后,选定工具: