unplugin-devpilot MCP 服务端
使用说明
- 项目简介
- 该项目实现了一个基于 MCP(Model Context Protocol)的服务器端,能够管理资源、注册并执行工具,以及定义和渲染供 LLM 使用的 Prompt 模板。服务器通过 JSON-RPC 与客户端通信,提供会话管理和能力声明,支持多种传输方式(如 WebSocket 与 HTTP)。
- 主要功能点
- MCP 服务器:按 MCP 标准处理工具注册、调用和资源访问等请求,返回结构化的 JSON-RPC 响应。
- 工具注册与执行:插件通过 mcpSetup 注册 MCP 工具,LLM 可以通过 RPC 调用工具,获得结构化结果。
- 客户端管理:浏览器端通过 WebSocket 连接,服务器维护客户端信息和任务队列,支持任务的创建、查询与历史记录。
- 插件系统:提供插件入口,插件可定义 clientModule、serverSetup、mcpSetup 等,实现对 MCP 功能的扩展。
- 传输与协议:WebSocket 用于浏览器与开发服务器之间的 RPC 通信,HTTP 端点提供 MCP 服务(/mcp),并通过 StreamableHTTPServerTransport 处理请求。
- 开发友好:内置 DOM Inspector、虚拟模块等,便于在开发阶段快速集成和调试。
- 安装步骤
- 在开发环境中安装插件及依赖:
- 使用 npm/ypm/npx 安装所需依赖(例如 unplugin-devpilot 及相关插件)。
- 在项目的构建配置中引入该插件(如 Vite、Webpack、Rspack、Farm 等),按插件文档配置即可。
- 启动开发服务器,MCP 服务器会在开发模式下自动启动,默认端口为 3101(若被占用会自动分配其他端口),WebSocket 服务端口默认为 3100。
- 在开发环境中安装插件及依赖:
- 服务器配置
- 配置示例(说明性文本,非代码块):
- serverName: 指定 MCP 服务的名称,默认为 “unplugin-devpilot”。
- command: 指示启动 MCP 服务的命令类型。由于 MCP 服务在开发服务器内自动启动,通常设置为 “auto-start”;如需要外部化启动,请按实际环境指定可执行命令。
- args: 启动参数数组。通常为 [],若在外部进程中暴露,请按实际需要提供端口等参数。
- 说明:MCP 服务器在开发环境中随插件加载自动启动,默认 MCP 端口 3101,若端口被占用会错误提示,请在配置中显式指定端口以避免冲突。
- 端口说明
- WebSocket 服务端口(wsPort)默认为 3100,如被占用会自动分配可用端口。
- MCP 服务端口(mcpPort)默认为 3101,如被占用则需要显式指定可用端口。
- 配置示例(说明性文本,非代码块):
- 基本使用方法
- 启动与连接
- 在开发环境中启动开发服务器,MCP 服务会自动启动并监听所需端口。
- 客户端通过配置的 WebSocket 端口连接,服务器在 /mcp HTTP 端点暴露 MCP 接口。
- 使用流程
- 插件注册工具:通过开发插件的 mcpSetup 注册 MCP 工具,LLM 通过 MCP 调用工具执行任务。
- 获取与管理任务:通过 MCP 提供的工具(如 list_clients、get_pending_tasks 等)管理浏览器客户端与任务历史。
- 获取与渲染 Prompt:通过工具返回的内容,LLM 可以使用服务器渲染的 prompts/模板,与上下文数据结合进行推理。
- 调试与排错
- 确认开发服务器正在运行,MCP 服务端口未被占用。
- 检查插件加载顺序、mcpSetup 注册是否正常,以及日志输出中是否出现工具注册/调用错误。
- 启动与连接