使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它利用 Google 的 Gemini API 提供多种 AI 功能。该项目包含多个独立的服务器,分别负责不同的任务,并通过一个路由器进行统一管理和调度。这展示了如何使用 MCP 框架整合不同的服务,为 LLM 应用提供全面的上下文服务能力。

主要功能点

  • 聊天服务 (Chat Server): 提供基础的对话交互功能,支持会话记忆。
  • 搜索服务 (Search Server): 集成 DuckDuckGo 搜索引擎,结合 Gemini API 提供基于实时信息的答案。
  • RAG 服务 (RAG Server): 实现检索增强生成,允许用户上传 PDF 文档,并基于文档内容进行问答。
  • 思考服务 (Thinking Server): 专注于复杂的逻辑推理和任务分解,提供“思考”能力。
  • 路由器 (Router): 作为中央枢纽,接收用户请求,根据请求内容智能路由到合适的工具服务器进行处理。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/AditHash/gemini-mcp-server-chatbot.git
    cd gemini-mcp-server-chatbot
  2. 配置 Gemini API 密钥: 在项目根目录下创建 '.env' 文件,并填入你的 Gemini API 密钥:

    GEMINI_API_KEY=你的Gemini_API_KEY
  3. 运行安装脚本:

    ./install.sh

    该脚本会自动安装 Python 3.12 (如果需要), 创建并激活虚拟环境,安装依赖,并启动所有服务器。

服务器配置 (MCP 客户端配置)

以下 JSON 配置信息用于 MCP 客户端连接到本 MCP 服务器。客户端需要配置路由服务器 (Router) 的信息作为入口,路由器会自动调度其他工具服务器。

[
  {
    "server_name": "Gemini MCP Router",
    "command": "uvicorn",
    "args": [
      "backend.router.0_mcp_router_true:app",
      "--host",
      "0.0.0.0",
      "--port",
      "8000",
      "--reload"
    ],
    "description": "MCP 路由服务器,负责接收客户端请求并路由到合适的工具服务器。",
    "model_context_protocol_version": "0.1.0",
    "transport": "http",
    "endpoint": "http://0.0.0.0:8000/ask"
  },
  {
    "server_name": "Gemini MCP Chat Server",
    "command": "uvicorn",
    "args": [
      "backend.chat.1_chat_server:app",
      "--host",
      "0.0.0.0",
      "--port",
      "8001",
      "--reload"
    ],
    "description": "MCP 聊天服务器,提供基础的对话交互功能。",
    "model_context_protocol_version": "0.1.0",
    "transport": "http",
    "endpoint": "http://0.0.0.0:8001/chat"
  },
  {
    "server_name": "Gemini MCP Search Server",
    "command": "uvicorn",
    "args": [
      "backend.search.2_search_server:app",
      "--host",
      "0.0.0.0",
      "--port",
      "8002",
      "--reload"
    ],
    "description": "MCP 搜索服务器,集成 DuckDuckGo 搜索引擎。",
    "model_context_protocol_version": "0.1.0",
    "transport": "http",
    "endpoint": "http://0.0.0.0:8002/search"
  },
  {
    "server_name": "Gemini MCP Thinking Server",
    "command": "uvicorn",
    "args": [
      "backend.think.3_thinking_server:app",
      "--host",
      "0.0.0.0",
      "--port",
      "8003",
      "--reload"
    ],
    "description": "MCP 思考服务器,提供深度思考和推理能力。",
    "model_context_protocol_version": "0.1.0",
    "transport": "http",
    "endpoint": "http://0.0.0.0:8003/think"
  },
  {
    "server_name": "Gemini MCP RAG Server",
    "command": "uvicorn",
    "args": [
      "backend.rag.4_rag_server:app",
      "--host",
      "0.0.0.0",
      "--port",
      "8004",
      "--reload"
    ],
    "description": "MCP RAG 服务器,支持上传 PDF 文档并进行问答。",
    "model_context_protocol_version": "0.1.0",
    "transport": "http",
    "endpoint": "http://0.0.0.0:8004"
  }
]

配置参数说明:

  • 'server_name': 服务器的名称,用于标识和区分不同的服务器。
  • 'command': 启动服务器的命令,这里使用 'uvicorn' 运行 FastAPI 应用。
  • 'args': 启动命令的参数列表:
    • 'backend.[模块].[文件名]:app': 指定 FastAPI 应用的位置。
    • '--host 0.0.0.0': 监听所有网络接口,允许从外部访问。
    • '--port [端口号]': 服务器监听的端口号,各服务器端口不同。
    • '--reload': 开启热重载,方便开发调试(生产环境建议移除)。
  • 'description': 服务器的简要描述。
  • 'model_context_protocol_version': 声明支持的 MCP 协议版本。
  • 'transport': 使用的传输协议,这里为 'http'。
  • 'endpoint': 服务器的 API 端点 URL。 MCP 客户端应主要配置路由服务器 (Router) 的信息,即第一个配置块。 其他服务器的配置信息仅供参考,或在需要直接调用特定工具时使用。 对于标准 MCP 客户端,通常只需要配置 Router 服务器即可。

基本使用方法

  1. 确保所有服务器都已成功启动(运行 './install.sh' 脚本后)。
  2. 使用 MCP 客户端,配置上述 服务器配置 中的 Router 服务器信息('Gemini MCP Router' 配置块)。
  3. 通过 MCP 客户端向 Router 服务器发送符合 MCP 协议的请求,即可使用各项 AI 功能。例如,发送包含用户消息的请求到 '/ask' 端点,Router 会自动路由请求到合适的工具服务器并返回结果。
  4. 对于 RAG 功能,需要先通过 MCP 客户端调用 RAG 服务器的 '/upload' 接口上传 PDF 文档。

注意: 本项目主要作为 MCP 服务器的示例实现,可能需要根据实际 MCP 客户端的要求进行适配和调整。

信息

分类

AI与计算