Xpdite MCP 服务器实现

使用说明(简明操作指南)

  • 项目简介

    • Xpdite 是一个本地化的桌面 AI 助手框架,核心通过 Model Context Protocol (MCP) 提供“资源管理、工具调用、提示模板”等能力给本地的 LLM 客户端。仓库中实现了多个 MCP 服务器实例,以及一个用于统一管理、注册与路由的 MCP 管理器,能够将工具暴露给外部模型调用并对调用结果进行处理。
  • 主要功能点

    • MCP 服务器核心功能:实现对 MCP 请求/响应的处理,提供 JSON-RPC 风格的交互,支持资源、工具、提示模板等上下文信息的管理。
    • 工具注册与路由:各 MCP 服务器实现具体工具,如 filesystem、websearch、terminal、gmail 等;中心管理器负责注册工具、维护工具与服务器的映射,并将来自 LLM 的工具调用路由到对应的 MCP 服务器。
    • 提示模板与内容注入:系统提示、Active Skills 区块、可定制的系统模板等内容可注入到对话中,支持多种渲染格式(文本、多块内容、图片等)。
    • 会话与状态管理:包含对话历史、token 使用、会话 id、以及 per-标签页的状态管理,支持多标签页并发/序列化执行场景。
    • 多传输协议与本地化执行:支持使用 STDIO 的 MCP 服务器传输,以及与 Ollama 的集成、以及本地化的后端执行逻辑,确保数据在本地处理,保护隐私。
  • 安装与启动(简化要点)

    • 依赖环境:Python 3.x,必要时需安装对应的第三方库(如 mcp、crawl4ai、google 客户端、Ollama 客户端等,具体需求请参考各子服务器文档)。
    • 启动 MCP 服务器示例(示意性,实际请按仓库中各服务器的运行方式执行):
      • 运行文件系统服务器示例:python mcp_servers/servers/filesystem/server.py
      • 运行网页检索服务器示例:python mcp_servers/servers/websearch/server.py
      • 运行终端工具服务器示例:python mcp_servers/servers/terminal/server.py
      • 运行 Demo 服务器示例(加法/加法工具):python mcp_servers/servers/demo/server.py
    • 集成到主应用:主应用通过 source/main.py 启动并在启动阶段通过 MCP 管理器连接并注册各 MCP 服务器,向 LLM 客户端暴露工具定义。
  • 服务器配置(MCP 客户端需要的 JSON 配置示例,供参考) 说明:以下配置用于 MCP 客户端在启动阶段连接各 MCP 服务器。配置项包含服务器名称、启动命令及参数。实际使用时请将路径替换为你本地的实际路径,JSON 仅作示意,客户端需要将这些信息用于连接,但非本仓库直接运行的一部分。

    [ { "server_name": "filesystem", "command": "python", "args": ["mcp_servers/servers/filesystem/server.py"], "notes": "Filesystem MCP 服务器,用于目录/文件操作(list_directory/read_file/write_file/create_folder/move_file/rename_file)" }, { "server_name": "websearch", "command": "python", "args": ["mcp_servers/servers/websearch/server.py"], "notes": "Web 搜索 MCP 服务器,提供网页检索与内容读取工具" }, { "server_name": "terminal", "command": "python", "args": ["mcp_servers/servers/terminal/server.py"], "notes": "终端工具 MCP 服务器,包含环境获取、执行命令、文件查找等工具" }, { "server_name": "gmail", "command": "python", "args": ["mcp_servers/servers/gmail/server.py"], "notes": "Gmail/Mail 相关工具,前提是完成 Google 授权并提供 token" }, { "server_name": "calendar", "command": "python", "args": ["mcp_servers/servers/calendar/server.py"], "notes": "Google Calendar 相关工具,前提是完成 Google 授权并提供 token" } ]

    使用要点

    • 以上配置仅作示例,实际部署中请确保服务器脚本路径正确且具备所需权限。
    • MCP 客户端在启动时应读取并按需执行这些配置,通过 MCP 连接各服务器后即可向 LLM 暴露工具集。
    • 某些服务器(如 Gmail/日历)需要外部认证令牌,确保环境变量或配置指向正确的凭证文件。
  • 基本使用方法

    1. 启动本机 MCP 服务器集群(上述示例服务器均应正常启动并可被客户端发现)。
    2. 启动本地 LLM 客户端(如 Ollama 模型)并连接到 MCP 提供的工具集。
    3. 发送对话,LLM 将根据工具定义决定调用哪些工具;服务器会执行相应工具并将结果返回给 LLM。
    4. 根据需要,管理员可以通过 UI/CLI 管理 SkillSeed、Enable/Disable、参考文件等资源。

服务器信息