Mcp Neovim Server

Mcp Neovim Server

🚀 Neovim MCP 服务器

本项目是一个概念验证项目,旨在通过 Model Context Protocol (MCP) 实现 Claude Desktop(或其他客户端)与 Neovim 的集成。它借助官方的 neovim/node-client JavaScript 库,构建了一个轻量级的代码或通用目的 AI 文本辅助层。

✨ 主要特性

  • 若在启动 Neovim 时暴露了套接字文件(如 --listen /tmp/nvim),服务器可连接至 Neovim 实例。
  • 支持查看当前打开的缓冲区。
  • 能够获取光标位置、模式和文件名。
  • 可执行 Neovim 命令以及可选的 shell 命令(通过 Neovim)。
  • 支持使用插入或替换方式执行编辑操作。

📚 详细文档

资源

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

工具

  • vim_buffer
    • 显示当前 VIM 文本编辑器缓冲区的内容,并带有行号。
    • 输入参数为 filename(字符串)。
    • 若忽略文件名,将返回当前活动缓冲区内容的编号行字符串。
  • vim_command
    • 可向 VIM 发送命令,用于导航、定点编辑和行删除。
    • 输入参数为 command(字符串)。
    • 首先通过 nvim.replaceTermcodes 运行一个 Neovim 命令。若输入包含多个命令,可通过换行符分隔。
    • 出错时返回 'nvim:errmsg' 内容。
  • vim_status
    • 用于获取 VIM 编辑器的状态。
    • 状态信息包含光标位置、模式、文件名、视觉选择、窗口布局、当前标签页、标记、寄存器和工作目录。
  • vim_edit
    • 支持使用插入、替换或全替换方式编辑行。
    • 输入参数为 startLine(数字)、mode("insert" | "replace" | "replaceAll")、lines(字符串)。
    • 插入模式会在 startLine 处插入行。
    • 替换模式将从 startLine 开始替换行。
    • 全替换模式会替换整个缓冲区内容。
  • 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(数字)。
    • 用于设置视觉选择范围。

通过以上工具,用户可以方便地与 Neovim 进行交互,实现各种编辑和管理功能。

📄 许可证

本项目遵循 MIT 许可证。请查看 LICENSE 文件以获取详细信息。

⚠️ 重要提示

本项目旨在提供一个接口,使 Claude 等 AI 工具能够更自然地与 Neovim 集成。尽管 Neovim 本身已经非常强大,但通过 MCP 协议扩展其功能,可以进一步提升开发效率和用户体验。

💡 使用建议

  • 在使用过程中,请确保 Neovim 和相关插件已正确安装并配置。
  • 对于高级功能,可能需要额外的配置或脚本支持。
  • 如遇到问题,请参考项目文档或社区资源寻求帮助。

👏 贡献

欢迎任何贡献!无论是代码修复、功能添加还是文档改进,我们都欢迎你的参与。

请在提出更改前阅读我们的 CONTRIBUTING.md 文件,了解如何有效地为项目做出贡献。

  • 0 关注
  • 0 收藏,39 浏览
  • system 提出于 2025-09-18 21:12

相似服务问题

相关AI产品