mcpField
V
Vim MCP Server

Vim MCP Server

リモート
github.com/breggles開発ツール04 週間前に更新
リポジトリ

Vim MCP Server について

Vim MCP ServerはVim内で動作し、コーディングエージェントなどのMCPクライアントからバッファーの確認・編集やエディター内の移動を行えます。Vimの差分表示、メッセージ履歴、quickfix・locationリストも扱え、一部の書き込みやコマンド実行はオプトインです。

主な機能

  1. 01バッファーの読み取りと編集
  2. 02ファイルのオープンとクローズ
  3. 03カーソル移動と選択範囲の取得
  4. 04quickfix・locationリストの管理
  5. 05ファイル・Git差分の表示
  6. 06Vimメッセージ履歴の取得

活用シーン

  1. 01変更ファイルや行をコーディングエージェントに提示
  2. 02バッファーの選択範囲を共有してコードの助言を得る
  3. 03複数のコード位置への移動
  4. 04Vim内でファイルやGitの差分を確認

MCP 対応

Vim内でHTTP MCPサーバーを起動し、MCPクライアントにエディター操作ツールを公開します。バッファー保存・編集や任意のExコマンド実行はオプションで有効化できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:8765/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

vim-mcp-server

Vim に組み込まれた MCP(Model Context Protocol)サーバーです。HTTP 経由でツールを公開し、AI コーディングエージェントなどの MCP 対応クライアントが、バッファーの読み取りや変更、カーソルの移動、ビジュアル選択範囲の取得、quickfix リストやロケーションリストの管理、左右に並べた差分(Vim 内で計算される git 差分を含む)の表示、メッセージ履歴の読み取り、Ex コマンドの実行を行えるようにします。

現在、主にエージェントに Vim でファイルや行を表示させるために使っています。 選択した範囲をエージェントに表示するために使うこともあります。

要件

  • +python3 を有効にしてコンパイルされた Vim

インストール

お好みのプラグインマネージャーを使用してください。

vim-plug
Plug 'breggles/vim-mcp-server'
Vundle
Plugin 'breggles/vim-mcp-server'
手動

リポジトリを Vim のパッケージディレクトリにクローンします。

git clone https://github.com/breggles/vim-mcp-server.git \
    ~/.vim/pack/plugins/start/vim-mcp-server

使い方

サーバーを起動する

Vim で次を実行します。

:McpServerStart

vimrc に次を追加すると、Vim の起動時にサーバーが自動起動します。

let g:mcp_server_autostart = 1
MCP クライアントの設定

MCP クライアントの接続先を http://127.0.0.1:8765/mcp に設定します(または、選択したポートを指定します)。

たとえば、opencode の場合は、opencode.jsonc にサーバーを追加します。

"mcp": {
  "vim": {
    "type": "remote",
    "url": "http://localhost:8765/mcp",
    "enabled": true
  }
}

コマンド

コマンド説明
:McpServerStart [port]サーバーを起動します(デフォルトのポートは8765です)
:McpServerStopサーバーを停止します
:McpServerStatusサーバーのステータスと URL を表示します

オプション

変数デフォルト説明
g:mcp_server_port8765サーバーがリッスンするポート
g:mcp_server_autostart0VimEnter 時にサーバーを自動起動します
g:mcp_server_allow_execute0execute_command ツールを有効にします
g:mcp_server_allow_save0save_buffer ツールを有効にします
g:mcp_server_allow_edit0edit_buffer ツールを有効にします

ツール

サーバーは MCP クライアントに次のツールを公開します。

ツール説明
list_buffers開いているすべてのバッファーを一覧表示します
get_bufferバッファーの内容を読み取ります(行範囲を指定できます)
edit_bufferバッファー内の行を置換、挿入、または削除します
open_file:edit でファイルを開きます
save_buffer:write でバッファーを保存します(オプトイン、上記参照)
close_buffer:bdelete でバッファーを閉じます
get_cursor現在のカーソル位置を取得します
set_cursorカーソルを行と列で指定した位置に移動します
get_visual_selection現在のビジュアル選択範囲を取得します(選択範囲がある場合)
execute_command任意の Ex コマンドを実行します(オプトイン、上記参照)
get_quickfix_list現在の quickfix リストの項目を取得します
set_quickfix_listquickfix リストを設定します
get_location_list現在のウィンドウのロケーションリストを取得します
set_location_list現在のウィンドウのロケーションリストを設定します
get_messagesVim のメッセージ履歴(:messages の出力)を取得します
show_diff新しいタブに左右に並べた差分ビューを開きます(ファイルまたは内容)
show_git_diff新しいタブに左右に並べた git 差分を開きます。git が Vim 内で両側を計算します

ツールがバッファー引数を受け付ける場合、番号(buffer_id)またはファイルパス(buffer_path)で指定できます。両方を省略すると、現在のバッファーが使用されます。

OpenCode のプランモード

デフォルトでは、OpenCode のプランモードですべての MCP ツールが無効になります。プランモードで読み取り専用の vim ツールを使用できるようにするには、次の内容を opencode.jsonc に追加します。

{
  "agent": {
    "plan": {
      "tools": {
        "vim_*": false,
        "vim_list_buffers": true,
        "vim_get_buffer": true,
        "vim_get_cursor": true,
        "vim_get_visual_selection": true,
        "vim_open_file": true,
        "vim_set_cursor": true,
        "vim_get_quickfix_list": true,
        "vim_set_quickfix_list": true,
        "vim_get_location_list": true,
        "vim_set_location_list": true,
        "vim_get_messages": true,
        "vim_show_diff": true,
        "vim_show_git_diff": true
      }
    }
  }
}

まずすべての vim_* ツールを無効にしてから、特定のツールを再び有効にします。リストはワークフローに合わせて調整してください。

開発

プラグインをインストールせずに開発するには、リポジトリをクローンし、Vim のランタイムパスに追加します。

set rtp+=~/path/to/vim-mcp-server

これを vimrc に追加するか、手動で実行します。変更は Vim を次回起動したときに反映されます。

次のコマンドでヘルプタグを生成します。

:helptags ~/path/to/vim-mcp-server/doc

ライセンス

MIT

コメント

MCP は初めてですか?

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

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