mcpField
V
vim-mcp

vim-mcp

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

vim-mcp について

vim-mcpはClaude CodeをVimまたはNeovimのインスタンスに接続し、エディターの状態確認や自然言語でのコマンド実行を可能にします。ヘルプ検索、マクロ記録、安全な終了にも対応します。

主な機能

  1. 01Vimインスタンスへの接続と選択
  2. 02バッファー、ウィンドウ、カーソル状態の確認
  3. 03Vimコマンドの実行
  4. 04Vimヘルプの検索
  5. 05マクロ記録と安全な終了

活用シーン

  1. 01自然言語で説明した複雑な置換を実行
  2. 02現在のバッファーとカーソル位置を確認
  3. 03Vim機能のヘルプを検索
  4. 04反復編集作業のマクロを作成

MCP 対応

サーバーはUnixソケット経由でVimインスタンスと通信し、Claude Codeを含むMCPクライアントにツールとリソースを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"iggredible-vim": {
"command": "npx",
"args": [
"-y",
"vim-mcp"
]
}
}
}
起動コマンドnpx -y vim-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmvim-mcp0.1.2

ツール

7

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

vim-mcp

Vim と Claude Code のためのシンプルな MCP(Model Context Protocol)統合です。

機能

  • Claude Code を Vim インスタンスの 1 つに接続します
  • Vim の状態(バッファー、ウィンドウ、カーソル位置など)を照会します
  • 自然言語を使って Claude から Vim コマンドを実行します

仕組み:

  1. MCP サーバーが /tmp/vim-mcp-server.sock で Unix ソケットサーバーを起動します
  2. 各 Vim インスタンスが Unix ソケットクライアントとしてサーバーに接続します
  3. Vim が登録情報と状態の更新をサーバーに送信します
  4. サーバーがすべての Vim インスタンスとのアクティブな接続を維持します
  5. Claude Code が Model Context Protocol を介して MCP サーバーと通信します
デモ

Vim インスタンスを一覧表示して選択:

Vim インスタンスを一覧表示して選択

ついに Vim を終了できます!

Vim インスタンスを一覧表示して選択

詳しくは、デモの Wiki ページをご覧ください。

これは何の役に立つのでしょうか?

なるほど、何をするのかはわかりましたが、なぜ必要なのでしょうか?

「ウィンドウを半分に分割して」のような基本的な Vim 操作(24 回のキー入力)をする場合と、:sp / :vs を実行する場合(3 回のキー入力)を比べると、vim-mcp を使わないほうがよいでしょう。vim-mcp が真価を発揮するのは、必要なキー入力の数がわからないとき、つまり、やりたいことは説明できても、その方法が正確にはわからないときです。複雑な正規表現やマクロ、検索、ヘルプのセマンティック検索などは、試行錯誤するよりも、達成したいことを AI に伝えるほうが速いです。求めている言葉は「迂言」でしょうか?

役に立つかもしれない例を紹介します。

時間をかけて組み立てる必要がある複雑な Vim コマンドを実行したいとします。やりたいことを説明できれば、Claude が簡単に実行できます。たとえば、第 3 レベルの Markdown 見出しの後にある場合に限り、「(test foobar)」を角括弧に置換したいとします。私には数秒で簡単に思いつけるものではありませんが、Claude ならできます!

vim-mcp を使えば、Claude に次のようにプロンプトを入力できます:

In README.md, substitute the set of parentheses `(SOME TEXT)` with square brackets `[SOME TEXT]`, where SOME TEXT says "test foobar"; do this if the strings come after a 3rd-level header markdown.

これだけです!実際に試したところ、Claude は g コマンドを考案し、実行してくれました。

vim-mcp - vim_execute (MCP)(command: "g/^### /,/^#\\{1,3\\} \\|^$/s/(test foobar)/[test foobar]/g")
  ⎿  Command executed successfully: g/^### /,/^#\{1,3\} \|^$/s/(test foobar)/[test foobar]/g

さらに、実行したコマンドはコマンド履歴に保存されるため、後から再実行したり、変更したりできます。

後になって「やっぱり角括弧 [] ではなく、波括弧 {} に置換したい」と思ったらどうしましょう?コマンド履歴(q:、:history、または : の後に上下キーを押す)を開いて、必要な変更を加えるだけです。

そこで : を入力し、vim-mcp が実行したコマンドが表示されるまで上矢印キーを数回押して、:g/^### /,/^#\{1,3\} \|^$/s/(test foobar)/{test foobar}/g に変更しました。完了です!

概要

詳しい概要については、vim-mcp の概要をご覧ください。

ツールとリソース

ツール:

  1. list_vim_instances
  2. select_vim_instance
  3. get_vim_state
  4. vim_execute
  5. exit_vim
  6. vim_search_help
  7. vim_record_macro

リソース:

  1. vim://instances - 利用可能なすべての Vim インスタンスの一覧
  2. vim://state - 選択中の Vim インスタンスの現在の状態
  3. vim://buffers - 選択中の Vim インスタンスのすべてのバッファーの一覧
  4. vim://tabs - 選択中の Vim インスタンスのすべてのタブの一覧

インストール

前提条件
  • +channel 機能を備えた Vim 8+ または Neovim 0.5+
  • Node.js 18+
  • Unix ドメインソケットのサポート(Linux/macOS)
  • /tmp ディレクトリへのファイルシステム書き込みアクセス
  • MCP をサポートする claude code / claude desktop または同様のツール
Vim プラグインのインストール

vim-plug を使用する場合:

Plug 'iggredible/vim-mcp'
MCP サーバーのインストール

MCP サーバーは Node プロジェクトです。依存関係をインストールする必要があります。

オプション 1:インストールスクリプトを使用する
cd ~/.vim/plugged/vim-mcp  # Or wherever your plugin is installed
./install.sh

インストールスクリプトは、次の処理を自動的に行います。

  • 前提条件(Node.js と Vim のバージョン)を確認します
  • Node.js の依存関係をインストールします
  • vim-mcp コマンドのグローバルインストールを試みます
  • 正しい Claude Code の設定を表示します
オプション 2:手動でインストールする

手動でインストールする場合、または install.sh スクリプトが動作しない場合は、次の手順に従ってください。

  1. Node.js の依存関係をインストールします。
cd ~/.vim/plugged/vim-mcp/server
npm install

npm install は chmod +x bin/vim-mcp も実行します。

  1. (任意)システム全体で vim-mcp コマンドを使用できるよう、グローバルにインストールします(/server ディレクトリ内で実行)。
npm link

権限などの理由で失敗した場合は、グローバルインストールをスキップし、設定でフルパスを使用できます。

Claude Code を設定する

インストール後、次のいずれかの設定を Claude の設定ファイルに追加してください。

グローバルインストールが成功した場合(vim-mcp コマンドが使用できる場合):

  "mcpServers": {
    "vim-mcp": {
      "command": "vim-mcp",
      "args": []
    },
  }

npm link が失敗した場合:

{
  "mcpServers": {
    "vim-mcp": {
      "command": "node",
      "args": ["/some/path/.vim/plugged/vim-mcp/server/bin/vim-mcp"]
    }
  }
}

アンインストール

vim-mcp を削除するには:

  1. .vimrc からプラグインを削除します。
" Delete or comment out this line:
" Plug 'iggredible/vim-mcp'
  1. プラグインファイルを削除します。
:PlugClean
  1. グローバルの vim-mcp コマンドを削除します(インストールされている場合)。
npm unlink vim-mcp
  1. Claude Code の設定から削除します。

Claude の設定ファイルを編集し、mcpServers から vim-mcp のセクションを削除してください。

  1. 一時ファイルを削除します(任意)。
rm -f /tmp/vim-mcp-server.sock
rm -f /tmp/vim-mcp-registry.json
rm -f /tmp/vim-mcp-preference.txt
  1. すべての接続を確実に切断するため、Vim と Claude Code を再起動します。

クイックスタート

接続手順
  1. Vim のインスタンスを開きます(プラグインが自動的に接続します)。
vim file1.txt    # First instance
vim file2.txt    # Second instance (in another terminal)
  1. Claude Code で、利用可能な Vim のインスタンスを一覧表示します。
list vim instances
  1. 複数のインスタンスが見つかった場合は、1 つ選択します。
select vim instance file1-vim-12345
プロンプトの例

クライアント(claude code)から、次の操作を行えます。

  1. インスタンスを管理する:

    • 「vim のインスタンスを一覧表示して」
    • 「最初のインスタンスに接続して」
    • 「README.md を開いているインスタンスを選択して」
  2. Vim を操作する:

    • 「ウィンドウを縦に 2 つに分割して」
    • 「vim コマンド を実行して」
    • 「Vim から出るのを手伝って!!!」
  3. Vim のヘルプを検索する:

    • 「チャンネルの操作方法について Vim のヘルプを検索して」
    • 「Vim の quickfix リストの使い方を教えて」
    • 「Vim のレジスターについてのヘルプを表示して」
  4. マクロを記録する:

    • 「最初の単語を大文字にして 2 行下に移動するマクロを記録して」
    • 「現在の行を複製してコメントアウトするマクロを作成して」
    • 「次の TODO を見つけて DONE に変更するマクロを作成して」
  5. Vim について質問する:

    • 「バッファはいくつある?」
    • 「どのバッファが開いている?」
    • 「カーソルの位置はどこ?」
    • 「現在のバッファの内容を表示して」
    • 「アクティブなバッファには何行ある?」
    • 「このファイルは何の言語で書かれている?」
    • 「どのウィンドウが開いている?」
    • 「BTC の現実的な 10 年後の目標価格はいくら?」(冗談です)
vim-mcp は Vim からの終了も手伝います!!

ついに Vim から終了できます!喜びましょう!exit_vim ツールは、次の 3 つのモードで安全に終了できます。

  • デフォルト(確認):未保存の変更を確認し、終了前に警告します
  • 保存して終了:変更されたすべてのバッファを保存して終了します(exit vim save_and_exit)
  • 強制終了:保存せず、変更を破棄して終了します(exit vim force_exit)

例:

exit vim                   # Safe exit - warns about unsaved changes
exit vim save_and_exit     # Save all files and exit
exit vim force_exit        # Exit without saving (discard changes)
GET ME OUTTA HERE          # You're free! Successfully exited Vim (there were no unsaved changes).

注:これはジョークのツールです。Vim からの終了に苦労している人が多く、なかなか終了できないためです。

Vim コマンド

Vim を開くと、プラグインは自動的に接続します。ただし、Vim 内から次の操作も行えます。

  • :VimMCPStatus - 接続状態を確認します
  • :VimMCPConnect - サーバーに手動で接続します
  • :VimMCPDisconnect - サーバーから切断します
  • :VimMCPReconnect - サーバーに再接続します

コントリビューション

これをもっと便利にする方法をまだ模索中です。アイデアがあれば、ぜひ PR を送ってください!

コメント

MCP は初めてですか?

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

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