🦀 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-docs2.构建服务器
git clone https://github.com/CeeArEx/mcp-rust-builder.git
cd mcp-rust-builder
cargo build --release3.配置客户端
适用于克劳德桌面 (~/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 这需要一个城市的名字。"代理人行动:
scaffold_new_tool(name="weather_fetcher", ...)->创建文件并更新mod.rs.add_dependency(crate="reqwest", ...)->添加HTTP客户端。patch_file(...)->在新文件中实现逻辑。check_code()->验证编译。
场景2:调试
用户: “为什么我的构建失败了?”
代理人行动:
check_code()->返回JSON错误(例如,errorE0308).explain_error(code="E0308")->阅读编译器说明。read_file(...)->读取导致错误的特定行。patch_file(...)->修复了类型。
情景3:研究
用户: “我如何使用 std::fs::File?"代理人行动:
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.
📄 许可证
麻省理工学院
