Skip to main content
Glama
laktek
by laktek

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 content

  • nvim://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 directory

  • get_current_buffer() - Get the currently active buffer

  • get_buffer_content(path) - Get content of a specific buffer by path

  • update_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 disk

  • reload_all_buffers() - Check and reload all buffers that changed on disk

Related MCP server: memory-mcp-server

Setup with Claude Code

Run the following command in your terminal:

claude mcp add --transport stdio nvim -- npx nvim-mcp-server

This will automatically add the server to your ~/.claude.json configuration.

Option 2: Manual Configuration

Alternatively, manually edit ~/.claude.json:

{
  "mcpServers": {
    "nvim": {
      "command": "npx",
      "args": ["nvim-mcp-server"]
    }
  }
}

After adding the configuration, restart Claude Code for changes to take effect.

Verify Setup

Check that the server is configured correctly:

claude mcp list

Or use /mcp within Claude Code to check server status.

Usage

Once configured, the MCP server will automatically:

  1. Detect Neovim instances running in the current directory

  2. Expose buffer context to Claude via resources

  3. Enable buffer operations via tools

Example Workflows

1. Refactor Current File

You: "Refactor the current file to use async/await"

Claude:
- Reads nvim://current-buffer resource automatically
- Sees you're working on src/api.js
- Refactors the code
- Calls update_buffer() to push changes to nvim
- Changes appear instantly in your editor!

2. Check Open Buffers

You: "What files do I have open in nvim?"

Claude:
- Calls list_nvim_buffers() tool
- Shows you all open buffers

3. Update Specific Buffer

You: "Add error handling to src/utils.js"

Claude:
- Calls get_buffer_content("src/utils.js")
- Adds error handling
- Calls update_buffer() to apply changes
- You see updates in nvim immediately

4. Create and Open New File

You: "Create a new component called Button.jsx"

Claude:
- Creates the file using Write tool
- Calls open_file("src/components/Button.jsx")
- File opens in your nvim automatically
- You can continue editing right away!

How It Works

  1. Discovery: Uses $TMPDIR to find nvim socket files

  2. Filtering: Only connects to nvim instances running in the current directory

  3. RPC Communication: Uses the neovim npm package to communicate via msgpack-rpc

  4. MCP 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*/0 or /tmp/nvim*/0

  • Falls back to /tmp if $TMPDIR is not set

Benefits

Real-Time Updates

Traditional:

Claude writes to file → You reload in nvim

With MCP:

Claude updates buffer via RPC → Changes appear instantly

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 nvim

  • Verify 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: :ls in nvim

  • Verify 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:

node index.js

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:

npm test              # Run all tests
npm run test:watch    # Watch mode
npm run test:ui       # Interactive UI
npm run test:coverage # With coverage report

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):

npm run release:patch

Minor release (1.0.0 → 1.1.0):

npm run release:minor

Major release (1.0.0 → 2.0.0):

npm run release:major

Specific version:

npm run release 1.2.3

What the release script does:

  1. Validates git working directory is clean

  2. Runs all tests

  3. Bumps version in package.json

  4. Creates git commit with version bump

  5. Creates git tag (e.g., v1.0.1)

  6. Publishes to npm

  7. 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

Available Tools

7 tools
get_buffer_contentB

Get the content of a specific buffer by path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path of the buffer

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool gets content but doesn't describe what 'content' entails (e.g., text, metadata), potential errors (e.g., if the path doesn't exist), or side effects (e.g., whether it opens the buffer). This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral traits, and output, which are needed for full completeness. It meets the minimum viable standard but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'path' documented as 'The file path of the buffer'. The description adds no additional meaning beyond this, such as path format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and target resource ('content of a specific buffer by path'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_current_buffer' or 'list_nvim_buffers', which also retrieve buffer information, so it doesn't reach the highest clarity level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_current_buffer' (which might get content without specifying a path) or 'list_nvim_buffers' (which lists buffers rather than getting content). There's no mention of prerequisites, exclusions, or specific contexts for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_bufferB

Get the currently active buffer in Neovim

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves the active buffer but doesn't describe what happens if no buffer is active, the format of the return value (e.g., buffer ID, name, content), or any error conditions. This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word contributes directly to understanding the tool's purpose without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is minimal but incomplete. It doesn't address behavioral aspects like return format, error handling, or how it interacts with sibling tools. For a tool in a Neovim context with multiple buffer-related siblings, more context is needed to ensure proper usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter details, so it appropriately focuses on the tool's purpose. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary complexity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('the currently active buffer in Neovim'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_buffer_content' or 'list_nvim_buffers', which also retrieve buffer information but with different scopes or outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if this should be used instead of 'list_nvim_buffers' for retrieving only the active buffer, or if it's a prerequisite for tools like 'update_buffer'. There's no mention of prerequisites, exclusions, or specific contexts for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nvim_buffersB

List all open buffers in Neovim instances running in the current directory

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists buffers, but doesn't describe what the output looks like (e.g., format, structure), whether it includes hidden buffers, how it handles multiple Neovim instances, or any error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the tool's purpose and scope without any redundant words. It is front-loaded with the core action ('List all open buffers') and appropriately sized for its simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain the return format (e.g., list of buffer IDs, names, or states), how to interpret the output, or any limitations (e.g., buffers in non-current directories). For a tool with no structured output documentation, the description should provide more context about what the agent can expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, so it meets the baseline expectation. No additional parameter information is required or provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('all open buffers in Neovim instances'), making the purpose immediately understandable. It specifies the scope ('running in the current directory'), which helps distinguish it from generic buffer listing tools. However, it doesn't explicitly differentiate from sibling tools like 'get_current_buffer' or 'reload_all_buffers' in terms of specific use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance on when to use this tool. It mentions 'Neovim instances running in the current directory', which implies a context, but doesn't specify when to choose this over alternatives like 'get_current_buffer' (for a single buffer) or 'reload_all_buffers' (for refreshing buffers). No explicit when-not-to-use or prerequisite information is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_fileA

Open a file in Neovim. Use this to open newly created files or existing files for editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path to open (can be absolute or relative to current directory)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It implies a write operation (opening for editing) but doesn't disclose behavioral traits like whether it requires file permissions, if it creates non-existent files, or potential side effects. It adds basic context but lacks detail on mutation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences that are front-loaded and efficient. Every sentence earns its place by stating the purpose and usage context without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (file operation with potential mutation), no annotations, and no output schema, the description is minimally adequate. It covers basic purpose and usage but lacks details on behavior, error handling, or return values, leaving clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'path' parameter fully. The description doesn't add any meaning beyond what the schema provides, such as examples or edge cases, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Open a file') and resource ('in Neovim'), specifying it works for both newly created and existing files. It doesn't explicitly differentiate from sibling tools like 'update_buffer' or 'reload_buffer', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool ('to open newly created files or existing files for editing'), but it doesn't specify when not to use it or mention alternatives among sibling tools like 'reload_buffer' for already open files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reload_all_buffersA

Check all open buffers and reload any that have changed on disk. Use this after editing files externally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool checks for changes and reloads buffers, implying a read-and-write operation, but doesn't detail aspects like error handling, permissions needed, or side effects on unsaved changes. It adds basic context but lacks depth for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured in two sentences: the first states the purpose, and the second provides usage guidance. Every sentence earns its place with no wasted words, making it easy for an agent to parse and apply efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and no annotations, the description is adequate but minimal. It covers the basic purpose and usage, but for a tool that performs mutations (reloading buffers), more details on behavior, such as confirmation prompts or effects on buffer state, would enhance completeness for safe agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't discuss parameters, which is appropriate here, and it adds value by explaining the tool's action and usage context, justifying a score above the baseline of 3 for such cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('check', 'reload') and resources ('all open buffers'), explaining it detects and reloads buffers changed on disk. However, it doesn't explicitly differentiate from its sibling 'reload_buffer', which likely handles individual buffers, leaving some ambiguity in sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance by stating 'Use this after editing files externally,' which clearly indicates when to invoke the tool. This gives the agent a concrete scenario for application, though it doesn't mention alternatives or exclusions, the context is sufficiently clear for effective use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reload_bufferA

Reload a buffer from disk. Use this after editing a file externally to refresh the buffer in Neovim.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path of the buffer to reload

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the action ('reload from disk') and context ('after editing externally'), but doesn't specify whether this operation is destructive to unsaved changes, what permissions are needed, or what happens on failure. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each serve distinct purposes: the first states the core function, the second provides usage context. There's zero wasted language, and the information is front-loaded with the essential action before the contextual guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single-parameter tool with 100% schema coverage but no annotations and no output schema, the description provides adequate basic context about when to use the tool. However, for a mutation operation that could potentially discard unsaved buffer changes, more behavioral transparency would be beneficial. The description is complete enough for basic understanding but leaves operational risks unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'path' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as path format examples or constraints. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Reload a buffer from disk') and resource ('buffer'), making the purpose immediately understandable. It distinguishes from siblings like 'reload_all_buffers' by specifying single-buffer operation, though not explicitly contrasting with 'update_buffer'. The description avoids tautology by explaining what reloading entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('after editing a file externally to refresh the buffer in Neovim'), which is helpful guidance. However, it doesn't explicitly mention when NOT to use it or name alternatives like 'reload_all_buffers' for multiple buffers or 'update_buffer' for different operations. The guidance is practical but not comprehensive about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_bufferB

Update the content of a buffer in Neovim. Changes appear immediately in the editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path of the buffer to update
contentYesThe new content for the buffer

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It states the tool updates buffer content and changes appear immediately, which implies mutation, but doesn't disclose critical behavioral traits like whether it overwrites existing content entirely, requires specific permissions, handles unsaved changes, or what happens on errors. The description is minimal beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero waste. It's front-loaded with the core purpose and includes a useful behavioral note about immediate changes. Every sentence earns its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on error handling, return values, side effects (e.g., impact on undo history), and how it interacts with other tools like reload_buffer. For a tool that modifies editor state, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (path and content) fully. The description doesn't add any meaning beyond what the schema provides, such as format details or usage context for the parameters. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Update the content of a buffer') and resource ('a buffer in Neovim'), with the immediate effect ('Changes appear immediately in the editor'). It distinguishes from siblings like get_buffer_content (read-only) and reload_buffer (reloads from disk).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you want to modify buffer content directly in Neovim, but it doesn't explicitly state when to use this vs. alternatives like reload_buffer (for disk-based updates) or open_file (for opening new files). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • Addedopen_file
  2. 6 tool updates
    • First observedget_buffer_content
    • First observedget_current_buffer
    • First observedlist_nvim_buffers
    • First observedreload_all_buffers
    • First observedreload_buffer
    • First observedupdate_buffer

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between 'reload_buffer' and 'reload_all_buffers' that could cause confusion. The descriptions help clarify that 'reload_buffer' targets a specific buffer while 'reload_all_buffers' handles all buffers, but the similar naming might lead to misselection in some contexts.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as 'get_buffer_content', 'list_nvim_buffers', and 'update_buffer'. This predictability makes it easy for agents to understand and use the tools without confusion from mixed conventions.

Tool Count5/5

With 7 tools, the server is well-scoped for managing Neovim buffers and files. Each tool serves a clear purpose, such as retrieving, listing, opening, and updating buffers, which aligns well with the domain of Neovim integration without being overly sparse or bloated.

Completeness4/5

The tool set covers core buffer operations like getting, listing, opening, and updating, with good lifecycle coverage. A minor gap is the lack of a tool for closing or deleting buffers, which might be needed for full buffer management, but agents can likely work around this with existing tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/laktek/nvim-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server