mcpField
M
MCP Server for Google Tag Manager

MCP Server for Google Tag Manager

ローカル
stape.ioビジネス・マーケティング2401 週間前に更新

MCP Server for Google Tag Manager について

MCP Server for Google Tag Managerは、20個のツールでGoogle Tag Manager APIの操作を提供します。Google OAuth対応のホスト型サーバーと、独自の認証情報を使うローカルCLIを選べます。

主な機能

  1. 01Google Tag Manager用ツールを20個提供
  2. 02Google OAuth対応のホスト型エンドポイント
  3. 03ローカルのstdio CLIサーバー
  4. 04サービスアカウントまたはトークン認証
  5. 05各サーバーモードで共通のツールロジック

活用シーン

  1. 01MCPクライアントからGoogle Tag Managerを確認・管理
  2. 02ローカル認証情報の設定なしでホスト型OAuthを利用
  3. 03独自のGoogle認証情報でローカル実行

MCP 対応

ホスト型のHTTP MCPエンドポイントとローカルのstdio MCPサーバーを提供します。クライアントはOAuthでホスト型サーバーに接続するか、指定した認証情報でCLIを起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"google-tag-manager": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
起動コマンドnpx -y mcp-remote

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-remote

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Google Tag Manager 用 MCP サーバー

Trust Score

MCP 経由で Google Tag Manager API に接続するインターフェースです。Google OAuth を組み込んだホスト型サーバーと、ユーザー自身の認証情報で実行するローカル CLI の 2 種類があります。

目次

リポジトリの構成

1 つのアプリと、公開されている 2 つのパッケージで構成される npm ワークスペースです。

パスパッケージ内容
apps/worker(private)gtm-mcp.stape.io で稼働するホスト型 Cloudflare Worker です。Google OAuth、承認フロー、公開ページ、セッションの削除を担います。
packages/cligoogle-tag-manager-mcp-servernpm パッケージです。ユーザーが提供する認証情報で認証する、stdio 経由のローカル MCP サーバーです。
packages/coregoogle-tag-manager-mcp-coreGTM のすべてのツールとスキーマを含み、認証情報の取得方法には依存しません。

ツールは、特定のセッションを介するのではなく、GtmAuthProvider(getAccessToken(): Promise<string>)を通じて Google にアクセスします。そのため、同じツールセットを両方のサーバーで利用でき、独自の認証を使うプライベートなサーバーでも利用できます。詳しくはコアパッケージの READMEをご覧ください。

インストール

このサーバーには、ホスト型サーバーとローカル CLI の 2 種類があります。どちらも同じ 20 個の GTM ツールを提供します。違いは、Google 認証をどちらが処理するかです。

ホスト型サーバーローカル CLI
認証ブラウザーで Google OAuth を実行し、サーバーが処理しますサービスアカウントキー、リフレッシュトークン、またはアクセストークンをユーザーが用意します
データgtm-mcp.stape.io を経由しますユーザーのマシンから外部に送信されることはありません
セットアップ不要です環境変数を 1 つ設定します

ツールを使うだけでなく、未リリースの変更をテストするコントリビューターの方は、以下の手順をすべて省略し、代わりに変更をローカルでテストするをご覧ください。

以下から使用するクライアントを選んでください。ホスト型サーバーは、https://gtm-mcp.stape.io/mcp にあるリモートの HTTP ベース MCP エンドポイントです。Google OAuth フローをクライアント自身で完了できるクライアント(Claude Desktop、Claude Code、VS Code、Copilot CLI、Cursor、ChatGPT)は、この URL に直接接続し、初回接続時に Google でサインインします。それ以外のクライアント(Antigravity、stdio 専用クライアント)は、リモート HTTP MCP サーバーへの小規模なブリッジである mcp-remote を介して接続します。設定を変更した後は、クライアントを再起動してください。

Claude Desktop
⬇️ クリックして展開 ⬇️

ホスト型サーバー、カスタムコネクター(推奨)。

  1. Customize → Connectors → Add custom connector に移動します。Team プランと Enterprise プランでは、代わりにオーナーが Organization settings → Connectors → Add → Custom から追加し、各メンバーが Customize → Connectors でそのコネクターの Connect を選択して、自分の Google アカウントでサインインします。
  2. 名前(例:gtm-mcp-server)と URL https://gtm-mcp.stape.io/mcp を設定します。認証方法を尋ねられた場合は Sign in now を選択します。OAuth クライアントについて尋ねられた場合は Register automatically を選択します(サーバーは Use Claude's published identity に対応していません)。
  3. Add、次に Connect を選択し、Google でサインインします。

このコネクターは claude.ai でも動作します。

ホスト型サーバー、mcp-remote。 claude_desktop_config.json(Settings → Developer → Edit Config)から設定する場合:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

ローカル CLI — OAuth フローはなく、他者のサーバーを経由してデータを送信することもありません。サービスアカウントキーまたはリフレッシュトークンを指定します。Settings → Developer → Edit Config を開き、次を追加します:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}

すべての認証情報のオプションについては、CLI README を参照してください。

Claude Code
⬇️ クリックして展開 ⬇️

Claude Code は OAuth ハンドシェイクを含む HTTP に直接対応しているため、ホスト型サーバーにブリッジは不要です。

ホスト型サーバー:

claude mcp add --transport http gtm-mcp-server https://gtm-mcp.stape.io/mcp

その後、Claude Code 内で /mcp を実行するか、シェルから claude mcp login gtm-mcp-server を実行して、Google でサインインします。claude mcp list で接続状況を確認できます。

ローカル CLI:

claude mcp add gtm-mcp-server -e GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' -- npx -y google-tag-manager-mcp-server

どちらもサーバーを現在のプロジェクトのみに追加します。すべてのプロジェクトで使用するには --scope user を追加します。--scope project はプロジェクトの .mcp.json に書き込みます。秘密情報が含まれず、チームメイトがそれぞれ自分の Google アカウントでサインインするホスト型サーバーには適していますが、認証情報がエントリーに含まれるローカル CLI には適していません。

VS Code
⬇️ クリックして展開 ⬇️

VS Code の MCP クライアントは HTTP サーバーとその OAuth フローにネイティブで対応しているため、mcp-remote は不要です。これを .vscode/mcp.json(このワークスペース)または MCP: Open User Configuration で開くファイル(すべてのワークスペース)に追加します:

ホスト型サーバー:

{
  "servers": {
    "gtm-mcp-server": {
      "type": "http",
      "url": "https://gtm-mcp.stape.io/mcp"
    }
  }
}

サーバーの初回起動時に、VS Code から Google へのサインインを求められます。

ローカル CLI:

{
  "servers": {
    "gtm-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
GitHub Copilot
⬇️ クリックして展開 ⬇️

VS Code の GitHub Copilot Chat は VS Code 独自の MCP クライアントを使用するため、同じ MCP 設定を読み込みます。上記の VS Code を参照してください。別途設定する必要はありません。

Copilot CLI
⬇️ クリックして展開 ⬇️

ホスト型サーバー — Copilot CLI はリモート HTTP サーバーの OAuth をネイティブに完了します:

copilot mcp add --transport http gtm-mcp-server https://gtm-mcp.stape.io/mcp

Copilot CLI から求められたら、Google でサインインします。

ローカル CLI:

copilot mcp add --env GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' gtm-mcp-server -- npx -y google-tag-manager-mcp-server

どちらもサーバーのエントリーを ~/.copilot/mcp-config.json に書き込みます。copilot mcp get gtm-mcp-server を実行して確認します。インタラクティブセッション内では、/mcp add をフォームから実行して同じ操作ができます。詳しくはGitHub のドキュメントを参照してください。

Cursor
⬇️ クリックして展開 ⬇️

Cursor は OAuth フローを含む HTTP に直接対応しているため、mcp-remote は不要です。これを .cursor/mcp.json(このプロジェクト)または ~/.cursor/mcp.json(すべてのプロジェクト)に追加します:

ホスト型サーバー:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "url": "https://gtm-mcp.stape.io/mcp"
    }
  }
}

その後、Cursor のサイドバーにある Customize で、サーバーのエントリーから Google にサインインします。

ローカル CLI:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
### Antigravity
⬇️ クリックして展開 ⬇️

Antigravity のリモート HTTP サーバー向け OAuth サポートでは、まだサーバーにトークンが渡されないため(antigravity-cli#25)、ここではホスト型サーバーに mcp-remote を使用します。Antigravity のエディターと CLI で共有される ~/.gemini/config/mcp_config.json に、以下を追加してください。エディターでは、エージェントパネルから … → MCP Servers → Manage MCP Servers → View raw config を開きます。

ホスト型サーバー:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

ローカル CLI:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}

または、Antigravity CLI から次のいずれかを実行します(agy mcp add は同じ名前のエントリーを置き換えます)。

ホスト型サーバー:

agy mcp add gtm-mcp-server -- npx -y mcp-remote https://gtm-mcp.stape.io/mcp

ローカル CLI:

agy mcp add --env GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' gtm-mcp-server -- npx -y google-tag-manager-mcp-server

mcp-remote は、初回接続時にブラウザーで Google サインインを開きます。

ChatGPT
⬇️ クリックして展開 ⬇️
  1. Web 版 ChatGPT で Plugins に移動し、+ を選択してから、Add custom MCP server を選択します。
  2. 名前(例:gtm-mcp-server)を入力し、Connection でサーバー URL を https://gtm-mcp.stape.io/mcp に設定します。
  3. 認証を OAuth に設定します。サーバーは Dynamic Client Registration をサポートしているため、クライアント ID やシークレットは不要です。
  4. リスクに関する警告(I understand and want to continue)を確認し、Create as a plugin を選択します。
  5. 個人用プラグインからプラグインをインストールし、Google にサインインして、プロンプトボックスで @ を使って選択します。

ChatGPT はパブリックインターネット経由でのみサーバーに接続するため、ここではローカル CLI の選択肢はなく、ホスト型サーバーのみを使用できます。ワークスペース管理者はカスタム MCP サーバーを制限できます。詳しくは OpenAI のドキュメントをご覧ください。

その他の MCP クライアント
⬇️ クリックして展開 ⬇️

クライアントが OAuth を使ったリモート HTTP MCP サーバーに対応している場合は、Cursor の設定と同様に https://gtm-mcp.stape.io/mcp を指定します。対応していない場合は、ホスト型サーバーに mcp-remote を使用します。

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

または、認証情報を指定してローカル CLI を直接使用します。

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
トラブルシューティング

認証エラー

ツールが 401/403 エラーで失敗する場合は、アシスタントに gtm_auth_status の実行を依頼してください。トークンを明かすことなく、現在の Google トークンが受け付けられているか、有効期限はいつか、不足している Tag Manager スコープはどれかを報告します。

MCP サーバー名の長さ制限

一部の MCP クライアント(Cursor AI など)には、MCP サーバー名とツール名を合わせた長さに 60 文字の上限があります。設定で長いサーバー名(例:gtm-mcp-server-your-additional-long-name)を使用すると、一部のツールが除外されることがあります。

この問題を避けるには:

  • MCP の設定で短いサーバー名を使用します(例:gtm-mcp-server)

MCP キャッシュのクリア

mcp-remote 経由で接続している場合(Antigravity、この方式で設定した Claude Desktop、または mcp-remote ブロックを使用するその他のクライアント)、すべての認証情報は ~/.mcp-auth(または MCP_REMOTE_CONFIG_DIR の指定先)に保存されます。問題が解消しない場合は、次を実行してください。

rm -rf ~/.mcp-auth

その後、MCP クライアントを再起動します。

変更をローカルでテストする

必要なワークフローは、変更内容によって異なります。ほとんどの変更は最初のカテゴリに該当します。Worker 自体に手を加える場合に限り、2 番目の方法を使用してください。

packages/core または packages/cli の変更

これはツールのロジックそのもの(スキーマ、GTM API 呼び出し、エラー処理)です。修正や追加のほとんどはここで行います。Google Cloud OAuth クライアントや Worker のセットアップは必要ありません。ソースからビルドし、すでにお持ちの認証情報を使って CLI を直接実行してください。

git clone https://github.com/stape-io/google-tag-manager-mcp-server
cd google-tag-manager-mcp-server
gh pr checkout <PR number>   # or: git checkout <your-branch>
npm install
npm run build

npx の代わりにローカルビルドを MCP クライアントに指定します。認証情報のオプションは、上記の Claude Desktop のローカル CLI の例と同じです。単一の変更をテストする場合は、OAuth Playground から取得したアクセストークンを使うのが最も手早い方法です。

{
  "mcpServers": {
    "gtm-mcp-local": {
      "command": "node",
      "args": ["/absolute/path/to/google-tag-manager-mcp-server/packages/cli/dist/index.js"],
      "env": {
        "GOOGLE_ACCESS_TOKEN": "..."
      }
    }
  }
}

認証情報のすべてのオプションについては、CLI README をご覧ください。

apps/worker の変更

ホスト型サーバー独自のコード(OAuth フロー、ルーティング、セッション処理、承認ページ、ステータスページ)にのみ必要です。このコードを gtm-mcp.stape.io ではなく、独自の Google Cloud OAuth 認証情報を使ってローカルマシンで実行します。

1. Google Cloud OAuth クライアントを設定する
  1. Google Cloud Console でプロジェクトを作成または選択し、Tag Manager API を有効にします。
  2. APIs & Services > OAuth consent screen に移動し、設定します(External で問題ありません)。アプリの公開ステータスが Testing の間は、テストユーザーとして登録されたアカウントのみログインできます。
  3. Audience に移動し、Test users に自分の Google アカウントを追加します。
  4. APIs & Services > Credentials > Create Credentials > OAuth client ID に移動し、種類として Web application を選択します。
  5. Authorized redirect URIs に http://localhost:8788/callback を追加します。(Authorized JavaScript origins は空のままでかまいません。このフローはサーバーサイドのみで実行され、ブラウザーの JavaScript から Google に直接呼び出すことはありません。)
  6. 保存し、生成された Client ID と Client secret をコピーします。
2. ローカル環境変数を設定する

サンプルファイルをコピーし、前の手順で取得した値を入力します。

cp apps/worker/.dev.vars.example apps/worker/.dev.vars
GOOGLE_CLIENT_ID="<your client ID>"
GOOGLE_CLIENT_SECRET="<your client secret>"
COOKIE_ENCRYPTION_KEY="<any random string, at least 32 chars, e.g. output of: openssl rand -hex 32>"
WORKER_HOST="http://localhost:8788"
HOSTED_DOMAIN=""

.dev.vars は git の追跡対象外です。ローカルでのみ使用され、コミットされることはありません。

3. サーバーを起動する
npm install
npm run build
npm run dev

npm run build は Worker がバンドルするコアパッケージをコンパイルし、npm run dev は http://localhost:8788 で Worker を起動します。

4. MCP クライアントをローカルサーバーに接続する

Claude Desktop のカスタムコネクタには外部からアクセス可能な URL が必要なため、localhost を指定するには mcp-remote だけが選択肢となります。

{
  "mcpServers": {
    "gtm-mcp-server-local": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8788/mcp"]
    }
  }
}

Claude Desktop を再起動します。Google OAuth フロー用のブラウザーウィンドウが開きます。手順 1 でテストユーザーとして追加したアカウントでログインしてください。

注: ホスト型サーバーに以前接続したことがある場合(またはローカルとホスト型を切り替える場合)は、先に mcp-remote のキャッシュをクリアし(上記のトラブルシューティングを参照)、MCP クライアントを完全に再起動してください。そうしないと、古い接続やキャッシュ済みの接続が再利用される場合があります。

リリース

バージョンと変更履歴は Changesets で管理しています。リリース対象となる変更とあわせて、次を追加してください。

npm run changeset

main にマージされると、リリースワークフローによって「Version Packages」PR が作成されます。その PR をマージすると npm に公開されます。まずコアが公開され、その後、コアに依存する CLI が公開されます。Worker は非公開で、公開されることはありません。main へのプッシュごとにデプロイされます。

開発

npm install
npm run build      # core, then the CLI, then the Worker's generated version
npm run typecheck
npm run lint
npm run smoke      # starts the built CLI and runs an MCP handshake against it

プルリクエストでは上記のすべてに加えて、Worker のバンドルチェックが実行され、変更セットなしで公開済みパッケージに変更が加えられた場合は警告されます。

@modelcontextprotocol/sdk と agents は、apps/worker で厳密なバージョンに固定されています。SDK は instanceof を使ってツールのスキーマを識別するため、ワークスペース全体で解決されるコピーは 1 つである必要があります。また、agents のリリースでは、ビルドに使用した SDK のバージョンが固定されています。両者を一緒に更新し、慎重にデプロイしてください。

参考資料

オープンソース

Google Tag Manager 用 MCP サーバー は、Apache 2.0 ライセンスのもと、Stape Team によって開発・保守されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。