mcpField
M
mcpserver.nvim

mcpserver.nvim

ローカル
github.com/calebfroese開発ツール074 週間前に更新

mcpserver.nvim について

mcpserver.nvim は、外部 MCP クライアントが Unix ソケット経由で現在のバッファーにアクセスできる Neovim プラグインです。実行中の Neovim インスタンスへリクエストを転送する、単独動作の stdio サーバーも備えています。

主な機能

  1. 01現在のバッファー内容を取得
  2. 02Unix ソケットで通信
  3. 03単独動作の stdio サーバー
  4. 04Neovim サーバーソケットを自動検出
  5. 05コマンドでサーバーを起動・停止

活用シーン

  1. 01MCP クライアントへのバッファーテキスト提供
  2. 02stdio クライアントを実行中の Neovim インスタンスに接続
  3. 03複数の Neovim インスタンスで MCP サーバーを実行

MCP 対応

MCP クライアントに `get_buffer_content` ツールを公開し、現在のバッファーのファイル名、テキスト、行数を返します。クライアントは Unix ソケットまたは単独動作の stdio サーバー経由で接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcpserver.nvim

Unix ソケットを通じて外部の MCP クライアントが Neovim とやり取りできるようにする、MCP(Model Context Protocol)サーバーを実装した 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"
ソケットの場所

サーバーは、<PID> が Neovim プロセスの ID を表す /tmp/nvim-mcp-server-<PID>.sock に、一意の Unix ソケットを作成します。これにより、複数の 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)が必要

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。