mcpField
R
Rust MCP Server

Rust MCP Server

本地服务
github.com/lh开发工具174 周前更新

关于 Rust MCP Server

面向 Rust 开发者及 IDE、AI 助手的 MCP 服务,可通过统一接口运行代码检查、Lint、格式化、测试和构建。工具支持工作区操作,并返回标准化结果。

主要功能

  1. 01语法与类型检查
  2. 02Clippy 代码检查及修复
  3. 03Rust 代码格式化
  4. 04运行测试并筛选用例
  5. 05调试或发布模式构建

适用场景

  1. 01检查 Rust 项目的编译错误
  2. 02发现并修复常见代码问题
  3. 03统一文件或工作区格式
  4. 04运行指定测试或工作区测试

MCP 相关

该 MCP 服务通过 stdin/stdout 上的 JSON-RPC 提供 Rust 开发工具,供 MCP 客户端调用 cargo_check、cargo_clippy、rustfmt、cargo_test 和 cargo_build。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Rust MCP 服务

一个模型上下文协议(MCP)服务,为 AI 助手和 IDE 提供必备的 Rust 开发工具。此服务通过标准化的 MCP 接口,支持对 Rust 项目进行实时语法检查、代码 lint、格式化、测试和构建。

功能

可用工具
  1. cargo_check - 语法和类型验证

    • 验证 Rust 代码语法并进行类型检查
    • 支持检查整个工作区
    • 提供详细的错误消息和建议
  2. cargo_clippy - 代码 lint

    • 捕获常见错误并提出改进建议
    • 在可能的情况下支持自动修复
    • 可配置 lint 级别和规则
  3. rustfmt - 代码格式化

    • 根据样式指南格式化 Rust 代码
    • 可检查格式,但不应用更改
    • 支持格式化单个文件或整个项目
  4. cargo_test - 测试执行

    • 运行 Rust 测试并提供详细输出
    • 支持指定测试模式和软件包
    • 可配置输出捕获,以便调试
  5. cargo_build - 项目构建

    • 以调试或发布模式构建 Rust 项目
    • 支持工作区构建
    • 提供构建状态和错误详情

安装

前置条件
  • Rust 工具链(rustc、cargo、clippy、rustfmt)
  • Tokio 异步运行时支持
从源代码构建
git clone https://github.com/lh/rust-mcp-server
cd rust-mcp-server
cargo build --release

Claude Code 集成

快速安装
# Clone and build the server
git clone https://github.com/lh/rust-mcp-server
cd rust-mcp-server
cargo build --release

# Add to Claude Code (adjust the project path as needed)
claude mcp add rust-tools -s user -- $(pwd)/target/release/rust-mcp-server --project-path ~/Code

# Verify installation
claude mcp list | grep rust-tools
其他安装方式
使用绝对路径:
claude mcp add rust-tools -s user -- /path/to/rust-mcp-server/target/release/rust-mcp-server --project-path /path/to/your/rust/projects
项目专属安装:
# Navigate to your Rust project
cd /path/to/your/rust/project

# Add the server with current directory as project path
claude mcp add rust-tools -s project -- /path/to/rust-mcp-server/target/release/rust-mcp-server --project-path .
验证连接

安装后,重启 Claude Code 并检查服务状态:

/mcp

你应该会在列表中看到 rust-tools: connected。

用法

命令行
# Run in current directory
./target/release/rust-mcp-server

# Specify project path
./target/release/rust-mcp-server --project-path /path/to/rust/project
与 Claude Code 搭配使用

安装后,你可以使用自然语言调用 Rust 工具:

  • “检查这段 Rust 代码是否有错误” → 运行 cargo check
  • “对我的 Rust 项目进行 lint” → 运行 cargo clippy
  • “格式化这个 Rust 文件” → 运行 rustfmt
  • “运行测试” → 运行 cargo test
  • “以发布模式构建项目” → 运行 cargo build --release
MCP 集成

此服务遵循 MCP 协议,通过 stdin/stdout 使用 JSON-RPC 进行通信:

初始化
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {}
}
列出可用工具
{
  "jsonrpc": "2.0", 
  "id": 2,
  "method": "tools/list"
}
执行工具
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "cargo_check",
    "arguments": {
      "workspace": true
    }
  }
}
工具参数
cargo_check
{
  "target": "",        // Optional specific target
  "workspace": false   // Check all workspace packages
}
cargo_clippy
{
  "fix": false,        // Auto-apply fixes
  "workspace": false,  // Run on all packages
  "deny": []          // Lint levels to deny
}
rustfmt
{
  "file": "",         // Specific file to format
  "check": false      // Check without applying
}
cargo_test
{
  "test_name": "",    // Specific test pattern
  "package": "",      // Specific package
  "workspace": false, // Test all packages
  "nocapture": false  // Don't capture output
}
cargo_build
{
  "release": false,   // Build in release mode
  "workspace": false  // Build all packages
}

输出格式

所有工具都会返回标准化的 JSON 响应:

{
  "success": true,
  "exit_code": 0,
  "stdout": "compilation output...",
  "stderr": "warnings and errors...",
  "command": "cargo check"
}

集成示例

Claude Code 集成

此服务旨在与 Claude Code 等 AI 助手无缝协作,在代码开发过程中提供实时反馈:

  1. 语法验证:编写代码时自动检查
  2. Lint 建议:获取改进建议并应用修复
  3. 代码格式化:确保代码风格一致
  4. 测试执行:验证更改不会破坏现有功能
  5. 构建验证:确认项目能够成功编译
VS Code 扩展

可通过 MCP 与 VS Code 集成,在现有语言服务的基础上提升 Rust 开发体验。

错误处理

此服务会提供以下错误的详细信息:

  • 无效的工具名称
  • 缺少必需参数
  • 编译错误
  • 进程执行失败
  • 文件系统错误

故障排除

服务未连接

如果你在 Claude Code 中看到连接错误:

  1. 确保二进制文件已构建:

    cd /path/to/rust-mcp-server
    cargo build --release
    ls -la target/release/rust-mcp-server  # Should exist and be executable
    
  2. 检查 -- 分隔符:

    # ✅ Correct
    claude mcp add rust-tools -- /path/to/rust-mcp-server/target/release/rust-mcp-server
    
    # ❌ Incorrect (missing --)
    claude mcp add rust-tools /path/to/rust-mcp-server/target/release/rust-mcp-server
    
  3. 手动测试服务:

    cd /path/to/rust-mcp-server
    python3 test_server.py
    
  4. 检查日志: 运行 claude --mcp-debug 时查看是否有错误消息

常见问题
  • “cargo: command not found”:确保已安装 Rust,且 Rust 位于 PATH 中
  • “failed to find cargo.toml”:确保 --project-path 指向一个 Rust 项目
  • 服务立即断开连接:检查二进制文件路径是否为绝对路径,而非相对路径
  • 服务已连接,但没有可用工具:这是 v0.1.0 中的一个错误,服务在成功响应中包含了 "error": null,违反了 JSON-RPC 2.0 规范。此问题已在 v0.1.1 中修复。

贡献

  1. Fork 此仓库
  2. 创建一个功能分支
  3. 实现你的更改
  4. 适用时添加测试
  5. 提交拉取请求

许可证

MIT 许可证

更新日志

v0.1.1(fix/json-rpc-error-field)
  • 修复了 JSON-RPC 2.0 兼容性问题:成功响应中错误地包含了 error: null
  • 此修复解决了与 Claude Code 的连接问题:服务虽能连接,但工具不可用
  • 为 McpResponse 中的错误字段添加了 #[serde(skip_serializing_if = "Option::is_none")]
v0.1.0
  • 首次发布
  • MCP 服务核心实现
  • 支持 cargo check、clippy、rustfmt、test 和 build
  • 通过 stdin/stdout 进行 JSON-RPC 通信
  • 可配置项目路径
  • 完善的错误处理

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。