首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
mcp-neovim-server2025-05-280分享
github
利用Vim原生的文本编辑命令和工作流(Claude已经理解这些),来创建一个轻量级的代码辅助层。
By bigcodegen
2025-05-280
github
详情内容

Neovim MCP 服务器

通过 MCP 协议和官方的 neovim/node-client JavaScript 库,将 Claude Desktop(或任何 Model Context Protocol 客户端)连接到 Neovim。该服务器利用 Vim 原生的文本编辑命令和工作流(Claude 已经理解这些操作),创建了一个轻量级的代码或通用 AI 文本辅助层。

mcp-neovim-server MCP 服务器

功能特性

  • 如果启动 Neovim 时暴露了套接字文件(例如 --listen /tmp/nvim),则连接到你的 Neovim 实例
  • 查看当前缓冲区
  • 获取光标位置、模式、文件名
  • 通过 Vim 执行 Vim 命令和可选的 shell 命令
  • 可以通过插入或替换方式进行编辑

API 接口

资源

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

工具

  • vim_buffer
    • 显示当前 VIM 文本编辑器缓冲区并显示行号
    • 输入 filename(字符串)
    • 忽略文件名,返回当前活动缓冲区内容的带行号字符串
  • vim_command
    • 向 VIM 发送命令用于导航、定点编辑和行删除
    • 输入 command(字符串)
    • 命令首先通过 nvim.replaceTermcodes 处理。如果用换行符分隔,可以执行多个命令
    • 出错时返回 '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 套接字路径。如果未指定,默认为 '/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 文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档