pai MCP 服务端实现
-
项目简介
- pai 是一个面向 LLM 的多用途后端平台,包含对话、内存、知识库、任务管理等能力。它在仓库中实现了一个基于 MCP 的服务器端入口,能够以标准化的方式向 MCP 客户端提供资源、工具和提示模板,并通过 JSON-RPC 进行交互。该实现覆盖 19 种工具,能与 Claude Code、Cursor、Windsurf 等 MCP 兼容代理对接,具备会话管理、能力声明和多传输协议的支持能力。
-
主要功能点
- MCP 服务端核心实现:通过 MCP SDK 启动并暴露 19 个工具,支持工具注册、执行和响应返回。
- 资源与知识管理:提供资源、知识源、知识检索等能力,便于 LLM 在对话中调用数据访问功能。
- 工具注册与执行:实现了 19 种工具(如 remember、recall、memory-context、beliefs、forget、memory-stats、memory-synthesize、task-list、task-add、task-done、task-edit、task-reopen、goal-list、goal-add、goal-done、knowledge-learn、knowledge-search、knowledge-sources、knowledge-forget),可被 MCP 客户端调用。
- Prompt 模板与渲染:内置渲染结果的提示 catalog,提供 getResultRenderPrompt 等函数,用于定义交互与渲染结构化输出的 UI 组件。
- JSON-RPC 交互与传输:MCP 服务器以标准化的 JSON-RPC 形式与客户端通信,支持通过不同传输协议进行数据传输(如标准输入/输出、SSE、WebSocket 等,具体实现通过 MCP Server 与 Transport 层)。
- 会话与能力声明:实现了对话会话、模型上下文、能力声明等 MCP 基本能力,确保客户端可按协议约定获取资源和功能。
- 与 LLM 提供方集成:支持 Ollama、本地/云 API(OpenAI、Anthropic、Google 等)等模型提供者的无缝切换与健康检查。
- 模块化与扩展性:采用插件式架构,便于扩展工具、资源、Prompts、以及与外部 MCP 客户端的对接。
-
安装与运行
- 构建与启动 MCP 服务端的常规流程(与仓库的 Quick Start、构建脚本一致):
- 先安装依赖并构建仓库(pnpm install、pnpm build)。
- 构建产物包含 MCP 服务端入口脚本(如 packages/cli/dist/mcp.js)。
- 启动 MCP 服务端入口,通常通过 node 指定入口文件运行,例如: node /absolute/path/to/packages/cli/dist/mcp.js
- MCP 客户端配置说明(需提供给客户端使用,以下信息用于配置 JSON 客户端指向此 MCP 服务端):
- serverName: "pai"
- command: "node"
- args: ["/absolute/path/to/packages/cli/dist/mcp.js"]
- 注释:以上为 MCP 服务器的启动命令与入口脚本路径,请按实际部署环境的绝对路径填写。MCP 客户端本身不需要配置,只需使用这份服务器配置去连接并通过 MCP 协议与之通信。
- 构建与启动 MCP 服务端的常规流程(与仓库的 Quick Start、构建脚本一致):
-
服务器配置示例(给 MCP 客户端使用的配置信息,JSON 格式,非代码块展示) { "serverName": "pai", "command": "node", "args": ["/absolute/path/to/packages/cli/dist/mcp.js"], "description": "pai MCP 服务端入口,暴露 19 种工具并实现资源/提示模板管理,使用 JSON-RPC 与 LLM 客户端对接。" }
-
基本使用方法
- 启动后,MCP 客户端可通过 JSON-RPC 调用 pai 服务端暴露的工具,进行记忆、检索、任务/目标管理等操作,并按需要获取与渲染 Prompt 的输出。
- 客户端可通过配置将服务器路径与进入点加入到自身的 MCP 服务器列表,建立可重复利用的连接。
- 如需扩展功能,可参考仓库中的 19 个工具实现,添加新的工具并在 MCP 服务端注册即可。
-
关键词
- MCP 服务端实现、LLM 工具、JSON-RPC、资源管理、 prompts 渲染
-
分类ID
- 6