/ ディレクトリ / プレイグラウンド / IBM Context Forge
● 公式 IBM 🔑 自分のキーが必要

IBM Context Forge

作者 IBM · IBM/mcp-context-forge

IBM発のMCPフリート向けAIゲートウェイ — サーバーの統合管理、認証、レート制限、オブザーバビリティ、REST/gRPCからMCPへの変換をスケーラブルに実現します。

ContextForgeは、多数のMCP / A2A / REST / gRPCバックエンドの前段に配置されるオープンソースのゲートウェイ、レジストリ、プロキシです。一つの統合MCPエンドポイントを公開し、認証の一元管理、レート制限、OpenTelemetryトレーシング、管理UIを提供します。単にMCPサーバーを1台運用するだけでなく、数十台のMCPサーバーをガバナンスする必要があるエンタープライズ向けです。

なぜ使うのか

主な機能

ライブデモ

実際の動作

mcp-context-forge.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-context-forge": {
      "command": "uvx",
      "args": [
        "mcp-context-forge"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-context-forge": {
      "command": "uvx",
      "args": [
        "mcp-context-forge"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-context-forge": {
      "command": "uvx",
      "args": [
        "mcp-context-forge"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-context-forge": {
      "command": "uvx",
      "args": [
        "mcp-context-forge"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-context-forge",
      "command": "uvx",
      "args": [
        "mcp-context-forge"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-context-forge": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-context-forge"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add mcp-context-forge -- uvx mcp-context-forge

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: IBM Context Forge

10台以上のMCPサーバーを1つのゲートウェイに集約する

👤 中〜大規模組織のプラットフォームエンジニア ⏱ ~120 min advanced

使うタイミング: チームごとに異なるMCPを運用している状況で、クライアント向けのURLを1つに統一し、監査ログと認証を一元化したい場合に使用します。

前提条件
  • Docker/Kubernetes環境 — 公式イメージがghcr.ioで公開されています。Helmチャートも利用可能です
  • 認証プロバイダー(または組み込みJWTを使用) — 既存のSSO / OIDC / 静的JWTサイナー
フロー
  1. ゲートウェイをデプロイする
    mcp-contextforge-gatewayをHelm経由でデプロイし、フェデレーション状態管理にRedisを使用してください。OIDCプロバイダーに接続してください。✓ コピーしました
    → 管理UIが読み込まれ、認証が機能する
  2. バックエンドを登録する
    管理UIで3つのバックエンドMCP(github、postgres、our-custom)を登録してください。レート制限を設定:github=100/分、postgres=30/分。✓ コピーしました
    → バックエンドがレジストリで正常と表示される
  3. クライアントの接続先を変更する
    チームメンバーのClaude Desktop設定を、JWTを使った単一のmcp-remote https://mcp-gw.company.com/mcpに変更してください。✓ コピーしました
    → 1つの接続で全バックエンドのツールが利用可能になる

結果: 組織全体のMCPアクセスを一元管理できます — 他のAPIゲートウェイと同様の集中管理が実現します。

注意点
  • レート制限がグローバルに適用されるが、チームごとにニーズが異なる — ポリシーエンジンでユーザー単位またはJWTクレーム単位のレート制限を使用してください。全員に同一の制限を適用しないこと
  • ゲートウェイが単一障害点になる — Redisバックセッション状態で少なくとも2レプリカを稼働させ、/healthエンドポイントでヘルスチェックを行ってください
組み合わせ: cloud-run

サーバーを書かずにREST APIをMCPとして仮想化する

👤 Python/TSの開発リソースが不足しているプラットフォームエンジニア ⏱ ~60 min intermediate

使うタイミング: OpenAPIスペックを持つ社内REST APIがあり、fastapi-mcpやFastMCPのコードを書かずにMCPアクセスを提供したい場合に使用します。

前提条件
  • APIのOpenAPI / Swaggerスペック — 通常は/openapi.jsonまたは/swagger.jsonで取得可能
フロー
  1. OpenAPIスペックをアップロードする
    ContextForge管理画面で新しいRESTバックエンドを登録し、OpenAPIスペックをアップロードしてください。ツールの自動生成が全エンドポイントを検出したことを確認してください。✓ コピーしました
    → ツール一覧がルート一覧と一致する
  2. 認証パススルーを設定する
    MCPクライアントからアップストリームREST APIへAuthorizationヘッダーが転送されるようにヘッダーフォワーディングを設定してください。✓ コピーしました
    → 認証が必要なルートがエンドツーエンドで動作する
  3. 公開対象を絞り込む
    パスパターンで内部/管理者ルートを除外してください。最もよく使われる3つのツールに説明文のオーバーライドを追加してください。✓ コピーしました
    → エージェントにとって使いやすいクリーンなツール一覧

結果: 新しいサービスコードを一切書かずにREST-as-MCPを実現できます — OpenAPIスペックがあれば十分です。

注意点
  • 自動生成されたツール名がわかりにくい — OpenAPIスペックで明示的なoperationIdを設定するか、ContextForgeでルートごとに名前をオーバーライドしてください

組織全体のMCPコールにトレーシングと分析を追加する

👤 SRE / プラットフォームオブザーバビリティリード ⏱ ~90 min advanced

使うタイミング: MCPを利用する全チームに対して「今日エージェントは何をしたか?」を把握したい場合に使用します。

前提条件
  • OTelバックエンド(Phoenix、Jaeger、Grafana Tempo) — OTLPを受け付ける稼働中のエンドポイント
フロー
  1. OTelエクスポートを有効にする
    ゲートウェイのotel.endpointをPhoenixインスタンスに向けて設定してください。スパンにツール名、レイテンシ、ユーザー、結果を含めてください。✓ コピーしました
    → コール後数秒以内にPhoenixにスパンが表示される
  2. ダッシュボードを作成する
    ダッシュボードを作成:コール数トップ10ツール、バックエンド別p95レイテンシ、ユーザー別エラーレート。✓ コピーしました
    → ダッシュボードにデータが表示される
  3. 異常値のアラートを設定する
    アラート条件を設定:いずれかのバックエンドでエラーレートが5%超、または単一ユーザーが1時間あたり1万コール超。✓ コピーしました
    → ステージング環境でテストアラートが発火する

結果: 組織全体のMCP可視化を実現 — 誰が何を使い、いつ障害が発生したかを把握できます。

注意点
  • リクエストIDをスパン名にするとOTelスパンのカーディナリティが爆発する — スパン名はツール名に限定し、リクエストIDは名前ではなく属性に格納してください
組み合わせ: sentry

組み合わせ

他のMCPと組み合わせて10倍の力を

mcp-context-forge + cloud-run

ContextForgeをCloud Runにデプロイし、GCPでホストされたMCPをその背後に統合する

ContextForgeをIAM認証付きでCloud Runにデプロイしてください。社内の3つのMCP(同じくCloud Run上)をバックエンドとして登録してください。✓ コピーしました
mcp-context-forge + sentry

ゲートウェイのトレースとエラーをSentryに送信し運用の可視化を実現する

ゲートウェイのOTelエクスポート設定で、エラーをSentryにもプッシュしてオンコールの可視性を確保してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
Gateway federation N registered backends インフラレベルの機能。リクエスト単位のツールではありません free
REST → MCP virtualization OpenAPI spec + target URL RESTサービスをMCPにオンボーディングする際に使用 passthrough of target API costs
gRPC → MCP translation gRPC service descriptor 上記と同様。gRPCバックエンド向け passthrough
Prompt registry Jinja2 templates + variables バージョン管理付きでチーム間でプロンプトを共有する際に使用 free
Resource registry URI-based resources 組織の静的/動的コンテンツをエージェントに公開する際に使用 free
Admin API / UI HTTP + web UI 運用・設定タスクに使用 free

コストと制限

運用コスト

APIクォータ
セルフホスト — インフラが許容する範囲で利用可能
呼び出しあたりのトークン
ゲートウェイにより約50ms+最小限のスキーマオーバーヘッドが追加されます
金額
オープンソース(Apache 2.0)。費用はインフラとバックエンドの利用料のみ
ヒント
サーバー10台未満ならSQLiteバックエンドで開始し、マルチノードHAが必要になった段階でRedisフェデレーションに移行してください

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: JWT署名鍵はシークレットマネージャーに保管してください。コンテナイメージの環境変数には絶対に含めないこと
データ送信先: ゲートウェイ → 設定済みの全バックエンド、OTel → トレーシングバックエンド

トラブルシューティング

よくあるエラーと対処法

バックエンドがunhealthyと表示されるが、直接テストすると正常に動作する

ヘルスチェックはHEADまたはGET /を使用しますが、バックエンドがPOSTのみに応答している可能性があります。バックエンドごとにhealth_check.pathを設定してください。

JWT validation failsエラーが発生する

issaudクレームがゲートウェイの設定と一致しているか確認してください。また、JWKSエンドポイントがゲートウェイのPodから到達可能であることも確認してください。

スパイク時にレート制限が厳しすぎる

固定ウィンドウからトークンバケットポリシーに切り替え、burst=平均の5倍に設定してください。

管理UIのログインがループする

OIDCプロバイダーのリダイレクトURIが、ゲートウェイの外部URLの/auth/callbackと一致している必要があります。正確な公開ホスト名で設定されているか確認してください。

代替案

IBM Context Forge 他との比較

代替案代わりに使う場面トレードオフ
Kong / Apigee + custom plugins既にこれらを運用しており、新しいゲートウェイを追加するよりも既存を拡張したい場合プラグイン開発が必要。MCPはファーストクラスサポートではない
mcp-use server namespace個人開発者向けのユースケース — クライアント側で複数のMCPを接続するだけの場合中央集権的なガバナンスなし。個人利用には問題ないが組織向けではない
Cloudflare AI Gatewayセルフホストではなくホスト型SaaSゲートウェイを求めている場合MCP固有の機能が少ない。主にLLMトラフィックに特化

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る