Usage Guide
September 5, 2025 ยท View on GitHub
This guide covers detailed usage patterns, workflows, and transport modes for the nvim-mcp server.
Quick Start
1. Setup Neovim Integration
Option A: Using Neovim Plugin (Recommended)
With a plugin manager like lazy.nvim:
return {
"linw1995/nvim-mcp",
-- install the mcp server binary automatically
-- build = "cargo install --path .",
build = [[
nix build .#nvim-mcp
nix profile remove nvim-mcp
nix profile install .#nvim-mcp
]],
opts = {},
}
This plugin automatically creates a Unix-Socket/pipe for MCP connections.
Option B: Manual Setup
Start Neovim with TCP listening or creating Unix-Socket:
nvim --listen 127.0.0.1:6666
# Or creating Unix-Socket
nvim --listen ./nvim.sock
Or add to your Neovim config:
vim.fn.serverstart("127.0.0.1:6666")
-- Or creating Unix-Socket
vim.fn.serverstart("./nvim.sock")
2. Start the Server working with various clients
# Configure claude to auto-connect to current project Neovim instances (recommended)
claude mcp add -s local nvim -- nvim-mcp --log-file . \
--log-level debug --connect auto
# Your full options to start the server
# Start as stdio MCP server (default, manual connection mode)
nvim-mcp
# Auto-connect to current project Neovim instances
nvim-mcp --connect auto
# Connect to specific target (TCP address or socket path)
nvim-mcp --connect 127.0.0.1:6666
nvim-mcp --connect /tmp/nvim.sock
# With custom logging
nvim-mcp --log-file ./nvim-mcp.log --log-level debug
# HTTP server mode with auto-connection
nvim-mcp --http-port 8080 --connect auto
# HTTP server mode with custom bind address
nvim-mcp --http-port 8080 --http-host 0.0.0.0
Command Line Options
--connect <MODE>: Connection mode (default: manual)manual: Traditional workflow using get_targets and connect toolsauto: Automatically connect to all project-associated Neovim instances- Specific target: TCP address (e.g.,
127.0.0.1:6666) or absolute socket path
--log-file <PATH>: Path to log file (defaults to stderr)--log-level <LEVEL>: Log level (trace, debug, info, warn, error; defaults to info)--http-port <PORT>: Enable HTTP server mode on the specified port--http-host <HOST>: HTTP server bind address (defaults to 127.0.0.1)
Usage Workflows
Once both the MCP server and Neovim are running, here are the available workflows:
Automatic Connection Mode (Recommended)
When using --connect auto, the server automatically discovers and connects to
Neovim instances associated with your current project:
-
Start server with auto-connect:
nvim-mcp --connect auto -
Server automatically:
- Detects current project root (git repository or working directory)
- Finds all Neovim instances for the current project
- Establishes connections with deterministic
connection_ids - Reports connection status and IDs
-
Use connection-aware tools directly:
- Server logs will show the
connection_ids for connected instances - Use tools like
list_buffers,buffer_diagnostics,read, etc. with these IDs - Access resources immediately without manual connection setup
- Server logs will show the
Specific Target Mode
For direct connection to a known target:
-
Connect to specific target:
# TCP connection nvim-mcp --connect 127.0.0.1:6666 # Unix socket connection nvim-mcp --connect /tmp/nvim.sock -
Server automatically connects and reports the
connection_id -
Use connection-aware tools with the reported ID
Manual Connection Mode (Traditional)
For traditional discovery-based workflow:
- Discover available Neovim instances:
- Use
get_targetstool to list available socket paths
- Use
- Connect to Neovim:
- Use
connecttool with a socket path from step 1 - Save the returned
connection_idfor subsequent operations
- Use
- Perform operations:
- Use tools like
list_buffers,buffer_diagnostics, etc. with yourconnection_id - Access resources like
nvim-connections://ornvim-diagnostics://{connection_id}/workspace
- Use tools like
- Optional cleanup:
- Use
disconnecttool when completely done
- Use
HTTP Server Transport
The server supports HTTP transport mode for web-based integrations and applications that cannot use stdio transport. This is useful for web applications, browser extensions, or other HTTP-based MCP clients.
Starting HTTP Server Mode
# Start HTTP server on default localhost:8080
nvim-mcp --http-port 8080
# Bind to all interfaces
nvim-mcp --http-port 8080 --http-host 0.0.0.0
# With custom logging
nvim-mcp --http-port 8080 --log-file ./nvim-mcp.log --log-level debug