local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Connects to a Neovim instance to view and manipulate text buffers, run Vim commands, access editor status, manage windows, set marks and registers, and make visual selections. Allows AI to interact directly with content in the Neovim editor.
Leverages Vim's native text editing commands and workflows to enable AI assistance with code and text editing. Supports navigation, manipulation of buffers, window management, and visual selections.
Servidor MCP de Neovim
Una prueba de concepto de integración entre Claude Desktop (o cualquier cliente) y Neovim mediante el Protocolo de Contexto de Modelo (MCP) y la biblioteca JavaScript oficial de neovim/node-client. Este servidor aprovecha los comandos y flujos de trabajo de edición de texto nativos de Vim, que Claude ya comprende, para crear un código ligero o una capa de asistencia de texto de IA de propósito general.
Características
- Se conecta a su instancia nvim si expone un archivo de socket, por ejemplo
--listen /tmp/nvim
, al iniciar nvim - Visualiza tus buffers actuales
- Obtiene la ubicación del cursor, el modo y el nombre del archivo.
- Ejecuta comandos vim y, opcionalmente, comandos de shell a través de vim
- Puede realizar ediciones utilizando insertar o reemplazar
API
Recursos
nvim://session
: Sesión actual del editor de texto neovimnvim://buffers
: lista de todos los buffers abiertos en la sesión actual de Neovim con metadatos que incluyen estado modificado, sintaxis e identificaciones de ventana
Herramientas
- búfer de vim
- Buffer del editor de texto VIM actual con números de línea mostrados
filename
de entrada (cadena)- Se ignora el nombre del archivo y se devuelve una cadena de líneas numeradas con el contenido del búfer activo actual
- comando vim
- Envíe un comando a VIM para navegación, edición puntual y eliminación de líneas
command
de entrada (cadena)- Ejecuta un comando de VIM que primero se pasa por
nvim.replaceTermcodes
. Varios comandos funcionarán si se separan con saltos de línea. - En caso de error, se devuelve el contenido
'nvim:errmsg'
- estado de vim
- Obtener el estado del editor VIM
- El estado contiene la posición del cursor, el modo, el nombre del archivo, la selección visual, el diseño de la ventana, la pestaña actual, las marcas, los registros y el directorio de trabajo.
- vim_edit
- Editar líneas usando insertar, reemplazar o reemplazar todo en el editor de VIM
- Entrada
startLine
(número),mode
("insert"
|"replace"
|"replaceAll"
),lines
(cadena) - Insertar insertará líneas en la línea de inicio
- replace reemplazará las líneas comenzando en startLine
- replaceAll reemplazará todo el contenido del buffer
- ventana_vim
- Manipular ventanas de Neovim (dividir, vsplit, cerrar, navegar)
command
de entrada (cadena: "split", "vsplit", "only", "close", "wincmd h/j/k/l")- Permite operaciones de gestión de ventanas
- marca_vim
- Establecer una marca en una posición específica
mark
de entrada (cadena: az),line
(número),column
(número)- Establece marcas con nombre en posiciones específicas
- registro_vim
- Establecer el contenido de un registro
register
de entrada (cadena: az o "),content
(cadena)- Gestiona el contenido del registro
- vim_visual
- Hacer una selección visual
- Entrada
startLine
(número),startColumn
(número),endLine
(número),endColumn
(número) - Crea selecciones de modo visual
Con este sencillo conjunto de herramientas, Claude puede examinar su sesión de neovim para responder preguntas y realizar modificaciones en el buffer.
Limitaciones
- Esta es una prueba de concepto rápida para experimentar con el Protocolo de Contexto de Modelo. Úselo bajo su propia responsabilidad.
- ¡Puede que no interactúe bien con una configuración de neovim personalizada!
- El manejo de errores podría ser mejor.
- A veces Claude no obtiene la entrada del comando vim correctamente.
Configuración
Variables de entorno
ALLOW_SHELL_COMMANDS
: Establézcalo como 'true' para habilitar la ejecución de comandos de shell (p. ej.!ls
). El valor predeterminado es 'false' por seguridad.NVIM_SOCKET_PATH
: Establezca la ruta de su socket de Neovim. El valor predeterminado es '/tmp/nvim' si no se especifica.
Uso con Claude Desktop
Agregue esto a su claude_desktop_config.json
:
Licencia
Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.
You must be authenticated.
Aprovecha los comandos de edición de texto y flujos de trabajo nativos de Vim, que Claude ya comprende, para crear una capa de asistencia de código liviana.