Walrus-MCP 服务器桥接

使用说明内容(Markdown格式)

Walrus-MCP 服务器桥接

  • 项目简介

    • 这是 Walrus 生态中的 MCP(模型上下文协议)服务器实现的一部分。它负责桥接外部 MCP 服务器,将 MCP 提供的工具注册到 Walrus 的工具注册表,并通过运行时将工具调用转发给相应的 MCP 服务器执行,最终把执行结果返回给 MCP 客户端。
  • 主要功能点

    • MCP 工具桥接:将外部 MCP 服务器的工具转换为 Walrus 端的工具描述,并注册到运行时工具注册表中,供 LLM 客户端查询和调用。
    • 工具调用转发:当模型调用某个工具时,将请求转发到对应的 MCP 服务器并返回结果。
    • 配置驱动:在 Walrus 守护进程配置中通过 mcp_servers 配置 MCP 服务器的启动命令、参数与环境变量,守护进程会自动桥接并维护连接。
    • 与 Walrus 运行时集成:通过 Hook 把 MCP 的工具集成到运行时的工具快照中,确保每个代理可以看到可用的 MCP 工具。
    • 支持热加载/重载:通过配置变更可重新构建运行时并接入新的 MCP 服务器。
  • 安装步骤

    1. 需要 Rust 环境与 Cargo。
    2. 在仓库根目录执行构建与安装方式(示例性步骤,实际使用请参考项目的 CI/构建脚本):
      • cargo build --release
      • cargo install openwalrus
    3. 运行 Walrus 守护进程前,请确保存在 Walrus 配置(walrus.toml),其中包含 MCP 服务器的配置条目(见下方示例)。守护进程会读取该配置并创建 MCP 服务器桥接。
  • 服务器配置(MCP 服务器的启动信息,供 MCP 客户端配置参考) 说明:以下示例为单个 MCP 服务器的启动配置信息(以 JSON 形式表示,客户端需要的仅为启动命令与参数等信息示意,实际应放在 Walrus 的 walrus.toml/相关配置中)。字段含义如后所述。 { "name": "example-mcp", "command": "/usr/local/bin/example-mcp-server", "args": ["--config","/etc/walrus/mcp/example.toml"], "env": { "ENV_VAR": "value" }, "auto_restart": true }

    说明:

    • name: MCP 服务器名称,在 Walrus 配置中用作识别标识。
    • command: 启动 MCP 服务器的可执行程序路径。
    • args: 启动参数数组,必要时可包含配置文件路径等。
    • env: 启动时注入的环境变量。
    • auto_restart: 服务器异常退出时是否自动重启。
  • 基本使用方法

    1. 启动 Walrus 守护进程:确保 walrus.toml 已配置好 MCP 服务器信息,然后启动 Walrus 守护进程。
    2. 连接 MCP 客户端:MCP 客户端获取工具清单后即可使用 Walrus 提供的工具来调用外部 MCP 服务器的功能。
    3. 监控与运维:通过 WALRUS 的日志与状态接口监控 MCP 服务器的连接与工具列表,如需扩展可在 DaemonHook 层增加额外的工具注册或工具转发策略。
  • 说明性使用场景

    • 当需要将现有的 MCP 服务器接入 Walrus 的运行时能力(如统一的工具注册、系统提示注入、对话管理等)时,可通过 Walrus 的 MCP 桥接进行整合,避免在模型端改变调用方式。

服务器信息