Back to MCP directory
publicPublicdnsLocal runtime

webmcp

WebMCP是一个允许网站支持客户端LLM(大型语言模型)的项目,通过本地WebSocket服务器实现网站与LLM之间的工具、资源和提示共享,无需API密钥,支持多种模型。

article

README

🚀 WebMCP - 网站客户端大型语言模型支持工具

WebMCP 是一款创新工具,它能让网站支持客户端侧的大型语言模型(LLMs)。借助 npm 包,它极大简化了前端集成与管理 LLMs 的流程。尽管项目尚处早期,但已展现出强大功能与潜力。

🚀 快速开始

📦 安装指南

安装 WebMCP 只需一行命令:

npm install webmcp

🔧 初始化配置

初始化 MCP 服务器并运行以下命令:

npx webmcp --init

若需要 Docker 支持,请添加 --docker 参数。

💻 使用示例

🌐 网站集成指南

引入 WebMCP 脚本

在您的网站中引入 WebMCP 脚本以支持 MCP 功能:

// index.html
<script src="https://cdn.jsdelivr.net/npm/webmcp/dist/webmcp.min.js"></script>

自动显示小部件

WebMCP 提供了一个易于使用的控制台小部件,方便用户与 MCP 交互。

🔧 技术细节

🌟 核心流程

  1. 初始化连接:MCP 客户端使用内部令牌连接到 MCP 服务器。
  2. 获取注册令牌:用户请求并获得用于网站注册的令牌。
  3. 网站注册:用户在网站中输入令牌,完成与 WebSocket 服务器的连接和会话令牌分配。
  4. 工具交互:MCP 客户端通过服务器与网站进行通信,执行工具请求并返回结果。

🖥️ 网络架构

sequenceDiagram
    参与者 用户
    参与者 MCP(MCP 客户端)
    参与者 服务器(MCP 服务器)
    参与者 WS(WebSocket 服务器)
    参与者 Web(网站)

    %% 初始连接
    MCP->>Server: 连接到 /mcp 使用内部令牌

    %% 网站注册令牌
    User->>MCP: 请求注册令牌
    MCP->>Server: 请求注册令牌
    Server-->>MCP: 返回注册令牌
    MCP-->>User: 显示注册令牌

    %% 网站注册
    User->>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: 返回结果

    %% 断开连接
    User->>Web: 请求断开连接
    Web->>WS: 关闭连接

⚠️ 重要提示

本项目仍处于早期阶段,我们非常重视安全性。为了防止恶意扩展和提示注入攻击,请积极提供安全改进建议。

✨ 主要特性

🛠️ 内置工具

  • 令牌生成器:用于网站的注册流程。
  • MCP 工具定义器:简化工具 schema 的构建过程。

如果您需要特定工具的 JavaScript 代码,可以进一步询问。

🐳 Docker 支持

项目中提供了专门针对 Smithery 部署设计的 Dockerfile。如需使用 Docker 运行 WebSocket 服务器,请参考提供的 docker-compose.yml 示例文件。

当 MCP 客户端配置包含 --docker 参数且与 --mcp 结合时,客户端将假设 WebSocket 服务器正在 Docker 容器中运行,并通过容器连接进行通信。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client