Herramientas de cursor de Rust
Un servidor MCP que permite que el LLM en Cursor acceda a Rust Analyzer, Crate Docs y Cargo Commands.
Incluye una interfaz de usuario para la configuración.
Qué hace
Actualmente, varios agentes de IA no permiten a la IA acceder a la información de tipo de Rust desde el LSP. Esto supone un obstáculo, ya que, en lugar de ver el tipo, el LLM debe razonar sobre el tipo potencial.
Además, la única información sobre las dependencias (por ejemplo, tokio
) es la que se utilizó para el entrenamiento, que está desactualizada y posiblemente corresponde a una versión diferente. Esto puede generar diversos problemas.
Cursor Rust Tools
los pone a disposición a través del Protocolo de contexto de modelo ( MCP
).
- Obtenga la documentación de una
crate
o de un símbolo específico en lacrate
(por ejemplo,tokio
otokio::spawn
) - Obtener la información flotante (tipo, descripción) para un símbolo específico en un archivo
- Obtenga una lista de todas las referencias para un símbolo específico en un archivo
- Obtener la implementación de un símbolo en un archivo (recupera el archivo completo que contiene la implementación)
- Busque un tipo solo por su nombre en un archivo del proyecto y devuelva la información al pasar el mouse sobre él.
- Obtener la salida de
cargo test
- Obtener la salida de
cargo check
Cómo funciona
Para la funcionalidad LSP, src/lsp
crea un nuevo analizador de Rust que indexa el código base, al igual que el que se ejecuta en el editor. No podemos consultar el que se ejecuta en el editor porque el analizador de Rust está destinado a ser utilizado por un solo consumidor (por ejemplo, la acción open document
requiere close document
en el orden correcto, etc.).
Para la documentación, ejecutará cargo docs
y luego analizará la documentación HTML en Markdown localmente. Esta información se almacena en la raíz del proyecto, en la carpeta .docs-cache
.
Instalación
Ejecutar con UI
Esto abrirá una interfaz de usuario en la que podrá agregar proyectos, instalar mcp.json
y ver la actividad.
Ejecutar sin interfaz de usuario
Alternativamente, una vez que tenga un ~/.cursor-rust-tools
configurado con proyectos, también puede ejecutarlo a través de
Configuración
En lugar de utilizar la interfaz de usuario para crear una configuración, también puede configurar ~/.cursor-rust-tools
usted mismo:
ignore_crates
es una lista de nombres de dependencias de cajas que no se desea indexar para la documentación. Por ejemplo, porque son demasiado grandes.
Configuración del cursor
Una vez que la aplicación esté ejecutándose, puedes configurar Cursor para que la use. Esto requiere varios pasos.
- Añade un
project-dir/.cursor/mcp.json
a tu proyecto. La interfaz de usuarioCursor Rust Tools
tiene un botón para hacerlo automáticamente. Ejecutarlo sin la interfaz de usuario también te mostrará el contenidomcp.json
en la terminal. - Tan pronto como guarde ese archivo, Cursor detectará que se ha agregado un nuevo servidor MCP y le pedirá que lo habilite (en un cuadro de diálogo en la parte inferior derecha).
- Puede verificar la configuración del cursor (en
MCP
) para ver dónde funciona correctamente - Para probar, asegúrate de tener seleccionado
Agent Mode
en elChat
actual. Luego, puedes pedirle que utilice una de las nuevas herramientas, como la herramientacargo_check
. - Quizás quieras añadir reglas de cursor para indicarle al LLM que prefiera usar estas herramientas siempre que sea posible. Todavía estoy experimentando con esto.
El contenido de todos los mcp.json
es el mismo. Cursor Rust Tools identifica el proyecto correcto mediante la ruta del archivo.
Abrir Todos
- [ ] Crea una extensión Zed para permitir el uso de esto
- [ ] Apagado correcto sin errores
- [ ] Eliminar un proyecto es un poco frágil en este momento (en la interfaz de usuario)
- [ ] Exponer más comandos LSP
- [ ] Permitir que el LLM realice operaciones de Grit
This server cannot be installed
Un servidor MCP que permite que el LLM en Cursor acceda a Rust Analyzer, Crate Docs y Cargo Commands.