MCP サーバーを登録する

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 サーバーが見つからないをご覧ください。

始める前に

  1. Agent Registry を設定する。
  2. 単一プロジェクトの設定の場合は、Agent Registry が有効になっているガバナンス プロジェクトのプロジェクト ID を取得します。複数のプロジェクトに管理境界を構成した場合は、境界全体の検出と登録に管理プロジェクトの ID を使用するか、単一プロジェクトのオペレーションにメンバー プロジェクト ID を指定します。

  3. このドキュメントの 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 に置き換えます。

デプロイ マニフェストを構成して適用する手順は次のとおりです。

  1. Deployment マニフェストの metadata.labels に registry.gke.io/functional-type: "MCP_SERVER" ラベルを追加します。

  2. Deployment マニフェストの metadata.annotations で、modelcontextprotocol.info/urls アノテーションと modelcontextprotocol.info/capabilities アノテーションを指定して、サーバーのエンドポイント URL と機能の詳細を宣言することで、MCP ツールの自動検出を有効にします。

  3. Pod テンプレートの spec.template.metadata.annotations で、iam.gke.io/spiffe-identity-type: agent-identity アノテーションを使用してエージェント ID を構成し、認証済み通信を有効にします。

  4. 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 サーバーを登録し、ツール定義を同時にアップロードします。

コンソール

  1. Google Cloud コンソールで [Agent Registry] に移動します。

    [Agent Registry] に移動

  2. プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。

  3. [MCP サーバー] タブを選択します。

  4. [MCP サーバーを追加] をクリックします。

  5. [MCP サーバーの詳細] パネルで、表示名、説明、地理的リージョンを入力します。

  6. [ツールの仕様] セクションで、MCP サーバーのエンドポイント URL を入力し、toolspec.json ファイルの内容を貼り付けます。

    必要に応じて、このパネルの [ツールをインポート] をクリックして、URL から MCP ツールをインポートします。このオプションは、MCP サーバーのエンドポイント URL がインターネット経由で一般公開されている場合にのみ機能します。この機能を使用して、プライベートにホストされている MCP サーバーからツールをインポートすることはできません。

  7. [次へ] をクリックします。

    [MCP ツールを選択] パネルに、MCP サーバーのツールの名前と説明のリストが表示されます。

  8. 含める MCP ツールをすべて選択します。リストからツールを名前または値でフィルタできます。

  9. [保存] をクリックします。

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 サーバーが正常に登録されたことを確認するには、レジストリ内のサーバーを一覧表示します。