mcpField
M
mcpserver.nvim

mcpserver.nvim

本地服务
github.com/calebfroese开发工具074 周前更新

关于 mcpserver.nvim

mcpserver.nvim 是 Neovim 插件,允许外部 MCP 客户端通过 Unix 套接字访问当前缓冲区。它还提供独立的 stdio 服务,将请求转发到运行中的 Neovim 实例。

主要功能

  1. 01读取当前缓冲区内容
  2. 02通过 Unix 套接字通信
  3. 03运行独立的 stdio 服务
  4. 04自动检测 Neovim 服务套接字
  5. 05使用命令启停服务

适用场景

  1. 01向 MCP 客户端提供缓冲区文本
  2. 02将 stdio 客户端连接到运行中的 Neovim 实例
  3. 03为多个 Neovim 实例运行 MCP 服务

MCP 相关

它向 MCP 客户端提供 `get_buffer_content` 工具,返回当前缓冲区的文件名、文本和行数。客户端可通过 Unix 套接字或独立的 stdio 服务连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcpserver.nvim

一个实现 MCP(Model Context Protocol)服务的 Neovim 插件,允许外部 MCP 客户端通过 Unix 套接字与 Neovim 交互。

功能

  • get_buffer_content:获取当前缓冲区的内容

安装

使用 lazy.nvim:

{
  dir = "/path/to/mcpserver.nvim", -- Use your local path
  -- Server starts automatically on VimEnter
}

使用方法

Neovim 插件
手动控制

启动 MCP 服务:

:MCPServerStart

停止 MCP 服务:

:MCPServerStop
获取套接字路径
local mcpserver = require('mcpserver')
local socket_path = mcpserver.get_socket_path()
print(socket_path) -- e.g., "/tmp/nvim-mcp-server-12345.sock"
套接字位置

服务会在 /tmp/nvim-mcp-server-<PID>.sock 创建一个唯一的 Unix 套接字,其中 <PID> 是 Neovim 进程 ID。这样可以同时运行多个 Neovim 实例的 MCP 服务。

独立 MCP 服务

供通过 stdio 通信的外部 MCP 客户端使用:

# Auto-detect running Neovim instance
lua standalone.lua

# Specify Neovim socket path
lua standalone.lua /tmp/nvim-mcp-server-12345.sock

独立服务:

  • 通过 stdio 通信(基于 stdin/stdout 的 JSON-RPC)
  • 自动检测正在运行的 Neovim MCP 服务套接字
  • 将请求转发到 Neovim 实例
  • 可与任何支持 stdio 传输的 MCP 客户端配合使用
可用工具
get_buffer_content

返回包含以下内容的 JSON:

  • filename:当前缓冲区文件的路径
  • content:缓冲区的完整文本内容
  • line_count:缓冲区的行数

MCP 客户端用法

直接套接字连接

连接到 /tmp/nvim-mcp-server-<PID>.sock 处的 Unix 套接字,并使用标准 MCP 协议:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_buffer_content",
    "arguments": {}
  }
}
Stdio 连接

使用独立服务连接基于 stdio 的 MCP 客户端:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_buffer_content","arguments":{}}}' | lua standalone.lua

开发

插件结构:

  • lua/mcpserver/init.lua:MCP 服务核心实现
  • lua/mcpserver/tools.lua:工具实现
  • plugin/mcpserver.lua:插件设置和命令
  • standalone.lua:用于 stdio 通信的独立 MCP 服务

要求

  • 支持 Lua 的 Neovim
  • 独立模式需要:用于 Unix 套接字通信的 netcat(nc)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。