nvim-mcp-server
Provides tools to interact with Neovim via LSP for symbol-level code operations, and execute Lua or Vimscript code in a Neovim instance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nvim-mcp-servershow top-level symbols in src/main.ts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Neovim MCP Server
A Model Context Protocol (MCP) server for Neovim that provides LSP-based symbol tools. This server enables AI language models to interact with Neovim's Language Server Protocol (LSP) for symbol-level code operations.
Features
Symbol Tools (LSP-based)
get_symbols_overview(relative_path, depth)- Get overview of top-level symbols in a file. Usedepthto include children (e.g., methods of a class).find_symbol(name_path_pattern, relative_path, depth)- Find symbols by name path pattern (e.g., "MyClass/my_method").find_referencing_symbols(name_path, relative_path)- Find all references to a symbol.replace_symbol_body(name_path, relative_path, body)- Replace the body of a symbol definition.insert_after_symbol(name_path, relative_path, body)- Insert content after a symbol's definition.insert_before_symbol(name_path, relative_path, body)- Insert content before a symbol's definition.rename_symbol(name_path, relative_path, new_name)- Rename a symbol throughout the codebase.restart_language_server()- Restart the LSP server (useful when LSP hangs).get_lsp_client_info()- Get information about active LSP clients.
General Tools
execute_lua(code)- Execute Lua code in Neovimexecute_vimscript(code)- Execute Vimscript code in Neovim
Related MCP server: TypeScript Definition Finder
Installation
Prerequisites
Python 3.11+
uv package manager
Neovim 0.9+ with built-in LSP client
Install from source
git clone https://github.com/brianhuster/nvim-mcp-server.git
cd nvim-mcp-server
uv syncAdd to your Neovim configuration
Add the plugin directory to your Neovim runtime path:
-- In your init.lua or plugins.lua
vim.opt.runtimepath:append("/path/to/nvim-mcp-server/plugin")Usage
Start Neovim with the MCP server
Start Neovim with a socket:
nvim --listen /tmp/nvim.sockSet the NVIM environment variable and run the MCP server:
export NVIM=/tmp/nvim.sock uv run nvim-mcp
Configuration with Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"nvim": {
"command": "uv",
"args": ["run", "nvim-mcp"],
"env": {
"NVIM": "/tmp/nvim.sock"
}
}
}
}Use with Goose
extensions:
nvim-mcp:
cmd: uv
args: ["run", "nvim-mcp"]
env:
NVIM: "/tmp/nvim.sock"
type: stdioDevelopment
Commands
uv run nvim-mcp- Start the MCP serveruv run nvim-mcp --version- Show versionuv run ruff check- Run lintinguv run mypy- Run type checking
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brianhuster/nvim-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server