Neovim AI辅助服务

通过MCP协议将Claude Desktop等AI客户端连接到Neovim,提供代码和文本编辑的AI辅助功能。

作者 By bigcodegen
本地部署 文本编辑 代码辅助
GitHub

Neovim MCP服务器

使用MCP和官方的Neovim/node客户端JavaScript库将Claude Desktop(或任何模型上下文协议客户端)连接到Neovim。该服务器利用Vim的原生文本编辑命令和工作流(Claude已经理解)来创建轻量级代码或通用AI文本辅助层。

mcp-neovim-server MCP server

特性

  • 例如,如果您公开了一个套接字文件,则连接到您的nvim实例 --listen /tmp/nvim,启动nvim时
  • 查看当前缓冲区并管理缓冲区切换
  • 获取光标位置、模式、文件名、标记、寄存器和视觉选择
  • 通过vim运行vim命令和可选的shell命令
  • 可以使用插入、替换或replaceAll模式进行编辑
  • 使用正则表达式支持搜索和替换功能
  • 具有quickfix集成的项目范围grep搜索
  • 全面的窗口管理
  • 健康监测和连接诊断

API

资源

  • nvim://session:当前neovim文本编辑器会话
  • nvim://buffers:当前Neovim会话中所有打开的缓冲区列表,元数据包括修改后的状态、语法和窗口ID

工具

核心工具

  • vim_buffer

  • 使用行号获取缓冲区内容(支持文件名参数)

  • 输入 filename (字符串,可选)-按文件名获取特定缓冲区

  • 返回带有缓冲区内容的编号行

  • vim_命令

  • 向VIM发送导航、点编辑和行删除命令

  • 输入 command (字符串)

  • 使用以下命令运行vim命令 nvim.replaceTermcodes.多个命令可用于换行

  • 支持的Shell命令 ! 前缀当 ALLOW_SHELL_COMMANDS=true

  • 在出错时, 'nvim:errmsg' 返回内容

  • vim_status

  • 获取全面的Neovim状态

  • 返回光标位置、模式、文件名、增强检测的视觉选择、窗口布局、当前选项卡、标记、寄存器、工作目录、LSP客户端信息和插件检测

  • 增强的视觉选择报告:检测视觉模式类型(字符/行/块),提供准确的选择文本、开始/结束位置和最后一个视觉选择标记

  • vim_edit

  • 使用插入、替换或replaceAll模式编辑行

  • 输入 startLine (数字), mode ("insert" | "replace" | "replaceAll"), lines (字符串)

  • 插入:在startLine处插入线条

  • replace:替换从startLine开始的行

  • replaceAll:替换整个缓冲区内容

  • vim_indow

  • 操纵Neovim窗口(拆分、vsplit、关闭、导航)

  • 输入 command (字符串:“split”、“vsplit”、“only”、“close”、“wincmd h/j/k/l”)

  • vim_mark

  • 在特定位置设置命名标记

  • 输入 mark (字符串:a-z), line (数字), column (编号)

  • vim_register

  • 设置寄存器内容

  • 输入 register (字符串:a-z或“”), content (字符串)

  • vim_视觉

  • 创建视觉模式选择

  • 输入 startLine (数字), startColumn (数字), endLine (数字), endColumn (编号)

增强的缓冲区管理

  • vim_buffer_开关

  • 按名称或编号在缓冲区之间切换

  • 输入 identifier (string | number)-缓冲区名称或编号

  • vim_buffer_save

  • 保存当前缓冲区或保存到特定文件名

  • 输入 filename (字符串,可选)-保存到特定文件

  • vim_file_open

  • 将文件打开到新缓冲区

  • 输入 filename (string)-要打开的文件

搜索和替换

  • vim_search

  • 使用正则表达式支持在当前缓冲区中搜索

  • 输入 pattern (字符串), ignoreCase (布尔值,可选), wholeWord (布尔值,可选)

  • vim_search_replace

  • 查找并替换为高级选项

  • 输入 pattern (字符串), replacement (字符串), global (布尔值,可选), ignoreCase (布尔值,可选), confirm (布尔值,可选)

  • vim_grep

  • 使用vimgrep和快速修复列表进行项目范围内的搜索

  • 输入 pattern (字符串), filePattern (字符串,可选)-要搜索的文件模式

高级工作流工具

  • vim_macro

  • 录制、停止和播放Vim宏

  • 输入 action (“录制”|“停止”|“播放”), register (字符串a-z), count (数字,可选)

  • vim_tab

  • 完成标签管理

  • 输入 action (“新建”|“关闭”|“下一页”|“上一页”|“第一页”|《最后一页》|“列表”), filename (字符串,可选)

  • vim_fold

  • 代码折叠操作

  • 输入 action (“创建”|“打开”|“关闭”|“切换”|“开”|“关”|“删除”), startLine/endLine (数字,用于创建)

  • vim_jump

  • 跳转列表导航

  • 输入 direction (“后退”|“前进”|“列表”)

系统工具

  • 维姆健康

  • 检查Neovim连接健康状况和套接字状态

使用这套全面的 19工具,Claude可以查看您的neovim会话,导航缓冲区,执行搜索,进行编辑,录制宏,管理标签和折叠,并使用标准的neovim功能处理您的完整开发工作流程。

鼓励

  • neovim工作流:获取常见Neovim工作流的上下文帮助和指导,包括编辑、导航、搜索、缓冲区管理、窗口操作和宏使用。提供使用可用MCP工具完成任务的分步说明。

错误处理

服务器通过自定义错误类和一致的错误响应实现了全面的错误处理:

  • Neovim连接错误:套接字连接失败,并显示详细消息
  • NeovimCommandError:命令上下文中的命令执行失败
  • NeovimValidation错误:输入验证失败

v0.5.2中的新功能:所有工具现在都包含强大的try-catch错误处理,以正确的MCP格式返回有意义的错误消息。功能包括连接健康监控、优雅的错误传播和可操作的错误消息,以帮助诊断问题。

局限性

  • 可能无法与复杂的neovim配置或插件良好交互
  • 出于安全考虑,默认情况下禁用Shell命令执行
  • 需要套接字连接-不适用于标准vim

配置

环境变量

  • ALLOW_SHELL_COMMANDS:设置为“true”以启用shell命令执行(例如。 !ls).为了安全起见,默认为false。
  • NVIM_SOCKET_PATH:设置为Neovim套接字的路径。如果未指定,则默认为“/tmp/nvim”。

安装

选项1:DXT包(推荐)

  1. 下载最新 .dxt 文件来自 发布
  2. 将文件拖动到Claude Desktop

选项2:手动安装

将此添加到您的 claude_desktop_config.json:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15{ “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文件。