项目简介

Wassette是一个基于Model Context Protocol (MCP) 构建的后端服务,专注于以安全、可重用和便捷的方式为AI代理(如GitHub Copilot、Cursor等)提供外部功能。它通过运行WebAssembly (Wasm) 组件来扩展AI代理的能力,为每个工具提供浏览器级别的安全沙盒隔离和细粒度权限控制,从而实现LLM应用的安全、可扩展的上下文服务。

主要功能点

  • WebAssembly组件托管与执行: 允许AI代理动态加载、卸载和执行WebAssembly组件,这些组件被Wassette转换为标准化工具暴露给LLM。
  • 安全沙盒隔离: 每个Wasm组件都在独立的沙盒环境中运行,确保工具间的隔离性和安全性,防止恶意操作。
  • 细粒度权限管理: 支持对组件的存储、网络和环境变量等权限进行增量授权、撤销和重置,以增强运行时安全性,并确保工具只访问其所需的资源。
  • 标准化工具接口: Wassette会自动将Wasm组件的导出函数转换为符合MCP规范的工具接口,简化LLM的调用过程。
  • 多种传输协议支持: 通过JSON-RPC协议与MCP客户端通信,支持标准输入/输出 (Stdio)、Server-Sent Events (SSE) 和 WebSocket 等多种传输方式,适应不同的部署环境。

安装步骤

Wassette提供多种安装方式,您可以根据自己的操作系统选择最便捷的一种:

  • Linux/macOS (推荐安装脚本): 打开终端,运行以下命令:

    curl -fsSL https://raw.githubusercontent.com/microsoft/wassette/main/install.sh | bash

    这个脚本会自动检测您的平台,并将最新版本的 'wassette' 二进制文件安装到您的系统路径 ('$PATH') 中。

  • macOS/Linux (通过Homebrew): 如果您是Homebrew用户,可以通过以下命令安装:

    brew install wassette
  • Windows (通过WinGet): Windows用户可以通过WinGet包管理器安装:

    winget install --id Microsoft.Wassette
  • 手动安装: 您也可以直接从Wassette的GitHub Releases页面下载对应您操作系统的最新二进制文件,并手动将其添加到系统的 '$PATH' 环境变量中。

服务器配置 (MCP客户端使用)

Wassette作为MCP服务器,需要被您的MCP客户端(例如Visual Studio Code中的GitHub Copilot)识别和连接。以下是配置Wassette服务器所需的JSON信息,您需要将这些信息添加到您的MCP客户端中:

  • 在Visual Studio Code中添加 (通过徽章): 访问Wassette GitHub仓库的README页面,点击“Install in VS Code”或“Install in VS Code Insiders”徽章,VS Code将自动完成服务器的配置。

  • 在Visual Studio Code中添加 (通过命令行): 如果您更倾向于使用命令行,可以在VS Code终端中运行以下命令:

    • Bash/Zsh (Linux/macOS):
      code --add-mcp '{"name":"Wassette","command":"wassette","args":["serve","--stdio"]}'
    • PowerShell (Windows):
      code --% --add-mcp "{\"name\":\"wassette\",\"command\":\"wassette\",\"args\":[\"serve\",\"--stdio\"]}"
  • 配置信息说明:

    • 'name': 服务器的显示名称,例如 "Wassette"。这是客户端界面中识别该服务器的名称。
    • 'command': 启动Wassette服务器的可执行文件命令,例如 "wassette"。请确保该命令在您的系统路径中可执行。
    • 'args': 传递给启动命令的参数列表,例如 '["serve", "--stdio"]'。其中 '"serve"' 指示Wassette以服务器模式运行,'"--stdio"' 表示通过标准输入/输出流与客户端进行通信,这是最常见的连接方式。Wassette也支持 '"--sse"' (Server-Sent Events) 和 '"--websocket"' 模式,但通常通过代理或特定客户端配置。

基本使用方法

一旦Wassette MCP服务器在您的AI代理中成功注册并启动,您就可以通过AI代理与它进行交互,利用其托管的WebAssembly组件扩展能力:

  1. 加载Wasm组件 (工具): 在您的AI代理聊天窗口中,指示代理加载一个Wasm组件。例如,加载一个可以获取当前时间的组件: 'Please load the time component from oci://ghcr.io/yoshuawuyts/time:latest' Wassette将从指定的OCI注册表下载、编译并加载该组件,使其功能可供AI代理作为工具调用。

  2. 调用加载的工具: 一旦组件加载完成,您可以直接在AI代理的聊天中调用其暴露的工具。例如,询问当前时间: 'What is the current time?' AI代理将通过Wassette服务器调用时间组件的 'get-current-time' 函数,并返回当前时间。

  3. 管理组件权限: Wassette提供了强大的权限管理机制,可以为每个组件设定细粒度的访问权限。例如,如果您希望允许一个文件系统组件访问您机器上的某个特定目录: 'Please grant the filesystem component read access to the directory at fs:///my/data.' Wassette提供了一系列内置工具(如 'grant-storage-permission'、'grant-network-permission'、'grant-environment-variable-permission'、'revoke-storage-permission'、'reset-permission' 等),LLM客户端可以通过这些工具接口进行交互,动态调整组件的权限,从而安全地执行更复杂的操作。

信息

分类

AI与计算