habitat について
habitatは、レジストリ、サーバー構成、CLIを含む、ローカルおよびネットワーク上のMCPサーバーを管理するコンポーネント群です。サービスの検出、認証、ルーティング、ライフサイクル管理を支援し、MCPサービスの開発・運用チームを対象とします。
主な機能
- 01MCPサーバーの登録と検出
- 02認証・認可・リクエストルーティング
- 03階層型サーバーアダプター構成
- 04CLIによるサーバーライフサイクル管理
- 05ヘルス状態の監視とサービス構築
活用シーン
- 01利用可能なMCPサーバーの登録と検出
- 02ローカルとクラウドのサービス管理
- 03CLIでサーバーを追加または更新
- 04サービスのヘルス状態を確認
MCP 対応
MCPサーバーとして実装されたレジストリを備え、MCPサーバーの検出、認証、調整を行い、クライアントのリクエストを適切なサーバーへルーティングします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
habitat
これらは連携して動作する一連のコンポーネントで、ローカルおよびネット上の MCP サーバーの管理、開発、利用、移行を容易にします。
MCP Habitat:コンポーネントアーキテクチャ
概要
MCP Habitat は、ローカル環境とクラウド環境にまたがる Model Context Protocol(MCP)サーバーを管理するための包括的なアーキテクチャを提供します。このドキュメントでは、主要なコンポーネントとその相互作用について説明します。
コアコンポーネント
1. MCP Registry
MCP サーバー自体として実装された、中心的なディスカバリーサービスです。
- 目的:サービスディスカバリー、認証、オーケストレーション
- 実装:レジストリ固有の拡張機能を備えた MCP サーバー
- 責任:
- 利用可能な MCP サーバーのレジストリを維持する
- サービスディスカバリーのリクエストを処理する
- 認証と認可を管理する
- クライアントのリクエストを適切な MCP サーバーにルーティングする
2. MCP サーバーアーキテクチャ(3 層)
各 MCP サーバーは、次の 3 つの異なる層で構成されています。
2.1 共通 MCP コア
- 目的:MCP プロトコルと会話管理を処理する
- 実装:すべての MCP サーバーで使用される共有ライブラリ
- 責任:
- コンテキストウィンドウの管理
- 会話状態の追跡
- メッセージの処理とルーティング
- トークンのカウントと制限
- MCP プロトコルの実装
2.2 メタデータサービス
- 目的:サーバーの機能と統合の詳細を定義する
- 実装:MCP サーバーの設定レイヤー
- 責任:
- 利用可能なコマンドと構文を定義する
- サービススキーマを提供する
- バージョン情報を管理する
- レジストリへの登録を処理する
- 機能を文書化する
2.3 サービスアダプター
- 目的:基盤となるサービス(Jira、GitHub など)に接続する
- 実装:独立したマイクロサービス
- 責任:
- 外部 API と連携する
- MCP プロトコルとサービス固有の API 間で変換する
- サービス認証を処理する
- データ変換を管理する
- スタンドアロンの API アクセスを提供する
3. Habitat CLI
エコシステム全体を管理するためのコマンドラインインターフェイスです。
- 目的:統合管理インターフェイス
- 実装:habitat、registry、server サブコマンドを備えた CLI ツール
- 責任:
- Habitat のライフサイクル全体を管理する
- レジストリを設定および制御する
- 個々の MCP サーバーを追加、削除、更新する
- システムの状態を監視する
- 新しいサービスをプロビジョニングする
相互作用
登録フロー
- MCP サーバーが起動する
- メタデータサービスがレジストリに接続する
- サーバーが認証を行い、自身の機能を登録する
- レジストリがサーバーを利用可能なサービスに追加する
- レジストリがヘルスチェックを実行し、利用可能であることを確認する
ディスカバリーフロー
- クライアントが MCP プロトコルを使用してレジストリに接続する
- クライアントが特定の種類の利用可能なサービスをリクエストする
- レジストリがクライアントを認証し、権限を確認する
- レジストリが接続の詳細とともに、一致するサービスの一覧を返す
- クライアントが該当する MCP サーバーに直接接続する
サービス連携フロー
- クライアントが MCP サーバーとの会話を確立する
- クライアントが MCP 形式のリクエストを送信する
- MCP コアが会話のコンテキストを管理する
- サービスアダプターがリクエストをサービス固有の API 呼び出しに変換する
- サービスアダプターがデータを返し、MCP コアがレスポンス形式に整える
デプロイモデル
ローカル開発
- レジストリと MCP サーバーは、ローカルの Docker コンテナで実行される
- サービスは localhost ネットワーク経由で通信する
- 設定はローカルファイルシステムに保存される
ハイブリッドデプロイ
- レジストリはローカルで実行され、一部のサービスはローカルで、その他はクラウドで実行される
- ローカルレジストリがリモートサービスへの接続を維持する
- サービスの場所にかかわらず、一貫したディスカバリーの仕組みを利用できる
クラウドデプロイ
- すべてのコンポーネントを Kubernetes または同様のプラットフォームにデプロイする
- 高可用性を実現するため、レジストリを水平スケールする
- サービスアダプターを負荷に応じて個別にスケールする
- 必要に応じて、MCP サーバーを複数のリージョンに分散する
セキュリティモデル
認証レイヤー
- クライアントからレジストリ:API キーまたは OAuth を使用した初期認証
- レジストリからサーバー:相互 TLS または API キーを使用したサーバー検証
- クライアントからサーバー:レジストリが提供するトークンベースのアクセス
- サーバーからサービス:アダプターが処理するサービス固有の認証
認可モデル
- レジストリがアクセス制御ポリシーを維持します
- 権限はサービスレベルで管理されます
- クライアントの機能はアイデンティティに基づいて制限されます
- 監査ログにすべての認証および認可イベントが記録されます
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。