WebMCP 服务器端实现(浏览器上下文模型管理协议服务端)
使用说明(Markdown 格式)
-
项目简介
- WebMCP 服务器端实现是一套完整的 MCP(Model Context Protocol)服务端实现,核心职责是以标准化的 JSON-RPC/扩展消息方式向 MCP 客户端提供资源、工具和提示模版等上下文服务,并通过多种传输通道与客户端通信。它包含一个 CLI/服务端实现、浏览器扩展组件、以及对 navigator.modelContext API 的支持和工具注入机制。
-
主要功能点
- 提供工具注册与执行能力:定义一个浏览器工具执行器 executeTool,支持列出标签页、打开/关闭标签页、获取标签页工具,以及调用页面工具等能力。
- 会话管理与可靠性保障:为每次客户端连接创建会话,跟踪请求、响应、超时和清理无效会话,确保并发请求的正确匹配与错误处理。
- 支持多传输协议:内置 Stdio 传输用于命令行方式连接,以及通过 WebSocket 的扩展服务器,以便浏览器扩展或其他客户端连接。
- 浏览器扩展集成:通过扩展客户端与浏览器扩展进行双向通信,扩展实现浏览器标签页的创建/聚焦/关闭并回传工具信息与执行结果。
- 工具发现与注入:提供工具发现流程,允许标签页中注入工具以供 LLM 调用,并维护工具缓存和状态。
- 基于 Web MCP 生态的工具清单与注册:通过 Tool 类型定义,保持工具结构、输入模式和描述信息的一致性,方便上层应用通过 MCP 客户端查询和调用。
-
安装与运行步骤
- 依赖与构建
- 安装依赖并构建整套包(monorepo 风格)。
- 启动服务器
- 使用命令行调用:npx @ripulio/web-mcp-server 启动服务器(该仓库的 README 给出的推荐启动方式,后续客户端通过该命令启动服务端并连接)。
- 配置客户端
- MCP 客户端需要在配置中指向该服务器,最常见的做法是在客户端配置中添加一个服务器条目,如下所示(不需要直接暴露给客户端运行代码,仅供参考):
- mcpServers.web-mcp: command: "npx", args: ["@ripulio/web-mcp-server"] 注:客户端配置只需要知道服务器名称与启动方式,不需要实现细节。
- MCP 客户端需要在配置中指向该服务器,最常见的做法是在客户端配置中添加一个服务器条目,如下所示(不需要直接暴露给客户端运行代码,仅供参考):
- 依赖与构建
-
服务器配置示意(请按客户管理系统所需格式填充,以下为参考描述,非代码块)
- 名称(server name):web-mcp
- 启动命令(command):npx
- 启动参数(args):["@ripulio/web-mcp-server"]
-
基本使用方法(操作简易版)
- 启动:运行命令启动 WebMCP 服务器。
- 客户端连接:LLM 客户端通过配置指定的服务器名称与启动参数与服务端建立连接。
- 功能使用:LLM 客户端通过 MCP 调用工具、读取标签页信息、发起打开/关闭标签页等操作;浏览器扩展会提供页面工具并在需要时将工具注入到网页中以供调用。
- 调试与监控:服务端提供日志输出和会话清理功能,遇到超时或错误时会生成相应的错误信息,便于排错。
-
额外说明
- 该实现包含浏览器扩展和 polyfill 的配套组件,确保在浏览器端可以通过 navigator.modelContext API 注册与执行工具,并通过 MCP 服务端进行协调。
- 开发者可在本地修改工具注册、扩展通信、会话管理等核心模块,以适应自定义工作流和安全策略。