MCP サーバーを登録する

Agent Registry は、Model Context Protocol(MCP)サーバーのエンドポイントと、それらが公開する特定のツールを登録して管理することで、一元化されたカタログとして機能します。

このドキュメントでは、MCP サーバーを登録する方法と、Agent Registry 内でツール仕様を管理する方法について説明します。

Google Cloud MCP サーバーの自動検出

公式の Google MCP サーバーとリモート MCP サーバーは、自動的に登録され、Agent Registry に取り込まれます。 Google Cloud 利用可能な Google と Google Cloud リモート MCP サーバーは、Google Cloud MCP サーバーのドキュメントのサポートされているプロダクトに記載されています。

プロジェクトでサポートされている Google Cloud API(Compute Engine API など)を有効にすると、対応する MCP サーバーとそのツールがすぐに登録され、Agent Registry で検出できるようになります。これらのサーバーのツール仕様を手動で構成またはアップロードする必要はありません。

Google が管理する MCP サーバーのスコープとバインディング

Google マネージド リモート MCP サーバーは、プロジェクトの global ロケーションに自動的に登録されます。これらの組み込み Google サーバーはグローバルに存在するため、--region=global フラグを指定して、グローバル スコープで Identity and Access Management(IAM)バインディングを適用する必要があります。これらのグローバル リモート MCP サーバーでは、--region=us-central1 などのリージョン IAM バインディングはサポートされておらず、NOT_FOUND エラーが返されます。

GKE から MCP サーバーを登録する

Google Kubernetes Engine(GKE)にデプロイされたカスタム MCP サーバーの自動登録を構成するには、GKE デプロイに registry.gke.io/functional-type: "MCP_SERVER" ラベルを追加します。

Agent Registry でイントロスペクション スキャンを実行して MCP ツールを検出するには、デプロイにサーバーのエンドポイント URL とケーパビリティの詳細を宣言するアノテーションも含まれている必要があります。

次の例は、これらの構成を使用する 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 to the registry
    registry.gke.io/functional-type: "MCP_SERVER"
  annotations:
    # A list of 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
    spec:
      containers:
      - name: server
        image: gcr.io/my-project/my-mcp-server:1.0.0

デプロイを適用すると、GKE はサーバーからツール仕様を自動的に取得し、ツールを Agent Registry データモデルに直接登録しようとします。

Cloud Run から MCP サーバーを登録する

Cloud Run にデプロイされたカスタム MCP サーバーの自動登録を構成するには、デプロイ時に --functional-type=mcp-server フラグを指定します。

--functional-type=mcp-server を使用して Cloud Run サービスをデプロイすると、Agent Registry の MCP サーバー カタログに登録されます。登録時に、Cloud Run はサーバー名とタイプ(MCP_SERVER)を登録します。

--identity-type フラグを使用して、ID タイプを指定することもできます。たとえば、agent-identity または service-account の ID を指定します。指定しない場合、ワークロードはデフォルトでサービス アカウント ID を使用します。

Cloud Run に MCP サーバー サービスをデプロイする方法については、Cloud Run 用に Agent Platform の機能を構成するをご覧ください。

詳細については、Cloud Run で MCP サーバーをホストするMCP サーバーを認証するをご覧ください。

自動登録では、同じGoogle Cloud プロジェクト内にデプロイされたリソースのみが検出されます。

外部 MCP サーバーを登録する

外部サーバーまたはカスタム API によって提供されるツールを管理して再利用するには、MCP サーバーを明示的に登録する必要があります。

MCP サーバーを手動で登録すると、Agent Registry がエンドポイントを登録します。ただし、利用可能なツールを特定するためにサーバーを自動的に内省することはありません。ユーザーが MCP サーバーで利用可能なツールを正確に検出できるようにするには、登録時に toolspec.json ファイルをアップロードしてツール仕様を指定する必要があります。

始める前に

始める前に、Agent Registry を設定します。これらのタスクを実行するには、プロジェクト ID が必要です。

このドキュメントの gcloud CLI コマンドを使用するには、Google Cloud CLI 環境を設定していることを確認してください。

必要なロール

エージェント レジストリに MCP サーバーを手動で登録するために必要な権限を取得するには、プロジェクトに対する Agent Registry API 編集者 roles/agentregistry.editor)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

ツールの仕様を準備する

サーバーが提供するツールを概説する 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

使用する仕様フラグによって、サービスが属するリソース コレクションが決まります。フラグとリソース コレクションの完全なマッピングについては、API リソースをご覧ください。

ツール仕様を使用して 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)。
  • PROJECT_ID: プロジェクト ID。
  • REGION: レジストリ リージョン。
  • DISPLAY_NAME: サーバーに付ける人間が読める名前(例: Custom MCP Server)。
  • SERVER_URL: MCP サーバーのエンドポイント URL(https://api.example.com/mcp など)。
  • PROTOCOL: エンドポイントのプロトコル バインディング。有効な値は jsonrpchttp-jsongrpc です。MCP サーバーの場合、この値は通常 jsonrpc です。

Terraform

構成する仕様ブロック(mcp_server_spec など)によって、サービスが属するリソース コレクションが決まります。仕様とリソース コレクションの完全なマッピングについては、API リソースをご覧ください。

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 Server resource name."
  value       = google_agent_registry_service.mcp_server.registry_resource
}

次のように置き換えます。

  • REGION: レジストリ リージョン。
  • SERVER_NAME: MCP サーバーに付ける名前(例: custom-mcp-server)。
  • DISPLAY_NAME: サーバーに付ける人間が読める名前(例: Custom MCP Server)。
  • SERVER_URL: MCP サーバーのエンドポイント URL(https://api.example.com/mcp など)。

登録を確認する

新しく登録した MCP サーバーの詳細を一覧表示、フィルタ、表示します。MCP サーバーが正常に登録されたことを確認するには、レジストリ内のサーバーを一覧表示します。