项目简介

Modulewise Toolbelt 是一个 MCP 服务器实现,旨在将 WebAssembly (Wasm) 组件以工具的形式提供给大型语言模型 (LLM) 客户端。它允许 LLM 调用外部功能,管理和执行 Wasm 模块中定义的工具,从而扩展 LLM 的能力。

主要功能点

  • Wasm 组件作为工具: 能够加载本地 '.wasm' 文件或 OCI 仓库中的 Wasm 组件,并将其内部导出的函数自动转换为 MCP 工具,供 LLM 调用。
  • 能力声明: 服务器会向连接的 MCP 客户端声明其支持工具调用功能。
  • 灵活的组件配置: 支持通过 TOML 文件配置 Wasm 组件,包括定义运行时特性(例如文件系统或网络 HTTP 访问)和组件之间的依赖关系,实现细粒度的权限控制和功能组合。
  • JSON-RPC 通信: 通过标准的 JSON-RPC 协议进行通信,支持 Streamable HTTP 传输协议,确保易于与任何兼容 MCP 协议的客户端集成。
  • 会话管理: 内置简单的会话管理机制,为客户端的请求提供上下文支持。

安装步骤

  1. 安装 Rust 工具链: 确保您的系统已安装最新版本的 Rust。您可以访问 'https://www.rust-lang.org/tools/install' 获取详细的安装指南。
  2. 克隆仓库: 打开终端,运行 'git clone https://github.com/modulewise/toolbelt.git' 将项目仓库克隆到本地。
  3. 进入项目目录: 'cd toolbelt'。
  4. 构建并安装: 运行 'cargo install --path .'。这会将 'toolbelt' 可执行文件编译构建到您的 Cargo bin 目录,并自动将其路径添加到您的系统 PATH 环境变量中。

服务器配置

MCP 客户端需要配置服务器的连接信息才能与其通信。以下是一个示例 JSON 配置,您可以根据实际的服务器启动参数进行调整。

{
  "server_name": "Modulewise Toolbelt",
  "command": "toolbelt",
  "args": [
    "--host", "127.0.0.1",
    "--port", "3001",
    // 添加您希望加载的组件文件或 OCI URI
    "path/to/your/component1.wasm",
    "oci://ghcr.io/modulewise/demo/calculator:0.1.0",
    "path/to/your/complex_component.toml"
  ],
  "transport_type": "Streamable HTTP",
  "url": "http://127.0.0.1:3001/mcp"
}

参数注释:

  • 'server_name': 服务器的显示名称,用于客户端识别。
  • 'command': 启动 'toolbelt' 服务器的命令行程序名称,通常是 'toolbelt'。
  • 'args': 传递给 'toolbelt' 命令的参数列表。
    • '--host': 服务器绑定的 IP 地址,默认为 '127.0.0.1'。
    • '--port': 服务器监听的端口,默认为 '3001'。
    • 后续参数可以是一个或多个 Wasm 组件的本地文件路径(例如 'your_component.wasm'),也可以是 OCI 仓库的 URI(例如 'oci://ghcr.io/modulewise/demo/hello:0.1.0'),或者是包含复杂组件定义的 TOML 配置文件路径。
  • 'transport_type': 客户端连接服务器时使用的传输协议类型,对于 'toolbelt' 服务器,通常是 'Streamable HTTP'。
  • 'url': MCP 服务器的完整连接地址,包括主机、端口和 MCP 协议的根路径 '/mcp'。

基本使用方法

  1. 启动服务器:

    • 在终端中运行 'toolbelt' 命令,并带上您想加载的 Wasm 组件文件路径或 OCI URI。
    • 示例 1 (加载本地 Wasm 文件): 'toolbelt hello.wasm calculator.wasm'
    • 示例 2 (加载 OCI Wasm 组件): 'toolbelt oci://ghcr.io/modulewise/demo/hello:0.1.0'
    • 示例 3 (加载复杂配置的组件): 'toolbelt your_component_config.toml'
    • 服务器成功启动后,您将看到类似 '📡 Streamable HTTP endpoint: http://127.0.0.1:3001/mcp' 的输出,指示服务器正在监听的地址。
  2. 连接 MCP 客户端:

    • 使用任何兼容 Model Context Protocol 的客户端(例如官方的 MCP Inspector),根据服务器启动时显示的地址 'http://127.0.0.1:3001/mcp' 进行连接。
    • 确保客户端在连接时选择 'Streamable HTTP' 作为传输类型。
  3. 列出并调用工具:

    • 在客户端界面上,成功连接服务器后,通常会有“列出工具 (List Tools)”或类似的功能。点击后,您会看到服务器已加载的所有 Wasm 组件函数对应的可用工具列表。
    • 选择一个工具,根据其输入模式 (input schema) 提供所需的参数值,然后点击“运行工具 (Run Tool)”即可调用 Wasm 组件中对应的功能并获取结果。

信息

分类

AI与计算