Skip to main content
Glama
ambit1977

Google Tag Manager MCP Server

by ambit1977

list_variables

Retrieve all variables from a Google Tag Manager workspace to manage tracking configurations and data collection settings.

Instructions

指定されたワークスペースの変数一覧を取得します

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountIdYesアカウントID
containerIdYesコンテナID
workspaceIdYesワークスペースID

Implementation Reference

  • MCP tool handler in the CallToolRequestSchema switch statement. Calls gtmClient.listVariables with accountId, containerId, workspaceId and returns the result as JSON text content.
    case 'list_variables': return { content: [ { type: 'text', text: JSON.stringify( await this.gtmClient.listVariables( args.accountId, args.containerId, args.workspaceId ), null, 2 ), }, ], };
  • Input schema definition for the list_variables tool, requiring accountId, containerId, and workspaceId. Part of the tool list in ListToolsRequestSchema handler.
    name: 'list_variables', description: '指定されたワークスペースの変数一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, },
  • src/index.js:34-858 (registration)
    Tool registration via the ListToolsRequestSchema handler, which lists all available tools including list_variables with its schema.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: 'get_auth_url', description: 'OAuth2認証URLを取得します。このURLにアクセスして認証を完了してください。', inputSchema: { type: 'object', properties: {}, }, }, { name: 'authenticate', description: '認証コードを使用して認証を完了します。get_auth_urlで取得したURLにアクセスし、リダイレクト先のURLから認証コードを取得して使用してください。', inputSchema: { type: 'object', properties: { code: { type: 'string', description: 'OAuth2認証コード(リダイレクト先のURLの「code=」の後の値)', }, }, required: ['code'], }, }, { name: 'check_auth_status', description: '現在の認証状態を確認します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'reset_auth', description: '保存された認証情報をリセットします', inputSchema: { type: 'object', properties: {}, }, }, { name: 'list_accounts', description: 'Google Tag Managerのアカウント一覧を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'list_containers', description: '指定されたアカウントのコンテナ一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, }, required: ['accountId'], }, }, { name: 'get_container', description: '指定されたコンテナの詳細を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, }, required: ['accountId', 'containerId'], }, }, { name: 'create_container', description: '新しいコンテナを作成します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, name: { type: 'string', description: 'コンテナ名', }, usageContext: { type: 'array', items: { type: 'string', enum: ['web', 'android', 'ios', 'amp'], }, description: '使用コンテキスト(例: ["web"])', }, }, required: ['accountId', 'name', 'usageContext'], }, }, { name: 'list_workspaces', description: '指定されたコンテナのワークスペース一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, }, required: ['accountId', 'containerId'], }, }, { name: 'get_workspace', description: '指定されたワークスペースの詳細を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, }, { name: 'list_tags', description: '指定されたワークスペースのタグ一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, }, { name: 'get_tag', description: '指定されたタグの詳細を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, tagId: { type: 'string', description: 'タグID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'tagId'], }, }, { name: 'create_tag', description: '新しいタグを作成します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, name: { type: 'string', description: 'タグ名', }, type: { type: 'string', description: 'タグタイプ(例: "googtag"=GA4設定, "gaawe"=GA4イベント, "awct"=Google広告コンバージョン, "html"=カスタムHTML, "img"=カスタム画像, "fbq"=Facebookピクセル, "ua"=Universal Analyticsなど)', }, parameter: { type: 'array', description: 'タグのパラメータ配列', items: { type: 'object', properties: { type: { type: 'string', description: 'パラメータタイプ', }, key: { type: 'string', description: 'パラメータキー', }, value: { type: 'string', description: 'パラメータ値', }, }, }, }, firingTriggerId: { type: 'array', items: { type: 'string', }, description: '発火トリガーIDの配列', }, }, required: ['accountId', 'containerId', 'workspaceId', 'name', 'type'], }, }, { name: 'update_tag', description: '既存のタグを更新します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, tagId: { type: 'string', description: 'タグID', }, name: { type: 'string', description: 'タグ名', }, type: { type: 'string', description: 'タグタイプ', }, parameter: { type: 'array', description: 'タグのパラメータ配列', }, firingTriggerId: { type: 'array', items: { type: 'string', }, description: '発火トリガーIDの配列', }, }, required: ['accountId', 'containerId', 'workspaceId', 'tagId'], }, }, { name: 'delete_tag', description: 'タグを削除します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, tagId: { type: 'string', description: 'タグID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'tagId'], }, }, { name: 'list_triggers', description: '指定されたワークスペースのトリガー一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, }, { name: 'get_trigger', description: '指定されたトリガーの詳細を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, triggerId: { type: 'string', description: 'トリガーID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'triggerId'], }, }, { name: 'update_trigger', description: '既存のトリガーを更新します。filter、autoEventFilter、waitForTagsなどのすべての設定を更新できます。', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, triggerId: { type: 'string', description: 'トリガーID', }, name: { type: 'string', description: 'トリガー名', }, type: { type: 'string', description: 'トリガータイプ', }, customEventFilter: { type: 'array', description: 'カスタムイベントフィルタ(CUSTOM_EVENTタイプ用)', }, filter: { type: 'array', description: 'フィルタ(linkClick、clickなどのタイプ用)', }, autoEventFilter: { type: 'array', description: '自動イベントフィルタ(linkClickタイプ用)', }, waitForTags: { type: 'boolean', description: 'タグの待機を有効化(linkClickタイプ用)', }, checkValidation: { type: 'boolean', description: 'バリデーションチェック(linkClickタイプ用)', }, waitForTagsTimeout: { type: 'number', description: 'タグ待機タイムアウト(ミリ秒、linkClickタイプ用)', }, // formSubmission用 formId: { type: 'string', description: 'フォームID(formSubmissionタイプ用)', }, formClasses: { type: 'string', description: 'フォームクラス(formSubmissionタイプ用)', }, // scrollDepth用 verticalThreshold: { type: 'number', description: '垂直スクロール閾値(パーセント、scrollDepthタイプ用)', }, horizontalThreshold: { type: 'number', description: '水平スクロール閾値(パーセント、scrollDepthタイプ用)', }, // elementVisibility用 selector: { type: 'string', description: 'CSSセレクタ(elementVisibilityタイプ用)', }, visiblePercentageThreshold: { type: 'number', description: '表示割合閾値(パーセント、elementVisibilityタイプ用)', }, continuousTimeMinMilliseconds: { type: 'number', description: '連続表示時間(ミリ秒、elementVisibilityタイプ用)', }, // youtubeVideo用 videoId: { type: 'string', description: 'YouTube動画ID(youtubeVideoタイプ用)', }, enableTriggerOnVideoStart: { type: 'boolean', description: '動画開始時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoProgress: { type: 'boolean', description: '動画再生中に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoComplete: { type: 'boolean', description: '動画完了時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoPause: { type: 'boolean', description: '動画一時停止時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoSeek: { type: 'boolean', description: '動画シーク時に発火(youtubeVideoタイプ用)', }, // timer用 interval: { type: 'number', description: 'インターバル(ミリ秒、timerタイプ用)', }, limit: { type: 'number', description: '発火回数の上限(timerタイプ用)', }, startTimerOn: { type: 'string', description: 'タイマー開始タイミング(timerタイプ用、例: "windowLoad", "domReady")', }, }, required: ['accountId', 'containerId', 'workspaceId', 'triggerId'], }, }, { name: 'delete_trigger', description: 'トリガーを削除します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, triggerId: { type: 'string', description: 'トリガーID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'triggerId'], }, }, { name: 'create_trigger', description: '新しいトリガーを作成します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, name: { type: 'string', description: 'トリガー名', }, type: { type: 'string', description: 'トリガータイプ(例: "PAGEVIEW", "CLICK", "CUSTOM_EVENT", "linkClick"など)', }, customEventFilter: { type: 'array', description: 'カスタムイベントフィルタ(CUSTOM_EVENTタイプ用)', }, filter: { type: 'array', description: 'フィルタ(linkClick、clickなどのタイプ用)', }, autoEventFilter: { type: 'array', description: '自動イベントフィルタ(linkClickタイプ用)', }, waitForTags: { type: 'boolean', description: 'タグの待機を有効化(linkClickタイプ用)', }, checkValidation: { type: 'boolean', description: 'バリデーションチェック(linkClickタイプ用)', }, waitForTagsTimeout: { type: 'number', description: 'タグ待機タイムアウト(ミリ秒、linkClickタイプ用)', }, // formSubmission用 formId: { type: 'string', description: 'フォームID(formSubmissionタイプ用)', }, formClasses: { type: 'string', description: 'フォームクラス(formSubmissionタイプ用)', }, // scrollDepth用 verticalThreshold: { type: 'number', description: '垂直スクロール閾値(パーセント、scrollDepthタイプ用)', }, horizontalThreshold: { type: 'number', description: '水平スクロール閾値(パーセント、scrollDepthタイプ用)', }, // elementVisibility用 selector: { type: 'string', description: 'CSSセレクタ(elementVisibilityタイプ用)', }, visiblePercentageThreshold: { type: 'number', description: '表示割合閾値(パーセント、elementVisibilityタイプ用)', }, continuousTimeMinMilliseconds: { type: 'number', description: '連続表示時間(ミリ秒、elementVisibilityタイプ用)', }, // youtubeVideo用 videoId: { type: 'string', description: 'YouTube動画ID(youtubeVideoタイプ用)', }, enableTriggerOnVideoStart: { type: 'boolean', description: '動画開始時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoProgress: { type: 'boolean', description: '動画再生中に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoComplete: { type: 'boolean', description: '動画完了時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoPause: { type: 'boolean', description: '動画一時停止時に発火(youtubeVideoタイプ用)', }, enableTriggerOnVideoSeek: { type: 'boolean', description: '動画シーク時に発火(youtubeVideoタイプ用)', }, // timer用 interval: { type: 'number', description: 'インターバル(ミリ秒、timerタイプ用)', }, limit: { type: 'number', description: '発火回数の上限(timerタイプ用)', }, startTimerOn: { type: 'string', description: 'タイマー開始タイミング(timerタイプ用、例: "windowLoad", "domReady")', }, }, required: ['accountId', 'containerId', 'workspaceId', 'name', 'type'], }, }, { name: 'list_variables', description: '指定されたワークスペースの変数一覧を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, }, { name: 'get_variable', description: '指定された変数の詳細を取得します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, variableId: { type: 'string', description: '変数ID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'variableId'], }, }, { name: 'create_variable', description: '新しい変数を作成します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, name: { type: 'string', description: '変数名', }, type: { type: 'string', description: '変数タイプ(例: "c"=定数, "v"=データレイヤー, "j"=JavaScript, "d"=DOM要素, "k"=Cookie, "u"=URL, "ae"=自動イベント, "b"=組み込み変数など)', }, parameter: { type: 'array', description: '変数のパラメータ配列。タイプに応じて必要なパラメータを設定してください。', }, }, required: ['accountId', 'containerId', 'workspaceId', 'name', 'type'], }, }, { name: 'update_variable', description: '既存の変数を更新します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, variableId: { type: 'string', description: '変数ID', }, name: { type: 'string', description: '変数名', }, type: { type: 'string', description: '変数タイプ', }, parameter: { type: 'array', description: '変数のパラメータ配列', }, }, required: ['accountId', 'containerId', 'workspaceId', 'variableId'], }, }, { name: 'delete_variable', description: '変数を削除します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, variableId: { type: 'string', description: '変数ID', }, }, required: ['accountId', 'containerId', 'workspaceId', 'variableId'], }, }, { name: 'create_version', description: 'ワークスペースの変更をバージョンとして作成(公開準備)します', inputSchema: { type: 'object', properties: { accountId: { type: 'string', description: 'アカウントID', }, containerId: { type: 'string', description: 'コンテナID', }, workspaceId: { type: 'string', description: 'ワークスペースID', }, name: { type: 'string', description: 'バージョン名(オプション)', }, notes: { type: 'string', description: 'バージョンノート(オプション)', }, }, required: ['accountId', 'containerId', 'workspaceId'], }, }, ], }));
  • GTMClient helper method that authenticates and calls the Google Tag Manager API to list variables in the specified workspace.
    async listVariables(accountId, containerId, workspaceId) { await this.ensureAuth(); const response = await this.tagmanager.accounts.containers.workspaces.variables.list({ parent: `accounts/${accountId}/containers/${containerId}/workspaces/${workspaceId}` }); return response.data.variable || []; }

Latest Blog Posts

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/ambit1977/GTM-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server