MCPHost 🤖 について
Go で実装された CLI ホストアプリケーションで、大規模言語モデルが MCP を通じて外部ツールと対話できるようにします。Claude 3.5 Sonnet と Ollama モデルに対応し、MCP サーバー接続を管理します。
主な機能
- 01Claude と Ollama モデル対応
- 02複数 MCP サーバー管理
- 03動的ツール発見
- 04インタラクティブなチャットインターフェース
- 05設定可能なメッセージ履歴ウィンドウ
活用シーン
- 01ローカル LLM とツール統合
- 02複数 MCP サーバー統合管理
- 03モデルによるツール呼び出し
- 04MCP サーバー開発とテスト
MCP 対応
MCPHost は MCP ホストとして機能し、複数の MCP サーバーへの接続を管理し、モデルがこれらのサーバーが公開するツールとリソースを検出して呼び出せるようにします。
詳細
MCPHost 🤖
Large Language Models (LLMs) が Model Context Protocol (MCP) を通じて外部ツールと相互作用できるようにする CLI ホストアプリケーションです。現在は Claude 3.5 Sonnet と Ollama モデルの両方をサポートしています。
概要 🌟
MCPHost は MCP クライアント・サーバーアーキテクチャ内のホストとして動作します:
- ホスト (MCPHost のような) は接続と相互作用を管理する LLM アプリケーションです
- クライアント は MCP サーバーとの 1:1 接続を維持します
- サーバー は LLM にコンテキスト、ツール、機能を提供します
このアーキテクチャにより、言語モデルは:
- 外部ツールとデータソースにアクセス可能 🛠️
- 相互作用全体で一貫したコンテキストを保持 🔄
- コマンドを実行し、安全に情報を取得 🔒
現在サポート:
- Claude 3.5 Sonnet (claude-3-5-sonnet-20240620)
- 関数呼び出しに対応した任意の Ollama 互換モデル
機能 ✨
- Claude 3.5 Sonnet または Ollama モデルとの対話的な会話
- 複数の同時 MCP サーバーのサポート
- 動的ツール検出と統合
- 両方のモデルタイプのツール呼び出し機能
- 構成可能な MCP サーバーの場所と引数
- モデルタイプ全体での一貫したコマンドインターフェース
- コンテキスト管理用の構成可能なメッセージ履歴ウィンドウ
必要な環境 📋
- Go 1.23 以降
- Claude の場合: Anthropic API キー
- Ollama の場合: 必要なモデルがインストールされたローカル Ollama
- 1 つ以上の MCP 互換ツールサーバー
環境セットアップ 🔧
- Anthropic API キー (Claude の場合):
export ANTHROPIC_API_KEY='your-api-key'
- Ollama セットアップ:
- https://ollama.ai から Ollama をインストール
- 目的のモデルをプル:
ollama pull mistral
- Ollama が実行中であることを確認:
ollama serve
インストール 📦
go install github.com/mark3labs/mcphost@latest
設定 ⚙️
MCPHost は設定ファイルを ~/.mcp.json に自動作成します (存在しない場合)。--config フラグを使用してカスタムロケーションを指定することもできます:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"/tmp/foo.db"
]
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/tmp"
]
}
}
}
各 MCP サーバーエントリには以下が必要です:
command: 実行するコマンド (uvx、npxなど)args: コマンドの引数配列:- SQLite サーバーの場合:
mcp-server-sqliteとデータベースパス - ファイルシステムサーバーの場合:
@modelcontextprotocol/server-filesystemとディレクトリパス
- SQLite サーバーの場合:
使用法 🚀
MCPHost は統一されたインターフェースを通じて様々な AI モデルと相互作用できるコマンドラインツールです。MCP サーバーを通じて様々なツールをサポートしています。
利用可能なモデル
モデルは --model (-m) フラグを使用して指定できます:
- Anthropic Claude (デフォルト):
anthropic:claude-3-5-sonnet-latest - OpenAI:
openai:gpt-4 - Ollama モデル:
ollama:modelname
例
# Use Ollama with Qwen model
mcphost -m ollama:qwen2.5:3b
# Use OpenAI's GPT-4
mcphost -m openai:gpt-4
フラグ
--anthropic-url string: Anthropic API のベース URL (デフォルト: api.anthropic.com)--anthropic-api-key string: Anthropic API キー (ANTHROPIC_API_KEY 環境変数でも設定可能)--config string: 設定ファイルロケーション (デフォルト: $HOME/mcp.json)--debug: デバッグロギングを有効化--message-window int: コンテキストに保持するメッセージ数 (デフォルト: 10)-m, --model string: 使用するモデル (形式: provider:model) (デフォルト "anthropic:claude-3-5-sonnet-latest")--openai-url string: OpenAI API のベース URL (デフォルト: api.openai.com)--openai-api-key string: OpenAI API キー (OPENAI_API_KEY 環境変数でも設定可能)
インタラクティブコマンド
チャット中に以下を使用できます:
/help: 利用可能なコマンドを表示/tools: 利用可能なすべてのツールをリスト表示/servers: 構成された MCP サーバーをリスト表示/history: 会話履歴を表示/quit: アプリケーションを終了Ctrl+C: いつでも終了
グローバルフラグ
--config: カスタム設定ファイルロケーションを指定--message-window: コンテキストに保持するメッセージ数を設定 (デフォルト: 10)
MCP サーバー互換性 🔌
MCPHost は MCP 準拠の任意のサーバーで動作します。例と参考実装については MCP Servers Repository を参照してください。
貢献 🤝
貢献を歓迎します!以下のことをお気軽にどうぞ:
- 問題を通じてバグレポートや機能リクエストを送信する
- 改善のためのプルリクエストを作成する
- カスタム MCP サーバーを共有する
- ドキュメントを改善する
貢献の際は、適切なコーディング慣行に従い、適切なテストを含めることをお願いします。
ライセンス 📄
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
謝辞 🙏
- Claude と MCP 仕様を提供してくれた Anthropic チームに感謝します
- ローカル LLM ランタイムを提供してくれた Ollama チームに感謝します
- このツールの改善に協力してくれたすべてのコントリビューターに感謝します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。