MCP锈蚀分析仪
🦀 一个智能模型上下文协议(MCP)服务器,通过集成Rust分析器提供全面的Rust代码分析、重构和导航功能。
  
✨ 特性
🔍 代码分析
- 悬停信息:获取详细的类型信息和文档
- 查找引用:查找项目中所有符号的使用情况
- 转到实施:导航到trait实现
- 符号分析:深入了解符号定义和关系
⚡ 自动补全和导航
- 智能完工:上下文感知代码完成
- 签名帮助:功能参数辅助
- 诊断:实时错误检测和建议
🔧 重构工具
- 重命名符号:在整个代码库中安全重命名
- 提取功能:将代码提取为可重用函数
- 组织导入:清理和优化进口报表
📊 项目报告
- 代码统计:代码行数、复杂性度量
- 相关性分析:分析Cargo.toml依赖关系
- 死码检测:查找项目中未使用的代码
- 项目结构:分析模块组织
🎯 智能模板
- 代码段:常见模式的预构建模板
- 匹配表达式:自动生成匹配武器
- 测试功能:快速测试功能模板
🚀 智能操作模式
- 克劳德代码CLI:自动直接模式,实现最大兼容性
- 手动终端:智能守护进程/客户端系统,实现最佳性能
- TTY检测:根据上下文自动选择最佳模式
🚀 安装
先决条件
- 防锈工具链(1.70+)
rust-analyzer组件:rustup component add rust-analyzer
从源代码安装
git clone https://github.com/pedrozoalencar/mcp-rust-analyzer.git
cd mcp-rust-analyzer
cargo build --release
# Add to PATH (permanent)
echo 'export PATH="/path/to/mcp-rust-analyzer/target/release:$PATH"' >> ~/.bashrc
source ~/.bashrc📋 用法
使用Claude Code CLI
- 添加MCP服务器:
claude mcp add rust-analyzer mcp-rust-analyzer- 验证安装:
claude mcp list
claude mcp test rust-analyzer- 在任何Rust项目中使用:
cd your-rust-project/
claude # Automatically detects and analyzes Rust code!手动使用(高级)
守护程序模式 (建议手动使用)
# Start daemon for current project
mcp-rust-analyzer --daemon
# Check daemon status
mcp-rust-analyzer --status
# Stop daemon
mcp-rust-analyzer --stop
# Use client (auto-connects to daemon)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | mcp-rust-analyzer直接模式
# Direct stdin/stdout mode
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | mcp-rust-analyzer --server🛠️ 建筑
智能模式检测
- 克劳德代码CLI:自动使用直接模式以实现最大兼容性
- 手动终端:使用智能守护进程/客户端系统以获得最佳性能
- TTY检测:根据上下文自动选择最佳模式
双操作模式
守护进程/客户端系统 (手动使用)
- 后台守护程序:每个项目的持久HTTP服务器
- 自动端口选择:自动查找可用端口
- 状态管理:跨多个项目跟踪守护进程
- 自动启动:如果需要,客户端会自动启动守护进程
直接模式 (克劳德代码CLI)
- 零配置:开箱即用
- LSP集成:全锈分析仪功能
- 快速启动:针对MCP协议进行了优化
LSP集成
- 背景初始化:无堵塞锈分析仪启动
- 智能缓存:重用LSP连接以提高性能
- 错误处理:LSP不可用时的优雅回退
📚 可用工具
| 工具 | 说明 |
|---|---|
project_structure | 分析项目模块组织 |
code_metrics | 获取代码统计数据和指标 |
analyze_dependencies | 查看依赖关系图 |
complete | 在某个位置获取代码补全 |
get_hover | 获取类型/文档信息 |
find_references | 查找所有符号引用 |
rename | 安全重命名符号 |
signature_help | 获取函数签名帮助 |
get_diagnostics | 获取编译器诊断 |
analyze_symbol | 按名称分析符号 |
find_implementations | 查找特征实现 |
expand_snippet | 展开代码片段 |
find_dead_code | 检测未使用的代码 |
suggest_improvements | 获取优化建议 |
资源
服务器公开这些资源:
rust-analyzer://project/structure-项目结构rust-analyzer://project/diagnostics-所有诊断rust-analyzer://project/dependencies-依赖关系图rust-analyzer://project/symbols-工作区符号
鼓励
常见任务的预配置提示:
analyze_code-全面的代码分析refactor_code-引导式重构explain_error-错误解释及修复optimize_code-性能优化
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Code │────▶│ MCP Server │────▶│ rust-analyzer │
│ (Host) │◀────│ (This Project) │◀────│ (LSP) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
JSON-RPC Rust API LSP Protocol发展
项目结构
src/
├── main.rs # Entry point
├── server.rs # MCP server implementation
├── analyzer.rs # rust-analyzer integration
├── lsp_client.rs # LSP client for rust-analyzer
└── commands/ # Command handlers
├── analysis.rs # Code analysis commands
├── completion.rs # IntelliSense commands
├── metrics.rs # Metrics and structure
└── refactor.rs # Refactoring commands运行测试
# Run unit tests
cargo test
# Run integration tests
cargo test --test '*'
# Test MCP protocol compliance
./test_mcp_complete.sh调试模式
# Run with debug logging
RUST_LOG=debug cargo run
# Test individual commands
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | cargo run贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
开发指南
- 遵循Rust命名约定
- 为新功能添加测试
- 更新文档
- 确保所有测试通过
- 格式化代码
cargo fmt
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
______________________________________________________________________
由以下材料制成❤️ Rust社区
