Neovim MCP Server について
Neovim MCP Serverは、AI言語モデルがNeovimのLSPを使ってコードのシンボル単位で操作できるようにします。Neovim内でLuaとVimscriptを実行する機能も備えています。
主な機能
- 01ファイル内のシンボル一覧
- 02シンボルと参照の検索
- 03シンボル内容の置換・挿入
- 04コードシンボルの名前変更
- 05LSPクライアントとサーバーの管理
- 06LuaとVimscriptの実行
活用シーン
- 01ファイル内のクラスやメソッドの確認
- 02シンボルの全参照の検索
- 03コードベース全体でのシンボル名変更
- 04Neovim内でのスクリプト実行
MCP 対応
MCPサーバーとして、LSPによるシンボル検索・編集ツールとNeovimでのスクリプト実行機能をMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Neovim MCP サーバー
LSP ベースのシンボルツールを提供する、Neovim 用の Model Context Protocol(MCP)サーバーです。このサーバーを使うと、AI 言語モデルが Neovim の Language Server Protocol(LSP)と連携し、シンボル単位のコード操作を実行できます。
機能
シンボルツール(LSP ベース)
get_symbols_overview(relative_path, depth)- ファイル内のトップレベルシンボルの概要を取得します。depthを使うと、子要素(クラスのメソッドなど)も含められます。find_symbol(name_path_pattern, relative_path, depth)- 名前のパスパターン(例:「MyClass/my_method」)でシンボルを検索します。find_referencing_symbols(name_path, relative_path)- シンボルへの参照をすべて検索します。replace_symbol_body(name_path, relative_path, body)- シンボル定義の本体を置き換えます。insert_after_symbol(name_path, relative_path, body)- シンボル定義の後にコンテンツを挿入します。insert_before_symbol(name_path, relative_path, body)- シンボル定義の前にコンテンツを挿入します。rename_symbol(name_path, relative_path, new_name)- コードベース全体でシンボルの名前を変更します。restart_language_server()- LSP サーバーを再起動します(LSP が応答しなくなった場合に便利です)。get_lsp_client_info()- アクティブな LSP クライアントに関する情報を取得します。
一般ツール
execute_lua(code)- Neovim で Lua コードを実行しますexecute_vimscript(code)- Neovim で Vimscript コードを実行します
インストール
前提条件
- Python 3.11+
- uv パッケージマネージャー
- 組み込み LSP クライアントを備えた Neovim 0.9+
ソースからインストール
git clone https://github.com/brianhuster/nvim-mcp-server.git
cd nvim-mcp-server
uv sync
Neovim の設定に追加
プラグインのディレクトリを Neovim のランタイムパスに追加します。
-- In your init.lua or plugins.lua
vim.opt.runtimepath:append("/path/to/nvim-mcp-server/plugin")
使い方
MCP サーバーを起動して Neovim を開始
-
ソケットを指定して Neovim を起動します。
nvim --listen /tmp/nvim.sock -
NVIM 環境変数を設定し、MCP サーバーを実行します。
export NVIM=/tmp/nvim.sock uv run nvim-mcp
Claude Desktop の設定
claude_desktop_config.json に以下を追加します。
{
"mcpServers": {
"nvim": {
"command": "uv",
"args": ["run", "nvim-mcp"],
"env": {
"NVIM": "/tmp/nvim.sock"
}
}
}
}
Goose で使用
extensions:
nvim-mcp:
cmd: uv
args: ["run", "nvim-mcp"]
env:
NVIM: "/tmp/nvim.sock"
type: stdio
開発
コマンド
uv run nvim-mcp- MCP サーバーを起動しますuv run nvim-mcp --version- バージョンを表示しますuv run ruff check- リントを実行しますuv run mypy- 型チェックを実行します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
