项目简介
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 驱动的脚本开发。
安装步骤
- 确保已安装 Rust 编程语言环境 (推荐 Rust 1.70.0 或更高版本)。
- 打开终端,运行以下命令安装 Rash MCP 服务器:
此命令会将 'rash-mcp' 可执行文件安装到 '~/.cargo/bin/' 目录。请确保此目录已添加到您的系统 PATH 环境变量中。cargo install rash-mcp
服务器配置
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': 服务器功能的简短描述。
基本使用方法
-
启动 MCP 服务器: 在终端中运行:
rash-mcp服务器将启动并打印启动信息,然后等待 MCP 客户端连接。
-
通过 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 响应。
信息
分类
开发者工具