neovim-use-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NVIM_MCP_BIN | No | Path to the nvim binary. Default is 'nvim'. | nvim |
| NVIM_MCP_CWD | No | Project root for the language server. Default is the process cwd. | |
| NVIM_MCP_MODE | No | Mode for the Neovim instance: 'embedded' spawns its own nvim, 'attach' connects to a socket. Default is 'embedded'. | embedded |
| NVIM_MCP_DEBUG | No | Set to '1' or 'true' to enable debug output on stderr. Default is off. | off |
| NVIM_MCP_SOCKET | No | Socket path for attach mode (used when NVIM_MCP_MODE=attach or --socket is passed). | |
| NVIM_MCP_MAX_LINES | No | Line cap for file reads. Default is '2000'. | 2000 |
| NVIM_MCP_ALLOW_EXEC | No | Set to '0' to disable nvim_exec_lua and nvim_command tools. Default is enabled. | 1 |
| NVIM_MCP_CONFIG_MODE | No | Config mode for Neovim: 'user' loads your config, 'minimal' runs `nvim --clean`. Default is 'user'. | user |
| NVIM_MCP_LSP_WAIT_MS | No | Default LSP wait time in milliseconds. Default is '3000'. | 3000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nvim_open_fileA | Open one or more files in Neovim buffers and start their LSP clients. Pass a single path or an array of paths. Returns the buffer id, filetype, line count and attached LSP clients for each file. Optional: use it to pre-warm files or tune wait_ms. Other tools open files on demand. |
| nvim_read_fileA | Read a file through Neovim with line numbers. Opens the file if needed. Use start_line and end_line to read a slice of a large file. |
| nvim_edit_linesA | This is the default way to edit files. Use the provided line numbers to directly replace lines start_line..end_line (1-based, inclusive) with new text. To insert before a line, pass start_line = end_line + 1 (for example start 5, end 4 inserts before line 5). Saves the buffer by default without running format-on-save autocmds, so the diff is minimal. Returns fresh LSP diagnostics for the file. Use nvim_format to format after editing once editing and fixes on that are done. |
| nvim_goto_definitionA | Find where the symbol at a position is defined, through the LSP. |
| nvim_referencesA | Find every reference to the symbol at a position, through the LSP. Use this before a rename or a signature change. |
| nvim_hoverA | Get type and documentation information for the symbol at a position, the same text the editor shows on hover. |
| nvim_rename_symbolA | Rename a symbol across the whole workspace with the LSP, then save every changed file. Safer than a text search and replace. |
| nvim_code_actionsA | List LSP code actions at a position. Pass apply_index to apply one and save the file. Use this to apply quick fixes for diagnostics. |
| nvim_formatA | Format a whole file or a line range with the formatter Neovim is configured to use, then save it. |
| nvim_exec_luaA | Run a Lua chunk inside Neovim and return its value. The chunk receives its arguments through |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool has a clearly distinct responsibility: LSP lookups (hover, definition, references), mutations (rename, edit, format, code actions), file I/O (read, open), and an escape hatch (exec lua). Even the similar-looking open vs read tools differ clearly in purpose: one returns buffer metadata, the other returns file content.
All tools share the consistent nvim_ prefix and most use a verb_noun pattern like nvim_read_file and nvim_rename_symbol. Minor deviations like nvim_references and nvim_code_actions being noun phrases, plus bare-verb tools like nvim_format and nvim_hover, keep this from being a perfect 5.
10 tools is a well-scoped set for a Neovim-powered editing and LSP server. Each tool covers a meaningful operation, and there is no obvious redundancy or bloat.
The core workflows are well covered: read, open, edit, format, rename, reference lookup, definition lookup, hover info, and code actions. Minor gaps exist around secondary LSP features like a dedicated diagnostics-only tool, document symbols, or explicit file create/delete operations, but agents can work around these.