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