google-ads-mcp
OfficialGoogle Ads MCP サーバー
このリポジトリには、Google Ads API と連携する MCP サーバーのソースコードが含まれています。
ツール
このサーバーは Google Ads API を使用して、LLM や AI エージェントと連携するためのいくつかの ツール と リソース を提供します。
利用可能なツール
search: Google Ads アカウントに関する情報を取得します。get_resource_metadata: Google Ads API リソースタイプ(例: "campaign")に関するメタデータを取得します。これは、データの構造や、クエリ可能なフィールドを把握するのに役立ちます。list_accessible_customers: 呼び出しを認証しているユーザーが直接アクセスできる顧客の ID を返します。
ツールの設定と名前空間
Google Ads MCP サーバーは、tools_config.yaml を使用して、個々のツールやツールカテゴリ(名前空間)を選択的に有効化/無効化したり、それらの名前空間プレフィックスをカスタマイズしたりできます。
すべてのツールが有効化されたデフォルトの tools_config.yaml がパッケージにバンドルされているため、特別な設定をしなくてもサーバーはすぐに使用できます。インストールをカスタマイズする場合、サーバーは以下の順序で設定を解決します。
GOOGLE_ADS_MCP_TOOLS_CONFIG環境変数を介して設定された明示的なパス。カレントワーキングディレクトリにある
tools_config.yamlファイル。パッケージにバンドルされているデフォルトの
tools_config.yaml。
明示的に要求された設定ファイル(環境変数経由)が見つからない場合、または解決されたファイルが無効な場合、サーバーはエラーを発生させて起動に失敗します。
設定例:
namespaces:
# Option 1: Enable category 'customers' with default prefix -> "customers_list_accessible_customers"
customers: true
# Option 2: Enable category 'search' with a custom prefix -> "query_search"
search: "query"
# Option 3: Fine-grained control over tools in a category
metadata:
enabled: true
prefix: "metadata"
enabled_tools:
- get_resource_metadata: true利用可能なリソース
discovery-document: Google Ads API のディスカバリドキュメントを取得します。Google Ads API の最新バージョンのディスカバリドキュメントを提供します。これには、リソース、メソッド、スキーマを含む API サーフェスが記述されています。ホスト LLM はこのリソースにアクセスして、Google Ads API の構造を理解し、利用可能な機能を発見する必要があります。metrics: Google Ads API でのレポートに利用可能な指標に関する情報を取得します。segments: Google Ads API でのレポートに利用可能なセグメントに関する情報を取得します。release-notes: Google Ads API の最新バージョンのリリースノートを取得します。
Related MCP server: gads
注意事項
MCP サーバーは、接続先のエージェントまたは LLM にデータを公開します。
技術的な問題がある場合は、GitHub 課題トラッカー をご利用ください。
使用状況データの収集を支援するため、API 呼び出しに追加のヘッダーが追加されている場合があります。このデータは製品の改善に使用されます。
セットアップ手順
セットアップには以下の手順が必要です。
Python を構成する。
デベロッパートークンを構成する。
プロジェクトで API を有効にする。
認証情報を構成する。
MCP クライアントを構成する。
Python の構成
pipx をインストール します。
デベロッパートークンの構成
デベロッパートークンの取得 手順に従います。
デベロッパートークンは、本番アカウントをクエリするには、少なくとも Explorer アクセス権 が必要です。新しいトークンは自動的に Explorer アクセス権にアップグレードされる場合があります。そうでない場合は、API センターから申請できます。詳細については、アクセスレベルに関するドキュメント を参照してください。
「デベロッパートークンはテストアカウントでの使用のみが承認されています」 というエラーが表示される場合、トークンがまだ本番アカウントへのアクセス権を持っていません。必要なアクセスレベルをリクエストする方法については、アクセスレベルに関するドキュメント を参照してください。
プロジェクトで API を有効にする
Google Cloud プロジェクトで以下の API を有効にするには、手順に従って ください。
認証情報の構成
オプション 1: FastMCP OAuth プロキシの使用
サーバーは、動的なユーザー認証のために FastMCP の OAuth プロキシ 機能をサポートしています。これは、サーバーをウェブサービスとして実行する場合に便利です。
有効にするには、以下の環境変数を設定します。
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Google Cloud OAuth 2.0 クライアント ID。GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: Google Cloud OAuth 2.0 クライアントシークレット。GOOGLE_ADS_MCP_BASE_URL: (オプション) サーバーにアクセス可能なベース URL(デフォルトはhttp://localhost:8080)。GOOGLE_ADS_MCP_JWT_SIGNING_KEY: (オプション) 複数のサーバーインスタンスまたはデプロイメント間で FastMCP JWT トークンに署名するために使用される秘密鍵。GOOGLE_ADS_MCP_STORAGE_TYPE: (オプション) OAuth 状態のストレージバックエンド(filetree、redis、firestore、またはmemory)。GOOGLE_ADS_MCP_STORAGE_PATH: (オプション)filetree永続ストレージのディレクトリパス。GOOGLE_ADS_MCP_STORAGE_REDIS_URL: (オプション)redis永続ストレージの Redis URL。GOOGLE_ADS_MCP_STORAGE_FIRESTORE_PROJECT: (オプション)firestore永続ストレージの Google Cloud プロジェクト。デフォルトは、アプリケーションデフォルト認証情報から推測されるプロジェクトになります。設定すると、GOOGLE_ADS_MCP_STORAGE_TYPEが設定されていなくてもfirestoreバックエンドが選択されます。GOOGLE_ADS_MCP_STORAGE_FIRESTORE_DATABASE: (オプション)firestore永続ストレージの Firestore データベース名。デフォルトは(default)です。GOOGLE_ADS_MCP_STORAGE_ENCRYPTION_KEY: (オプション) 保存された OAuth トークンの暗号化キー。GOOGLE_ADS_MCP_STORAGE_DISABLE_ENCRYPTION: (オプション)trueに設定すると、トークンの暗号化を無効にします。
redis および firestore バックエンドを使用するには、ストレージライブラリをサーバーと一緒にインストールする必要があります: それぞれ pip install py-key-value-aio[redis] および pip install google-ads-mcp[firestore] を実行します。
これが有効になると、MCP クライアントを介して API に認証できるようになります。
これらの変数が設定されると、サーバーは自動的に streamable-http トランスポート(SSE/HTTP)に切り替わり、stdio は使用されなくなります。
サーバーを別のプロセスとして実行し、MCP クライアントが SSE エンドポイント(例: http://localhost:8080/mcp)に接続するように設定する必要があります。
オプション 2: アプリケーションデフォルト認証情報を使用した認証情報の構成
アプリケーションデフォルト認証情報 (ADC) を構成します。認証情報が、Google Ads アカウントまたはプロパティにアクセスできるユーザーのものであることを確認してください。
認証情報には、Google Ads API スコープが含まれている必要があります:
https://www.googleapis.com/auth/adwordsOAuth クライアントの作成方法については、OAuth クライアントの管理 を参照してください。
役立つ可能性のある gcloud コマンドのサンプルをいくつか示します。
ユーザー認証情報と OAuth デスクトップまたはウェブクライアントを使用して ADC を設定します(クライアント JSON を
YOUR_CLIENT_JSON_FILEにダウンロードした後)。gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILEサービスアカウントの権限借用を使用して ADC を設定します。
gcloud auth application-default login \ --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
gcloud auth application-default コマンドが完了したら、コンソールに出力された次のメッセージ内の PATH_TO_CREDENTIALS_JSON ファイルの場所をコピーします。これは後の手順で必要になります。
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]オプション 3: Google Ads API Python クライアントライブラリを使用した認証情報の構成
手順に従って Google Ads API Python クライアントライブラリをセットアップおよび構成します。
すでにこれを行っていて、動作する google-ads.yaml がある場合は、このファイルを再利用できます。
utils.py ファイルで、get_googleads_client() を load_from_storage() メソッドを使用するように変更します。
MCP クライアントの構成
サーバーを MCP クライアントの構成に追加します。以下は、一般的なクライアントの例です。
Antigravity CLI / Antigravity Code Assist
Antigravity CLI または Antigravity Code Assist をインストールします。
サーバーを構成します。MCP サーバーのセットアップの詳細については、https://antigravity.google/docs/mcp のドキュメントを参照してください。
オプション 1: FastMCP OAuth プロキシの使用(Streamable HTTP)
サーバーを別のプロセスとして実行し、MCP クライアントが SSE エンドポイント(例:
http://localhost:8080/mcp)に接続するように設定できます。これにより、動的なユーザー認証に FastMCP の OAuth プロキシ 機能を使用することもできます。{ "mcpServers": { "google-ads-mcp": { "httpUrl":"http://localhost:8080/mcp", "env": { "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }オプション 2: アプリケーションデフォルト認証情報方式
PATH_TO_CREDENTIALS_JSONを、前の手順でコピーしたパスに置き換えます。また、
envオブジェクトにGOOGLE_CLOUD_PROJECT属性を追加することをお勧めします。次の例のYOUR_PROJECT_IDを、Google Cloud プロジェクトの プロジェクト ID に置き換えます。{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }オプション 3: Python クライアントライブラリ方式
{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp" ], "env": { "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }
ログイン顧客 ID
マネージャーアカウントを介して顧客アカウントにアクセスする場合は、設定ファイルにマネージャーアカウントの顧客 ID を追加する必要があります。
詳細については、こちら を参照してください。
最終的なファイルは次のようになります:
{
"mcpServers": {
"google-ads-mcp": {
"command": "pipx",
"args": [
"run",
"--spec",
"git+https://github.com/googleads/google-ads-mcp.git",
"google-ads-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
"GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID",
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "YOUR_MANAGER_CUSTOMER_ID"
}
}
}
}その他の MCP クライアント(Claude Code、Cursor、VS Code など)
mcpServers ブロックの形式は、すべての MCP クライアントで同じです。上記の構成を、お使いのクライアントの適切な設定ファイルに追加してください(例: Claude Code の場合は ~/.claude/settings.json、Cursor の場合は .cursor/mcp.json、Copilot を使用する VS Code の場合は .vscode/mcp.json)。
Google Cloud Platform へのデプロイ
この MCP サーバーをローカルでホストする代わりに、Google Cloud Run または他のクラウドベースのインフラストラクチャでホストすることもできます。これは、サーバーを複数のエージェント間で共有したり、ウェブサービスとして実行したりする場合に便利です。
これは、OAuth プロキシ(上記のオプション #1)を介した OAuth クライアント ID とクライアントシークレットのペアによる認証のみをサポートすることに注意してください。
前提条件
Google Cloud プロジェクト。
gcloudCLI がインストールされ、認証され、アクティブなプロジェクトが設定されていること。gcloud config set project YOUR_PROJECT_ID
ステップ 1: Docker イメージのビルドとプッシュ
Cloud Build を使用すると、Docker をローカルにインストールしなくても、イメージをビルドして Artifact Registry にプッシュできます。
Artifact Registry にリポジトリを作成します:
gcloud artifacts repositories create mcp-servers --repository-format=docker --location=us-central1イメージをビルドして送信します:
gcloud builds submit --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest .YOUR_PROJECT_IDを Google Cloud プロジェクト ID に置き換えます。
ステップ 2: Google Cloud Run へのデプロイ
必要な環境変数を必ず設定してください:
GOOGLE_PROJECT_ID: Google Cloud プロジェクト ID。GOOGLE_ADS_DEVELOPER_TOKEN: MCP サーバーが使用するデベロッパートークン(上記参照)。GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: MCP サーバーが使用する OAuth クライアント ID。GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: MCP サーバーが使用する OAuth クライアントシークレット。GOOGLE_ADS_MCP_BASE_URL: MCP サーバーにアクセス可能なベース URL。初回デプロイ後に Google Cloud Run によって自動的に割り当てられます。デプロイ後に環境変数を更新できます。GOOGLE_ADS_MCP_JWT_SIGNING_KEY: (本番環境推奨)Cloud Run インスタンス間で永続化する JWT 署名キー。GOOGLE_ADS_MCP_STORAGE_TYPE: (本番環境推奨)インスタンス間で OAuth トークンを永続化するストレージバックエンド。firestoreに設定してアプリケーションデフォルト認証情報で Firestore を使用します(VPC コネクタは不要)。redisに設定し、GOOGLE_ADS_MCP_STORAGE_REDIS_URLと併用することもできます。firestoreを使用するには、3 つの条件を満たす必要があります。1. 追加パッケージをインストールしてイメージをビルドする(Dockerfile をuv pip install --system .[firestore]に変更)。2. プロジェクトに Firestore データベースを作成する(自動プロビジョニングはされません)。3. Cloud Run サービスアカウントにroles/datastore.userロールを付与する。なお、エントリは自動的に期限切れになりません。ストレージは読み取り時に期限切れエントリをフィルタリングしますが、削除は行わず、expires_atは文字列として書き込まれるため、Firestore の TTL ポリシーでも収集できません。長期運用のデプロイでは、定期的なクリーンアップジョブを計画してください。Redis はエントリを自動的に期限切れにします。FASTMCP_HOST:0.0.0.0に設定すると、FastMCP がすべての IP アドレスからの接続を受け入れます。
gcloud run deploy google-ads-mcp \
--image us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_PROJECT_ID=YOUR_PROJECT_ID,GOOGLE_ADS_DEVELOPER_TOKEN=YOUR_DEVELOPER_TOKEN,GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=YOUR_CLIENT_ID,GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=YOUR_CLIENT_SECRET,GOOGLE_ADS_MCP_BASE_URL=YOUR_BASE_URL,GOOGLE_ADS_MCP_JWT_SIGNING_KEY=YOUR_JWT_SIGNING_KEY,GOOGLE_ADS_MCP_STORAGE_TYPE=firestore,FASTMCP_HOST=0.0.0.0"ステップ 3: MCP クライアントを構成する
デプロイ後、https://antigravity.google/docs/mcp のドキュメントを参照して MCP クライアント構成を更新し、Cloud Run URL を使用します。
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://your-cloud-run-url.a.run.app/mcp"
}
}
}試してみる
MCP クライアントを起動します。利用可能なサーバー一覧に google-ads-mcp が表示されるはずです。
以下のサンプルプロンプトから始めてみてください:
サーバーでできることを尋ねる:
what can the ads-mcp server do?顧客について尋ねる:
what customers do I have access to?キャンペーンについて尋ねる:
How many active campaigns do I have?How is my campaign performance this week?
顧客 ID に関する注意
エージェントは、ほとんどのプロンプトで顧客 ID を必要とします。複数の顧客間を行き来する場合は、プロンプトに顧客 ID を含めると簡単です。
How many active campaigns do I have for customer id 1234567890貢献
貢献大歓迎です!貢献ガイド をご覧ください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceA read-write MCP server for managing Google Ads campaigns, ad groups, keywords, and ads via natural language.122The Unlicense
- FlicenseNot gradedqualityDmaintenanceA Google Ads API MCP server that enables searching and listing accessible customers via natural language queries.2
- AlicenseNot gradedqualityCmaintenanceMCP server for managing Google Ads campaigns through the official Google Ads API, covering accounts, campaigns, budgets, keywords, search terms, and keyword ideas. It provides tools for both reading and mutating live ads data, such as pausing campaigns, updating budgets, and adding keywords.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Google Ads API that enables LLMs to search and query Google Ads accounts, retrieve resource metadata, and generate keyword ideas.Apache 2.0
Related MCP Connectors
Google Ads, Meta Ads & GA4 MCP server - 250+ tools for campaigns, creatives, audiences & reports.
MCP server for Google search results via SERP API
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/googleads/google-ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server