Agent Registry を使用すると、Model Context Protocol(MCP)サーバーを自動または手動で登録できます。これにより、開発者とオーケストレーター エージェントは、AI エコシステム全体で標準化されたツールを検出して呼び出すことができます。
デフォルトでは、Google Kubernetes Engine(GKE)または Cloud Run にデプロイされたカスタム MCP サーバーの自動登録により、Agent Registry が有効になっているガバナンス プロジェクト内にデプロイされたリソースが検出されます。複数の Google Cloud プロジェクトで MCP サーバーを自動的に検出するには、管理境界を構成します。外部でホストされているカスタム MCP サーバー、または管理境界のない別のGoogle Cloud プロジェクトにデプロイされているカスタム MCP サーバーを登録するには、外部 MCP サーバーを登録するをご覧ください。
MCP サーバーの自動検出
Google と Google Cloud リモート MCP サーバーは、自動的に登録され、Agent Registry に取り込まれます。
プロジェクトで MCP をサポートする Google Cloud API(Compute Engine API など)を有効にすると、対応する MCP サーバーとそのツールがすぐに登録され、Agent Registry で検出できるようになります。これらのサーバーのツール仕様を手動で構成またはアップロードする必要はありません。
場所と条件
Agent Registry が Google または Google Cloudリモート MCP サーバーを自動的に登録すると、McpServer リソースは global ロケーションにのみ作成され、us-central1 などの個々のリージョンには作成されません。サービスがリージョン エンドポイント(REP)を提供している場合、Agent Registry は、その単一の global McpServer リソースの interfaces フィールドにそれらのリージョン URL を一覧表示します。
自動的に登録されたリソースは global にのみ存在するため、サーバーにクエリを実行する場合や、Identity-Aware Proxy(IAP)アクセス ポリシーを構成する場合は、次の条件に注意してください。
- 自動的に登録されたサーバーに
globalを使用する:--location=globalを使用して Agent Registry でサーバーをクエリする場合、または--region=globalを使用して IAP ポリシーを適用する場合は、globalのロケーションを指定します。us-central1などのリージョンを指定すると、デフォルトではリージョンMcpServerリソースが存在しないため、コマンドはNOT_FOUNDエラーを返します。 - データ所在地のためにリージョンに手動で登録する: レジストリ メタデータを特定のリージョンに保持する必要がある場合は、そのリージョンに MCP サーバーとそのリージョン エンドポイント URL を手動で登録し、同じリージョンに IAP ポリシーを適用します。
詳細については、リージョン ロケーションとグローバル ロケーションにまたがるガバナンス スコープとリージョン ロケーションでリモート MCP サーバーが見つからないをご覧ください。
始める前に
- Agent Registry を設定する。
単一プロジェクトの設定の場合は、Agent Registry が有効になっているガバナンス プロジェクトのプロジェクト ID を取得します。複数のプロジェクトに管理境界を構成した場合は、境界全体の検出と登録に管理プロジェクトの ID を使用するか、単一プロジェクトのオペレーションにメンバー プロジェクト ID を指定します。
このドキュメントの Google Cloud CLI コマンドを使用するには、gcloud CLI 環境を設定します。
必要なロール
Agent Registry に MCP サーバーを登録するために必要な権限を取得するには、Agent Registry が有効になっているガバナンス プロジェクトに対する Agent Registry API 編集者 (roles/agentregistry.editor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
GKE から MCP サーバーを登録する
GKE にデプロイされたカスタム MCP サーバーを登録するには、必要な Kubernetes ラベルとアノテーションをデプロイ マニフェストに追加します。次の例は、自動登録用に構成された GKE MCP サーバーのデプロイ マニフェストを示しています。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-mcp-server
labels:
# GKE takes this label and registers the deployment as an MCP server
registry.gke.io/functional-type: "MCP_SERVER"
annotations:
# Endpoint URLs where the GKE controller can access this MCP server
modelcontextprotocol.info/urls: |
- https://my-mcp-server.default.svc.cluster.local/mcp
# Defines structural capabilities for the MCP server card
modelcontextprotocol.info/capabilities: |
card:
endpoint: "/mcp"
protocol: "HTTP"
spec:
selector:
matchLabels:
app: my-mcp-server
template:
metadata:
labels:
app: my-mcp-server
annotations:
# Agent Identity annotation for identity and access management
iam.gke.io/spiffe-identity-type: agent-identity
spec:
containers:
- name: server
image: gcr.io/PROJECT_ID/my-mcp-server:1.0.0
PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。
デプロイ マニフェストを構成して適用する手順は次のとおりです。
Deploymentマニフェストのmetadata.labelsにregistry.gke.io/functional-type: "MCP_SERVER"ラベルを追加します。Deploymentマニフェストのmetadata.annotationsで、modelcontextprotocol.info/urlsアノテーションとmodelcontextprotocol.info/capabilitiesアノテーションを指定して、サーバーのエンドポイント URL と機能の詳細を宣言することで、MCP ツールの自動検出を有効にします。Pod テンプレートの
spec.template.metadata.annotationsで、iam.gke.io/spiffe-identity-type: agent-identityアノテーションを使用してエージェント ID を構成し、認証済み通信を有効にします。Deployment マニフェストをクラスタに適用します。
デプロイを適用すると、GKE はサーバーからツール仕様の取得を自動的に試み、サーバーとそのツールを Agent Registry の読み取り専用の
McpServer検出リソースに直接登録します。Agent Registry は、デプロイ名を MCP サーバーの表示名として使用します。
Cloud Run から MCP サーバーを登録する
カスタム MCP サーバーを Cloud Run サービスとしてデプロイするときに、--functional-type=mcp-server フラグを指定すると、カスタム MCP サーバーを自動的に登録できます。--functional-type=mcp-server フラグは、Cloud Run サービスを標準のコンテナ化されたワークロードではなく MCP サーバーとして識別し、サーバーを Agent Registry に登録するよう Cloud Run に指示します。登録時に、Cloud Run はサーバーの名前と MCP_SERVER タイプをレジストリに自動的に追加します。
--identity-type フラグを使用して ID タイプを指定することもできます。たとえば、agent-identity または service-account ID を指定します。指定しない場合、ワークロードはデフォルトでサービス アカウント ID を使用します。
新しい Cloud Run サービスまたは既存の Cloud Run サービスで自動登録を構成するには、Cloud Run 用に Gemini Enterprise Agent Platform 機能を構成するをご覧ください。Cloud Run で MCP サーバーをデプロイして保護するには、Cloud Run で MCP サーバーをホストすると MCP サーバーを認証するをご覧ください。
外部 MCP サーバーを登録する
外部サーバーまたはカスタム API が提供するツールを管理して再利用するには、MCP サーバーを手動で登録する必要があります。
MCP サーバーを手動で登録すると、Agent Registry はエンドポイントを登録します。ただし、サーバーを自動的に検査して、使用可能なツールを判断することはありません。ユーザーが MCP サーバーで使用可能なツールを正確に検出できるようにするには、登録時に toolspec.json ファイルをアップロードしてツールの仕様を指定する必要があります。
ツールの仕様を準備する
サーバーが提供するツールを記述した toolspec.json ファイルを作成します。この仕様ファイルの最大ファイルサイズは 10 KB です。
JSON ファイルは、ツールスキーマの MCP 仕様に準拠している必要があります。次に例を示します。
{
"tools": [
{
"name": "get_customer_info",
"description": "Retrieves customer details from the database.",
"annotations": {
"title": "Get Customer Info",
"readOnlyHint": true,
"idempotentHint": true
}
},
{
"name": "create_support_ticket",
"description": "Creates a new support ticket in the issue tracking system.",
"annotations": {
"title": "Create Support Ticket",
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
}
}
]
}
構造要件の詳細については、JSON スキーマと REST リファレンスをご覧ください。
サーバーとツールを登録する
MCP サーバーを登録し、ツール定義を同時にアップロードします。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[MCP サーバー] タブを選択します。
[MCP サーバーを追加] をクリックします。
[MCP サーバーの詳細] パネルで、表示名、説明、地理的リージョンを入力します。
[ツールの仕様] セクションで、MCP サーバーのエンドポイント URL を入力し、
toolspec.jsonファイルの内容を貼り付けます。必要に応じて、このパネルの [ツールをインポート] をクリックして、URL から MCP ツールをインポートします。このオプションは、MCP サーバーのエンドポイント URL がインターネット経由で一般公開されている場合にのみ機能します。この機能を使用して、プライベートにホストされている MCP サーバーからツールをインポートすることはできません。
[次へ] をクリックします。
[MCP ツールを選択] パネルに、MCP サーバーのツールの名前と説明のリストが表示されます。
含める MCP ツールをすべて選択します。リストからツールを名前または値でフィルタできます。
[保存] をクリックします。
gcloud
使用する仕様フラグによって、コンポーネントが属するリソース コレクションが決まります。フラグとリソース コレクションの完全なマッピングについては、[サービス リソースと検出リソース](/agent-registry/data-model#service-resources)をご覧ください。
gcloud agent-registry services create コマンドを使用して、ツール仕様で MCP サーバーを登録します。
gcloud agent-registry services create SERVER_NAME \
--project=PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--mcp-server-spec-type=tool-spec \
--mcp-server-spec-content=toolspec.json \
--interfaces=url=SERVER_URL,protocolBinding=PROTOCOL
次のように置き換えます。
SERVER_NAME: MCP サーバーに付ける名前(例:custom-mcp-server)。名前は 4 ~ 63 文字で、英小文字、数字、ハイフンのみを使用できます。PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。DISPLAY_NAME: サーバーに付ける、人が読める形式の名前(例:Custom MCP Server)。SERVER_URL: MCP サーバーのエンドポイント URL(例:https://api.example.com/mcp)。PROTOCOL: エンドポイントのプロトコル バインディング。有効な値はjsonrpc、http-json、またはgrpcです。MCP サーバーの場合、この値は通常jsonrpcです。
Terraform
構成する仕様ブロックによって、コンポーネントが属するリソース コレクションが決まります。仕様とリソース コレクションの完全なマッピングについては、[サービス リソースと検出リソース](/agent-registry/data-model#service-resources)をご覧ください。
MCP サーバーを登録してそのツールを指定するには、mcp_server_spec ブロックを使用して google_agent_registry_service リソースを構成します。
resource "google_agent_registry_service" "mcp_server" {
location = "REGION"
service_id = "SERVER_NAME"
display_name = "DISPLAY_NAME"
description = "An external MCP server registered using Terraform."
interfaces {
url = "SERVER_URL"
protocol_binding = "JSONRPC"
}
mcp_server_spec {
type = "TOOL_SPEC"
content = file("toolspec.json")
}
}
output "server_resource_name" {
description = "The generated read-only McpServer resource name."
value = google_agent_registry_service.mcp_server.registry_resource
}
次のように置き換えます。
REGION: レジストリ リージョン。SERVER_NAME: MCP サーバーに付ける名前(例:custom-mcp-server)。名前は 4 ~ 63 文字で、英小文字、数字、ハイフンのみを使用できます。DISPLAY_NAME: サーバーに付ける、人が読める形式の名前(例:Custom MCP Server)。SERVER_URL: MCP サーバーのエンドポイント URL(例:https://api.example.com/mcp)。
登録を確認する
新しく登録した MCP サーバーの詳細を一覧表示、フィルタリング、表示します。MCP サーバーが正常に登録されたことを確認するには、レジストリ内のサーバーを一覧表示します。