Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
nvim-context-mcp logo

nvim-context-mcp

nvim-context-mcp

OtherClaude Codeby pappasam

Summary

Read-only MCP bridge that lets Claude Code inspect visible Neovim context.

Install to Claude Code

/plugin install nvim-context-mcp@nvim-context-mcp

Run in Claude Code. Add the marketplace first with /plugin marketplace add pappasam/nvim-context-mcp if you haven't already.

README.md

nvim-context-mcp

![Testing](https://github.com/pappasam/nvim-context-mcp/actions/workflows/testing.yml?query=branch%3Amain)

Read-only MCP bridge for live Neovim context.

This repository provides:

  • a Neovim plugin, via lua/nvim_context_mcp/init.lua
  • an MCP server for Codex and Claude Code, via the Rust nvim-context-mcp binary
  • plugin packaging metadata for Codex and Claude Code, via .codex-plugin/, .claude-plugin/, and .mcp.json

The Neovim plugin runs inside each Neovim instance and listens on a local Unix socket for a small read-only JSON protocol. The Rust binary is the MCP server that an agent launches over stdio. It discovers live Neovim instances, connects to the most recently active one, and exposes editor context without edit, command, shell, or remote-control tools.

Documentation

  • Architecture describes the runtime model, MCP resources, tools, state directory, and read-only boundaries.
  • Contributing covers local setup, development workflow, checks, and release notes for contributors.

Install

Install the Neovim plugin from a release tag. On first startup, the plugin downloads the matching MCP server binary from the same GitHub release, verifies its checksum, installs it under Neovim's data directory, and exposes it as nvim-context-mcp through ~/.local/bin when possible.

vim.pack.add({
  {
    src = "https://github.com/pappasam/nvim-context-mcp",
    name = "nvim-context-mcp",
    version = vim.version.range("*"),
  },
}, { confirm = false })

require("nvim_context_mcp").setup()

Then install the Codex or Claude Code plugin below. The agent plugin starts nvim-context-mcp automatically, while the Neovim plugin owns the matching binary.

Check the managed binary status from Neovim with:

:NvimContextMcp status

Install or repair the managed binary explicitly with:

:NvimContextMcp install

Optional binary configuration:

require("nvim_context_mcp").setup({
  binary = {
    auto_install = true,
    expose_on_path = true,
    bin_dir = vim.fn.expand("~/.local/bin"),
  },
})

When upgrading, update the Neovim package with :PackUpdate nvim-context-mcp. The next Neovim startup downloads the matching MCP server binary for the new plugin release.

Manual Binary Install

Download the archive for your platform from the GitHub releases page.

Linux and macOS archives are named like:

nvim-context-mcp-<version>-x86_64-unknown-linux-gnu.tar.gz
nvim-context-mcp-<version>-aarch64-unknown-linux-gnu.tar.gz
nvim-context-mcp-<version>-aarch64-apple-darwin.tar.gz

To install manually on Linux or macOS:

version=<latest-release-tag>
target=x86_64-unknown-linux-gnu
curl -LO "https://github.com/pappasam/nvim-context-mcp/releases/download/${version}/nvim-context-mcp-${version}-${target}.tar.gz"
tar -xzf "nvim-context-mcp-${version}-${target}.tar.gz"
install -d ~/.local/bin
install -m 0755 "nvim-context-mcp-${version}-${target}/nvim-context-mcp" ~/.local/bin/nvim-context-mcp

Verify the archive checksum with the SHA256SUMS file attached to the same release:

curl -LO "https://github.com/pappasam/nvim-context-mcp/releases/download/${version}/SHA256SUMS"
sha256sum --check --ignore-missing SHA256SUMS

On macOS, use shasum -a 256 to compare the downloaded archive against SHA256SUMS.

If you use mise-en-place, install from GitHub releases with the github backend:

mise use -g github:pappasam/nvim-context-mcp@latest

From Source

Build the MCP server:

cargo install --path .

Neovim Plugin

Load the Neovim plugin with your plugin manager, tracking the same release stream as the MCP server binary. If you are actively developing from a local checkout, add that checkout to runtimepath instead:

vim.opt.runtimepath:prepend("/path/to/nvim-context-mcp")
require("nvim_context_mcp").setup()

Optional configuration:

require("nvim_context_mcp").setup({
  -- Defaults to /tmp/nvim-context-mcp-<uid>.
  state_dir = "/custom/state/dir",
  include_visible_text = true,
  include_terminal_buffers = false,
  max_lines_per_window = 200,
  max_bytes_per_window = 20000,
  max_lines_per_buffer = 1000,
  max_bytes_per_buffer = 100000,
  max_diagnostics = 1000,
  binary = {
    auto_install = true,
    expose_on_path = true,
    bin_dir = vim.fn.expand("~/.local/bin"),
  },
})

Codex

Install the Codex plugin instead of adding the MCP server by hand. The plugin declares this repo's .mcp.json, so Codex starts the MCP server automatically when the plugin is enabled. Neovim still needs to load the Lua plugin as shown above; the Lua plugin downloads the matching nvim-context-mcp binary and exposes it on PATH when possible.

codex plugin marketplace add pappasam/nvim-context-mcp
codex plugin add nvim-context-mcp@nvim-context-mcp

For a local checkout:

codex plugin marketplace add /path/to/nvim-context-mcp
codex plugin add nvim-context-mcp@nvim-context-mcp

After installing the Codex plugin, restart Codex, start Neovim with require("nvim_context_mcp").setup() configured, then ask Codex to inspect the visible Neovim context. If Codex cannot find nvim-context-mcp, run :NvimContextMcp status in Neovim and make sure the reported link directory is on your shell PATH.

The equivalent raw MCP command, if you need to debug the plugin, is:

codex mcp add nvim-context-mcp -- nvim-context-mcp

This repo includes .agents/plugins/marketplace.json and plugins/nvim-context-mcp/ so it can be installed as a Codex plugin.

Claude Code

Install the Claude Code plugin instead of editing settings.json by hand. The plugin declares this repo's .mcp.json, so Claude Code starts the MCP server automatically when the plugin is enabled. Neovim still needs to load the Lua plugin as shown above; the Lua plugin downloads the matching nvim-context-mcp binary and exposes it on PATH when possible.

From inside Claude Code:

/plugin marketplace add pappasam/nvim-context-mcp
/plugin install nvim-context-mcp@nvim-context-mcp
/reload-plugins

Or use the non-interactive CLI:

claude plugin marketplace add pappasam/nvim-context-mcp
claude plugin install nvim-context-mcp@nvim-context-mcp

For a local checkout, load the plugin directly for one Claude Code session:

claude --plugin-dir /path/to/nvim-context-mcp

After installing or loading the Claude Code plugin, start Neovim with require("nvim_context_mcp").setup() configured, then ask Claude Code to list live Neovim instances or read the visible buffer context. If Claude Code cannot find nvim-context-mcp, run :NvimContextMcp status in Neovim and make sure the reported link directory is on your shell PATH.

The equivalent raw MCP configuration, if you need to debug the plugin, is:

{
  "mcpServers": {
    "nvim-context-mcp": {
      "command": "nvim-context-mcp"
    }
  }
}

To avoid repeated Claude Code approval prompts with the plugin, add the exact tool allowlist to ~/.claude/settings.json:

{
  "permissions": {
    "allow": [
      "mcp__plugin_nvim-context-mcp_nvim-context-mcp__nvim_list_instances",  
      "mcp__plugin_nvim-context-mcp_nvim-context-mcp__nvim_get_visible_context",
      "mcp__plugin_nvim-context-mcp_nvim-context-mcp__nvim_list_buffers",  
      "mcp__plugin_nvim-context-mcp_nvim-context-mcp__nvim_get_buffer_text",  
      "mcp__plugin_nvim-context-mcp_nvim-context-mcp__nvim_get_diagnostics",
    ]
  }
}

This explicit allowlist is narrower than allowing the whole MCP server and will not automatically approve future tools if the server grows. If you are comfortable auto-approving all current and future tools from this server, the broader rule is:

{
  "permissions": {
    "allow": ["mcp__plugin_nvim-context-mcp_nvim-context-mcp__*"]
  }
}

After editing settings.json, restart Claude Code or use /permissions to verify that the new allow rules are loaded.

Related plugins

Browse all →