Neovim代码助手
利用Vim原生的文本编辑命令和工作流(Claude已经理解这些),来创建一个轻量级的代码辅助层。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"MCP Neovim Server": {
"args": [
"-y",
"mcp-neovim-server"
],
"command": "npx",
"env": {
"ALLOW_SHELL_COMMANDS": "true",
"NVIM_SOCKET_PATH": "/tmp/nvim"
}
}
}
}
服务介绍
Neovim MCP 服务器
这是一个概念验证集成,它使用模型上下文协议(MCP)和官方的 neovim/node-client JavaScript 库在 Claude Desktop(或任何客户端)与 Neovim 之间建立连接。该服务器利用 Vim 的原生文本编辑命令和工作流,这些是 Claude 已经理解的,以此来创建一个轻量级的代码或通用 AI 文本辅助层。
功能
- 如果您通过暴露一个套接字文件(例如
--listen /tmp/nvim)启动 nvim,则可以连接到您的 nvim 实例 - 查看当前缓冲区
- 获取光标位置、模式、文件名
- 通过 Vim 运行 Vim 命令并可选地运行 shell 命令
- 可以使用插入或替换进行编辑
API
资源
nvim://session: 当前的 Neovim 文本编辑会话nvim://buffers: 当前 Neovim 会话中所有打开的缓冲区列表,包括修改状态、语法和窗口 ID 等元数据
工具
- vim_buffer
- 显示行号的当前 VIM 文本编辑器缓冲区
- 输入
filename(字符串) - 文件名被忽略,返回带有当前活动缓冲区内容的编号行字符串
- vim_command
- 向 VIM 发送用于导航、定点编辑和删除行的命令
- 输入
command(字符串) - 首先通过
nvim.replaceTermcodes传递 Vim 命令。如果用换行符分隔,多个命令将生效 - 出错时,返回
'nvim:errmsg'内容
- vim_status
- 获取 VIM 编辑器的状态
- 状态包含光标位置、模式、文件名、可视选择、窗口布局、当前标签页、标记、寄存器和工作目录
- vim_edit
- 使用插入、替换或全部替换在 VIM 编辑器中编辑行
- 输入
startLine(数字),mode("insert"|"replace"|"replaceAll"),lines(字符串) - insert 将在 startLine 处插入行
- replace 将从 startLine 开始替换行
- replaceAll 将替换整个缓冲区内容
- vim_window
- 操作 Neovim 窗口(分割、垂直分割、关闭、导航)
- 输入
command(字符串: "split", "vsplit", "only", "close", "wincmd h/j/k/l") - 允许窗口管理操作
- vim_mark
- 在特定位置设置标记
- 输入
mark(字符串: a-z),line(数字),column(数字) - 在指定位置设置命名标记
- vim_register
- 设置寄存器的内容
- 输入
register(字符串: a-z 或 "),content(字符串) - 管理寄存器内容
- vim_visual
- 创建可视选择
- 输入
startLine(数字),startColumn(数字),endLine(数字),endColumn(数字) - 创建可视模式选择
使用这套简单的工具,Claude 可以查看您的 Neovim 会话来回答问题以及对缓冲区进行编辑。
限制
(原文在此处结束,未提供具体的限制说明)
- 这是一个快速的概念验证,用于尝试 Model Context Protocol。使用风险自负。
- 可能与自定义的 neovim 配置不兼容!
- 错误处理可以做得更好。
- 有时 Claude 无法准确获取 vim 命令输入。
配置
环境变量
ALLOW_SHELL_COMMANDS:设置为 'true' 以启用 shell 命令执行(例如!ls)。默认为 false 以确保安全。NVIM_SOCKET_PATH:设置为你的 Neovim socket 的路径。如果未指定,默认为 '/tmp/nvim'。
与 Claude Desktop 一起使用
将以下内容添加到你的 claude_desktop_config.json 中:
{
"mcpServers": {
"MCP Neovim Server": {
"command": "npx",
"args": [
"-y",
"mcp-neovim-server"
],
"env": {
"ALLOW_SHELL_COMMANDS": "true",
"NVIM_SOCKET_PATH": "/tmp/nvim"
}
}
}
}
许可证
此 MCP 服务器根据 MIT 许可证许可。这意味着你可以自由使用、修改和分发该软件,但需遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。