IBM/mcp-context-forgeView GitHub Homepage for Latest Official Releases
機能豊富なモデルコンテキストプロトコル(MCP)ゲートウェイおよびレジストリ。ツール、リソース、プロンプトの一元管理を提供し、REST APIからMCPプロトコルへの変換をサポート。セキュリティと可観測性を備えています。
Apache-2.0Pythonmcp-context-forgeIBM 1.0k Last Updated: August 07, 2025
MCP Context Forge プロジェクト詳細
プロジェクト概要
MCP Context Forge は、IBM がオープンソースで公開している、機能豊富な FastAPI 駆動のモデルコンテキストプロトコル(MCP)ゲートウェイです。ツール、リソース、プロンプト、サーバー、ピアゲートウェイを統合・連携し、あらゆる REST API を MCP 標準に準拠したツールまたは仮想サーバーとしてラップします。このプロジェクトは、HTTP/JSON-RPC、WebSocket、サーバー送信イベント(SSE)、stdio トランスポートプロトコルを介してすべての機能を公開し、コンテナ形式でパッケージ化された豊富なインタラクティブ管理 UI を提供し、SQLAlchemy がサポートするあらゆるデータベースをサポートします。
コア機能
1. プロトコルゲートウェイ機能
- 真のゲートウェイアーキテクチャ: ツール、リソース、プロンプトの一元化された登録センターでありながら、公式 MCP 2025-03-26 プロトコル標準を維持
- マルチサーバーフェデレーション: 複数の MCP サーバーを 1 つのエンドポイントに統合 - ピアノードの自動検出(mDNS または明示的な構成)、ヘルスチェック、および機能の統合
- 仮想化サービス: 非 MCP サービスを「仮想サーバー」として仮想化し、任意の REST API または関数エンドポイントを登録して MCP セマンティクスで公開
2. API アダプタ機能
- REST to MCP アダプタ: 任意の REST/HTTP API を MCP ツールに適合させ、JSON-Schema 入力検証、リトライ/レート制限ポリシー、および透過的な JSON-RPC 呼び出しをサポート
- プロトコル変換: さまざまなトランスポートプロトコル間の変換をサポート(stdio、SSE、ストリーミング可能な HTTP)
3. デプロイメントと管理
- 完全な管理 UI: 豊富なトランスポートプロトコル、事前構築済みの開発エクスペリエンスパイプライン、および本番環境レベルの可観測性を提供
- エンタープライズレベルの機能: 認証認可、キャッシュ、ヘルスチェック、メトリクス収集などの完全な機能を含む
システムアーキテクチャ
このプロジェクトは、モジュール化されたアーキテクチャ設計を採用しています。
┌─────────────────┐ ┌──────────────────┐
│ 🖥️ Admin UI │ │ 🔐 認証認可 │
│ 管理インターフェース│ │ JWT + Basic │
└─────────────────┘ └──────────────────┘
│ │
└────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 🚪 MCP ゲートウェイコア│
│ プロトコル初期化 Ping 完了 │
│ フェデレーションマネージャー │
│ トランスポートプロトコル HTTP WS SSE Stdio │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ サービス層 │
│ 🧰 ツールサービス 📁 リソースサービス │
│ 📝 プロンプトサービス 🧩 サーバーサービス │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 永続化層 │
│ 💾 データベース SQLAlchemy │
│ ⚡ キャッシュ Redis/Memory │
└───────────────────────────────┘
技術特性
サポートされるプロトコルとトランスポート
- 完全な MCP 2025-03-26 サポート: initialize、ping、notify、completion、sampling (SSE)、および JSON-RPC フォールバック
- マルチトランスポートプロトコル: HTTP/JSON-RPC、WebSocket(ping/pong)、SSE(単方向+リターンチャネル)、stdio
- プロトコル変換: 異なるトランスポートプロトコル間のシームレスな変換をサポート
フェデレーションとディスカバリー
- 自動検出: mDNS または明示的に構成されたピアゲートウェイの検出をサポート
- ヘルスチェック: 定期的なヘルスチェック、フェイルオーバーをサポート
- 透過的なマージ: リモートレジストリを統一されたディレクトリに透過的にマージ
リソース管理
- テンプレート化された URI: パラメータ化されたリソース URI をサポート
- スマートキャッシュ: LRU+TTL キャッシュメカニズム、MIME タイプ検出
- リアルタイムサブスクリプション: SSE リアルタイムサブスクリプションリソース変更をサポート
プロンプト管理
- Jinja2 テンプレート: 強力なテンプレートエンジンをサポート
- Schema 検証: JSON-Schema による強制検証
- マルチモーダルサポート: マルチモーダルコンテンツブロックをサポート
- バージョン管理: バージョン管理とロールバック機能
ツール管理
- マルチタイプサポート: ネイティブ MCP または REST ベースのツール
- 入力検証: 完全な入力検証メカニズム
- リトライロジック: スマートリトライとレート制限/同時実行制御
管理と監視機能
Web 管理インターフェース
- 技術スタック: HTMX + Alpine.js + Tailwind CSS
- 完全な CRUD: サーバー、ツール、リソース、プロンプト、ゲートウェイ、ルートディレクトリ、およびメトリクスの完全な管理
- リアルタイム監視: リアルタイム状態監視とログ表示
認証と認可
- 複数の認証方式: Basic 認証、JWT Bearer、カスタムヘッダー認証
- きめ細かい制御: 各エンドポイントの依存性注入制御
- 安全な暗号化: ツール認証ヘッダーの AES 暗号化ストレージ
永続化と移行
- ORM サポート: 非同期 SQLAlchemy ORM(SQLite、PostgreSQL、MySQL など)
- 自動移行: Alembic 自動データベース移行
- 接続プール: 完全なデータベース接続プール構成
イベントシステムと可観測性
- 統一イベント: WS/SSE ファンアウトの統一イベントラッピング
- サーバーサイドフィルタリング: サーバーサイドイベントフィルタリングとリターンフック
- 構造化ログ: 構造化 JSON ログ記録
- ヘルスチェック:
/health
エンドポイントと遅延メトリクスデコレータ - 完全なメトリクス: 各ハンドラーのメトリクス収集
開発エクスペリエンス
開発ツール
- Makefile ターゲット: 100 を超える事前定義された開発ターゲット
- コード品質: pre-commit hooks(ruff、black、mypy、isort)
- リアルタイムリロード: 開発サーバーはリアルタイムリロードをサポート
- テストカバレッジ: 400 以上のテストケース
- CI/CD: 完全な CI バッジと自動化プロセス
デプロイメントオプション
- コンテナ化されたデプロイメント: Docker/Podman サポート
- クラウドネイティブ: IBM Cloud Code Engine デプロイメントサポート
- マルチ環境: 開発、テスト、本番環境構成
- SSL/TLS: 完全な HTTPS サポート
構成オプション
基本構成
# アプリケーション基本構成
APP_NAME=MCP Gateway
HOST=0.0.0.0
PORT=4444
DATABASE_URL=sqlite:///./mcp.db
APP_ROOT_PATH=/gateway # オプションのサブパスプレフィックス
認証構成
# Basic 認証(管理インターフェースと API)
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=changeme
# JWT 構成
JWT_SECRET_KEY=my-test-key
JWT_ALGORITHM=HS256
TOKEN_EXPIRY=10080 # 分
# 認証制御
AUTH_REQUIRED=true
AUTH_ENCRYPTION_SECRET=my-test-salt
フェデレーション構成
# フェデレーション機能
FEDERATION_ENABLED=true
FEDERATION_DISCOVERY=false
FEDERATION_PEERS=["http://peer1:4444","http://peer2:4444"]
FEDERATION_TIMEOUT=30
FEDERATION_SYNC_INTERVAL=300
クイックスタート
Docker を使用した実行
docker run -d --name mcpgateway \
-p 4444:4444 \
-e HOST=0.0.0.0 \
-e JWT_SECRET_KEY=my-secret-key \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASSWORD=changeme \
-e AUTH_REQUIRED=true \
-e DATABASE_URL=sqlite:///./mcp.db \
ghcr.io/ibm/mcp-context-forge:latest
ローカル開発
# 仮想環境を作成し、依存関係をインストール
make venv install serve
# または手動でインストール
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn mcpgateway.main:app --host 0.0.0.0 --port 4444
認証トークンの生成
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 10080 --secret my-test-key)
API 使用例
プロトコル初期化
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"protocol_version":"2025-03-26",
"capabilities":{},
"client_info":{"name":"MyClient","version":"1.0.0"}
}' \
http://localhost:4444/protocol/initialize
ツールの登録
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"clock_tool",
"url":"http://localhost:9000/rpc",
"description":"Returns current time",
"input_schema":{
"type":"object",
"properties":{"timezone":{"type":"string"}},
"required":[]
}
}' \
http://localhost:4444/tools
プロンプトテンプレートの作成
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"greet",
"template":"Hello, {{ user }}!",
"argument_schema":{
"type":"object",
"properties":{"user":{"type":"string"}},
"required":["user"]
}
}' \
http://localhost:4444/prompts
IBM Cloud Code Engine へのデプロイ
プロジェクトは、完全な IBM Cloud Code Engine デプロイメントをサポートしています。
環境構成
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
IBMCLOUD_PROJECT=my-codeengine-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
IBMCLOUD_IMAGE_NAME=us.icr.io/myspace/mcpgateway:latest
IBMCLOUD_API_KEY=your_api_key_here
デプロイメントコマンド
make ibmcloud-check-env # 環境変数の確認
make ibmcloud-cli-install # IBM Cloud CLI のインストール
make ibmcloud-login # IBM Cloud へのログイン
make ibmcloud-ce-login # Code Engine プロジェクトの選択
make ibmcloud-tag # コンテナイメージのタグ付け
make ibmcloud-push # IBM Container Registry へのプッシュ
make ibmcloud-deploy # Code Engine へのデプロイ
プロジェクト構造
mcpgateway/
├── admin.py # FastAPI ルートと管理 UI コントローラー
├── cache/
│ └── resource_cache.py # リソースのメモリ LRU+TTL キャッシュ
├── config.py # Pydantic 設定ローダー
├── db.py # SQLAlchemy ORM モデルとデータベース設定
├── federation/
│ ├── discovery.py # ピアゲートウェイの検出
│ ├── forward.py # RPC 転送ロジック
│ └── manager.py # フェデレーションの調整とヘルスチェック
├── handlers/
│ └── sampling.py # MCP ストリーミングサンプリングリクエストハンドラー
├── services/
│ ├── completion_service.py # プロンプトとリソースパラメータの補完ロジック
│ ├── gateway_service.py # ピアゲートウェイの登録と管理
│ ├── prompt_service.py # プロンプトテンプレートの CRUD とレンダリング
│ ├── resource_service.py # リソースの登録、取得、サブスクリプション
│ ├── server_service.py # サーバーの登録とヘルスモニタリング
│ └── tool_service.py # ツールの登録、呼び出し、メトリクス
├── transports/
│ ├── sse_transport.py # サーバー送信イベントトランスポート
│ ├── stdio_transport.py # stdio トランスポート
│ └── websocket_transport.py # WebSocket トランスポート
└── utils/
├── create_jwt_token.py # JWT 生成とチェックツール
└── verify_credentials.py # FastAPI 認証依存性
開発と貢献
開発環境のセットアップ
# 開発依存関係のインストール
make install-dev
# コードチェックの実行
make lint
# テストの実行
make test
# カバレッジテストの実行
make coverage
コード品質ツール
プロジェクトには、さまざまなコード品質ツールが統合されています。
- フォーマット: black、isort、autoflake
- 静的解析: mypy、pylint、pyright、pyre
- セキュリティスキャン: bandit、pip-audit
- 複雑度分析: radon、wily
- 依存関係チェック: fawltydeps、pip-licenses
まとめ
MCP Context Forge は、機能が充実し、本番環境に対応したモデルコンテキストプロトコルゲートウェイソリューションであり、特にエンタープライズレベルの LLM アプリケーションのツール統合と管理のニーズに適しています。MCP プロトコルの完全な機能を実装するだけでなく、フェデレーション検出、プロトコル変換、仮想化サービスなどの豊富な拡張機能も提供し、複雑な AI アプリケーションエコシステムの構築に理想的なインフラストラクチャコンポーネントです。