使用说明
项目简介
mcp-wasm 项目致力于在 WebAssembly 组件中实现 Model Context Protocol (MCP)。它旨在利用 WebAssembly 的沙箱环境来提高 MCP 服务器的安全性,并提供语言无关性和跨平台移植性。该项目尚处于积极开发阶段,接口可能会随时更改。
主要功能点
- 资源管理 (Resources): 支持列出和读取资源信息,目前 'read' 功能待完善。
- Prompt 模板 (Prompts): 支持获取 Prompt 模板列表。
- 工具注册与执行 (Tools): 计划支持工具的注册和调用,但 'call' 功能尚未实现。
- 沙箱环境: 利用 WebAssembly 运行时提供的沙箱环境,增强服务器的安全性,限制文件和网络访问。
- 语言独立性: 允许使用任何可以编译为 WebAssembly 的语言开发 MCP 服务器组件,示例中使用 Rust。
- 可移植性: WebAssembly 的跨平台特性使得 MCP 服务器组件可以在不同环境中运行。
安装步骤
-
安装 Rust 和 wasm-pack: 如果尚未安装,请先安装 Rust 编程语言和 'wasm-pack' 工具,用于构建 WebAssembly 组件。
- Rust 安装: 请参考 https://www.rust-lang.org/tools/install
- wasm-pack 安装: 请参考 https://rustwasm.github.io/wasm-pack/installer/
-
克隆仓库: 使用 Git 克隆 'mcp-wasm' 仓库到本地。
git clone https://github.com/AdamStrojek/mcp-wasm.git cd mcp-wasm -
构建 WASM 组件: 进入 'examples/guest-rust' 目录,使用 'wasm-pack' 构建 WebAssembly 组件。
cd examples/guest-rust wasm-pack build --target wasi构建成功后,WASM 文件将生成在 'pkg' 目录下。
-
运行 Host Runner: 返回仓库根目录,进入 'examples/host-mcp-runner' 目录,使用 'cargo run' 运行 host 程序。
cd ../host-mcp-runner cargo runHost 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 组件的运行。
基本使用方法
- 按照安装步骤构建并运行 'host-mcp-runner'。
- 观察 Host Runner 的输出,了解服务器的初始化信息、资源和 Prompt 列表。
- 如需扩展功能,修改 'examples/guest-rust/src/lib.rs' 文件,实现 'todo!()' 标记的功能,添加更多资源、Prompt 和工具。
- 重新构建 WASM 组件并运行 Host Runner 以应用更改。
- 要将 'mcp-wasm' 集成到 LLM 应用中,您需要开发或适配 MCP 客户端,使其能够与基于 WASM 组件的 MCP 服务器进行交互。 这可能涉及实现 WASM 组件的加载和调用机制,或者构建一个桥接层来转换标准的 JSON-RPC 通信到 WASM 组件的接口调用。
信息
分类
AI与计算