Rust开发工具服务器

一个基于Model Context Protocol (MCP)的服务器,为AI助手和IDE提供实时语法检查、代码格式化、测试和构建等Rust开发工具。

  • by lh
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 lh/rust-mcp-server

使用说明

Rust MCP服务器

一个模型上下文协议(MCP)服务器,为AI助手和IDE提供基本的Rust开发工具。该服务器通过标准化的MCP接口实现Rust项目的实时语法检查、linting、格式化、测试和构建。

特性

可用工具

  1. 货检 -语法和类型验证

    • 验证Rust代码语法和类型检查
    • 支持工作区范围内的检查
    • 提供详细的错误消息和建议
  2. 货运费 -代码linting

    • 发现常见错误并提出改进建议
    • 在可能的情况下支持自动修复
    • 可配置的棉绒水平和规则
  3. rustfmt -代码格式

    • 根据样式指南格式化Rust代码
    • 可以在不应用更改的情况下检查格式
    • 支持单个文件或项目范围的格式设置
  4. 货运测试 -测试执行

    • 运行具有详细输出的Rust测试
    • 支持特定的测试模式和包
    • 用于调试的可配置输出捕获
  5. 货运大楼 -项目建设

    • 在调试或发布模式下构建Rust项目
    • 支持工作区构建
    • 提供构建状态和错误详细信息

安装

先决条件

  • 生锈工具链(生锈、货物、夹子、生锈)
  • Tokio异步运行时支持

从源代码构建

git clone https://github.com/lh/rust-mcp-server
cd rust-mcp-server
cargo build --release

Claude代码集成

快速安装

# 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代码

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

  • “检查此Rust代码是否有错误”→ runs cargo check
  • “抓取我的Rust项目”→ runs cargo clippy
  • “格式化此Rust文件”→ runs rustfmt
  • “运行测试”→ runs cargo test
  • “以发布模式构建项目”→ runs cargo build --release

MCP集成

服务器通过JSON-RPC在stdin/stdout上按照MCP协议进行通信:

初始化

{
  "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
    }
  }
}

刀具参数

货检

{
  "target": "",        // Optional specific target
  "workspace": false   // Check all workspace packages
}

货运费

{
  "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
}

货运测试

{
  "test_name": "",    // Specific test pattern
  "package": "",      // Specific package
  "workspace": false, // Test all packages
  "nocapture": false  // Don't capture output
}

货运大楼

{
  "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代码集成

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

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

VS代码扩展

可以通过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:找不到命令”:确保Rust已安装并位于PATH中
  • “找不到货物。汤姆”:确保 --project-path 指向Rust项目
  • 服务器立即断开连接:检查二进制路径是否为绝对路径,而非相对路径
  • 服务器已连接,但没有可用的工具:这是v0.1.0中的一个错误,其中服务器包括 "error": null 在成功响应中,违反JSON-RPC 2.0规范。已在v0.1.1中修复。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 实施您的更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证

更新日志

v0.1.1(修复/json-rpc错误字段)

  • 修复了JSON-RPC 2.0合规性问题,其中 error: null 被错误地包含在成功的回复中
  • 此修复程序解决了Claude Code的连接问题,服务器可以连接,但工具不可用
  • 添加 #[serde(skip_serializing_if = "Option::is_none")] 到McpResponse中的错误字段

v0.1.0

  • 初始版本
  • 核心MCP服务器实现
  • 支持货物检查、剪切、防锈、测试和构建
  • 通过stdin/stdout进行JSON-RPC通信
  • 可配置的项目路径
  • 全面的错误处理