Skip to main content
Glama
santanusinha

neovim-use-mcp

by santanusinha

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NVIM_MCP_BINNoPath to the nvim binary. Default is 'nvim'.nvim
NVIM_MCP_CWDNoProject root for the language server. Default is the process cwd.
NVIM_MCP_MODENoMode for the Neovim instance: 'embedded' spawns its own nvim, 'attach' connects to a socket. Default is 'embedded'.embedded
NVIM_MCP_DEBUGNoSet to '1' or 'true' to enable debug output on stderr. Default is off.off
NVIM_MCP_SOCKETNoSocket path for attach mode (used when NVIM_MCP_MODE=attach or --socket is passed).
NVIM_MCP_MAX_LINESNoLine cap for file reads. Default is '2000'.2000
NVIM_MCP_ALLOW_EXECNoSet to '0' to disable nvim_exec_lua and nvim_command tools. Default is enabled.1
NVIM_MCP_CONFIG_MODENoConfig mode for Neovim: 'user' loads your config, 'minimal' runs `nvim --clean`. Default is 'user'.user
NVIM_MCP_LSP_WAIT_MSNoDefault 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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. Call this before LSP tools.

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. 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_edit_textA

Replace an exact string in a file. Fails if the string is missing, or if it appears more than once and replace_all is false. Saves without running format-on-save autocmds by default. It is recommended to avoid using this tool for multi-line edits.

nvim_insert_linesA

Insert text before the given line, 1-based. Use a line beyond the end to append. Saves without running format-on-save autocmds by default.

nvim_save_bufferA

Write a buffer to disk without running format-on-save autocmds. Use this after edits made with save set to false.

nvim_list_buffersA

List every loaded buffer with its path, filetype and modified state.

nvim_diagnosticsA

Get LSP errors and warnings for one file, or for every open buffer when path is omitted. Use this to check work after an edit.

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_document_symbolsA

List the symbol outline of a file: classes, functions and fields with their line numbers. Cheaper than reading the whole file.

nvim_workspace_symbolsA

Search symbols across the whole project through the LSP. Use this to find a definition by name without knowing the file.

nvim_exec_luaA

Run a Lua chunk inside Neovim and return its value. The chunk receives its arguments through ... and must use return to send a value back. Use this to reach plugins that have no dedicated tool.

nvim_commandA

Run a Neovim Ex command, for example 'Telescope find_files' or 'Git blame', and return its output. Use this to drive installed plugins.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target a distinct operation: reading, editing, LSP queries, diagnostics, formatting, and plugin dispatch are clearly separated. The only mild ambiguity is among nvim_edit_lines, nvim_edit_text, and nvim_insert_lines, though their descriptions explain when to use each.

Naming Consistency4/5

All tools share the nvim_ prefix and use snake_case, which makes the set feel cohesive. However, some names are verb_noun (nvim_read_file, nvim_edit_lines) while others are noun-oriented (nvim_diagnostics, nvim_command, nvim_document_symbols), creating a minor style inconsistency.

Tool Count4/5

18 tools is slightly above the typical 3-15 range, but the count is justified by the server's broad scope covering file editing, buffer management, LSP navigation, diagnostics, formatting, and plugin access. No tool feels like filler, so the set is reasonable despite being a bit large.

Completeness4/5

The tool surface covers core workflows well: reading and editing files, formatting, saving, diagnostics, symbols, references, hover, rename, and code actions are all present. Minor gaps exist, such as no explicit buffer-close or file-create tool and no LSP implementation/type-definition navigation, but agents can work around these via nvim_command or nvim_exec_lua.

Maintenance

ActivityMaintained
ResponsivenessNo issues