OCI Data ScienceでのMCPサーバーのホスティング (2025/05/30)
OCI Data ScienceでのMCPサーバーのホスティング (2025/05/30)
https://blogs.oracle.com/ai-and-datascience/post/hosting-mcp-servers-on-oci-data-science
投稿者: Nipun Garg | Principal Member of Technical Staff
Sudhi Murthy | Software Development Senior Manager
はじめに
Oracle Cloud Infrastructure(OCI)Data Scienceは、ローコードでモジュール化された機能でAIモデルの使いやすさを変革し、キュレーションされたタスク固有のUIを介してユーザーが事前構築済みのモデルと対話できるようにします。これらはモデル使用をシームレスにしますが、プロンプト・リクエスト中にクライアントとサーバー間でコンテキスト・データがどのように渡されるかを改善する機会が残ります。ここでは、モデル・コンテキスト・プロトコル(MCP)が重要な役割を果たします。
MCPは、アプリケーションがLLMにコンテキストを提供する方法を標準化するオープン・プロトコルです。これは、AIモデルをさまざまなデータ・ソースやツールに接続するための標準化された方法です。LLMは、多くの場合、データやツールと統合する必要があり、MCPは次のものを提供します。
- LLMが直接接続できる事前構築済の統合のリストが増えています
- LLMプロバイダとベンダーを切り替える柔軟性
- お客様のインフラストラクチャ内でデータを保護するためのベストプラクティス
MCPは、そのコアで、ホストアプリケーションが複数のサーバーに接続できるクライアントサーバーアーキテクチャーに従い、各MCPサーバーが3つの主な機能を持つクライアント通信の均一性を強制します。
- リソース: クライアントが読み取ることができるファイルのようなデータ(APIレスポンスやファイルの内容など)
- ツール:LLMで呼び出すことができる機能(ユーザー承認あり)
- プロンプト: ユーザーが特定のタスクを実行するのに役立つ、事前に記述されたテンプレート。
クライアントは次のようになります。
- 指定されたサーバーに接続します
- 使用可能なツールのリスト
- リストからツール実行を呼び出します。
MCPの詳細については、MCPの紹介をご覧ください。
モデル・デプロイメントでのMCPサーバー・ストリーム可能なHTTPの有効化
OCIでは、モデル・デプロイメントは、機械学習モデルをデプロイし、HTTPエンドポイントとしてホストMCPサーバーに拡張するために使用されるデータ・サイエンス・サービスの管理対象リソースです。OCI Data Scienceでのホスティングにより、AIアプリケーションとエージェントはツールとデータに安全にアクセスできます。
モデル・デプロイメントのコンテキストでは、MCPをモデル・サービス・パイプラインのミドルウェア・レイヤーとしてホストできます。クライアントは、MCPクライアントでラップされたHTTP推論エンドポイントを起動できます。このクライアントは、セッション識別子をネゴシエートし、共有メタデータを伝播し、必要に応じてサーバー側キャッシュ(OCIキャッシュ、Redis、オブジェクト・ストア、ベクトルDBなど)から履歴コンテキストをフェッチします。モデルサーバー側では、MLMまたはファインチューニングモデルにプロンプトを転送する前に、MCPハンドラは前処理中にコンテキストを解析して適用します。後処理では、出力の書式設定やフィルタリングにコンテキスト(ユーザー・プリファレンスなど)を利用することもできます。
MCPをモデル・デプロイメントに組み込み、OCIは次のことを実行できます。
- モデルとのステートフルで動的な対話を可能にします。
- プロンプトの関連性と出力の一貫性を向上させます。
- コンテキスト対応要約、コンテキスト・コード生成、セッション・ベースの推論などのエンタープライズ・ユース・ケースをサポートします。
次の図は、MCPクライアントが、Streamable HTTPを使用してモデル・デプロイメントでホストされているMCPサーバーに接続し、ステートレス・エンドポイントである/MCP/エンドポイントを活用する方法を示しています。
BYOCを使用すると、データ・サイエンス・モデルのデプロイでホスティングするために任意のMCPサーバーを使用できます。
OCI Data Scienceへのオープン・ソースのMCPサーバーの適応
ステートレス・モードでStreamable HTTPプロトコルを使用してOCI Data Science Model Deploymentでホストされるオープン・ソースのMCPサーバーを作成する際に、従う必要があるステップを見てみましょう。mcp redisサーバを例にとり、次の機能を追加します。
1. カスタム・ルートを追加してヘルス・チェックを有効にします。これは、モデル・デプロイ・サービスによってポーリングされ、セッション・マネージャをMCPサーバーに追加します。
# Initialize FastMCP server
mcp = FastMCP(
"Redis MCP Server",
dependencies=["redis", "dotenv", "numpy"]
)
mcp._session_manager = StreamableHTTPSessionManager(
app=mcp._mcp_server,
event_store=None,
json_response=True,
stateless=True,
)
def handle_health(request):
return JSONResponse({"status": "success"})
async def handle_streamable_http(
scope: Scope, receive: Receive, send: Send
) -> None:
await mcp._session_manager.handle_request(scope, receive, send)
mcp._custom_starlette_routes=[
Mount("/mcp", app=handle_streamable_http),
Route('/health', endpoint=handle_health),
]
2. 次のDockerfileを使用してアプリケーションをコンテナ化します。
FROM python:3.13-slim
# Set working directory
WORKDIR /app
# Copy local code to the container image.
COPY . /app
# Install pip dependencies
RUN pip install --upgrade pip \
&& pip install .
# Run the MCP Server
CMD ["python", "main.py"]
3. このdockerイメージをOCIに持ち込むには、参照としてドキュメントを使用します。1つのイメージがプッシュされ、OCI Data Scienceでモデル・デプロイメントを作成する準備が整いました。
推論コールをmakeおよび作成するための参照スクリプトは、サンプル・リポジトリで共有されます。
まとめ
MCPサーバーの採用が増えていることを考えると、標準で安全な本番グレードのセットアップでそれらをホストするための要件がすぐに必要になります。このブログでは、OCI Data Science上の任意のオープンソースMCPサーバーを、ロギング、モニタリング、ストレージ、ネットワーキングおよびその他の多くのコア・インフラストラクチャ要件にネイティブ統合して簡単に適応する方法について考察しました。
Learn more about Oracle GenAI.
コメント
コメントを投稿