Skip to main content
Glama

list_nvim_buffers

View all open Neovim buffers in the current directory to manage editing sessions and track active files.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Core implementation of listing open buffers: connects to Neovim instances in current dir, fetches listed buffers with path, bufnr, cwd.
    export async function listOpenBuffers() { const instances = await getNvimInstancesInCwd(); const allBuffers = []; for (const { nvim, cwd } of instances) { try { const buffers = await nvim.buffers; for (const buf of buffers) { const listed = await nvim.call("buflisted", [buf.id]); if (listed) { const name = await buf.name; if (name) { allBuffers.push({ path: name, bufnr: buf.id, cwd, }); } } } } catch (error) { console.error("Error listing buffers:", error.message); } } return allBuffers; }
  • MCP CallToolRequestSchema handler: invokes listOpenBuffers() and returns JSON-formatted buffer list as text content.
    if (name === "list_nvim_buffers") { const buffers = await listOpenBuffers(); return { content: [ { type: "text", text: JSON.stringify(buffers, null, 2), }, ], }; }
  • index.js:114-122 (registration)
    Tool registration in ListToolsRequestSchema response, including name, description, and empty input schema.
    { name: "list_nvim_buffers", description: "List all open buffers in Neovim instances running in the current directory", inputSchema: { type: "object", properties: {}, }, },
  • Input schema definition for the list_nvim_buffers tool (no parameters required).
    inputSchema: { type: "object", properties: {}, },
  • Helper function to find and connect to Neovim instances running in the current working directory, used by listOpenBuffers.
    export async function getNvimInstancesInCwd() { const cwd = process.cwd(); const sockets = await findNvimSockets(); const instances = []; for (const socketPath of sockets) { try { const nvim = attach({ socket: socketPath }); const instanceCwd = await nvim.call("getcwd", []); // Check if this nvim instance is in our current directory if (instanceCwd === cwd || instanceCwd.startsWith(cwd + "/")) { instances.push({ socket: socketPath, cwd: instanceCwd, nvim, }); } // Note: We don't quit non-matching instances, just skip them } catch (error) { // Failed to connect to this socket, skip it continue; } } return instances; }

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