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 注册是否正常,以及日志输出中是否出现工具注册/调用错误。

服务器信息