20x MCP 服务器后端实现

使用说明(Markdown 格式)

  • 项目简介

    • 20x 是一款桌面应用后端,聚焦通过 MCP(Model Context Protocol,中文称作“模型上下文协议”)向 LLM 客户端提供上下文信息与能力。核心职责包括托管资源、注册并执行工具、定义并渲染提示模板,以及通过 JSON-RPC 方式与客户端进行通信。后端通过本地 SQLite 数据库管理会话、任务、MCP 服务器等实体,并支持本地与远程 MCP 服务器。
  • 主要功能点

    • 资源与数据访问:管理任务、技能、资源等数据,提供本地化的数据访问能力。
    • 工具注册与执行:注册可调用的外部工具,支持 LLM 调用外部功能。
    • 提示模板与上下文:提供可定制的 Prompt 模板与上下文,支撑不同的交互模式。
    • MCP 服务器管理:创建、配置、本地/远程 MCP 服务器,测试连接及 OAuth 授权状态管理。
    • 会话与状态管理:包含会话生命周期、任务与代理状态的跟踪与渲染通知。
    • JSON-RPC 与多传输协议:通过 JSON-RPC 与客户端通信,具备对本地管道、WebSocket/SSE 等传输的支持。
  • 安装步骤

    • 安装依赖并进入项目:克隆仓库后,安装依赖(推荐使用 pnpm)。
    • 运行开发环境:执行开发命令启动本地 Electron 应用,完成打包构建以获得可执行应用。
    • 测试与运行:按文档中的命令执行测试或构建发行版本。
  • 服务器配置(仅供 MCP 客户端查看,不是客户端代码)

    • MCP 服务器配置示例(以 JSON 表述,含 server name、command、args 等字段;用于描述如何启动一个 MCP 服务器以供客户端连接。配置信息仅供 MCP 客户端了解如何连接服务端,不需要客户端再次包含在应用中): { "name": "task-management", "type": "local", "command": "/path/to/node", "args": ["/path/to/mcp/task-management-mcp.js"], "environment": { "ELECTRON_RUN_AS_NODE": "1" } }
    • 注释说明:上述配置用于说明 MCP 服务器的启动命令与参数,真实运行时需要将路径替换为实际部署位置,若是远程服务器,请将 type 设置为 remote,并提供 url 与必要的 headers/认证信息。MCP 客户端在连接时通常仅需关注服务器的名称、启动命令及参数,其他信息由服务端自行处理。
  • 基本使用方法

    • 启动与连接:通过应用界面或配置文件将 MCP 服务器添加到后端,后端将根据配置启动本地 MCP 服务器或连接远程服务器。
    • 资源与工具管理:通过 UI 或接口管理资源、工具及其权限,确保 LLM 客户端在调用外部能力时具备所需授权与上下文。
    • Prompt 与上下文:使用定制的提示模板与任务上下文来驱动 LLM 的推理与交互,支持多任务并发场景的上下文管理。
    • 会话链路:后端负责会话的创建、持续与结束,并在必要时向前端推送状态更新与结果回传。
  • 备注

    • 该实现包含本地与远程 MCP 服务器的启动、连接、授权、工具探测、以及与客户端的 JSON-RPC 通信,具备 MCP 协议的核心能力演示与应用场景。

服务器信息