Because every call goes through a running Neovim over its socket, there is one editor state rather than two: the agent's change appears where you are looking, and vim_status hands back your cursor position, mode, marks and registers so it can start from where you actually are. The decision worth making before you connect it is ALLOW_SHELL_COMMANDS, which is the difference between vim_command running editor commands and vim_command running your shell.
A client for a running Neovim instance: 19 tools that drive the editor over its socket rather than reading and writing files directly.
- Buffer work in the live session: contents returned with line numbers, edits applied by insert, replace or replaceAll from a start line, files opened into new buffers, buffers switched by name or number and saved under their own or another filename
- Search at three scopes: vim_search within a buffer with regex, case and whole-word options; vim_search_replace with global, case-insensitive and confirm options; vim_grep across the project into the quickfix list
- Editor state read back rather than assumed — cursor position, mode, marks and registers from one call, and a health check on the connection itself
- Vim's own machinery reachable as tools: named marks, register contents, visual selections, macros recorded and replayed by register and count, folds, and the jump list
- Window and tab layout: splitting, closing and moving between windows, and creating, closing and navigating tabs
- vim_command runs Vim commands, with shell command support behind an environment switch
A running Neovim whose socket the server can reach at NVIM_SOCKET_PATH. Shell commands through vim_command stay unavailable until ALLOW_SHELL_COMMANDS is set. MIT-licensed.
One command — npx -y mcp-neovim-server
