Google Tag Manager MCP Server
This MCP server enables AI assistants to programmatically manage Google Tag Manager through OAuth2-authenticated API calls.
Authentication: Handle OAuth2 flow with tools to get authorization URLs, authenticate with codes, check status, reset credentials, and automatic token refresh stored in ~/.gtm-mcp-token.json.
Account Management: List, retrieve details, and update GTM accounts.
Container Management: Full CRUD operations for containers across web, Android, iOS, and AMP platforms.
Workspace Management: Complete CRUD capabilities plus synchronization and quick preview of changes.
Tag Management: Create, list, retrieve, update, and delete tags supporting GA4 Configuration (googtag), GA4 Events (gaawe), Google Ads Conversion Tracking (awct), Custom HTML (html), Custom Image (img), Facebook Pixel (fbq), and Universal Analytics (ua).
Trigger Management: Full CRUD operations for multiple trigger types including pageview, custom events, link clicks, element clicks, form submissions, scroll depth, element visibility, YouTube video events, and timers—with comprehensive filter support (standard filters, auto-event filters, wait for tags settings, and type-specific options).
Variable Management: Create, list, retrieve, update, and delete variables supporting constants (c), data layer (v), JavaScript (j), DOM element (d), cookie (k), URL (u), auto-event (ae), and built-in variables (b).
Version Management: Create versions from workspace changes, list all versions, retrieve version details, and publish versions to production.
Integration: Communicates via stdio using the MCP protocol, runs on macOS, and integrates with MCP clients like Cursor using environment variables or .env files.
Enables management of Google Tag Manager resources including accounts, containers, workspaces, tags, triggers, variables, and versions. Supports creating, updating, deleting, and listing GTM entities, as well as version creation for publishing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Tag Manager MCP Servercreate a GA4 event tag for purchase tracking in container 12345"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Tag Manager MCP Server
Google Tag Managerを操作するためのMCP(Model Context Protocol)サーバーです。Macローカル環境で動作します。
機能
このMCPサーバーは以下のGoogle Tag Manager操作を提供します:
アカウント管理: アカウント一覧の取得、詳細取得、更新
ユーザー権限管理: ユーザー権限の一覧取得、詳細取得、作成、更新、削除(tagmanager.manage.usersスコープ必要、要再認証)
コンテナ管理: コンテナの一覧取得、詳細取得、作成、更新、削除
ワークスペース管理: ワークスペースの一覧取得、詳細取得、ステータス取得、承認レビュー用サマリ取得、作成、更新、削除、同期、クイックプレビュー
タグ管理: タグの一覧取得、詳細取得、作成、更新、削除
トリガー管理: トリガーの一覧取得、詳細取得、作成、更新、削除
変数管理: 変数の一覧取得、詳細取得、作成、更新、削除
バージョン管理: バージョンの一覧取得、詳細取得、作成(公開準備)、公開
Related MCP server: gtm-mcp
セットアップ
1. 依存関係のインストール
npm install2. Google Cloud OAuth2認証情報の設定
Google Tag Manager APIを使用するには、OAuth2認証情報が必要です。
Google Cloud Consoleでプロジェクトを作成
APIとサービス > 認証情報 に移動
認証情報を作成 > OAuth クライアント ID を選択
アプリケーションの種類で デスクトップアプリ を選択
名前を入力して作成
クライアントID と クライアントシークレット をコピー
APIとサービス > ライブラリ で Tag Manager API を有効化
注意: アカウント管理機能(update_account)を使用するには、OAuth2認証情報の設定で以下のスコープを追加する必要があります:
https://www.googleapis.com/auth/tagmanager.manage.accounts
このスコープは、MCPサーバーの実装に既に含まれていますが、Google Cloud ConsoleでOAuth2認証情報を作成する際に、これらのスコープが有効になっていることを確認してください。
3. 環境変数の設定
.envファイルを作成し、OAuth2認証情報を設定します:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback注意: GOOGLE_REDIRECT_URIは、Google Cloud ConsoleのOAuth2認証情報設定で「承認済みのリダイレクト URI」に追加する必要があります。
4. 初回認証・再認証
おすすめ(手間なし): プロジェクトのルートで次を実行し、開いたブラウザでGoogleにログインして権限を承認するだけです。コールバック用の一時サーバーが code を受け取り、トークン保存まで自動で行います。
node auth.js
# または
npm run auth認証情報は ~/.gtm-mcp-token.json に保存され、次回以降は自動的に使用されます。
ユーザー権限管理を使う場合: ユーザー権限の作成・更新には tagmanager.manage.users スコープが必要です。既存のトークンに含まれていない場合は、上記の node auth.js(または npm run auth)を実行して再認証すれば、新しいスコープ付きのトークンが取得できます。事前に reset_auth でトークンを消してから実行してもかまいません。
手動で行う場合: MCPの get_auth_url でURLを取得 → ブラウザで認証 → リダイレクト先の code= の値をコピー → authenticate に渡す、または node test-auth.js "認証コード" を実行。
使用方法
MCPクライアントとして設定
CursorなどのMCPクライアントで、このサーバーを設定します。
設定例(~/.cursor/mcp.json または適切な設定ファイル):
{
"mcpServers": {
"gtm": {
"command": "node",
"args": ["/Users/01035280/Documents/タグマネTテスト/GTM_MCP/src/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret",
"GOOGLE_REDIRECT_URI": "http://localhost:3000/oauth2callback"
}
}
}
}または、.envファイルを使用する場合は、環境変数の設定を省略できます。
MCPサーバーの再起動
MCPサーバーを再起動する方法は以下の通りです:
Cursorを再起動する(最も確実な方法)
Cursorを完全に終了(
Cmd + Q)してから再起動
MCP設定ファイルを編集して保存する
~/.cursor/mcp.jsonを開き、コメントやスペースを追加・削除して保存Cursorが設定変更を検知してMCPサーバーを再起動することがあります
コマンドパレットから再起動する(Cursorのバージョンによる)
Cmd + Shift + P(Mac)またはCtrl + Shift + P(Windows/Linux)でコマンドパレットを開く「MCP」や「reload」などのキーワードで検索し、MCPサーバー再起動コマンドを実行
注意: 現在のCursorのバージョンでは、MCP設定ファイルの編集による再起動が最も簡単な方法です。
利用可能なツール
認証操作
get_auth_url: OAuth2認証URLを取得authenticate: 認証コードを使用して認証を完了check_auth_status: 現在の認証状態を確認reset_auth: 保存された認証情報をリセット
アカウント操作
list_accounts: アカウント一覧を取得get_account: アカウントの詳細を取得update_account: アカウント情報を更新(名前など)
ユーザー権限操作(アカウント管理)
list_user_permissions: アカウントのユーザー権限一覧を取得get_user_permission: 指定ユーザー権限の詳細を取得create_user_permission: アカウント・コンテナへのユーザーアクセスを作成(メール、アカウント権限: noAccess/user/admin、コンテナ権限: noAccess/read/edit/approve/publish)update_user_permission: ユーザー権限を更新delete_user_permission: ユーザー権限を削除(アクセス取り消し)
※ ユーザー権限の作成・更新には tagmanager.manage.users スコープが必要です。既存トークンでは再認証してください。
コンテナ操作
list_containers: コンテナ一覧を取得get_container: コンテナの詳細を取得create_container: 新しいコンテナを作成update_container: コンテナ情報を更新delete_container: コンテナを削除
ワークスペース操作
list_workspaces: ワークスペース一覧を取得get_workspace: ワークスペースの詳細を取得get_workspace_status: ワークスペースのステータスを取得(ベースバージョンからの変更・マージコンフリクト)。承認レビュー前の確認に利用get_workspace_review_info: 承認レビュー用に変更サマリと参考情報をまとめて取得(変更対象の集計・コンフリクト有無・レビュー用メモ)create_workspace: 新しいワークスペースを作成update_workspace: ワークスペース情報を更新delete_workspace: ワークスペースを削除sync_workspace: ワークスペースを同期quick_preview: ワークスペースのクイックプレビューを取得
タグ操作
list_tags: タグ一覧を取得get_tag: タグの詳細を取得create_tag: 新しいタグを作成update_tag: 既存のタグを更新(すべてのパラメータを更新可能)delete_tag: タグを削除サポートする主要なタグタイプ:
googtag: GA4設定タグgaawe: GA4イベントタグawct: Google広告コンバージョントラッキングhtml: カスタムHTMLタグimg: カスタム画像タグ(ピクセルトラッキング)fbq: Facebookピクセルua: Universal Analytics(旧GA)
tagFiringOption(タグの呼び出しオプション):unlimited/oncePerEvent/oncePerLoad。create_tagで未指定の場合は UI デフォルト相当のoncePerEventを自動設定する(省略すると API 上ブランクになり、ランタイムでは unlimited 相当になるため)
トリガー操作
list_triggers: トリガー一覧を取得get_trigger: トリガーの詳細を取得create_trigger: 新しいトリガーを作成update_trigger: 既存のトリガーを更新(filter、autoEventFilter、waitForTagsなどのすべての設定を更新可能)delete_trigger: トリガーを削除サポートするトリガータイプ:
pageview: ページビュートリガーcustomEvent: カスタムイベントトリガー(customEventFilterを使用)linkClick: リンククリックトリガー(filter、autoEventFilter、waitForTagsなどを使用)click: クリックトリガー(filterを使用)formSubmission: フォーム送信トリガー(formId、formClassesを使用)scrollDepth: スクロール深度トリガー(verticalThreshold、horizontalThresholdを使用)visible/elementVisibility: 要素の表示トリガー(selector、visiblePercentageThresholdを使用)youtubeVideo: YouTube動画トリガー(videoId、各種enableTriggerOnVideo*を使用)timer: タイマートリガー(interval、limit、startTimerOnを使用)
変数操作
list_variables: 変数一覧を取得get_variable: 変数の詳細を取得create_variable: 新しい変数を作成update_variable: 既存の変数を更新delete_variable: 変数を削除サポートする変数タイプ:
c: 定数変数v: データレイヤー変数j: JavaScript変数d: DOM要素変数k: 1st Party Cookie変数u: URL変数ae: 自動イベント変数b: 組み込み変数
バージョン操作
create_version: ワークスペースの変更をバージョンとして作成(公開準備)list_versions: コンテナのバージョン一覧を取得get_version: バージョンの詳細を取得publish_version: バージョンを公開
承認レビュー用の情報取得(ワークスペースの変更状況)
承認依頼を受けた際に、承認者が「現在のワークスペースのアップデートに問題がないか」を判断するための情報を取得できます。GTM API には承認キューを取得する専用 API はありませんが、以下のツールでレビューに必要な参考情報をまとめて取得できます。
get_workspace_status: GTM API のworkspaces.getStatusを呼び出し、ベースバージョンからの変更エンティティ一覧(workspaceChange)とマージコンフリクト(mergeConflict)をそのまま返します。get_workspace_review_info: 上記に加え、ワークスペース名・説明、変更対象の集計(タグ/トリガー/変数/フォルダ等の件数)、コンフリクトの有無、レビュー用メモ(reviewNotes)を構造化して返します。承認判断のサマリとしてそのまま利用しやすくなっています。
使用例(承認レビュー前の確認):
list_workspacesで対象コンテナのワークスペース一覧を取得承認依頼の対象ワークスペース ID を指定して
get_workspace_review_infoを実行返却された
changeSummaryとreviewNotesを確認し、必要に応じてget_workspace_statusで生の変更一覧を確認マージコンフリクトがある場合は公開前に解消が必要であることが
reviewNotesに含まれる
使用例
主要なタグタイプの作成
GA4設定タグ
{
"name": "GA4設定",
"type": "googtag",
"parameter": [
{
"type": "template",
"key": "tagId",
"value": "G-XXXXXXXXXX"
}
],
"firingTriggerId": ["2147479573"]
}GA4イベントタグ
{
"name": "GA4 イベント",
"type": "gaawe",
"parameter": [
{
"type": "template",
"key": "eventName",
"value": "custom_event"
},
{
"type": "boolean",
"key": "sendEcommerceData",
"value": "false"
},
{
"type": "template",
"key": "measurementIdOverride",
"value": "G-XXXXXXXXXX"
}
],
"firingTriggerId": ["トリガーID"]
}Google広告コンバージョントラッキング
{
"name": "Google広告コンバージョン",
"type": "awct",
"parameter": [
{
"type": "template",
"key": "conversionId",
"value": "1006772047"
},
{
"type": "template",
"key": "conversionLabel",
"value": "0L_dCLyI84sBEM--iOAD"
},
{
"type": "boolean",
"key": "enableConversionLinker",
"value": "true"
}
],
"firingTriggerId": ["トリガーID"]
}主要なトリガータイプの作成
linkClickトリガーの作成
{
"name": "リンククリック - test_click9",
"type": "linkClick",
"filter": [
{
"type": "contains",
"parameter": [
{
"type": "template",
"key": "arg0",
"value": "{{Click URL}}"
},
{
"type": "template",
"key": "arg1",
"value": "test_click9"
}
]
}
],
"autoEventFilter": [
{
"type": "contains",
"parameter": [
{
"type": "template",
"key": "arg0",
"value": "{{Page URL}}"
},
{
"type": "template",
"key": "arg1",
"value": "20251202cvtest/test1.html"
}
]
}
],
"waitForTags": true,
"checkValidation": false,
"waitForTagsTimeout": 2000
}linkClickトリガーの更新(filterとautoEventFilterを設定)
既存のトリガーにfilterとautoEventFilterを追加・更新する例:
{
"triggerId": "27",
"filter": [
{
"type": "contains",
"parameter": [
{
"type": "template",
"key": "arg0",
"value": "{{Click URL}}"
},
{
"type": "template",
"key": "arg1",
"value": "test_click9"
}
]
}
],
"autoEventFilter": [
{
"type": "contains",
"parameter": [
{
"type": "template",
"key": "arg0",
"value": "{{Page URL}}"
},
{
"type": "template",
"key": "arg1",
"value": "20251202cvtest/test1.html"
}
]
}
],
"waitForTags": true,
"waitForTagsTimeout": 2000
}formSubmissionトリガーの作成
{
"name": "フォーム送信",
"type": "formSubmission",
"formId": "contact-form",
"formClasses": "form-class"
}scrollDepthトリガーの作成
{
"name": "スクロール深度 50%",
"type": "scrollDepth",
"verticalThreshold": 50,
"horizontalThreshold": 75
}elementVisibilityトリガーの作成
{
"name": "要素の表示",
"type": "visible",
"selector": "#important-element",
"visiblePercentageThreshold": 50,
"continuousTimeMinMilliseconds": 1000
}youtubeVideoトリガーの作成
{
"name": "YouTube動画",
"type": "youtubeVideo",
"videoId": "dQw4w9WgXcQ",
"enableTriggerOnVideoStart": true,
"enableTriggerOnVideoComplete": true
}主要な変数タイプの作成
データレイヤー変数
{
"name": "データレイヤー変数",
"type": "v",
"parameter": [
{
"type": "template",
"key": "dataLayerVersion",
"value": "2"
},
{
"type": "template",
"key": "dataLayerVariable",
"value": "event"
}
]
}JavaScript変数
{
"name": "JavaScript変数",
"type": "j",
"parameter": [
{
"type": "template",
"key": "javascript",
"value": "function() {\n return document.title;\n}"
}
]
}DOM要素変数
{
"name": "DOM要素変数",
"type": "d",
"parameter": [
{
"type": "template",
"key": "selector",
"value": "#element-id"
},
{
"type": "template",
"key": "attributeName",
"value": "data-value"
}
]
}Cookie変数
{
"name": "Cookie変数",
"type": "k",
"parameter": [
{
"type": "template",
"key": "cookieName",
"value": "session_id"
}
]
}開発
開発モードで実行
npm run dev通常モードで実行
npm startテストの実行
すべてのテストを実行(リグレッションテスト):
npm test個別のテストを実行:
npm run test:auth # 認証テスト
npm run test:accounts # アカウント一覧取得テスト
npm run test:gtm # 基本GTMテスト
npm run test:details # 詳細情報取得テスト
npm run test:trigger # linkClickトリガー作成テスト
npm run test:filter # filter/autoEventFilterテスト
npm run test:detailed-filters # 詳細フィルタ設定テストテストファイルを直接実行することも可能です:
node run-all-tests.js # すべてのテストを実行
node test-auth.js # 認証テスト
node test-accounts.js # アカウント一覧取得テスト
# ... などコンテナ確認ユーティリティ
公開ID(GTM-XXXXXX)からアカウントID・コンテナIDを調べる CLI です。権限付与や MCP 操作の前に対象コンテナを特定する際に利用できます。
node check-container.js GTM-M6KP89G
# または
npm run check-container -- GTM-M6KP89G出力内容: アカウント情報、コンテナ概要・詳細、ワークスペース一覧、先頭ワークスペースのレビュー情報(get_workspace_review_info 相当)。
注意事項
このサーバーは標準入出力(stdio)経由で通信します
Google Tag Manager APIのレート制限に注意してください
OAuth2認証情報(クライアントID、クライアントシークレット)は安全に管理してください
認証トークンは
~/.gtm-mcp-token.jsonに保存されます(.gitignoreに含まれています)リフレッシュトークンは自動的に使用され、アクセストークンが期限切れになる前に更新されます
ライセンス
MIT
Available Tools
26 toolsauthenticateA
認証コードを使用して認証を完了します。get_auth_urlで取得したURLにアクセスし、リダイレクト先のURLから認証コードを取得して使用してください。
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | OAuth2認証コード(リダイレクト先のURLの「code=」の後の値) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the action ('complete authentication') and usage flow, but lacks details on behavioral traits such as error handling, response format, side effects (e.g., session creation), or security implications. This is a significant gap for an authentication tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, consisting of two sentences that efficiently explain the purpose and usage. Every sentence earns its place by providing essential information without redundancy, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (authentication with OAuth2), lack of annotations, and no output schema, the description is moderately complete. It covers the basic purpose and usage flow but misses key contextual details like expected outcomes, error cases, or integration with other auth tools (e.g., 'check_auth_status'). This leaves gaps for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'code' parameter fully documented as 'OAuth2 authentication code (value after "code=" in the redirect URL).' The description adds minimal value beyond this, only reinforcing the code's source. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'complete authentication using an authentication code.' It specifies the verb ('complete authentication') and resource ('authentication code'), making the function understandable. However, it doesn't explicitly distinguish this from sibling tools like 'get_auth_url' or 'reset_auth' beyond mentioning 'get_auth_url' in usage context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when and how to use this tool: 'Use the authentication code obtained from the redirect URL after accessing the URL from get_auth_url.' It names the prerequisite tool ('get_auth_url') and specifies the source of the code, offering clear context for usage without alternatives needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_auth_statusB
現在の認証状態を確認します
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks authentication status but doesn't reveal any behavioral traits—such as whether it's read-only, what data it returns (e.g., user info, expiry), error conditions, or rate limits. For a tool with zero annotation coverage, this lack of detail is a significant gap, though it doesn't contradict anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without any fluff or redundancy. It's front-loaded with the core action ('check') and resource ('authentication status'), making it easy to parse. Every word earns its place, achieving optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple status check) but lack of annotations and output schema, the description is incomplete. It doesn't explain what the check entails, what information is returned, or how to interpret results. For a tool that likely returns authentication state (e.g., valid/invalid, user details), more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion. A baseline of 4 is appropriate as the description is adequate for a parameterless tool, though it could theoretically mention why no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'check current authentication status' (現在の認証状態を確認します), which is a specific verb ('check') and resource ('authentication status'). It distinguishes itself from siblings like 'authenticate', 'get_auth_url', and 'reset_auth' by focusing on status verification rather than initiation, URL retrieval, or resetting. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when authentication status checking is needed (e.g., before operations requiring auth), what triggers its use, or how it differs from related tools like 'authenticate' or 'reset_auth'. Without such context, users must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_containerC
新しいコンテナを作成します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| name | Yes | コンテナ名 | |
| usageContext | Yes | 使用コンテキスト(例: ["web"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '作成します' (creates) implies a write operation, but the description doesn't disclose any behavioral traits such as permissions required, whether creation is idempotent, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose. It's appropriately sized and front-loaded with no unnecessary words or structural issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (creating a container) with no annotations and no output schema, the description is incomplete. It doesn't explain what a container is in this context, what the creation entails, or what to expect as a result. The agent lacks crucial context for proper tool invocation despite the good schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what the input schema provides. Schema description coverage is 100%, with all three parameters (accountId, name, usageContext) documented in the schema. The baseline score of 3 is appropriate as the schema does the heavy lifting, but the description doesn't add any contextual meaning about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '新しいコンテナを作成します' (creates a new container) clearly states the action (creates) and resource (container). It distinguishes from siblings like 'get_container' or 'list_containers' by specifying creation rather than retrieval. However, it doesn't specify what type of container or differentiate from other creation tools like 'create_tag' or 'create_variable' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), when not to use it, or how it relates to sibling tools like 'get_container' or 'list_containers'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagC
新しいタグを作成します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| name | Yes | タグ名 | |
| type | Yes | タグタイプ(例: "googtag"=GA4設定, "gaawe"=GA4イベント, "awct"=Google広告コンバージョン, "html"=カスタムHTML, "img"=カスタム画像, "fbq"=Facebookピクセル, "ua"=Universal Analyticsなど) | |
| parameter | No | タグのパラメータ配列 | |
| firingTriggerId | No | 発火トリガーIDの配列 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention permissions needed, side effects, error conditions, or what happens on success/failure. For a creation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese with zero wasted words. It's appropriately sized and front-loaded, though it could benefit from more detail given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'tag' is in this context, what happens after creation, or provide any context about the broader system (e.g., Google Tag Manager). The agent must rely entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or providing examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '新しいタグを作成します' (creates a new tag) states a clear verb+resource action but is vague about what kind of tag or in what context. It doesn't distinguish from sibling tools like 'create_container' or 'create_trigger' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'update_tag' or 'list_tags'. The description doesn't mention prerequisites, dependencies, or contextual constraints, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_triggerD
新しいトリガーを作成します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| name | Yes | トリガー名 | |
| type | Yes | トリガータイプ(例: "PAGEVIEW", "CLICK", "CUSTOM_EVENT", "linkClick"など) | |
| customEventFilter | No | カスタムイベントフィルタ(CUSTOM_EVENTタイプ用) | |
| filter | No | フィルタ(linkClick、clickなどのタイプ用) | |
| autoEventFilter | No | 自動イベントフィルタ(linkClickタイプ用) | |
| waitForTags | No | タグの待機を有効化(linkClickタイプ用) | |
| checkValidation | No | バリデーションチェック(linkClickタイプ用) | |
| waitForTagsTimeout | No | タグ待機タイムアウト(ミリ秒、linkClickタイプ用) | |
| formId | No | フォームID(formSubmissionタイプ用) | |
| formClasses | No | フォームクラス(formSubmissionタイプ用) | |
| verticalThreshold | No | 垂直スクロール閾値(パーセント、scrollDepthタイプ用) | |
| horizontalThreshold | No | 水平スクロール閾値(パーセント、scrollDepthタイプ用) | |
| selector | No | CSSセレクタ(elementVisibilityタイプ用) | |
| visiblePercentageThreshold | No | 表示割合閾値(パーセント、elementVisibilityタイプ用) | |
| continuousTimeMinMilliseconds | No | 連続表示時間(ミリ秒、elementVisibilityタイプ用) | |
| videoId | No | YouTube動画ID(youtubeVideoタイプ用) | |
| enableTriggerOnVideoStart | No | 動画開始時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoProgress | No | 動画再生中に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoComplete | No | 動画完了時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoPause | No | 動画一時停止時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoSeek | No | 動画シーク時に発火(youtubeVideoタイプ用) | |
| interval | No | インターバル(ミリ秒、timerタイプ用) | |
| limit | No | 発火回数の上限(timerタイプ用) | |
| startTimerOn | No | タイマー開始タイミング(timerタイプ用、例: "windowLoad", "domReady") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Creates a new trigger' implies a write/mutation operation, but the description doesn't mention whether this requires specific permissions, what happens on success/failure, whether the trigger is immediately active, or any side effects. For a creation tool with 27 parameters and no annotation coverage, this is completely inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (one sentence), this is a case of under-specification rather than effective brevity. The single sentence doesn't earn its place by providing any meaningful information beyond the tool name. For a complex tool with 27 parameters, this level of conciseness is detrimental to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a creation/mutation tool with no annotations, no output schema, and 27 parameters. The description is completely inadequate for the complexity involved. It doesn't explain what a trigger is, what system it operates in, what happens after creation, or provide any context about the rich parameter set. Given the absence of structured metadata, the description should do much more heavy lifting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all 27 parameters are documented in the input schema itself. The description adds zero additional information about parameters, not even mentioning that different parameters apply to different trigger types. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, though the description provides no value beyond what's already in the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '新しいトリガーを作成します' (creates a new trigger) is a tautology that essentially restates the tool name 'create_trigger'. It doesn't specify what kind of trigger, what system it's for, or how it differs from sibling tools like 'update_trigger' or 'delete_trigger'. While it contains a verb and resource, it's too generic to be helpful for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like authentication), when to choose this over 'update_trigger', what happens after creation, or any context about the trigger lifecycle. Given the complex sibling toolset including authentication and other trigger operations, this is a critical omission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variableC
新しい変数を作成します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| name | Yes | 変数名 | |
| type | Yes | 変数タイプ(例: "c"=定数, "v"=データレイヤー, "j"=JavaScript, "d"=DOM要素, "k"=Cookie, "u"=URL, "ae"=自動イベント, "b"=組み込み変数など) | |
| parameter | No | 変数のパラメータ配列。タイプに応じて必要なパラメータを設定してください。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose whether this is a write operation (implied by 'create'), what permissions are needed, how errors are handled, or what the response looks like (no output schema). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese ('新しい変数を作成します'), which is appropriately sized and front-loaded with the core action. There's no wasted text or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It lacks context on the domain (e.g., Google Tag Manager variables), behavioral traits, usage scenarios, or expected outcomes, making it inadequate for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly (e.g., 'type' includes examples like 'c' for constant). The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '新しい変数を作成します' (creates a new variable) clearly states the verb+resource action, but it's vague about what kind of variable is being created (e.g., for Google Tag Manager, as implied by sibling tools). It doesn't distinguish from sibling tools like 'create_tag' or 'create_trigger' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication, account/container/workspace setup) or differentiate from similar tools like 'update_variable' or 'delete_variable' in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_versionC
ワークスペースの変更をバージョンとして作成(公開準備)します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| name | No | バージョン名(オプション) | |
| notes | No | バージョンノート(オプション) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'creating a version for publication preparation,' which implies a write operation, but doesn't disclose behavioral traits like whether this is destructive (e.g., overwrites existing versions), requires specific permissions, has side effects (e.g., locks the workspace), or rate limits. The description is too vague to guide safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence in Japanese that directly states the tool's purpose. It's front-loaded with the main action and avoids unnecessary words. However, it could be slightly more informative without losing conciseness, such as by clarifying what 'version' means in this system.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a write operation (creating a version) with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., version ID, status), error conditions, or how it interacts with other tools (e.g., after creating a version, what next?). For a mutation tool with 5 parameters, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with all parameters documented in Japanese (e.g., accountId, containerId, workspaceId as required; name and notes as optional). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Since schema coverage is high, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create a version') and the target ('workspace changes'), making the purpose understandable. It distinguishes from siblings like create_container or create_tag by specifying it's about versioning workspace changes. However, it doesn't explicitly mention what a 'version' entails in this context (e.g., a snapshot, release candidate).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance, only implying this is for 'preparing for publication' of workspace changes. It doesn't specify when to use this versus alternatives like directly publishing or saving drafts, nor does it mention prerequisites (e.g., needing a workspace with changes). No explicit when-not-to-use or sibling tool comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tagC
タグを削除します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| tagId | Yes | タグID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'タグを削除します' indicates a destructive mutation operation, but it doesn't disclose whether deletion is permanent/reversible, what permissions are required, whether it affects other entities, or what the response looks like. For a destructive operation with zero annotation coverage, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single Japanese phrase that directly states the action. There's no wasted verbiage or unnecessary elaboration. However, this conciseness comes at the cost of completeness, as it provides minimal contextual information beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with 4 required parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the deletion's consequences, required authentication state, error conditions, or what identifiers are needed. The agent would struggle to use this tool correctly without significant trial and error or external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 4 parameters are documented in the schema itself (accountId, containerId, workspaceId, tagId). The description adds no additional parameter information beyond what's in the schema - it doesn't explain the hierarchical relationship between these IDs or provide usage examples. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'タグを削除します' (deletes a tag) clearly states the verb ('削除します' - delete) and resource ('タグ' - tag), which is better than a tautology. However, it doesn't differentiate from sibling tools like 'delete_trigger' or 'delete_variable' - it only states the generic action without specifying what makes tag deletion unique compared to other deletion operations in this system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing authentication first), when deletion is appropriate versus updating a tag with 'update_tag', or what happens to associated resources when a tag is deleted. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_triggerC
トリガーを削除します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| triggerId | Yes | トリガーID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is deletion, implying a destructive operation, but doesn't mention whether this is permanent, reversible, requires specific permissions, or has side effects (e.g., impact on associated workflows). For a destructive tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence in Japanese that efficiently conveys the core action without unnecessary words. It's front-loaded with the key information (deleting a trigger) and has zero waste, making it highly concise and well-structured for its minimal content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a destructive tool with no annotations, no output schema, and 4 required parameters, the description is incomplete. It doesn't address behavioral aspects like permanence or permissions, provide usage context, or explain return values. The high schema coverage helps with parameters, but overall, the description lacks sufficient detail for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with all four parameters documented in Japanese (accountId, containerId, workspaceId, triggerId). The description adds no additional parameter information beyond what's in the schema, such as format examples or relationships between IDs. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'トリガーを削除します' (Deletes a trigger) clearly states the action (delete) and resource (trigger), but it doesn't distinguish this tool from sibling tools like 'delete_tag' or 'delete_variable' that perform similar deletion operations on different resources. The purpose is understandable but lacks differentiation from related deletion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing triggerId from list_triggers or get_trigger), nor does it specify when deletion is appropriate versus updating with 'update_trigger'. There's no context about alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_variableC
変数を削除します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| variableId | Yes | 変数ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action is deletion, implying a destructive operation, but doesn't disclose critical behavioral traits such as whether deletion is permanent, requires specific permissions, has side effects, or returns any confirmation. This is a significant gap for a destructive tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence in Japanese ('変数を削除します'), which is front-loaded and wastes no words. It efficiently conveys the core action without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with 4 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, return values, error conditions, or usage context, leaving significant gaps for an AI agent to understand and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (accountId, containerId, workspaceId, variableId) documented in the schema. The description adds no additional meaning beyond the schema, such as explaining relationships between parameters or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '変数を削除します' (Deletes a variable) clearly states the action (delete) and target resource (variable), which is adequate. However, it doesn't differentiate from sibling tools like 'delete_tag' or 'delete_trigger' beyond the resource name, and it lacks specificity about what kind of variable (e.g., in what context or system).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing authentication first), when not to use it, or how it relates to sibling tools like 'get_variable' or 'update_variable'. The description is standalone without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auth_urlB
OAuth2認証URLを取得します。このURLにアクセスして認証を完了してください。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it 'gets' an OAuth2 authentication URL and that the URL should be accessed to complete authentication, but it doesn't disclose important behavioral traits like whether this initiates a new auth flow, if it requires prior setup, what happens after URL access, rate limits, or error conditions. For a security-related tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just two sentences in Japanese that directly state what the tool does and what to do with its output. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for a simple tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool returns (an OAuth2 authentication URL) and what to do with it (access to complete authentication). However, for an authentication tool in a security context, it should ideally provide more context about the OAuth2 flow, scopes, or how this integrates with other auth tools like 'authenticate' and 'check_auth_status'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain parameters since none exist. It appropriately focuses on the tool's purpose without attempting to document non-existent parameters. The baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'OAuth2認証URLを取得します' (Get OAuth2 authentication URL). It specifies the verb ('取得します' - get/obtain) and resource ('OAuth2認証URL' - OAuth2 authentication URL). However, it doesn't explicitly distinguish this from sibling tools like 'authenticate' or 'check_auth_status', which appear to be related authentication tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: 'このURLにアクセスして認証を完了してください' (Access this URL to complete authentication). This implies when to use the tool - as part of an OAuth2 flow to obtain an authentication URL. However, it doesn't explicitly state when to use this vs. alternatives like 'authenticate' or 'check_auth_status', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_containerC
指定されたコンテナの詳細を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('取得します'), but doesn't cover other important aspects like whether it requires authentication, what happens if the container doesn't exist, rate limits, or the format of returned details. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without any unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't explain what '詳細' (details) includes, whether authentication is required, error conditions, or how this differs from sibling list operations. The context signals show this is a simple tool, but more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (accountId and containerId) clearly documented in the schema. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the high coverage, resulting in the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('取得します' - get/retrieve) and resource ('指定されたコンテナの詳細' - details of the specified container), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_containers' or 'get_workspace', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_containers' (for listing multiple containers) or 'get_workspace' (for workspace details). It also doesn't mention prerequisites such as authentication or account access, which are implied by the required accountId parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagC
指定されたタグの詳細を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| tagId | Yes | タグID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool does (get details) but doesn't disclose behavioral traits: whether this is a read-only operation, what format/details are returned, error conditions, authentication requirements, rate limits, or whether it's idempotent. For a tool with 4 required parameters and no annotations, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose. It's appropriately sized for a simple retrieval tool and front-loads the essential information. There's zero wasted verbiage or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'tag details' include, how tags relate to containers/workspaces, authentication requirements, or error handling. For a tool in what appears to be a tag management system with multiple sibling tools, more context about the tag resource and its relationships would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 4 parameters clearly documented in Japanese (accountId, containerId, workspaceId, tagId). The description adds no parameter semantics beyond what the schema provides - it doesn't explain relationships between parameters (e.g., tagId is scoped within container/workspace) or provide examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'get details of a specified tag' (指定されたタグの詳細を取得します), which is a specific verb+resource combination. It distinguishes from sibling tools like list_tags (which lists multiple tags) and update_tag/delete_tag (which modify tags). However, it doesn't explicitly mention what 'details' include or differentiate from get_container/get_trigger/get_variable which fetch other resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like authentication), when to use get_tag versus list_tags (for single vs multiple tags), or any context about tag hierarchy (tags belong to containers/workspaces). The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_triggerC
指定されたトリガーの詳細を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| triggerId | Yes | トリガーID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with four required parameters and no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (four required IDs, no output schema, no annotations), the description is insufficient. It doesn't explain what 'details' include, how to obtain the required IDs, or the expected return format. For a retrieval tool in a system with authentication and multiple entities, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters documented in the schema. The description adds no additional parameter semantics beyond implying that 'triggerId' identifies the target, which is already clear from the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '指定されたトリガーの詳細を取得します' (Get details of the specified trigger) clearly states the verb '取得' (get) and resource 'トリガー' (trigger), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_triggers' or 'update_trigger', which would require more specificity about scope or granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like authentication, distinguish it from 'list_triggers' for bulk retrieval, or indicate that it's for fetching a single trigger by ID rather than creating or updating one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variableC
指定された変数の詳細を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| variableId | Yes | 変数ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions retrieving details but doesn't disclose behavioral aspects like whether it's read-only, requires authentication, has rate limits, or what format/details are returned. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 4 required parameters, the description is incomplete. It doesn't explain what 'details' are returned, error conditions, or dependencies on other tools (e.g., needing IDs from 'list_variables'). For a retrieval tool in this context, more information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters. The description doesn't add any meaning beyond the schema, such as explaining relationships between parameters or usage context. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - retrieve/get) and the resource ('変数の詳細' - variable details), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_variables' or 'get_container', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_variables' or other 'get_' tools. The description only states what it does, not when it's appropriate or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceC
指定されたワークスペースの詳細を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it retrieves details but doesn't disclose behavioral traits such as authentication requirements, rate limits, error handling, or what 'details' include. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a description that only states the basic purpose, this is incomplete. It lacks information on authentication, response format, error cases, and how it differs from sibling tools, which is insufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three required parameters (accountId, containerId, workspaceId). The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - retrieve/get) and resource ('ワークスペースの詳細' - workspace details), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_container' or 'list_workspaces' beyond specifying it retrieves details for a specific workspace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_workspaces' or 'get_container'. The description implies it's for retrieving details of a specific workspace but doesn't mention prerequisites (e.g., needing authentication) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsB
Google Tag Managerのアカウント一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states what the tool does ('retrieves account list') without describing how it behaves: no information about pagination, sorting, filtering, rate limits, authentication requirements, or what the return format looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple list operation with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimally complete but lacks important context. As a list operation with no annotations, it should ideally mention something about the return format or authentication requirements to help the agent understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters. Baseline for 0 parameters with full schema coverage is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - retrieves/get) and resource ('Google Tag Managerのアカウント一覧' - Google Tag Manager account list), making the purpose understandable. However, it doesn't explicitly differentiate from sibling list tools like list_containers or list_workspaces, which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., authentication), context for when listing accounts is appropriate, or comparison to other list tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_containersC
指定されたアカウントのコンテナ一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a retrieval operation ('取得します'), implying read-only behavior, but doesn't disclose any behavioral traits like pagination, rate limits, authentication requirements, error conditions, or what happens if the account doesn't exist. For a tool with zero annotation coverage, this is insufficient disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose. There's no wasted words or unnecessary elaboration. It's appropriately sized for a simple list operation and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with no annotations and no output schema, the description is incomplete. It doesn't explain what the output contains (e.g., container metadata, pagination tokens), authentication requirements, error handling, or how it differs from other list operations. Given the lack of structured data, the description should provide more context about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'accountId' documented in the schema. The description doesn't add any parameter semantics beyond what's in the schema - it mentions '指定されたアカウント' (specified account) which corresponds to the accountId parameter, but provides no additional context about format, validation, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - retrieves/gets) and resource ('コンテナ一覧' - container list) for a specified account. It distinguishes itself from siblings like 'get_container' (singular) and 'list_accounts' (different resource), but doesn't explicitly differentiate from other list operations like 'list_tags' or 'list_triggers' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (like authentication), nor does it differentiate from similar list operations for other resources. It simply states what the tool does without context about when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsC
指定されたワークスペースのタグ一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It indicates a read operation ('取得します') but doesn't disclose pagination, rate limits, permissions needed, error conditions, or what format the tag list returns. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose. It's appropriately sized for a simple list operation, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the returned tag list looks like, how results are structured, or any behavioral constraints. Given the sibling tools include various tag operations, more context about this tool's role would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning about the parameters beyond implying they specify a workspace. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - get/retrieve) and resource ('タグ一覧' - list of tags) with scope ('指定されたワークスペース' - specified workspace). It distinguishes from siblings like 'get_tag' (singular) and 'create_tag', but doesn't explicitly contrast with other list operations like 'list_containers' or 'list_workspaces'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. The description doesn't mention prerequisites (like authentication), when this should be used instead of 'get_tag', or how it relates to other list operations. It simply states what the tool does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_triggersC
指定されたワークスペースのトリガー一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It states it retrieves a list but doesn't disclose pagination, sorting, rate limits, permissions needed, or response format. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse. No unnecessary words or structural issues are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It covers the basic purpose but misses critical context: behavioral traits (e.g., read-only nature implied but not stated), output details, and usage guidelines. Given the complexity and lack of structured data, more information is needed for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (accountId, containerId, workspaceId) documented in the schema. The description adds no parameter-specific information beyond implying workspace context. Baseline 3 is appropriate since the schema handles parameter documentation adequately, but the description doesn't enhance understanding of parameter relationships or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - retrieve) and resource ('トリガー一覧' - list of triggers) with scope ('指定されたワークスペース' - specified workspace). It distinguishes from siblings like 'get_trigger' (singular) and 'create_trigger' by focusing on listing multiple triggers. However, it doesn't explicitly differentiate from other list tools like 'list_tags' or 'list_variables' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare with siblings like 'get_trigger' for single trigger retrieval, or specify use cases (e.g., browsing vs. detailed inspection). The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_variablesC
指定されたワークスペースの変数一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does ('get a list') without mentioning permissions needed, pagination behavior, rate limits, or response format. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose. It is appropriately sized and front-loaded with no wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a list operation with three required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like pagination, sorting, or error handling, nor does it explain the return values, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage (all three parameters are documented in Japanese), so the baseline is 3. The description adds no additional parameter semantics beyond what's in the schema, such as explaining relationships between accountId, containerId, and workspaceId, or providing examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '指定されたワークスペースの変数一覧を取得します' (Get a list of variables for the specified workspace) clearly states the verb ('取得します' - get) and resource ('変数一覧' - list of variables), but it doesn't distinguish this tool from its sibling 'get_variable' which retrieves a single variable. The purpose is understandable but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_variable' (for single variables) or other list tools (e.g., 'list_tags', 'list_triggers'). It mentions the workspace scope but offers no explicit usage context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesC
指定されたコンテナのワークスペース一覧を取得します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states this is a retrieval operation ('取得します'), implying it's read-only, but doesn't disclose behavioral traits like whether it requires authentication, returns paginated results, has rate limits, or what happens if parameters are invalid. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's function. It's front-loaded with the core action and resource, with no redundant information. Every word contributes to understanding the purpose, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with 2 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover authentication needs, error handling, return format, or behavioral constraints. For a tool in a server with authentication-related siblings (e.g., 'authenticate'), this omission is significant, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantic context beyond the input schema. It mentions '指定されたコンテナ' (specified container), which aligns with the 'containerId' parameter, but doesn't explain the relationship between 'accountId' and 'containerId' or provide usage examples. With 100% schema description coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - get/retrieve) and resource ('ワークスペース一覧' - list of workspaces) with a specific scope ('指定されたコンテナの' - of the specified container). It distinguishes from sibling tools like 'get_workspace' (singular) and 'list_containers' (different resource), though it doesn't explicitly contrast them. The purpose is specific but could be more precise about what a 'workspace' entails in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare to siblings like 'get_workspace' for single workspace retrieval, or indicate scenarios where listing workspaces is appropriate. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_authB
保存された認証情報をリセットします
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does ('reset saved authentication information') but doesn't explain what 'reset' entails (e.g., does it delete credentials, revoke tokens, require re-authentication?), potential side effects, or any permissions/rate limits needed. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Japanese that directly states the tool's purpose without any fluff or redundancy. It's front-loaded and efficiently conveys the core action, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no output schema, and no annotations, the description is minimally adequate for a simple reset operation. However, as a mutation tool with no behavioral details (e.g., what 'reset' means, effects on other operations), it lacks completeness for safe and informed use by an AI agent, especially compared to siblings like 'authenticate'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline of 4 is applied for zero-parameter tools when the schema is fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('reset') on a specific resource ('saved authentication information'), which is more specific than just restating the tool name. However, it doesn't distinguish this tool from potential sibling alternatives like 'delete_auth' or 'clear_auth', though no such siblings exist in the provided list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication must exist), consequences (e.g., what happens after reset), or related tools like 'authenticate' or 'check_auth_status' from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tagC
既存のタグを更新します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| tagId | Yes | タグID | |
| name | No | タグ名 | |
| type | No | タグタイプ | |
| parameter | No | タグのパラメータ配列 | |
| firingTriggerId | No | 発火トリガーIDの配列 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't specify whether this requires special permissions, what happens on success/failure, whether changes are reversible, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose with zero wasted words. It's appropriately sized for a basic update operation and front-loads the essential information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like permissions needed, error conditions, or what the update affects. While concise, it fails to provide the contextual information an agent needs to use this tool effectively and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's already in the schema (which has 100% coverage). It doesn't explain relationships between parameters like accountId/containerId/workspaceId hierarchy, what 'tag type' means, or how 'parameter array' should be structured. With complete schema coverage, baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update') and resource ('existing tag') in Japanese, making the purpose immediately understandable. It distinguishes itself from sibling tools like 'create_tag' and 'delete_tag' by specifying it's for updating rather than creating or deleting. However, it doesn't specify what aspects of the tag can be updated beyond the general concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing tag), when not to use it, or direct comparisons to sibling tools like 'create_tag' or 'delete_tag'. The agent must infer usage from the tool name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_triggerC
既存のトリガーを更新します。filter、autoEventFilter、waitForTagsなどのすべての設定を更新できます。
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| triggerId | Yes | トリガーID | |
| name | No | トリガー名 | |
| type | No | トリガータイプ | |
| customEventFilter | No | カスタムイベントフィルタ(CUSTOM_EVENTタイプ用) | |
| filter | No | フィルタ(linkClick、clickなどのタイプ用) | |
| autoEventFilter | No | 自動イベントフィルタ(linkClickタイプ用) | |
| waitForTags | No | タグの待機を有効化(linkClickタイプ用) | |
| checkValidation | No | バリデーションチェック(linkClickタイプ用) | |
| waitForTagsTimeout | No | タグ待機タイムアウト(ミリ秒、linkClickタイプ用) | |
| formId | No | フォームID(formSubmissionタイプ用) | |
| formClasses | No | フォームクラス(formSubmissionタイプ用) | |
| verticalThreshold | No | 垂直スクロール閾値(パーセント、scrollDepthタイプ用) | |
| horizontalThreshold | No | 水平スクロール閾値(パーセント、scrollDepthタイプ用) | |
| selector | No | CSSセレクタ(elementVisibilityタイプ用) | |
| visiblePercentageThreshold | No | 表示割合閾値(パーセント、elementVisibilityタイプ用) | |
| continuousTimeMinMilliseconds | No | 連続表示時間(ミリ秒、elementVisibilityタイプ用) | |
| videoId | No | YouTube動画ID(youtubeVideoタイプ用) | |
| enableTriggerOnVideoStart | No | 動画開始時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoProgress | No | 動画再生中に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoComplete | No | 動画完了時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoPause | No | 動画一時停止時に発火(youtubeVideoタイプ用) | |
| enableTriggerOnVideoSeek | No | 動画シーク時に発火(youtubeVideoタイプ用) | |
| interval | No | インターバル(ミリ秒、timerタイプ用) | |
| limit | No | 発火回数の上限(timerタイプ用) | |
| startTimerOn | No | タイマー開始タイミング(timerタイプ用、例: "windowLoad", "domReady") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'update' implies a mutation operation, the description doesn't address critical behavioral aspects: whether this requires specific permissions, if changes are reversible, what happens to unspecified fields, error conditions, or rate limits. It mentions what CAN be updated but not HOW the update behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise - a single sentence that gets straight to the point. It's front-loaded with the core purpose and provides examples of updatable settings. However, the 'etc.' at the end is slightly vague, and the structure could be improved with clearer separation between purpose and capability examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 28 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what constitutes a successful update, error responses, side effects, or dependencies between parameters. The agent lacks crucial context about how this operation behaves in practice despite the comprehensive parameter documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 28 parameters thoroughly. The description adds minimal value by mentioning 'filter, autoEventFilter, waitForTags, etc.' as examples of updatable settings, but this doesn't provide semantic context beyond what's in the parameter descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('update') and resource ('existing trigger'), making the purpose understandable. It distinguishes from siblings like 'create_trigger' by specifying it updates existing triggers rather than creating new ones. However, it doesn't explicitly differentiate from other update tools like 'update_tag' or 'update_variable' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing trigger ID), when-not-to-use scenarios, or how it differs from other update operations. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_variableC
既存の変数を更新します
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | アカウントID | |
| containerId | Yes | コンテナID | |
| workspaceId | Yes | ワークスペースID | |
| variableId | Yes | 変数ID | |
| name | No | 変数名 | |
| type | No | 変数タイプ | |
| parameter | No | 変数のパラメータ配列 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While '更新します' (updates) implies a mutation, the description doesn't specify permissions required, whether changes are reversible, rate limits, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, mutation operation) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'updating a variable' entails (e.g., which fields can be modified, side effects), leaving critical behavioral and output details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters (e.g., accountId, variableId, name). The description doesn't add any additional meaning about parameter usage, dependencies, or examples beyond what's in the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '既存の変数を更新します' (Updates an existing variable) clearly states the verb (update) and resource (variable), making the purpose understandable. However, it doesn't differentiate from sibling tools like update_tag or update_trigger, which follow the same pattern for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like create_variable or get_variable. It doesn't mention prerequisites (e.g., needing an existing variable ID) or contextual constraints, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
26 tool updates
- First observed
authenticate - First observed
check_auth_status - First observed
create_container - First observed
create_tag - First observed
create_trigger - First observed
create_variable - First observed
create_version - First observed
delete_tag - First observed
delete_trigger - First observed
delete_variable - First observed
get_auth_url - First observed
get_container - First observed
get_tag - First observed
get_trigger - First observed
get_variable - First observed
get_workspace - First observed
list_accounts - First observed
list_containers - First observed
list_tags - First observed
list_triggers - First observed
list_variables - First observed
list_workspaces - First observed
reset_auth - First observed
update_tag - First observed
update_trigger - First observed
update_variable
TDQS
Every tool has a clearly distinct purpose targeting specific resources and actions in Google Tag Manager, such as create_tag, get_tag, update_tag, and delete_tag for tags, with no overlap or ambiguity. The tools are organized around core entities like accounts, containers, workspaces, tags, triggers, and variables, making it easy for an agent to select the correct one.
Tool names follow a consistent verb_noun pattern throughout, such as create_container, get_tag, list_variables, and update_trigger, with no deviations in style or convention. This predictability enhances readability and usability for agents interacting with the server.
With 26 tools, the count is on the higher side for a typical MCP server, which may feel heavy and potentially overwhelming for agents. While it covers a comprehensive domain, a more streamlined set could improve coherence without sacrificing functionality.
The tool set provides complete CRUD/lifecycle coverage for Google Tag Manager entities, including authentication, account management, and operations for containers, workspaces, tags, triggers, and variables. There are no obvious gaps, and agents can perform all essential workflows without dead ends.
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 Connectors
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tag…
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
130
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables interaction with Google Tag Manager through its API with built-in Google OAuth authentication. Allows managing GTM containers, tags, triggers, and variables through natural language.448210Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables natural language management of Google Tag Manager accounts, containers, tags, triggers, variables, and versions, including creation, update, and publishing.Creative Commons Zero v1.0 Universal
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage Google Tag Manager accounts, containers, workspaces, tags, triggers, variables, and versions via the Tag Manager API v2.2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables LLMs to manage Google Tag Manager containers through exported JSON files, with full CRUD operations on tags, triggers, variables, and folders, plus validation and analysis tools.20MIT
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/ambit1977/GTM-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server