article
README
🚀 WebMCP 项目介绍
WebMCP 是一个开源项目,致力于连接大语言模型 (LLM) 和网站。借助 WebMCP,网站能将自身功能注册为工具,通过 WebSocket 协议与 MCP 客户端交互。MCP 客户端可统一管理和调用这些工具,用户能通过终端或其他界面使用。
🚀 快速开始
📦 安装指南
对于用户而言,可按如下步骤进行安装:
# 安装 webmcp 工具
npm install -g @webmcp/cli
# 启动 MCP 服务端
webmcp server
# 或者指定 Docker 部署
webmcp server --docker
🔗 示例链接
🌐 网站所有者集成步骤
若您是网站所有者,要将网站集成到 WebMCP 生态,仅需两步:
- 在控制台中输入以下命令以获取注册令牌:
webmcp token - 将生成的令牌粘贴到您的网站,并按照 文档 中的说明完成配置。
✨ 主要特性
🔧 核心组件
- MCP 客户端:负责连接 WebSocket 服务器并管理工具。
- WebSocket 服务器:作为 MCP 客户端与网站之间的通信桥梁。
- 网站:提供具体的工具功能,并通过 WebSocket 协议与服务器交互。
🔄 请求流程
sequenceDiagram
participant 用户
participant MCP 作为 MCP 客户端
participant Server 作为 MCP 服务器
participant WS 作为 WebSocket 服务器
participant Web 作为 网站
%% 初始连接
MCP->>Server: 连接到 /mcp 使用内部服务器令牌
%% 网站注册令牌
用户->>MCP: 请求注册令牌
MCP->>Server: 请求注册令牌
Server-->>MCP: 返回注册令牌
MCP-->>用户: 显示注册令牌
%% 网站注册
用户->>Web: 粘贴注册令牌
Web->>WS: 连接到 /register 使用令牌和域名 (注册令牌被删除)
WS-->>Web: 分配通道和会话令牌
Web->>WS: 连接至指定通道
%% 工具交互
MCP->>Server: 请求工具列表
Server->>WS: 转发请求
WS->>Web: 请求工具
Web-->>WS: 返回工具列表
WS-->>Server: 转发工具列表
Server-->>MCP: 返回工具列表
%% 工具执行
MCP->>Server: 工具请求
Server->>WS: 转发请求
WS->>Web: 执行工具
Web-->>WS: 返回结果
WS-->>Server: 转发结果
Server-->>MCP: 返回结果
%% 断开连接
用户->>Web: 断开连接
Web->>WS: 关闭连接
⚠️ 安全考量
本项目尚处于非常早期的阶段。开发者十分重视加强安全性,以防止恶意扩展执行提示注入攻击等行为。若您有任何建设性的意见,请通过提交问题或打开一个议题与开发者联系。
🛠️ 内置工具
- 令牌生成器:用于连接到 WebMCP 网站。
- MCP 工具定义器:简化构建 MCP 使用的工具 schema 的过程。
- 若有需要,开发者可提供针对 WebMCP 使用的 JavaScript 示例,您可在后续信息中告知。
🐳 Docker 部署
项目中提供了专门用于 Smithery 部署的 Dockerfile。若您希望使用 Docker 运行 WebSocket 服务器,项目中添加了一个示范用的 docker-compose.yml 文件。
若 MCP 客户端配置时提供 --docker 参数,并与 --mcp 一起使用,它将假设服务器正在运行。这样您可以 Docker 化主进程(WebSocket 服务器),并且您的 MCP 客户端将通过 WebSocket 连接到您的 Docker 容器。类似地,网站将与您的 Docker 容器通信。
微信扫一扫