mcp-neovim-server

by bigcodegen
Verified

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 neovim
  • nvim://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 :

{ "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 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.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

  1. Features
    1. API
      1. Resources
      2. Tools
    2. Limitations
      1. Configuration
        1. Environment Variables
      2. Usage with Claude Desktop
        1. License
          ID: s0fywdwp87