Neovim MCP Server
Conecta qualquer cliente MCP ao editor Neovim para integração e controle contínuos.
Documentação
Servidor MCP do Neovim
Conecte o Claude Desktop (ou qualquer cliente do Model Context Protocol) ao Neovim usando MCP e a biblioteca oficial neovim/node-client JavaScript. Este servidor aproveita os comandos nativos de edição de texto e fluxos de trabalho do Vim, que o Claude já entende, para criar uma camada leve de assistência de texto para código ou uso geral com IA.
Recursos
- Conecta-se à sua instância do nvim se você expor um arquivo de socket, por exemplo
--listen /tmp/nvim, ao iniciar o nvim - Visualiza seus buffers atuais e gerencia a alternância de buffers
- Obtém localização do cursor, modo, nome do arquivo, marcas, registradores e seleções visuais
- Executa comandos do vim e, opcionalmente, comandos de shell através do vim
- Pode fazer edições usando modos insert, replace ou replaceAll
- Funcionalidade de busca e substituição com suporte a regex
- Busca grep em todo o projeto com integração ao quickfix
- Gerenciamento abrangente de janelas
- Monitoramento de saúde e diagnóstico de conexão
API
Recursos
nvim://session: Sessão atual do editor de texto neovimnvim://buffers: Lista de todos os buffers abertos na sessão atual do Neovim com metadados incluindo status de modificação, sintaxe e IDs de janela
Ferramentas
Ferramentas Principais
- vim_buffer
- Obtém o conteúdo do buffer com números de linha (suporta parâmetro de nome de arquivo)
- Entrada
filename(string, opcional) - Obtém buffer específico por nome de arquivo - Retorna linhas numeradas com o conteúdo do buffer
- vim_command
- Envia um comando ao VIM para navegação, edição pontual e exclusão de linhas
- Entrada
command(string) - Executa comandos do vim com
nvim.replaceTermcodes. Vários comandos funcionam com quebras de linha - Comandos de shell suportados com prefixo
!quandoALLOW_SHELL_COMMANDS=true - Em caso de erro, o conteúdo de
'nvim:errmsg'é retornado
- vim_status
- Obtém status abrangente do Neovim
- Retorna posição do cursor, modo, nome do arquivo, seleção visual com detecção aprimorada, layout da janela, aba atual, marcas, registradores, diretório de trabalho, informações do cliente LSP e detecção de plugins
- Relatório aprimorado de seleção visual: detecta o tipo de modo visual (caractere/linha/bloco), fornece texto de seleção preciso, posições inicial/final e últimas marcas de seleção visual
- vim_edit
- Edita linhas usando modos insert, replace ou replaceAll
- Entrada
startLine(número),mode("insert"|"replace"|"replaceAll"),lines(string) - insert: insere linhas em startLine
- replace: substitui linhas a partir de startLine
- replaceAll: substitui todo o conteúdo do buffer
- vim_window
- Manipula janelas do Neovim (split, vsplit, close, navigate)
- Entrada
command(string: "split", "vsplit", "only", "close", "wincmd h/j/k/l")
- vim_mark
- Define marcas nomeadas em posições específicas
- Entrada
mark(string: a-z),line(número),column(número)
- vim_register
- Define o conteúdo dos registradores
- Entrada
register(string: a-z ou "),content(string)
- vim_visual
- Cria seleções em modo visual
- Entrada
startLine(número),startColumn(número),endLine(número),endColumn(número)
Gerenciamento Aprimorado de Buffers
- vim_buffer_switch
- Alterna entre buffers por nome ou número
- Entrada
identifier(string | número) - Nome ou número do buffer
- vim_buffer_save
- Salva o buffer atual ou salva em um nome de arquivo específico
- Entrada
filename(string, opcional) - Salvar em arquivo específico
- vim_file_open
- Abre arquivos em novos buffers
- Entrada
filename(string) - Arquivo a ser aberto
Busca e Substituição
- vim_search
- Busca dentro do buffer atual com suporte a regex
- Entrada
pattern(string),ignoreCase(booleano, opcional),wholeWord(booleano, opcional)
- vim_search_replace
- Localizar e substituir com opções avançadas
- Entrada
pattern(string),replacement(string),global(booleano, opcional),ignoreCase(booleano, opcional),confirm(booleano, opcional)
- vim_grep
- Busca em todo o projeto usando vimgrep com lista quickfix
- Entrada
pattern(string),filePattern(string, opcional) - Padrão de arquivo para busca
Ferramentas Avançadas de Fluxo de Trabalho
- vim_macro
- Grava, interrompe e reproduz macros do Vim
- Entrada
action("record" | "stop" | "play"),register(string, a-z),count(número, opcional)
- vim_tab
- Gerenciamento completo de abas
- Entrada
action("new" | "close" | "next" | "prev" | "first" | "last" | "list"),filename(string, opcional)
- vim_fold
- Operações de dobramento de código
- Entrada
action("create" | "open" | "close" | "toggle" | "openall" | "closeall" | "delete"),startLine/endLine(números, para create)
- vim_jump
- Navegação pela lista de saltos
- Entrada
direction("back" | "forward" | "list")
Ferramentas de Sistema
- vim_health
- Verifica a saúde da conexão do Neovim e o status do socket
Usando este conjunto abrangente de 19 ferramentas, o Claude pode examinar sua sessão do neovim, navegar por buffers, realizar buscas, fazer edições, gravar macros, gerenciar abas e dobras, e lidar com seu fluxo de trabalho completo de desenvolvimento usando recursos padrão do Neovim.
Prompts
- neovim_workflow: Obtém ajuda contextual e orientação para fluxos de trabalho comuns do Neovim, incluindo edição, navegação, busca, gerenciamento de buffers, operações de janela e uso de macros. Fornece instruções passo a passo para realizar tarefas com as ferramentas MCP disponíveis.
Tratamento de Erros
O servidor implementa tratamento abrangente de erros com classes de erro personalizadas e respostas de erro consistentes:
- NeovimConnectionError: Falhas de conexão de socket com mensagens detalhadas
- NeovimCommandError: Falhas de execução de comandos com contexto do comando
- NeovimValidationError: Falhas de validação de entrada
Novo na v0.5.2: Todas as ferramentas agora incluem tratamento robusto de erros try-catch que retorna mensagens de erro significativas no formato MCP adequado. Os recursos incluem monitoramento de saúde da conexão, propagação graciosa de erros e mensagens de erro acionáveis para ajudar a diagnosticar problemas.
Limitações
- Pode não interagir bem com configurações ou plugins complexos do neovim
- A execução de comandos de shell está desabilitada por padrão por segurança
- Requer conexão de socket - não funcionará com vim padrão
Configuração
Variáveis de Ambiente
ALLOW_SHELL_COMMANDS: Defina como 'true' para habilitar a execução de comandos de shell (por exemplo,!ls). O padrão é false por segurança.NVIM_SOCKET_PATH: Defina como o caminho do socket do seu Neovim. O padrão é '/tmp/nvim' se não for especificado.
Instalação
Opção 1: Pacote DXT (Recomendado)
- Baixe o arquivo
.dxtmais recente em Releases - Arraste o arquivo para o Claude Desktop
Opção 2: Instalação Manual
Adicione isto ao seu 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"
}
}
}
}
Licença
Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.