The Neovim MCP Server provides real-time integration between Neovim and Claude, enabling AI-assisted editing with immediate buffer synchronization.
Core Capabilities:
Automatic Context Access - Claude automatically sees your currently active buffer (
nvim://current-buffer) and all open buffers (nvim://open-buffers) as resourcesList Open Buffers - Retrieve all buffers currently open in Neovim instances running in your working directory
Get Active Buffer - Obtain details and content of the currently focused buffer
Read Buffer Content - Fetch content of any specific buffer by its file path
Update Buffers Directly - Modify buffer content in real-time with changes appearing instantly in your editor without saving to disk
Open Files - Open new or existing files directly in your Neovim instance
Reload Buffers - Refresh individual buffers or all open buffers from disk after external changes
Key Benefits:
Real-time Synchronization - Changes appear immediately without file I/O
Context Awareness - Claude automatically knows which files you're editing and what's open
Seamless Workflow - Works with unsaved buffers, preserves undo/redo history, and triggers Neovim autocmds (LSP, linting, etc.)
Direct Editor Control - Create, refactor, and manage files directly in Neovim from Claude
Enables real-time buffer awareness and manipulation in Neovim, allowing reading and updating of buffer contents, listing open buffers, and making changes that appear instantly in the editor without file writes.
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., "@Neovim MCP Serveradd error handling to the current buffer"
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
MCP (Model Context Protocol) server that integrates Neovim buffers with Claude Code, enabling seamless buffer awareness and real-time updates.
Features
Resources (Auto-available Context)
nvim://current-buffer- Currently active buffer with path and contentnvim://open-buffers- List of all open buffers with metadata
Tools (Claude Can Invoke)
list_nvim_buffers()- List all open buffers in nvim instances running in current directoryget_current_buffer()- Get the currently active bufferget_buffer_content(path)- Get content of a specific buffer by pathupdate_buffer(path, content)- Update buffer content directly in nvim (changes appear immediately!)open_file(path)- Open a file in nvim (useful after creating new files)reload_buffer(path)- Reload a buffer from diskreload_all_buffers()- Check and reload all buffers that changed on disk
Setup with Claude Code
Option 1: Using the CLI (Recommended)
Run the following command in your terminal:
This will automatically add the server to your ~/.claude.json configuration.
Option 2: Manual Configuration
Alternatively, manually edit ~/.claude.json:
After adding the configuration, restart Claude Code for changes to take effect.
Verify Setup
Check that the server is configured correctly:
Or use /mcp within Claude Code to check server status.
Usage
Once configured, the MCP server will automatically:
Detect Neovim instances running in the current directory
Expose buffer context to Claude via resources
Enable buffer operations via tools
Example Workflows
1. Refactor Current File
2. Check Open Buffers
3. Update Specific Buffer
4. Create and Open New File
How It Works
Discovery: Uses
$TMPDIRto find nvim socket filesFiltering: Only connects to nvim instances running in the current directory
RPC Communication: Uses the
neovimnpm package to communicate via msgpack-rpcMCP Integration: Exposes nvim buffers as MCP resources and tools
Socket Discovery
The server finds nvim sockets using:
macOS:
$TMPDIR/nvim*/0(typically/var/folders/.../T/nvim*/0)Linux:
$TMPDIR/nvim*/0or/tmp/nvim*/0Falls back to
/tmpif$TMPDIRis not set
Benefits
Real-Time Updates
Traditional:
With MCP:
Context Awareness
Claude automatically knows:
Which file you're currently editing
All files you have open
Can make changes directly in your editor
Seamless Integration
No file writes needed (updates are in-memory)
Works with unsaved buffers
Normal nvim undo/redo works
Triggers autocmds (LSP, linting, etc.)
Troubleshooting
No Neovim instances found
Make sure you're running the command from the same directory as your nvim instance
Check that nvim is running:
ps aux | grep nvimVerify socket exists:
ls $TMPDIR/nvim*/0
Buffer updates not appearing
Ensure the buffer path matches exactly (use absolute paths)
Check that the buffer is listed:
:lsin nvimVerify the MCP server has permissions to access the socket
MCP server not connecting
Restart Claude Code after adding the MCP configuration
Check Claude Code logs for errors
Verify the path in the config is absolute and correct
Development
Test the server manually:
The server communicates via stdio, so you'll need an MCP client (like Claude Code) to interact with it properly.
Debug mode:
The server logs errors to stderr, which you can see in Claude Code's MCP server logs.
Running tests:
Publishing
The project includes automated release scripts for publishing to npm.
Prerequisites:
Clean git working directory
Tests must pass
npm authentication configured (
npm login)
Release commands:
Patch release (1.0.0 → 1.0.1):
Minor release (1.0.0 → 1.1.0):
Major release (1.0.0 → 2.0.0):
Specific version:
What the release script does:
Validates git working directory is clean
Runs all tests
Bumps version in package.json
Creates git commit with version bump
Creates git tag (e.g., v1.0.1)
Publishes to npm
Pushes commit and tags to git
If any step fails, the script will abort and rollback changes.
Requirements
Node.js 16+
Neovim with RPC support (any recent version)
Running nvim instance in the directory where you invoke Claude
License
MIT