nvim-bridge

使用说明内容(Markdown格式)

  • 项目简介 这是一个通过 MCP(Model Context Protocol)服务器向语言模型客户端提供 Neovim 编辑器上下文与操作工具的实现。它把 Neovim 的当前缓冲区、编辑器状态、以及常用操作暴露为 MCP 工具,方便 LLM 在不直接进入编辑器的情况下完成代码阅读、导航和修改等工作。

  • 主要功能点

    • 读取当前缓冲区内容(nvim_get_buffer)
    • 将内容写入当前缓冲区(nvim_set_buffer)
    • 获取编辑器上下文信息(nvim_get_context)
    • 在 Neovim 中执行命令或 Lua 代码(nvim_execute)
    • 跳转到指定文件及行列(nvim_navigate)
    • 查询连接状态(nvim_status)
    • 通过 MCP 服务器以 JSON-RPC 形式与客户端通信,支持通过标准输入/输出(stdio)等传输
  • 安装步骤

    • 确保环境
      • Node.js 18 及以上
      • Neovim 0.9 及以上
    • 获取代码
      • 将仓库克隆到本地
    • 安装依赖与构建
      • 安装依赖并构建产物(根据项目实际构建步骤执行)
    • 启动 MCP 服务器
      • 使用 Node 运行入口程序,确保入口可执行并指向编译后的入口点
    • 配置 Neovim 端点
      • 让 Neovim 通过 socket 对外监听,供 MCP 服务器调用
  • 服务器配置(MCP 客户端需要的连接信息,仅作参考,实际路径与部署可能不同) 该配置用于描述 MCP 客户端如何启动并连接到此 MCP 服务器。字段含义如下: { "serverName": "nvim-bridge", "command": "node", "args": ["path/to/dist/index.js"] }

    • serverName:服务器的名称,与仓库中的 MCP 服务器名称保持一致,方便客户端识别
    • command:启动服务器所需的可执行程序,示例为 node
    • args:传给启动程序的参数,通常包含服务器入口文件的路径(如 dist/index.js),按实际构建产物的位置调整
  • 基本使用方法

    1. 启动 Neovim 并让它监听一个 UNIX 套接字(例如 /tmp/nvim-bridge.sock)。
    2. 启动 MCP 服务器(本实现通过 stdio 传输运行,监听来自客户端的 JSON-RPC 请求)。
    3. 通过 MCP 客户端向 nvim-bridge 发送请求,调用工具如 nvim_get_buffer、nvim_get_context 等,获取或修改 Neovim 的状态与内容。
    4. 根据返回的 JSON-RPC 内容在客户端进行后续处理,例如将缓冲区文本传给模型、在编辑器中应用变更等。

服务器信息