使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它利用 Google 的 Gemini API 提供多种 AI 功能。该项目包含多个独立的服务器,分别负责不同的任务,并通过一个路由器进行统一管理和调度。这展示了如何使用 MCP 框架整合不同的服务,为 LLM 应用提供全面的上下文服务能力。
主要功能点
- 聊天服务 (Chat Server): 提供基础的对话交互功能,支持会话记忆。
- 搜索服务 (Search Server): 集成 DuckDuckGo 搜索引擎,结合 Gemini API 提供基于实时信息的答案。
- RAG 服务 (RAG Server): 实现检索增强生成,允许用户上传 PDF 文档,并基于文档内容进行问答。
- 思考服务 (Thinking Server): 专注于复杂的逻辑推理和任务分解,提供“思考”能力。
- 路由器 (Router): 作为中央枢纽,接收用户请求,根据请求内容智能路由到合适的工具服务器进行处理。
安装步骤
-
克隆仓库:
git clone https://github.com/AditHash/gemini-mcp-server-chatbot.git cd gemini-mcp-server-chatbot -
配置 Gemini API 密钥: 在项目根目录下创建 '.env' 文件,并填入你的 Gemini API 密钥:
GEMINI_API_KEY=你的Gemini_API_KEY -
运行安装脚本:
./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 服务器即可。
基本使用方法
- 确保所有服务器都已成功启动(运行 './install.sh' 脚本后)。
- 使用 MCP 客户端,配置上述 服务器配置 中的 Router 服务器信息('Gemini MCP Router' 配置块)。
- 通过 MCP 客户端向 Router 服务器发送符合 MCP 协议的请求,即可使用各项 AI 功能。例如,发送包含用户消息的请求到 '/ask' 端点,Router 会自动路由请求到合适的工具服务器并返回结果。
- 对于 RAG 功能,需要先通过 MCP 客户端调用 RAG 服务器的 '/upload' 接口上传 PDF 文档。
注意: 本项目主要作为 MCP 服务器的示例实现,可能需要根据实际 MCP 客户端的要求进行适配和调整。
信息
分类
AI与计算