MCP-LLM Bridge について
MCP-LLM Bridge は、Ollama で動作するローカル LLM を MCP サーバーに接続する TypeScript 実装です。オープンソースのモデルが Claude と同じツールを利用できるようにします。すべてを自分のハードウェア上で動かしたい利用者向けです。
主な機能
- 01Ollama 経由でローカル LLM を接続
- 02複数の MCP サーバーへの動的なツールルーティング
- 03ツール呼び出しの構造化出力検証
- 04ユーザープロンプトからのツール自動判別
- 05bridge_config.json による設定
活用シーン
- 01ローカルモデルからファイルシステムツールを利用する
- 02ローカルモデルで Web 検索と GitHub 操作を実行する
- 03ローカル環境から Gmail と Google Drive にアクセスする
MCP 対応
複数の MCP サーバーへの接続を管理する MCP クライアントとして動作し、JSON-RPC のツール呼び出しをローカル LLM が扱える形式に変換します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-LLM Bridge
Ollama 経由でローカル LLM を Model Context Protocol(MCP)サーバーに接続する TypeScript 実装です。このブリッジにより、オープンソースモデルが Claude と同じツールや機能を利用できるようになり、高性能なローカル AI アシスタントを実現できます。
概要
このプロジェクトは、さまざまな機能を提供する MCP サーバーとローカルの大規模言語モデルを接続します。機能には次のものがあります。
- ファイルシステム操作
- Brave ウェブ検索
- GitHub 連携
- Google Drive と Gmail の連携
- メモリ/ストレージ
- Flux による画像生成
このブリッジは LLM の出力と MCP の JSON-RPC プロトコルの間を変換するため、Ollama 対応モデルであれば、Claude と同じようにこれらのツールを利用できます。
現在の構成
- LLM:Ollama 経由で Qwen 2.5 7B(qwen2.5-coder:7b-instruct)を使用
- MCP:
- ファイルシステム操作(
@modelcontextprotocol/server-filesystem) - Brave Search(
@modelcontextprotocol/server-brave-search) - GitHub(
@modelcontextprotocol/server-github) - Memory(
@modelcontextprotocol/server-memory) - Flux 画像生成(
@patruff/server-flux) - Gmail と Drive(
@patruff/server-gmail-drive)
- ファイルシステム操作(
アーキテクチャ
- ブリッジ:ツールの登録と実行を管理するコアコンポーネント
- LLM クライアント:Ollama とのやり取りを処理し、ツール呼び出しを整形します
- MCP クライアント:MCP サーバーとの接続と JSON-RPC 通信を管理します
- ツールルーター:ツールの種類に基づいて、適切な MCP にリクエストを振り分けます
主な機能
- 動的なツールルーティングによる複数 MCP のサポート
- ツール呼び出しの構造化出力検証
- ユーザープロンプトからツールを自動検出
- Ollama の堅牢なプロセス管理
- 詳細なログ記録とエラー処理
セットアップ
- Ollama と必要なモデルをインストールします。
ollama pull qwen2.5-coder:7b-instruct
- MCP サーバーをインストールします。
npm install -g @modelcontextprotocol/server-filesystem
npm install -g @modelcontextprotocol/server-brave-search
npm install -g @modelcontextprotocol/server-github
npm install -g @modelcontextprotocol/server-memory
npm install -g @patruff/server-flux
npm install -g @patruff/server-gmail-drive
- 認証情報を設定します。
- Brave Search 用に
BRAVE_API_KEYを設定します - GitHub 用に
GITHUB_PERSONAL_ACCESS_TOKENを設定します - Flux 用に
REPLICATE_API_TOKENを設定します - Gmail/Drive MCP の認証を実行します:
node path/to/gmail-drive/index.js auth - 例:node C:\Users\patru\AppData\Roaming\npm\node_modules@patruff\server-gmail-drive\dist\index.js auth
- Brave Search 用に
設定
ブリッジは bridge_config.json で設定します。
- MCP サーバーの定義
- LLM の設定(モデル、temperature など)
- ツールの権限とパス
例:
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": ["path/to/server-filesystem/dist/index.js"],
"allowedDirectory": "workspace/path"
},
// ... other MCP configurations
},
"llm": {
"model": "qwen2.5-coder:7b-instruct",
"baseUrl": "http://localhost:11434"
}
}
使い方
- ブリッジを起動します。
npm run start
- 利用可能なコマンド:
list-tools:利用可能なツールを表示します- 通常のテキスト:LLM にプロンプトを送信します
quit:プログラムを終了します
やり取りの例:
> Search the web for "latest TypeScript features"
[Uses Brave Search MCP to find results]
> Create a new folder called "project-docs"
[Uses Filesystem MCP to create directory]
> Send an email to [email protected]
[Uses Gmail MCP to compose and send email]
技術的な詳細
ツールの検出
このブリッジには、ユーザー入力に基づいてツールを賢く検出する機能が含まれています。
- メール操作:メールアドレスとキーワードから検出します
- Drive 操作:ファイル/フォルダーに関するキーワードから検出します
- 検索操作:状況に応じて適切な検索ツールに振り分けます
応答の処理
応答は複数の段階を経て処理されます。
- LLM が構造化されたツール呼び出しを生成します
- ブリッジが検証し、適切な MCP に振り分けます
- MCP が操作を実行し、結果を返します
- ブリッジがユーザー向けに応答を整形します
拡張機能
このブリッジにより、Claude のツール機能をローカルモデルで活用できます。
- ファイルシステムの操作
- ウェブ検索と調査
- メールとドキュメントの管理
- コードと GitHub の操作
- 画像生成
- 永続的なメモリ
すべてオープンソースモデルを使って、完全にローカルで実行できます。
今後の改善
- さらに多くの MCP をサポートする
- ツールの並列実行を実装する
- ストリーミング応答を追加する
- エラー復旧を強化する
- 会話メモリを追加する
- さらに多くの Ollama モデルをサポートする
関連プロジェクト
このブリッジは、より広範な Claude エコシステムと連携します。
- Model Context Protocol(MCP)
- Claude Desktop Configuration
- Ollama Project
- 各種 MCP サーバー実装
その結果、自分のハードウェア上で完全に実行しながら、Claude の多くの機能に匹敵するローカル AI アシスタントを実現できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。