Rust 开发者工具 MCP 服务器
一个为Cursor编辑器提供Rust开发工具的MCP(模型上下文协议)服务器。
项目描述
这个项目是从……分叉出来的 terhechte/cursor-rust-tools 翻译成中文是:“terhechte(可能是一个用户名或特定项目名,无直接对应中文翻译)/光标 Rust 工具”。 并进行了以下改进:
- 移除了图形用户界面(GUI)功能专注于命令行模式以简化部署和使用
- 升级了依赖项已更新依赖库至最新版本,以提升性能和稳定性
- 官方MCP实现已替换为官方MCP
rmcpRust SDK 以确保协议兼容性 - 配置热重载添加了配置监视器,以实现无需重启的实时更新
- 多交通方式支持添加了SSE和可流式传输的HTTP传输选项
- 加强项目管理改进了项目跟踪和索引通知功能
特点/功能
LSP集成
- 获取符号的悬停信息(类型、描述)
- 查找符号的所有引用
- 获取一个符号的实现代码
- 按名称解析符号
- 实时索引进度跟踪
货物指令
- 执行
cargo test带有回溯支持 - 执行
cargo check带有错误过滤功能 - 将流测试输出直接发送给客户端
项目管理
- 在工作区中添加/移除项目
- 列出活跃项目及其索引状态
- 自动配置持久化
- 通过文件路径发现项目
安装
cargo install --git https://github.com/cupnfish/rust-devtools-mcp使用
命令行模式
rust-devtools-mcp serve --port 4000项目管理
# Add project
rust-devtools-mcp projects add /path/to/project
# Remove project
rust-devtools-mcp projects remove /path/to/project
# List projects
rust-devtools-mcp projects list配置文件
在(某处)配置项目 ~/.rust-devtools-mcp.toml:
[projects]
"/path/to/project1" = { root = "/path/to/project1", ignore_crates = [] }
"/path/to/project2" = { root = "/path/to/project2", ignore_crates = ["large-crate"] }ignore_crates 是一个可选列表,用于指定要从分析中排除的crate依赖项名称。
光标配置
- 服务器启动时将打印其MCP配置
- 创造
.cursor/mcp.json使用提供的配置文件 - Cursor 将自动检测并启用 MCP 服务器
- 在Cursor设置中的MCP部分检查服务器状态
- 在聊天中选择代理模式以访问开发工具
建筑学
该项目采用了模块化设计:
src/main.rs- 主入口点、命令行界面(CLI)处理和服务器启动src/context.rs- 全局上下文管理、项目状态和通知src/cargo_remote.rs- 货物指令执行和输出解析src/config_watcher.rs- 配置文件监控和热加载src/lsp/- Rust Analyzer LSP 集成src/mcp/- 基于SSE/HTTP传输的MCP服务器实现src/project.rs- 项目抽象和URI处理
它是如何工作的
- LSP功能为每个项目管理独立的Rust Analyzer实例
- 项目跟踪使用DashMap实现项目并发访问
- 配置管理自动保存/加载项目配置
- 通知系统提供关于索引和工具使用的实时更新
- 多式联运支持Stdio、SSE和可流式传输的HTTP传输方式
作者
cupnfish 可以翻译为“杯子鱼”(如果是指一种特定的、形似杯子的鱼或者某种创意命名的鱼)或者根据上下文可能指某种特定鱼类的俗称,但直接翻译“cupnfish”并无固定含义,需结合具体语境理解。在缺乏具体语境的情况下,一个较为通用的翻译是“杯子鱼”
许可证
继承原始项目的许可证。
