Neovim MCP Server
Conecta cualquier cliente MCP con el editor Neovim para una integración y control sin interrupciones.
Documentación
Servidor MCP de Neovim
Conecta Claude Desktop (o cualquier cliente del Protocolo de Contexto de Modelos) a Neovim usando MCP y la biblioteca oficial de JavaScript neovim/node-client. Este servidor aprovecha los comandos nativos de edición de texto y flujos de trabajo de Vim, que Claude ya comprende, para crear una capa ligera de asistencia de texto con IA para código o propósito general.
Características
- Se conecta a tu instancia de nvim si expones un archivo de socket, por ejemplo
--listen /tmp/nvim, al iniciar nvim - Ve tus buffers actuales y gestiona el cambio entre buffers
- Obtiene la ubicación del cursor, modo, nombre de archivo, marcas, registros y selecciones visuales
- Ejecuta comandos de vim y opcionalmente comandos de shell a través de vim
- Puede realizar ediciones usando modos de insertar, reemplazar o reemplazarTodo
- Funcionalidad de buscar y reemplazar con soporte de expresiones regulares
- Búsqueda grep en todo el proyecto con integración de quickfix
- Gestión integral de ventanas
- Monitoreo de salud y diagnóstico de conexión
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 de modificación, sintaxis e IDs de ventana
Herramientas
Herramientas Principales
- vim_buffer
- Obtiene el contenido del buffer con números de línea (admite parámetro de nombre de archivo)
- Entrada
filename(cadena, opcional) - Obtener buffer específico por nombre de archivo - Devuelve líneas numeradas con el contenido del buffer
- vim_command
- Envía un comando a VIM para navegación, edición puntual y eliminación de líneas
- Entrada
command(cadena) - Ejecuta comandos de vim con
nvim.replaceTermcodes. Múltiples comandos funcionan con saltos de línea - Comandos de shell compatibles con prefijo
!cuandoALLOW_SHELL_COMMANDS=true - En caso de error, se devuelve el contenido de
'nvim:errmsg'
- vim_status
- Obtiene el estado integral de Neovim
- Devuelve posición del cursor, modo, nombre de archivo, selección visual con detección mejorada, diseño de ventana, pestaña actual, marcas, registros, directorio de trabajo, información del cliente LSP y detección de plugins
- Informe mejorado de selección visual: detecta el tipo de modo visual (carácter/línea/bloque), proporciona texto de selección preciso, posiciones de inicio/fin y marcas de última selección visual
- vim_edit
- Edita líneas usando modos de insertar, reemplazar o reemplazarTodo
- Entrada
startLine(número),mode("insert"|"replace"|"replaceAll"),lines(cadena) - insertar: inserta líneas en líneaInicio
- reemplazar: reemplaza líneas comenzando en líneaInicio
- reemplazarTodo: reemplaza todo el contenido del buffer
- vim_window
- Manipula ventanas de Neovim (dividir, dividirVertical, solo, cerrar, navegar)
- Entrada
command(cadena: "split", "vsplit", "only", "close", "wincmd h/j/k/l")
- vim_mark
- Establece marcas nombradas en posiciones específicas
- Entrada
mark(cadena: a-z),line(número),column(número)
- vim_register
- Establece el contenido de los registros
- Entrada
register(cadena: a-z o "),content(cadena)
- vim_visual
- Crea selecciones de modo visual
- Entrada
startLine(número),startColumn(número),endLine(número),endColumn(número)
Gestión Mejorada de Buffers
- vim_buffer_switch
- Cambia entre buffers por nombre o número
- Entrada
identifier(cadena | número) - Nombre o número del buffer
- vim_buffer_save
- Guarda el buffer actual o guarda en un nombre de archivo específico
- Entrada
filename(cadena, opcional) - Guardar en archivo específico
- vim_file_open
- Abre archivos en nuevos buffers
- Entrada
filename(cadena) - Archivo a abrir
Buscar y Reemplazar
- vim_search
- Busca dentro del buffer actual con soporte de expresiones regulares
- Entrada
pattern(cadena),ignoreCase(booleano, opcional),wholeWord(booleano, opcional)
- vim_search_replace
- Buscar y reemplazar con opciones avanzadas
- Entrada
pattern(cadena),replacement(cadena),global(booleano, opcional),ignoreCase(booleano, opcional),confirm(booleano, opcional)
- vim_grep
- Búsqueda en todo el proyecto usando vimgrep con lista quickfix
- Entrada
pattern(cadena),filePattern(cadena, opcional) - Patrón de archivo para buscar
Herramientas Avanzadas de Flujo de Trabajo
- vim_macro
- Graba, detiene y reproduce macros de Vim
- Entrada
action("record" | "stop" | "play"),register(cadena, a-z),count(número, opcional)
- vim_tab
- Gestión completa de pestañas
- Entrada
action("new" | "close" | "next" | "prev" | "first" | "last" | "list"),filename(cadena, opcional)
- vim_fold
- Operaciones de plegado de código
- Entrada
action("create" | "open" | "close" | "toggle" | "openall" | "closeall" | "delete"),startLine/endLine(números, para crear)
- vim_jump
- Navegación por lista de saltos
- Entrada
direction("back" | "forward" | "list")
Herramientas del Sistema
- vim_health
- Verifica la salud de la conexión de Neovim y el estado del socket
Usando este conjunto integral de 19 herramientas, Claude puede examinar tu sesión de neovim, navegar por buffers, realizar búsquedas, hacer ediciones, grabar macros, gestionar pestañas y pliegues, y manejar tu flujo de trabajo completo de desarrollo con las funciones estándar de Neovim.
Prompts
- neovim_workflow: Obtén ayuda contextual y orientación para flujos de trabajo comunes de Neovim, incluyendo edición, navegación, búsqueda, gestión de buffers, operaciones de ventana y uso de macros. Proporciona instrucciones paso a paso para realizar tareas con las herramientas MCP disponibles.
Manejo de Errores
El servidor implementa un manejo integral de errores con clases de error personalizadas y respuestas de error consistentes:
- NeovimConnectionError: Fallos de conexión de socket con mensajes detallados
- NeovimCommandError: Fallos de ejecución de comandos con contexto del comando
- NeovimValidationError: Fallos de validación de entrada
Nuevo en v0.5.2: Todas las herramientas ahora incluyen un manejo robusto de errores try-catch que devuelve mensajes de error significativos en el formato MCP adecuado. Las características incluyen monitoreo de salud de conexión, propagación elegante de errores y mensajes de error accionables para ayudar a diagnosticar problemas.
Limitaciones
- Puede no interactuar bien con configuraciones o plugins complejos de neovim
- La ejecución de comandos de shell está deshabilitada por defecto por seguridad
- Se requiere conexión de socket - no funcionará con vim estándar
Configuración
Variables de Entorno
ALLOW_SHELL_COMMANDS: Establecer en 'true' para habilitar la ejecución de comandos de shell (por ejemplo,!ls). El valor predeterminado es false por seguridad.NVIM_SOCKET_PATH: Establecer en la ruta de tu socket de Neovim. El valor predeterminado es '/tmp/nvim' si no se especifica.
Instalación
Opción 1: Paquete DXT (Recomendado)
- Descarga el archivo
.dxtmás reciente desde Lanzamientos - Arrastra el archivo a Claude Desktop
Opción 2: Instalación Manual
Agrega esto a tu claude_desktop_config.json:
{
"mcpServers": {
"MCP Neovim Server": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "true",
"NVIM_SOCKET_PATH": "/tmp/nvim"
}
}
}
}
Licencia
Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.