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.

mcp-neovim-server MCP server

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 neovim
  • nvim://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 ! cuando ALLOW_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)

  1. Descarga el archivo .dxt más reciente desde Lanzamientos
  2. 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.