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,方便前端/浏览器或其他客户端访问。
  • 安装步骤
    1. 安装依赖:使用 Poetry 安装项目依赖
      • poetry install
    2. 环境变量配置(需要 Azure/OpenAI 相关凭据等,详见 .env 示例)
      • 典型情况下需要配置图谱数据、Azure OpenAI 相关信息等。
    3. 启动 MCP 服务器
      • poetry run python run_mcp_server.py
      • 服务器启动后默认监听本地地址 http://127.0.0.1:8011/mcp,具体端口请以运行时输出为准。
    4. 使用 MCP Inspector 进行测试
      • npx @modelcontextprotocol/inspector
      • 在 Inspector 中将传输协议设置为 Streamable HTTP,URL 设置为 http://localhost:8011/mcp,连接后即可看到可用工具及其参数。
  • 服务器配置(客户端使用信息,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:浏览和查询具体实体信息。
    • 数据来源与上下文:服务器会返回答案、上下文信息以及来源文本片段,便于审计与追溯。

服务器信息