はじめに
前回の記事では、avante.nvim
を用いたプロンプト制御についてご紹介しました。
今回はさらに一歩進め、NeovimをMCP(Model Context Protocol)クライアント化し、AIエージェントや外部ツールとの連携を強化するプラグイン「mcphub.nvim」の活用方法を分かりやすく解説します。
mcphub.nvimとは?
mcphub.nvim
は、NeovimからMCPサーバーと連携し、AIツールやリソースを統合的に管理するためのプラグインです。
これにより、Neovimが強力なAI連携ハブとして機能します。
主な特徴
- NeovimをMCPクライアントとして動作させることが可能
-
avante.nvim
など、人気のNeovimチャットプラグインとの連携に対応 - MCPサーバーの追加・起動・停止・切り替え・テストをNeovim上の直感的なUIから制御
- UIと設定ファイルの両方からサーバー管理を実現
動作環境
以下の環境で動作確認済みです。
- OS: Ubuntu 24.04.2 LTS
- npm: 9.2.0
- Neovim: v0.10.2
- lazy.nvim: v11.17.1
- avante.nvim: v0.0.23
- mcphub.nvim: v5.2.0
インストール方法
パッケージマネージャー lazy.nvim
を使用したインストール例です。
{
"ravitemer/mcphub.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
build = "npm install -g mcp-hub@latest",
config= function()
require("mcphub").setup()
end,
}
基本的な使い方
MCPHubのUIを開いてサーバーを管理するには、以下のコマンドを実行します。
:MCPHub
このコマンドを実行すると、次のような管理パネルが立ち上がります。
パネル上部には、以下のメニューが横に並んでいます。各メニューの頭文字キーでアクセスできます。
- H: Hub
- M: Marketplace
- C: Config
- L: Logs
- H: Help
「MCP Servers」の隣にあるカッコ内の数字は、MCPサーバー設定のシステムスクリプトのトークン数を示しています。これは、サーバーやツールの有効/無効を切り替えることで増減し、gd
キーでスクリプト内容を確認できます。
その下には、利用可能なMCPサーバーが一覧表示されます。筆者の環境では、すでにarxiv-mcp-server
とTavily
が追加されています。
Native Servers
はデフォルトで含まれており、MCPHub
とNeovim
の2つのMCPサーバーは追加設定なしで使用可能です。
パネルを閉じるにはq
キーを使用します。
本記事では、この「Hubメニュー」を使ったMCPサーバーの管理方法を中心に解説します。
Hubメニュー
最初にUIを開くと、通常は「Hubメニュー」が表示されています。表示されていない場合は、H
キーを押して開いてください。
Hubメニューには、現在登録されているMCPサーバーの一覧と、問題が発生している場合はエラーメッセージが表示されます。
Hubメニューからは、以下の設定やテストが可能です。
- MCPサーバーの追加
- MCPサーバーの有効/無効の切り替え
- 各MCPサーバーが提供するツールの有効/無効の切り替え
- ツール、リソース、プロンプトのテスト
① MCPサーバーの追加
今回は例として、MCP公式のReference Serversの中から、everythingサーバーを追加してみましょう。これは実用的なものではありませんが、プロンプト、ツール、リソースを含むテスト用サーバーとして紹介されています。
新しいMCPサーバーを追加するには、「Add Server」の項目までカーソルを移動しl
キーを押すか、任意のカーソル位置でA
キーを押します。
すると、「paste server's json config」というテキストエリアが表示されるので、そこにMCPサーバーのREADMEに記載されているサーバー設定をコピー&ペーストします。JSON形式で、mcpServers
キー以下の内容すべてを貼り付けます。
Vimのノーマルモードに戻り、エンターキーを押すと、everything
サーバーが追加され、「connecting」という表示が出ます。この表示が消え、エラーが表示されなければ、MCPサーバーは正常に追加されています。
② MCPサーバーの有効/無効の切り替え
対象のMCPサーバー(上の画像ではeverything
)にカーソルを合わせると、状況に応じたコマンドが表示されます。
コマンド | 説明 |
---|---|
Expand (l ) |
項目を展開します |
Toggle (t ) |
有効/無効を切り替えます |
Edit (e ) |
サーバー設定を入力・修正します |
Delete (d ) |
サーバーを削除します。 |
t
キーを押すと、MCPサーバーの有効/無効が切り替わります。▶マークは有効状態、○マークは無効状態を示します。
③ 各MCPサーバーのツールの有効/無効の切り替え
サーバーを有効にすると、「Expand」コマンド(l
キー)が使用可能になります。
l
キーを押すと、そのMCPサーバーが提供するツールの一覧が表示されます。
以下では、Native Servers
- Neovim
サーバーを例に説明します。
Neovimサーバーは、プロンプトとしてparrot(オウム返しさせるためのプロンプト)、ツールとしてファイル操作やコマンド実行、リソースとしてバッファ情報やLSPの診断情報などを提供します。
利用したいツール、リソース、プロンプトにカーソルを移動しt
キーを押すことで、個別に有効/無効を切り替えることができます。
④ ツール、リソース、プロンプトのテスト
ツールを有効にすると、「open tool」コマンドが使用可能になります。
l
キーを押すと、テスト画面に遷移します(今回はexecute_command
ツールを例とします)。
各パラメータの項目にカーソルを移動し、l
キーを押すと入力画面に移りますので、適切な値を入力します。
その後、「Submit」に移動し、l
キーを押すと結果(Result)が出力されます。この結果を基に、LLMは次の処理ステップへと進みます。
ツールのテスト方法は以上ですが、プロンプトやリソースも同様の手順でテストできます。ぜひご自身で試してみてください。
avante.nvimとの連携
ここまでは、mcphub.nvim
を用いたMCPサーバーの管理方法について解説してきました。しかし、MCPサーバーが真価を発揮するのは、LLMから呼び出される際です。そこで最後に、avante.nvim
と組み合わせた実践例をご紹介します。
lazy.nvim
の設定は、公式READMEを参考に、以下のように記述しました。
mcphub.nvim
側の設定:
{
'ravitemer/mcphub.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
build = 'npm install -g mcp-hub@latest',
config = function()
require('mcphub').setup({
extensions = {
avante = {
make_slash_commands = true, -- スラッシュコマンドを生成する
}
}
})
end,
}
avante.nvim
側の設定:
{
"yetone/avante.nvim",
opts = {
system_prompt = function()
local hub = require("mcphub").get_hub_instance()
return hub:get_active_servers_prompt() -- 有効なMCPサーバーのプロンプトを取得
end,
custom_tools = function()
return {
require("mcphub.extensions.avante").mcp_tool(), -- mcphub.nvimのツールを登録
}
end,
-- その他のavante.nvim設定
},
-- その他の設定
}
次に、MCPHubのUIから、使用するMCPサーバーを有効化します。
今回は以下のサーバーを有効にしました。
arxiv-mcp-server
Tavily
sequential-thinking
そして、avante.nvim
のチャットパネルから、次のような質問を投げかけてみました。
Neovimから生成AIを使うための、2025年最もホットな方法を教えて。よく調べて、よく考えて答えて
AIからの回答例
- Datetime: 2025-05-13 23:21:14
- Model: copilot/claude-3.5-sonnet
Neovimから生成AIを使うための、2025年最もホットな方法を教えて。よく調べて、よく考えて答えて
このトピックについて、最新の情報を収集し、体系的に分析していきたいと思います。
まず、Tavily検索を使って最新の情報を集めましょう。
╭─ use_mcp_tool succeeded
│ running tool
╰─ tool finished
このデータを基に、より深く分析するために、sequential-thinkingツールを使って体系的に考えていきましょう。
╭─ use_mcp_tool succeeded
│ running tool
╰─ tool finished
...(中略、同様のtool finishedが数回続く)...
╭─ use_mcp_tool succeeded
│ running tool
╰─ tool finished
分析に基づいて、2025年のNeovimでの生成AI活用について、以下にまとめます:
2025年のNeovimでの最新の生成AI活用方法
1. 推奨される基本セットアップ
スタンダードアプローチ
-
GitHub Copilot + avante.nvim
- GitHub Copilotによる高精度なコード補完・生成
-
avante.nvim
によるRAG(検索強化生成)とツール統合 -
mcphub.nvim
で必要なツールを柔軟に追加
プライバシー重視アプローチ
-
codecompanion.nvim + Ollama
- ローカルLLMを活用したセキュアな環境
- 必要に応じて外部サービスを選択的に追加
2. 2025年の主要トレンド
-
RAGの重要性の増大
- プロジェクトのコンテキストを考慮したコード生成
- コードベースに基づく的確な提案
-
マルチモデル対応
- 複数のLLMを状況に応じて使い分け
- ローカルLLMと外部APIの組み合わせ
-
ツール統合の深化
- MCPによる柔軟なツール連携
- プロジェクト管理ツールやCI/CDとの連携
3. ツールの選び方
以下の要素を考慮して選択することをお勧めします:
-
セキュリティ要件
- 社内ポリシーや取り扱うデータの機密性
- コードの外部送信の可否
-
コスト効果
- 予算に応じたサービスの選択
- 無料/有料プランの機能比較
-
チームの開発フロー
- 既存のワークフローとの親和性
- チームメンバーの技術スタック
この構成により、2025年の最新トレンドを取り入れながら、柔軟で効率的な開発環境を構築することができます。特にRAGとツール統合の強化は、より文脈を理解した知的なコーディング支援を実現します。
上記のように、複数のMCPサーバー(この例ではTavilyとsequential-thinking)を活用して、包括的な回答が得られました。
現時点では、use_mcp_tool
で具体的にどのツールが使用されたかの詳細表示はまだ対応されていませんが、関連するIssueが報告されており、今後のアップデートに期待が持てます。
まとめ
-
mcphub.nvim
を活用することで、NeovimがAIエージェントや外部ツールと直接連携し、強力な開発ハブとして機能します。 -
avante.nvim
と組み合わせることで、ツール駆動型のエージェントによる、より高度で文脈に応じた回答や提案を引き出すことが可能になります。
CursorやVS Codeといった高機能なエディタも素晴らしいですが、Neovimもまた、コーディングエージェントとしての大きな可能性を秘めていると言えるでしょう。
NeovimをAI時代の最先端開発環境へと進化させたい方は、ぜひmcphub.nvim
の導入を検討してみてください!