使用说明

项目简介

mcp-wasm 项目致力于在 WebAssembly 组件中实现 Model Context Protocol (MCP)。它旨在利用 WebAssembly 的沙箱环境来提高 MCP 服务器的安全性,并提供语言无关性和跨平台移植性。该项目尚处于积极开发阶段,接口可能会随时更改。

主要功能点

  • 资源管理 (Resources): 支持列出和读取资源信息,目前 'read' 功能待完善。
  • Prompt 模板 (Prompts): 支持获取 Prompt 模板列表。
  • 工具注册与执行 (Tools): 计划支持工具的注册和调用,但 'call' 功能尚未实现。
  • 沙箱环境: 利用 WebAssembly 运行时提供的沙箱环境,增强服务器的安全性,限制文件和网络访问。
  • 语言独立性: 允许使用任何可以编译为 WebAssembly 的语言开发 MCP 服务器组件,示例中使用 Rust。
  • 可移植性: WebAssembly 的跨平台特性使得 MCP 服务器组件可以在不同环境中运行。

安装步骤

  1. 安装 Rust 和 wasm-pack: 如果尚未安装,请先安装 Rust 编程语言和 'wasm-pack' 工具,用于构建 WebAssembly 组件。

  2. 克隆仓库: 使用 Git 克隆 'mcp-wasm' 仓库到本地。

    git clone https://github.com/AdamStrojek/mcp-wasm.git
    cd mcp-wasm
  3. 构建 WASM 组件: 进入 'examples/guest-rust' 目录,使用 'wasm-pack' 构建 WebAssembly 组件。

    cd examples/guest-rust
    wasm-pack build --target wasi

    构建成功后,WASM 文件将生成在 'pkg' 目录下。

  4. 运行 Host Runner: 返回仓库根目录,进入 'examples/host-mcp-runner' 目录,使用 'cargo run' 运行 host 程序。

    cd ../host-mcp-runner
    cargo run

    Host Runner 将加载并执行 WASM 组件,并输出 MCP 服务器的初始化信息、资源列表和 Prompt 列表。

服务器配置

由于 'mcp-wasm' 将 MCP 服务器实现为 WebAssembly 组件,它需要宿主环境(Host)来运行,例如示例中的 'host-mcp-runner'。传统的 MCP 客户端需要配置服务器的启动命令和参数来连接。对于 'mcp-wasm',配置信息主要用于启动宿主程序,而非直接启动 MCP 服务器。

以下是一个 示例配置,用于说明如何配置一个 假设的 MCP 客户端 来与 'mcp-wasm' 服务器(通过 'host-mcp-runner' 运行)进行交互。 请注意,这只是一个概念示例,实际的 MCP 客户端可能需要适配 WASM 组件的运行方式。

{
  "serverName": "wasm-mcp-server-host",
  "command": "cargo run",
  "args": [],
  "cwd": "/path/to/mcp-wasm/examples/host-mcp-runner",
  "description": "启动 mcp-wasm 服务器宿主程序。请将 '/path/to/mcp-wasm' 替换为 mcp-wasm 仓库的实际路径。这个配置实际上是运行 host-mcp-runner 程序,该程序负责加载和运行 WASM 版本的 MCP 服务器组件。"
}

配置说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令。 在这里,'cargo run' 用于在 'host-mcp-runner' 目录下运行 Rust 程序。
  • 'args': 命令行参数,当前示例中没有参数。
  • 'cwd': 重要: 指定命令执行的工作目录为 'host-mcp-runner' 目录,确保 'cargo run' 命令在该目录下执行。请根据实际仓库路径修改 '/path/to/mcp-wasm'。
  • 'description': 配置描述,说明此配置是用于运行 'host-mcp-runner' 宿主程序,而非直接运行传统的 MCP 服务器。

请注意: 实际使用时,MCP 客户端需要能够与 WASM 组件化的 MCP 服务器进行通信。标准的 MCP 客户端可能需要进行适配或通过桥接方式才能与 'mcp-wasm' 集成。当前的 'host-mcp-runner' 只是一个简单的示例,用于演示 WASM 组件的运行。

基本使用方法

  1. 按照安装步骤构建并运行 'host-mcp-runner'。
  2. 观察 Host Runner 的输出,了解服务器的初始化信息、资源和 Prompt 列表。
  3. 如需扩展功能,修改 'examples/guest-rust/src/lib.rs' 文件,实现 'todo!()' 标记的功能,添加更多资源、Prompt 和工具。
  4. 重新构建 WASM 组件并运行 Host Runner 以应用更改。
  5. 要将 'mcp-wasm' 集成到 LLM 应用中,您需要开发或适配 MCP 客户端,使其能够与基于 WASM 组件的 MCP 服务器进行交互。 这可能涉及实现 WASM 组件的加载和调用机制,或者构建一个桥接层来转换标准的 JSON-RPC 通信到 WASM 组件的接口调用。

信息

分类

AI与计算