返回市场
游标锈工具

游标锈工具

作者:terhechte76 星标更新:2025-05-13

项目介绍

<img src="media/icon.png" width="150" height="149" />

Cursor Rust 工具

一个MCP服务器,允许Cursor中的LLM访问Rust Analyzer、Crate文档和Cargo命令。

包括用于配置的UI。

media/example.png

功能概述

目前,各种AI代理无法让AI访问来自LSP的Rust类型信息。这是一个障碍,因为LLM必须推理出可能的类型,而不是直接看到类型。

此外,关于依赖项(如tokio)的信息仅限于它们训练时的内容,这可能是过时的或针对不同版本的。这可能导致各种问题。

Cursor Rust Tools通过Model Context Protocol (MCP)提供了这些功能。

  • 获取某个cratecrate中特定符号(例如tokiotokio::spawn)的文档。
  • 获取文件中特定符号的悬停信息(类型、描述)。
  • 获取文件中特定符号的所有引用列表。
  • 获取文件中符号的实现(检索包含实现的整个文件)。
  • 仅通过名称在项目文件中查找类型,并返回悬停信息。
  • 获取cargo test的输出。
  • 获取cargo check的输出。

media/screenshot.png

工作原理

对于LSP功能,src/lsp会启动一个新的Rust Analyzer来索引你的代码库,就像在编辑器中运行的一样。我们不能查询正在编辑器中运行的那个,因为Rust Analyzer绑定到单个消费者(例如,打开文档操作需要按正确的顺序执行关闭文档等)。

对于文档,它会运行cargo docs,然后将HTML文档解析为本地的Markdown。这些信息存储在项目根目录下的.docs-cache文件夹中。

安装

cargo install --git https://github.com/terhechte/cursor-rust-tools

带有UI运行

cursor-rust-tools

这将弹出一个UI,在其中你可以添加项目,安装mcp.json并查看活动。

不带UI运行

或者,一旦你在~/.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

应用程序运行后,你可以配置Cursor以使用它。这需要多个步骤。

  1. 在项目中添加一个project-dir/.cursor/mcp.jsonCursor Rust Tools UI有一个按钮可以为你完成这个操作。不带UI运行也会在终端中显示mcp.json的内容。
  2. 保存该文件后,Cursor会检测到已添加新的MCP服务器,并询问你是否启用它(在右下角的对话框中)。
  3. 你可以在Cursor设置(在MCP下)检查它是否工作正常。
  4. 要测试,请确保当前Chat中选择了Agent Mode,然后你可以请求它利用其中一个新工具,例如cargo_check工具。
  5. 你可能希望添加cursor规则,告诉LLM尽可能使用这些工具。我还在试验这个功能。

media/cursor.png

所有mcp.json的内容都相同。Cursor Rust Tools通过文件路径确定正确的项目

开放待办事项

  • 创建一个Zed扩展,允许使用此工具
  • 实现无错误的正确关闭
  • 当前在UI中删除项目有点脆弱
  • 暴露更多LSP命令
  • 允许LLM执行Grit操作