项目简介

Rash MCP 服务器是 Model Context Protocol (MCP) 的一个实现,旨在为 LLM 客户端提供一个标准接口,用于将 Rust 代码安全、确定且幂等地转译为 POSIX Shell 脚本。它将 Rash 核心工具(一个双向 Shell 安全工具)的功能通过 JSON-RPC 协议暴露,支持 AI 应用进行高质量的脚本生成和净化。

主要功能点

  • Rust 代码到 Shell 脚本转译: 将受限的 Rust 子集代码转换为 POSIX 兼容的 Shell 脚本,确保安全性和可移植性。
  • 自动化安全保障: 生成的 Shell 脚本自动防御 Shell 注入、单词分割和全局扩展等常见漏洞。
  • 确定性和幂等性: 确保相同的输入每次都产生相同的输出,并且脚本可安全地重复运行。
  • AI 辅助集成: 作为 MCP 工具,允许 LLM 客户端通过 JSON-RPC 调用转译功能,实现 AI 驱动的脚本开发。

安装步骤

  1. 确保已安装 Rust 编程语言环境 (推荐 Rust 1.70.0 或更高版本)。
  2. 打开终端,运行以下命令安装 Rash MCP 服务器:
    cargo install rash-mcp
    此命令会将 'rash-mcp' 可执行文件安装到 '~/.cargo/bin/' 目录。请确保此目录已添加到您的系统 PATH 环境变量中。

服务器配置

MCP 客户端需要配置服务器的启动命令。以下是 'rash-mcp' 服务器的典型 JSON 配置示例,用于 MCP 客户端连接:

{
  "server_name": "io.github.paiml/rash",
  "command": "rash-mcp",
  "args": [],
  "description": "提供 Rust 代码到 POSIX Shell 脚本的安全、确定性转译服务,支持 AI 应用调用。"
}
  • 'server_name': MCP 服务器的唯一标识符,通常遵循反向域名格式。
  • 'command': 启动 'rash-mcp' 服务器的可执行文件名称。
  • 'args': 启动服务器时传递的命令行参数列表(对于 'rash-mcp' 服务器,通常不需要额外参数)。
  • 'description': 服务器功能的简短描述。

基本使用方法

  1. 启动 MCP 服务器: 在终端中运行:

    rash-mcp

    服务器将启动并打印启动信息,然后等待 MCP 客户端连接。

  2. 通过 MCP 客户端调用工具: 一旦服务器运行,任何兼容 MCP 的客户端(例如支持 MCP 的 AI 代理或 IDE 插件)都可以连接到它,并调用其提供的 'transpile' 工具。 例如,客户端可以发送一个 JSON-RPC 请求来转译 Rust 代码。'transpile' 工具接受以下参数:

    • 'source' (字符串): 必填,要转译的 Rust 源代码。
    • 'optimize' (布尔值): 可选,是否优化输出的 Shell 脚本,默认为 'false'。
    • 'strict' (布尔值): 可选,是否启用严格模式,默认为 'false'。

    一个调用 'transpile' 工具的 JSON-RPC 请求示例(由 MCP 客户端发送):

    {
      "jsonrpc": "2.0",
      "method": "tool_code/transpile",
      "params": {
        "source": "fn main() { println!(\"Hello from Rash MCP!\"); }",
        "optimize": true,
        "strict": true
      },
      "id": 1
    }

    服务器将返回一个包含转译后 Shell 脚本的 JSON-RPC 响应。

信息

分类

开发者工具