一个MCP服务器,允许Cursor中的LLM访问Rust Analyzer、Crate文档和Cargo命令。
包括用于配置的UI。

目前,各种AI代理无法让AI访问来自LSP的Rust类型信息。这是一个障碍,因为LLM必须推理出可能的类型,而不是直接看到类型。
此外,关于依赖项(如tokio)的信息仅限于它们训练时的内容,这可能是过时的或针对不同版本的。这可能导致各种问题。
Cursor Rust Tools通过Model Context Protocol (MCP)提供了这些功能。
crate或crate中特定符号(例如tokio或tokio::spawn)的文档。cargo test的输出。cargo check的输出。
对于LSP功能,src/lsp会启动一个新的Rust Analyzer来索引你的代码库,就像在编辑器中运行的一样。我们不能查询正在编辑器中运行的那个,因为Rust Analyzer绑定到单个消费者(例如,打开文档操作需要按正确的顺序执行关闭文档等)。
对于文档,它会运行cargo docs,然后将HTML文档解析为本地的Markdown。这些信息存储在项目根目录下的.docs-cache文件夹中。
cargo install --git https://github.com/terhechte/cursor-rust-tools
cursor-rust-tools
这将弹出一个UI,在其中你可以添加项目,安装mcp.json并查看活动。
或者,一旦你在~/.cursor-rust-tools中设置了项目,也可以通过以下方式运行:
cursor-rust-tools --no-ui
除了使用UI创建配置外,你还可以自己设置~/.cursor-rust-tools:
[[projects]]
root = "/Users/terhechte/Developer/Rust/example1"
ignore_crates = []
[[projects]]
root = "/Users/terhechte/Developer/Rust/example2"
ignore_crates = []
ignore_crates是不想为其索引文档的crate依赖项名称列表。例如,因为它们太大。
应用程序运行后,你可以配置Cursor以使用它。这需要多个步骤。
project-dir/.cursor/mcp.json。Cursor Rust Tools UI有一个按钮可以为你完成这个操作。不带UI运行也会在终端中显示mcp.json的内容。MCP下)检查它是否工作正常。Chat中选择了Agent Mode,然后你可以请求它利用其中一个新工具,例如cargo_check工具。
所有mcp.json的内容都相同。Cursor Rust Tools通过文件路径确定正确的项目