Rust构建服务器

一个自主的模型上下文协议(MCP)服务器,用于构建、调试和维护Rust项目,特别为帮助LLMs构建其他MCP服务器而设计。

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

使用说明

🦀 Rust Builder MCP服务器

一个自主的模型上下文协议(MCP)服务器,旨在构建、调试和维护Rust项目。

这是一个 Meta MCP服务器:它是专门为帮助LLM(如Claude)构建而设计的 其他 MCP服务器。它为AI提供了理解代码结构的“眼睛”、安全编辑文件的“手”和包含经过验证的MCP模式的“大脑”。

⚡ 主要特点

✅ 线下智能:

  • 零延迟搜索:本地Rust文档的内置矢量搜索(std等等),而无需API调用。
  • 本地注册表:查询本地 ~/.cargo 缓存机箱版本和功能。

✅ 自主开发工作流:

  • “黄金工作流程”:执行严格 检查→ Git保存→ Edit → 验证 循环。
  • 货物整合:自主运行 check, test, fmt, clippy,以及 add (依赖关系)。

✅ 高级工具:

  • AST分析:使用最小标记解析Rust代码以理解大型文件(结构/特征)。
  • 外科编辑:用途 patch_file 精确修改代码而不覆盖整个文件的逻辑。
  • 元脚手架:自动为新的MCP工具、提示和资源生成样板。

🛠️ 工具套件

服务器向LLM公开了一套全面的工具:

类别 工具 描述
👀 眼睛 search_rust_docs 搜索本地文档(TF-IDF)。
analyze_code 解析AST文件以查看结构、字段和签名。
read_file 读取带有行号的文件以进行精确编辑。
get_project_structure 可视化文件树(忽略target/git)。
✋ 手 patch_file 安全地编辑代码(处理空白规范化)。
scaffold_new_tool 创建新的MCP工具样板& mod.rs 条目。
add_dependency 快跑 cargo add 通过特征选择。
🧠 脑 get_mcp_template 检索已验证 rmcp 代码模式。
explain_error 获取 rustc --explain 输出错误代码。
🛡️ 安全 check_code 快跑 cargo check --message-format=json.
run_tests 快跑 cargo test (可选过滤)。
git_operations 提交、差异、状态或撤消更改。

🚀 安装

1.先决条件

确保Rust已安装并且文档组件可用:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup component add rust-docs

2.构建服务器

git clone https://github.com/CeeArEx/mcp-rust-builder.git
cd mcp-rust-builder
cargo build --release

3.配置客户端

适用于克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "rust-builder": {
      "command": "/ABSOLUTE/PATH/TO/mcp-rust-builder/target/release/mcp-rust-builder",
      "args": []
    }
  }
}

用于OpenCode/VS代码(通用):

{
  "mcpServers": {
    "rust-builder": {
      "command": "/ABSOLUTE/PATH/TO/mcp-rust-builder/target/release/mcp-rust-builder",
      "transport": "stdio"
    }
  }
}

💡 使用示例

场景1:开发新工具

用户: “创建一个名为 weather_fetcher 这需要一个城市的名字。"

代理人行动:

  1. scaffold_new_tool(name="weather_fetcher", ...) ->创建文件并更新 mod.rs.
  2. add_dependency(crate="reqwest", ...) ->添加HTTP客户端。
  3. patch_file(...) ->在新文件中实现逻辑。
  4. check_code() ->验证编译。

场景2:调试

用户: “为什么我的构建失败了?”

代理人行动:

  1. check_code() ->返回JSON错误(例如,error E0308).
  2. explain_error(code="E0308") ->阅读编译器说明。
  3. read_file(...) ->读取导致错误的特定行。
  4. patch_file(...) ->修复了类型。

情景3:研究

用户: “我如何使用 std::fs::File?"

代理人行动:

  1. search_rust_docs(query="std::fs::File") ->返回本地HTML文档摘要。

📂 项目结构

mcp-rust-builder/
├── src/
│   ├── main.rs              # Entry point & Tool Router wiring
│   ├── tools/
│   │   ├── mod.rs           # Tool registration
│   │   ├── analyzer.rs      # AST Parsing (syn/quote)
│   │   ├── surgeon.rs       # Smart File Patching
│   │   ├── search_docs.rs   # TF-IDF Search Engine
│   │   ├── scaffolder.rs    # Code Generation
│   │   ├── git.rs           # Version Control
│   │   ├── testing.rs       # Test Runner
│   │   └── ... (other tools)
│   └── utils/
│       └── paths.rs         # System discovery
├── Cargo.toml
└── README.md

🔧 故障排除

  • “未安装Rust文档”:运行 rustup component add rust-docs.
  • “Git远程错误”:确保您已初始化git repo。服务器需要一个 .git 工作目录中的文件夹,以执行安全保存。
  • “连接超时”:最初的文档索引是在后台进行的。如果服务器启动缓慢,请确保 search_docs.rs 正在使用 tokio::spawn.

📄 许可证

麻省理工学院