Controls a Neovim session through the official neovim/node-client library so agents can read and edit code and text.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add neovim --env ALLOW_SHELL_COMMANDS='<ALLOW_SHELL_COMMANDS>' --env NVIM_SOCKET_PATH='<NVIM_SOCKET_PATH>' -- npx -y mcp-neovim-server~/.codex/config.toml
[mcp_servers.neovim]
command = "npx"
args = ["-y", "mcp-neovim-server"]
env = { ALLOW_SHELL_COMMANDS = "<ALLOW_SHELL_COMMANDS>", NVIM_SOCKET_PATH = "<NVIM_SOCKET_PATH>" }
# codex mcp add neovim --env ALLOW_SHELL_COMMANDS='<ALLOW_SHELL_COMMANDS>' --env NVIM_SOCKET_PATH='<NVIM_SOCKET_PATH>' -- npx -y mcp-neovim-server~/.cursor/mcp.json
{
"mcpServers": {
"neovim": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "<ALLOW_SHELL_COMMANDS>",
"NVIM_SOCKET_PATH": "<NVIM_SOCKET_PATH>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"neovim": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "<ALLOW_SHELL_COMMANDS>",
"NVIM_SOCKET_PATH": "<NVIM_SOCKET_PATH>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"neovim": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "<ALLOW_SHELL_COMMANDS>",
"NVIM_SOCKET_PATH": "<NVIM_SOCKET_PATH>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"neovim": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "<ALLOW_SHELL_COMMANDS>",
"NVIM_SOCKET_PATH": "<NVIM_SOCKET_PATH>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"neovim": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "<ALLOW_SHELL_COMMANDS>",
"NVIM_SOCKET_PATH": "<NVIM_SOCKET_PATH>"
}
}
}
}Environment variables
ALLOW_SHELL_COMMANDSNVIM_SOCKET_PATH
Replace the placeholders with your own credentials and keep them out of version control.