Skip to main content
Glama
OrbiAds

OrbiAds

Official
by OrbiAds

OrbiAds — Google Ad Manager MCP Server

English · Français

MCP Protocol GAM API Version PyPI Python License Docs GitHub stars Works with Claude Works with ChatGPT Works with Gemini Glama MCP.so Smithery

OrbiAds is a hosted Google Ad Manager MCP server that gives AI assistants — Claude, ChatGPT, Gemini, Cursor, and OpenAI Codex — direct, natural-language access to Google Ad Manager. It covers 270+ operations across campaigns, orders, line items, creatives, inventory, targeting, and reporting, on the current GAM API (v202605), with OAuth and confirm-before-write guardrails.

→ Get started free at orbiads.com · ★ Star this repo


Try in 3 Minutes

Hosted MCP, no local install

  1. Create a free OrbiAds account at orbiads.com and connect Google Ad Manager.

  2. Add this MCP endpoint to Claude, ChatGPT, Gemini, Cursor, Codex, or Warp:

    https://orbiads.com/mcp
  3. Ask your agent:

    Connect to my GAM account and show me my active networks.

CLI smoke test

pip install orbiads-cli
orbiads auth login
orbiads network info

Want a deeper setup path? Start with the CLI guide or the agent install guides.


Related MCP server: Google Ad Manager MCP Server

Trust Signals

Signal

Status

Link

Public repo

MIT licensed mirror of the OrbiAds MCP distribution

LICENSE

PyPI CLI

Published as orbiads-cli for terminal and CI workflows

pypi.org/project/orbiads-cli

Hosted MCP

Remote Streamable HTTP endpoint with OAuth

https://orbiads.com/mcp

Glama

Indexed MCP registry page

glama.ai

MCP.so

Indexed MCP directory page

mcp.so

Official MCP registry

server.json manifest ready for registry publication

server.json

Smithery

Submission target prepared for hosted/external MCP listing

smithery.ai/new

Safety model

Plan → confirm → execute on write actions

Safety docs


Two Ways to Connect

OrbiAds offers two integration methods — choose the one that fits your workflow.

Option A: MCP Server (AI agents)

Connect your AI assistant (Claude, ChatGPT, Gemini) to GAM via the hosted MCP endpoint. Conversational, guided, zero-install.

MCP endpoint: https://orbiads.com/mcp

Option B: CLI (terminal & scripts)

A lightweight Python CLI for developers, CI/CD pipelines, and headless automation. Same API, same credits, same guardrails.

pip install orbiads-cli
orbiads auth login
orbiads network info
IMPORTANT

Windows/macOS/Linux PATH Warning: If you install the CLI via pip (especially with --user), ensure the Python scripts directory is added to your user PATH. Without this, your terminal and local AI agents (like Claude Code, Cursor, or Gemini) will fail to find or execute the orbiads command. See the Troubleshooting section in the CLI Guide for quick setup commands.

Comparison

Criteria

MCP Server

CLI

Interface

AI agent (Claude, ChatGPT, Gemini)

Terminal / command line

Installation

URL to paste into agent settings

pip install orbiads-cli

Authentication

OAuth via browser (automatic)

OAuth Device Flow (code displayed)

Best for

Exploration, conversations, guided workflows

Scripts, CI/CD, headless automation

Output format

Natural language via the agent

JSON or structured table

Credits

Same consumption grid

Same consumption grid

Offline

No — requires internet

No — requires internet

Python required

No

Yes (3.10+)

Both methods share the same backend, credits, and safety guardrails.

CLI Quick Reference

Command

Description

orbiads auth login

Authenticate via Google OAuth Device Flow

orbiads auth status

Check authentication status

orbiads network info

Show current GAM network details

orbiads network list

List accessible GAM networks

orbiads orders list

List orders in the network

orbiads line-items list --order ID

List line items for an order

orbiads creatives list

List creatives

orbiads inventory ad-units

List ad units

orbiads forecast check --ad-unit ID

Check inventory availability

orbiads report run --template ID

Run a delivery report

Full command reference: orbiads.com/docs/cli/commands


Installation Guide

OrbiAds offers three integration pathways depending on your environment.

1. Zero-Install MCP Server (ChatGPT, Gemini, Claude Desktop)

Connect your AI assistant to our hosted server using the Model Context Protocol:

  • Claude Desktop: Add this to your claude_desktop_config.json:

    {
      "mcpServers": {
        "orbiads": {
          "type": "http",
          "url": "https://orbiads.com/mcp"
        }
      }
    }
  • Gemini / AI Studio: Go to Tools → MCP configuration → Add https://orbiads.com/mcp

  • ChatGPT: Go to Settings → Connectors → Add connector → MCP URL: https://orbiads.com/mcp

  • GLAMA / MCP Registry: Access, test, and connect the server directly in your browser via glama.ai/mcp/servers/OrbiAds/Orbiads-GAM-MCP

  • Other environments (Cursor, Codex, Warp): Add the https://orbiads.com/mcp endpoint to your configuration and copy AGENTS.md to your project root.

2. Claude Code Plugin (Slash Commands)

Add the /adops command set directly into your Claude Code CLI terminal:

claude plugin install orbiads

3. Agent Skills (Structured Workflows)

Install our markdown-based guidelines permanently into Claude Code's memory:

  1. Clone this repository locally.

  2. Run the skill installer:

    ./install.sh skills --copy

This copies our 6 consolidated skill files to your ~/.claude/skills/ directory. Claude Code will automatically leverage them to prevent hallucinations and strictly apply the plan-before-mutate workflow.

→ Installation guides: Claude · ChatGPT · Gemini · OpenAI Codex


What is OrbiAds?

OrbiAds is a hosted MCP server that connects your AI assistant directly to Google Ad Manager (GAM). Instead of clicking through the GAM interface or writing API scripts, you describe what you want in plain language — OrbiAds handles the API calls, guardrails, and audit trail.

You: "Check inventory availability on the homepage banner for a 300x250 in France next week"
OrbiAds: [runs forecast] → Available: 1.2M impressions. Pressure: low. Safe to traffic.

You: "Create the line item for Renault, €15 CPM, Monday to Friday"
OrbiAds: [applies guardrails] → Preview ready. Confirm to push?

No scripts. No API tokens to manage. No switching tabs.


Who is this for?

  • AdOps managers who traffic campaigns daily and want to move faster without making mistakes

  • Publishers who manage their own GAM network and want AI-assisted workflows

  • Media agencies running multiple GAM accounts who want a consistent, auditable process

  • Developers building AdOps automation on top of Claude, ChatGPT, or Gemini


Supported AI Platforms

Platform

Setup guide

Mode

Claude (Desktop / claude.ai / Claude Code)

docs/install/claude.md

Plugin + MCP remote

ChatGPT (Pro connector)

docs/install/chatgpt.md

MCP remote (HTTP)

Gemini

docs/install/gemini.md

MCP remote

GLAMA (MCP registry)

glama.ai/mcp/servers/OrbiAds/Orbiads-GAM-MCP

MCP registry

Cursor / Codex / Warp / other

AGENTS.md

AGENTS.md + MCP wiring

All platforms connect to the same hosted MCP endpoint at https://orbiads.com/mcp.


7 Slash Commands

After installing the plugin, these /adops commands are available directly in Claude Code.

Command

What it does

/adops campaign

Read live state, plan deployment, dry-run (ExecutionPlan), deploy, pause, rollback — with mandatory plan→confirm→execute gate

/adops audit

Multi-dimensional account audit: delivery, inventory, security, creatives, billing

/adops report

Custom reports, delivery queries, CSV export, billing summaries, forecasts

/adops deal

PMP deals, private auctions, Marketplace PG/PD proposals

/adops creative

Upload creatives, QA compliance, SSL validation, preview URLs, line item association

/adops inventory

Browse ad units, manage placements and targeting taxonomy, run blueprints

/adops admin

Teams, sites, labels, custom fields, network settings (MCP surface only)

What's Inside (MCP Tools & Skills)

The OrbiAds surface maps the Google Ad Manager API into parent tools and hundreds of actions, organized into 6 core domain Agent Skills plus an orchestrator, to keep context usage clean. See docs/tool-matrix/README.md for the live generated tool and action counts.

Click on any domain below to see which tools and capabilities are included:

  • campaign — Read live campaign state, plan deployment, dry-run, deploy, pause, and rollback campaigns.

  • orders — Create and list orders, contacts, and roles.

  • line_items — Define line item delivery rules, CPMs, and targeting logic.

  • creatives — Upload creatives (images, HTML5, video/audio) and configure native styles.

  • creative_assets — Manage associated image and file assets.

  • creative_qa — Audit click-trackers, perform compliance scans, and validate SSL certificates.

  • creative_wrapper_skill — Manage third-party wrappers and delivery presets.

  • formats — Discover and configure ad creative formats.

  • jobs & gam_jobs — Monitor async campaign compilation and deployment workflows.

  • inventory — Retrieve ad unit trees, sizes, and generate ads.json manifests.

  • placements — Create, update, and list ad placement groups.

  • targeting — Manage custom targeting keys/values, countries, and categories.

  • audiences — Retrieve and modify first-party audience segments.

  • blueprint — Generate and push structured network inventory blueprints.

  • reporting — Run custom reports from templates, check line item delivery, and integrate GA4.

  • preview — Verify inventory coverage and export preview URLs.

  • pql — Run raw PQL database queries.

  • deals — Manage PMP deals, private auctions, and marketplace buyers.

  • companies — Manage agency and advertiser company profiles.

  • gam_admin — Access advanced fields, network labels, teams, and site records.

  • gam_features — Query active Google Ad Manager beta and system features.

  • network — List accessible networks and switch active network context.

  • settings — Configure default CPMs, pacing, and brand naming templates.

  • tenant_catalog — Access tenant-specific catalogs.

  • audit_skill — Run automated security, hygiene, and wrapper coverage audits.

  • billing — Fetch credit balances and transaction histories.

  • audit — Search network audit logs.

See docs/tool-matrix/README.md for the complete parity matrix detailing exact costs, writes, and parameters for all 270+ actions.


Safety by Design

Every write action requires an explicit ExecutionPlan preview and confirmation token. No campaign goes live by accident.

  • Plan-before-mutate on campaign, deal, and product writes — preview the signed ExecutionPlan before you push

  • Dry-run mode on all deployment actions — confirmationToken TTL 300 seconds

  • Forecast gate before inventory commits — availability verified upfront

  • Audit trail on every action — who did what, when, with what result

  • Credit guard — read operations are always free, writes deduct credits transparently


Quick Start (3 steps)

1. Create your free account

Go to orbiads.com and sign up. You get 5 free credits — no credit card required.

2. Connect Google Ad Manager

From the OrbiAds dashboard, click Connect GAM and authorize with your Google account. OrbiAds uses OAuth — your GAM credentials never leave Google's infrastructure.

3. Configure your AI assistant

Pick your platform and follow the guide:

Then start with:

"Connect to my GAM account and show me my active networks"


MCP Server Details

Property

Value

Endpoint

https://orbiads.com/mcp

Transport

streamable-http (default) · sse

Auth

OAuth 2.0 — Google account via OrbiAds

GAM API version

v202605

MCP Protocol

2025-03-26


Repository Structure

skills/           ← orchestrator skill + 6 consolidated dual-surface domain skills (generated)
                     Each domain skill has SKILL.md (thin) + references/actions.md (full catalogue)
commands/         ← 7 /adops slash commands for Claude Code
agents/           ← Parallel audit subagents (audit-delivery, audit-inventory, …)
hooks/            ← Claude Code hooks (hooks.json)
cli/              ← OrbiAds CLI package (pip install orbiads-cli)
docs/             ← Installation guides, tool matrix, custom-skill authoring guide
_docs/            ← Internal: legacy tool mapping, anti-collision rules
.claude-plugin/   ← Claude plugin manifest (plugin.json, marketplace.json)
AGENTS.md         ← Cross-LLM contract for Cursor, Codex, Gemini, Warp, etc.
CLAUDE.md         ← Claude Code project guidance

Skills and the tool matrix are generated from the backend catalogue — do not hand-edit them. See CLAUDE.md for the generated vs. hand-authored breakdown.


Pricing

Plan

Price

Credits

Trial

Free

5 credits (no card)

Starter

€39/month

50 credits/month

Early Access

€29/month ← locked for life

50 credits/month

Pack S

€29 one-time

+50 credits

Pack L

€45 one-time

+100 credits

Reads are always free. Credits are only consumed on write and deploy operations.

Start free →


License

The contents of this repository — distribution scaffold, skills, agents, workflows, JSON schemas, CLI client, platform integration manifests, documentation, and examples — are released under the MIT License.

The OrbiAds MCP server backend and Cloud Run services that the hosted endpoint at https://orbiads.com/mcp connects to are NOT in this repository and are governed by separate proprietary terms — see terms at orbiads.com.

Available Tools

47 tools
ad_review_centerAInspect

Search and moderate Ad Exchange creatives in GAM Ad Review Center.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: search = 0 credits. allow_batch/block_batch are write operations. OUTPUT: search returns Ad Review creative results. Batch actions return moderation summaries. WHEN TO USE: Use ad_review_center to find, allow, or block marketplace creatives before they serve on publisher inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • search: Search Ad Review Center creatives by web property, status, advertiser, or review filters. • allow_batch: Allow multiple reviewed ads in one write operation. Requires ad IDs. • block_batch: Block multiple reviewed ads in one write operation. Requires ad IDs and a block reason.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that operations are mixed (read/write), requires OAuth 2.0, and notes credit costs for read vs write. It describes what each action does but lacks details on side effects, idempotency, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using short sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). Every sentence adds value; no filler. Front-loaded with core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description covers key aspects: purpose, sub-actions, auth, credit costs, and output type. It lacks details on pagination, error handling, and search filters, but is fairly complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with detailed enum descriptions for 'action' and clear type for 'network_code'. The description adds overall context but does not enhance parameter meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it is for searching and moderating Ad Exchange creatives in GAM Ad Review Center. The verb-resource pair is specific ('search and moderate' + 'Ad Exchange creatives'), and the context ('GAM Ad Review Center') clearly distinguishes it from sibling tools like 'creatives' which handle different ad operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section that specifies the scenario: finding, allowing, or blocking marketplace creatives before they serve. It also notes the mode (mixed), auth requirement, and credit costs. However, it does not explicitly state when not to use this tool or mention alternative tools for other ad operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audiencesAInspect

Manage GAM first-party audience segments.

MODE: mixed (read + write) AUTH: OAuth 2.0 required — call initiate_gam_auth first CREDITS: list/get = 0 credits (free). create_audience_segment = 0.5 credits and requires a confirmation_token. OUTPUT: Returns audience segment objects with id, name, status, membershipExpirationDays, and eligibilityCriteria. SIDE EFFECTS: create/update modify GAM network data. perform_audience_segment_action can activate or deactivate segments. WHEN TO USE: Use this tool for managing first-party data segments (CRM lists, pixel-based audiences). For targeting existing segments on line items, use the targeting tool instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_audience_segments: List all audience segments on the network. Read-only, free. Returns paginated list with id, name, type, and status. • get_audience_segment: Get a specific audience segment by ID. Read-only, free. Requires segment_id parameter. • create_audience_segment: Create a new first-party audience segment. Write operation, costs 0.5 credits, requires confirmation_token. Returns the created segment with its new ID. • update_audience_segment: Update an existing audience segment's name, description, or membership rules. Write, free. Requires segment_id. • perform_audience_segment_action: Activate or deactivate a segment. Write, free. Requires segment_id and action type (ACTIVATE or DEACTIVATE).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: declares MODE (mixed read+write), AUTH (OAuth 2.0), CREDITS (free list/get; create costs 0.5 credits and needs confirmation_token), OUTPUT (returns segments with specific fields), and SIDE EFFECTS (modifies data, can activate/deactivate). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, SIDE EFFECTS, WHEN TO USE) and each sentence provides relevant information. It is comprehensive but not overly verbose, earning high marks with a slight deduction for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple actions, two parameters, no output schema), the description is remarkably complete. It covers usage context, authentication, credits, side effects, and output format. The only minor omission is a concrete example of confirmation_token handling, but overall it meets the needs for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters. The description adds significant value: for the action parameter, it details each enum value's behavior (read/write, cost, required sub-params). For network_code, it explains its purpose and how to obtain it. This goes well beyond the schema's minimal description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage GAM first-party audience segments' which is a specific verb+resource. It distinguishes from sibling tools by explicitly noting that for targeting segments on line items, one should use the targeting tool instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a dedicated 'WHEN TO USE' section explaining when to use this tool (managing first-party data segments) and when not (use targeting tool). Also mentions AUTH requirements (initiate_gam_auth first) and CREDIT costs, giving clear context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auditAInspect

Query the GAM audit log for change history.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns a list of AuditEvent objects with entityId, entityType, changeType, userId, timestamp, and a diff of changed fields. WHEN TO USE: Use audit when you need to trace who changed what and when on a specific GAM entity (order, line item, creative, ad unit). NOT the same as audit_skill: audit queries the GAM change log; audit_skill runs proactive quality/compliance checks. NOT the same as gam_audit: gam_audit runs a full network-wide compliance report; audit queries history for a specific entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • query_audit_log: Execute a filtered query against the GAM audit log. Filterable by entityId, entityType, userId, and date range. Returns a paginated list of audit events.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses read-only mode, OAuth requirement, zero cost, and output format with fields. However, pagination is only mentioned in the input schema's action description, not in the main description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections for mode, auth, credits, output, and usage guidance. Some redundancy in the 'NOT' comparisons, but overall efficient and front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential aspects: purpose, when to use, authentication, cost, output fields, and distinctions from similar tools. Lacks explicit pagination behavior and rate limits, but schema hints at pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by listing filterable fields (entityId, entityType, userId, date range) that are only partially described in the schema's action parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states tool queries GAM audit log for change history, with explicit verb 'Query' and resource 'GAM audit log'. Differentiates from siblings audit_skill and gam_audit with specific contrasts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use: 'when you need to trace who changed what and when on a specific GAM entity'. Also specifies what it is not, naming alternative tools (audit_skill, gam_audit) and their purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_skillAInspect

OrbiAds proactive audit suite — six sub-actions for quality and compliance analysis.

MODE: read-only (all actions are non-destructive analysis) AUTH: OAuth 2.0 required CREDITS: 0 (all actions free) OUTPUT: Returns a structured markdown report with findings, severity levels (CRITICAL/WARNING/INFO), and recommended remediations. WHEN TO USE: Use audit_skill to proactively detect problems before they impact delivery. • Use hygiene_check for routine health checks (orphaned creatives, stalled orders, mismatched budgets). • Use standards_baseline to verify compliance against a named framework (ISO 27001 ad-ops, IAB, NIST). • Use wrapper_coverage to audit creative wrapper deployment across ad units. • Use estimate_cost to preview credit costs before running expensive operations. NOT the same as audit: audit queries GAM change history; audit_skill analyzes current state. NOT the same as gam_audit: gam_audit is a convenience wrapper combining hygiene_check + ops_diagnostic + standards_baseline in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • hygiene_check: Scan the network for hygiene issues: orphaned creatives, line items past end date still active, orders with no live line items, creative-line item association gaps. Returns severity-tagged findings. • ops_diagnostic: Diagnose operational delivery problems: underdelivery, pacing issues, targeting conflicts, creative disapprovals. Correlates data across orders/line items/creatives. • standards_baseline: Evaluate the network against a named compliance framework. Requires framework parameter: orbiads_baseline | iso27001_adops | iab_anti_tampering | nist_csf. Returns a pass/fail checklist per control. • wrapper_coverage: Audit CreativeWrapper coverage across ad units and placements. Detects missing wrappers, double-wrapping, and wrapper misconfiguration. • estimate_cost: Preview the credit cost of an operation before executing it. Requires operation_name and parameters. Returns cost in credits and explanation. • export_authoring: Export an authoring-audit CSV of GAM entities (teams, users, custom fields, labels) for governance and compliance reporting. Returns a download URL or inline CSV.
frameworkNoCompliance framework for standards_baseline action. Required when action=standards_baseline.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and excels: it declares read-only mode, OAuth 2.0 auth, zero credit cost, and structured markdown output with severity levels. This far exceeds typical transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections, but somewhat verbose with bullet points that partially duplicate schema information. Still efficient and front-loaded with key facts.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description fully explains the output format. It also covers authentication, cost, per-action details, prerequisites, and sibling comparisons, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100% with detailed parameter descriptions, the tool description adds valuable usage context and when-to-use guidance for each action, going beyond mere schema repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a proactive audit suite with six sub-actions for quality and compliance analysis. It explicitly distinguishes from sibling tools 'audit' and 'gam_audit', making its unique purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section provides specific guidance for each sub-action, and the description contrasts audit_skill with similar tools, giving clear criteria for when to choose it over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

billingAInspect

Inspect OrbiAds account billing — credit balance and transaction history.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: get_credit_balance returns {balance: float, plan: string, monthly_allowance: int}. list_transactions returns paginated list of {date, type, amount, description, balance_after}. WHEN TO USE: Call get_credit_balance before write operations to confirm sufficient credits. Use list_transactions for usage auditing.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_credit_balance: Return the current credit balance, plan type, and monthly allowance for the authenticated tenant. • list_transactions: List credit transaction history (debits for write operations, credits for plan renewal/top-ups). Filterable by date range.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite lacking annotations, the description discloses critical behavioral traits: MODE: read-only (safe), AUTH: OAuth 2.0 required, CREDITS: 0 (free), and OUTPUT structure for both actions. This fully informs the agent of what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and is concise. Every sentence provides valuable information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two sub-operations, no output schema), the description is complete. It covers both actions, describes return structures, states authentication requirements, and provides usage context. No gaps remain for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with detailed descriptions for both parameters (action with enum, network_code). The description does not add additional semantic meaning beyond what the schema offers, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: inspecting OrbiAds account billing, specifically credit balance and transaction history. It uses a specific verb ('Inspect') and identifies the resource, effectively distinguishing it from sibling tools like 'audit' or 'campaign' which have different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use each sub-operation: 'Call get_credit_balance before write operations to confirm sufficient credits. Use list_transactions for usage auditing.' This clearly states the context and purpose, helping the agent choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blueprintAInspect

Manage the tenant inventory blueprint — the canonical definition of ad formats, positions, key-values, and brand settings used to generate GAM campaigns.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes (save_blueprint, save_preferences, add/remove operations) = 0 credits but modify persistent tenant configuration. OUTPUT: get_active_blueprint returns the full blueprint JSON with formats, positions, keyValues, brand. list_templates returns available campaign templates. SIDE EFFECTS: Changes to the blueprint affect all future campaign deployments that reference it. Removing a format or position does not remove existing GAM line items. WHEN TO USE: Use blueprint to define or update the standard inventory structure before running campaign. Use formats tool for the Custom Format Registry (creative format recipes, not inventory positions).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_active_preferences: Read the current tenant preferences (naming conventions, default targeting, delivery settings). • get_active_blueprint: Read the full active inventory blueprint JSON. • save_blueprint: Replace the full blueprint with a new version. Write. Validate with a dry-run before saving to production. • save_preferences: Update tenant preferences. Write. • add_format: Add a creative format to the blueprint. Write. Requires format_code and size parameters. • remove_format: Remove a creative format from the blueprint. Write. Does not remove existing GAM creatives. • add_position: Add an inventory position (ad unit + targeting combination) to the blueprint. Write. • remove_position: Remove an inventory position from the blueprint. Write. Does not archive existing ad units. • add_key_value: Add a custom targeting key-value definition to the blueprint. Write. • remove_key_value: Remove a key-value definition from the blueprint. Write. • update_brand: Update brand metadata (name, logo, primary color) attached to the blueprint. Write. • update_platforms: Update the list of target platforms (desktop, mobile_web, app_ios, app_android) in the blueprint. Write. • list_templates: List all available campaign templates (display, native, video presets). Read-only.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers mode (mixed read/write), auth requirements, credits (0 for writes but modifies config), and side effects (changes affect future campaigns). Could be slightly more explicit about write reversibility, but overall strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections like MODE, AUTH, OUTPUT, SIDE EFFECTS, and WHEN TO USE. While slightly lengthy, every sentence adds value, and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the two parameters and 100% schema coverage, the description provides complete context for all actions, including output descriptions for key sub-operations. No output schema is needed as the tool returns blueprint JSON.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed enum descriptions. The description adds extra context beyond the schema (e.g., 'Validate with a dry-run before saving to production'), raising the baseline from 3 to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages the tenant inventory blueprint, specifying it covers ad formats, positions, key-values, and brand settings. It also distinguishes from the 'formats' sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly states when to use this tool vs. alternatives (formats tool), providing clear guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

campaignAInspect

Orchestrate GAM campaign lifecycle — the primary write surface for creating and managing campaigns.

MODE: write-heavy (most actions modify GAM data) AUTH: OAuth 2.0 required CREDITS: deploy = 2–5 credits depending on line item count. Other write operations = 0.5–1 credit. Reads = 0. CONFIRMATION TOKEN: create_draft, deploy and rollback require a confirmation_token obtained from a prior dry-run preview. This prevents accidental deployment. DEPLOY WORKFLOW: create_draft creates a Firestore campaigns/{campaignId} document from MCP. deploy accepts either campaignId (modern campaigns/{id}) or jobId (legacy jobs/{id}). For direct GAM-only display trafficking, use create_display. OUTPUT: deploy returns {campaign_id, order_id, line_item_ids[], creative_ids[], status}. rollback returns {reverted_to_version, entities_affected}. SIDE EFFECTS: deploy creates Order + LineItems + Creatives + LICAs in GAM — irreversible without rollback. rollback archives the current version and restores the previous one. WHEN TO USE: Use campaign for end-to-end campaign creation from a blueprint. Use line_items or orders for surgical updates to existing campaigns. DESTRUCTIVE: rollback and archive are non-trivial — they modify live GAM entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoLegacy Firestore jobs/{jobId} document. deploy also accepts modern campaignId.
actionYesSub-operation to perform: • deploy: Deploy a complete campaign to GAM: accepts campaignId from create_draft/REST or legacy jobId, plus confirmation_token. Creates Order, LineItems, Creatives, and LICAs. • create_draft: Create an OrbiAds campaigns/{campaignId} draft from MCP without using the web UI. Write, requires confirmation_token. • update: Update an existing campaign's metadata, budget, or targeting without full redeployment. Write. • ensure_template: Ensure a native ad template exists in GAM, creating it if absent. Idempotent write. • create_native_style: Create a GAM native ad style for use in native campaigns. Write. • create_line_items_batch: Create multiple line items under an existing order in one call. Write. Faster than individual line item creation. • create_licas: Create LineItem-Creative Associations (LICAs) to link creatives to line items. Write. • create_display: Create a standard display ad campaign (order + line items + creatives) from a template. Write, requires confirmation_token. • rollback: Revert a campaign to its previous deployed version. Destructive write — archives current version. Requires confirmation_token. • pause: Pause all active line items in a campaign. Write. • archive: Archive a campaign (order + line items). Destructive — removes from active serving. Requires confirmation_token.
campaign_idNoOrbiAds campaigns/{campaignId} identifier, accepted by deploy and campaign lifecycle actions.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.
confirmation_tokenNoWrite-confirmation token from a prior estimate/preview call. Required for deploy, rollback, archive.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses write-heavy nature, OAuth requirement, credit costs, confirmation token necessity, side effects (irreversible deployment), and destructive actions (rollback, archive). This goes well beyond minimal disclosure and fully informs the agent of behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, etc.) and front-loaded with the key purpose. It is fairly long but every sentence adds value. Minor redundancy in repeating confirmation token info across sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explicitly states the output format for deploy and rollback. It also covers side effects, destructive actions, and prerequisites. For a complex tool with many sub-operations, this is comprehensive and complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds workflow context (e.g., why confirmation_token is needed, how deploy works) that complements the schema's parameter descriptions. While the schema already details each parameter, the description's additional context justifies a slightly higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Orchestrate GAM campaign lifecycle — the primary write surface for creating and managing campaigns.' It uses a specific verb ('orchestrate') and resource ('GAM campaign lifecycle'), and distinguishes itself from sibling tools like line_items and orders by specifying when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use campaign for end-to-end campaign creation from a blueprint. Use line_items or orders for surgical updates to existing campaigns.' This tells the agent when to use this tool versus alternatives, which is exactly what this dimension requires.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_credentialsAInspect

Verify that the GAM OAuth credentials for a network are still valid and have required scopes.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns {valid: boolean, scopes: string[], expires_at: datetime, error?: string} WHEN TO USE: Call at the start of a session to verify credentials before running operations. If valid=false, call initiate_gam_auth to re-authorize.

ParametersJSON Schema
NameRequiredDescriptionDefault
network_codeYesGAM network code to check.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavior: 'MODE: read-only', 'AUTH: OAuth 2.0 required', 'CREDITS: 0 (free)', and details the output format. This provides complete transparency for a read-only credential check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). Every sentence adds value without redundancy. It is front-loaded with the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description specifies the exact output structure. Combined with auth, mode, and usage guidance, the description is complete for this simple credential-checking tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter fully described). The description does not add extra meaning beyond the schema; it simply mentions 'network' in the purpose. Baseline 3 is appropriate as the schema already documents the parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Verify that the GAM OAuth credentials for a network are still valid and have required scopes.' It uses a specific verb (verify) and resource (credentials), and distinguishes itself from the sibling tool 'initiate_gam_auth' which handles re-authorization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides a 'WHEN TO USE' section: 'Call at the start of a session to verify credentials before running operations. If valid=false, call initiate_gam_auth to re-authorize.' This gives clear context and directs to an alternative tool when needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

companiesAInspect

Manage GAM companies — advertisers, agencies, and contacts.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes (create, update, archive) = 0.5 credits. OUTPUT: Returns Company objects with id, name, type (ADVERTISER/AGENCY/HOUSE_ADVERTISER), creditStatus, address, and associated contacts. SIDE EFFECTS: archive_advertiser deactivates the company and prevents new orders from being created under it. Does not delete historical data. WHEN TO USE: Use companies to manage the advertiser/agency entities required before creating orders. An order must be linked to an advertiser.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_advertisers: List all advertiser companies on the network. Read-only, paginated. • get_advertiser: Get a specific advertiser by ID. Read-only. Requires company_id. • create_advertiser: Create a new advertiser company. Write, 0.5 credits. Requires name and optionally creditStatus, address. • update_advertiser: Update an existing advertiser's name, credit status, or address. Write. • archive_advertiser: Archive (deactivate) an advertiser. Destructive write — prevents new orders. Requires company_id. • list_agencies: List all agency companies on the network. Read-only. • get_agency: Get a specific agency by ID. Read-only. • create_agency: Create a new agency company. Write, 0.5 credits. • update_agency: Update an existing agency. Write. • list_contacts: List contacts associated with a company. Read-only. Requires company_id. • get_contact: Get a specific contact by ID. Read-only. • update_contact: Update a contact's details. Write.
company_idNoGAM Company ID (required for get/update/archive operations).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral transparency. It discloses authentication (OAuth 2.0 required), credit costs (reads=0, writes=0.5 credits), and a key side effect (archive_advertiser deactivates the company). It also describes the output format. This covers critical behavioral traits, though side effects for other actions are not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with clear sections (MODE, AUTH, CREDITS, OUTPUT, SIDE EFFECTS, WHEN TO USE). Every sentence adds value, and there is no redundancy. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 sub-actions, 3 parameters, no output schema), the description provides key context: output summary, side effects, authentication, and credits. The action schema descriptions cover sub-action details. The description is largely complete, though more explicit error handling or per-action specifics could be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters and their descriptions thoroughly (including enum options for 'action'). The description adds no new parameter-level information beyond what's in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage GAM companies — advertisers, agencies, and contacts.' It provides a specific verb ('Manage') and resource ('GAM companies'), and sets context by noting that companies are required before creating orders, distinguishing it from order-related sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section that explains the tool is for managing advertiser/agency entities before creating orders. It gives clear context but does not explicitly state when not to use the tool or provide alternative tools. The guidance is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creative_assetsAInspect

Upload and create GAM creative asset files — images, HTML5, video, audio, and companion ads.

MODE: write (all actions upload or create assets) AUTH: OAuth 2.0 required CREDITS: 0.5 credits per upload/create action. OUTPUT: Returns CreativeAsset objects with assetId, fileName, fileSize, mimeType, and a preview URL. SIDE EFFECTS: Assets are stored in GAM and consume storage quota. compress_image modifies the asset file in-place. WHEN TO USE: Use creative_assets for asset file management (uploading raw files). Use creatives for full Creative entity management (associate assets with creative templates). Use creative_qa to validate assets after upload.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • bulk_upload: Upload multiple asset files in one call. Returns list of assetId per file. Preferred over individual uploads for batch workflows. • upload_from_url: Download a file from a URL and upload it to GAM as an asset. Write. Requires source_url and file_name. • upload_and_associate: Upload an asset and immediately associate it with an existing creative. Write. • upload_html5_zip: Upload an HTML5 ZIP package and validate its structure before storage. Returns assetId and a list of validation warnings. • create_image: Create an image asset from raw bytes or a local file path. Write. • create_html5: Create an HTML5 asset from inline HTML/CSS/JS content. Write. • create_html5_from_files: Create an HTML5 asset by bundling multiple local files. Write. • create_video: Create a video creative asset (VAST URL or inline video). Write. • create_audio: Create an audio creative asset. Write. • create_vast_redirect: Create a VAST redirect creative that points to an external VAST URL. Write. • create_companion: Create a companion ad asset associated with a video creative. Write. • create_third_party: Create a third-party tag creative asset (JavaScript or iframe snippet). Write. • create_classic_native: Create a classic native ad asset with headline, body, image, and CTA fields. Write. • compress_image: Compress an existing image asset to reduce file size. Modifies asset in-place. Write. • get_video_transcode_status: Check the status of a video transcode job. Read-only. Returns status: PENDING | PROCESSING | COMPLETE | FAILED.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses MODE (write, though one read-only sub-action exists), AUTH (OAuth 2.0), CREDITS (0.5 per action), OUTPUT (CreativeAsset objects with fields), and SIDE EFFECTS (storage quota, in-place compression). It does not cover rate limits or error handling, but overall is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and detailed action lists. While somewhat lengthy, the complexity of 15 sub-actions justifies the length. It is front-loaded with the main purpose and structured for easy scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by specifying return fields (assetId, fileName, etc.). It also covers auth, credits, and side effects. For a tool with many sub-actions and no output schema, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by detailing each action sub-operation with syntax and behavior beyond the schema's enum definition. The network_code parameter also has a clear description. This exceeds the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Upload and create GAM creative asset files — images, HTML5, video, audio, and companion ads.' It also differentiates from sibling tools (creative_assets vs. creatives vs. creative_qa) in the WHEN TO USE section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides WHEN TO USE guidance, distinguishing between creative_assets for file management, creatives for creative entity management, and creative_qa for validation. It also includes MODE, AUTH, CREDITS, OUTPUT, and SIDE EFFECTS sections, offering comprehensive context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creative_qaAInspect

Creative quality assurance — validate, scan, and pre-check creatives before and after trafficking.

MODE: read-only (all actions are non-destructive analysis) AUTH: OAuth 2.0 required CREDITS: 0 (all free) OUTPUT: Returns a QA report with pass/fail status per check, severity (CRITICAL/WARNING/INFO), and specific issue descriptions with remediation guidance. WHEN TO USE: Run creative_qa after uploading creative assets and before activating line items. Use pre_archive_check before archiving a creative to detect active associations. NOT the same as audit_skill: audit_skill checks network-wide operational health; creative_qa focuses specifically on individual creative compliance.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • scan_creative_compliance: Scan a creative for policy violations, prohibited content, missing click-through URLs, and size non-compliance. Returns a compliance report per check. • validate_creative_ssl: Verify that all URLs in a creative (click-throughs, image src, tracking pixels) are HTTPS. Critical for modern GAM requirements. • validate_creative_ssl_batch: Run SSL validation on multiple creatives in one call. Returns a per-creative summary. • audit_creative_tracking: Verify all impression and click tracking pixels are reachable and return 200. Detects broken trackers. • audit_order_tracking: Audit tracking pixels across all creatives associated with an order. Returns a per-creative, per-tracker report. • validate_tag_snippet: Validate a third-party ad tag snippet for syntax errors, unsafe JS, and missing required macros (%%CLICK_URL%%, etc.). • pre_archive_check: Check whether a creative has active LICA associations before archiving. Returns list of active line items that would be affected.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: 'MODE: read-only (all actions are non-destructive analysis)', 'AUTH: OAuth 2.0 required', 'CREDITS: 0 (all free)', and output format explained. Each sub-action's behavior is detailed in enum descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a brief intro, metadata in key-value pairs, usage guidelines, and differentiation. It is slightly lengthy but each sentence adds value; the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explains the output. It covers purpose, usage, auth, credits, output, and sub-actions thoroughly. All necessary context for an agent to select and invoke the tool correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds value: action enum values have detailed descriptions, and network_code includes example and source instructions. The overall description also provides context that enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Creative quality assurance — validate, scan, and pre-check creatives before and after trafficking' and lists specific actions via enum. It distinguishes from sibling 'audit_skill' by specifying that audit_skill checks network-wide health while creative_qa focuses on individual creative compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Run creative_qa after uploading creative assets and before activating line items. Use pre_archive_check before archiving a creative to detect active associations.' Also notes that it is not the same as audit_skill, providing clear when-to-use and when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creativesAInspect

Manage GAM Creative entities and native styles — full lifecycle from list to archive, plus LICA management.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. Bulk operations = 0.5 credits flat. OUTPUT: Returns Creative objects with id, name, type, size, previewUrl, and associated assetIds. Preview URLs expire after 24h. WHEN TO USE: Use creatives for Creative entity management (metadata, associations, lifecycle). Use creative_assets for raw asset file uploads. Use creative_qa for compliance validation. NOTE: A Creative entity in GAM wraps one or more creative_assets. A LICA (LineItem-Creative Association) links a Creative to a LineItem for serving.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_creatives_by_advertiser: List all creatives for a given advertiser ID. Read-only. • list_creatives_by_line_item: List all creatives associated with a line item. Read-only. • list_creatives_by_network: List all creatives on the network with optional filters. Read-only. • get_creative: Get a single creative by ID. Read-only. • update_creative: Update a creative's name, size, or snippet. Write. • archive_creative: Archive a creative. Destructive write — removes from active serving. Run pre_archive_check first. • duplicate_creative: Duplicate an existing creative to use as a starting point. Write. • get_creative_preview_url: Generate a preview URL for a creative. Read-only. URL expires after 24h. • get_native_style_preview_urls: Generate preview URLs for a native style across all sizes. Read-only. • get_campaign_preview_links: Get all preview links for a campaign (all creatives + all placements). Read-only. • get_video_transcode_status: Check transcode status for a video creative. Read-only. • list_native_styles: List all native ad styles. Read-only. • get_native_style: Get a specific native style by ID. Read-only. • update_native_style: Update a native style's template or CSS. Write. • archive_native_style: Archive a native style. Destructive write. • duplicate_native_style: Duplicate a native style. Write. • ensure_classic_native_template: Ensure a classic native template exists, creating it if absent. Idempotent write. • list_creative_templates: List all creative templates available on the network. Read-only. • get_creative_template: Get a specific creative template by ID. Read-only. • discover_native_formats: Discover available native ad formats and their required fields. Read-only. • associate_creative: Create a LICA between one creative and one line item. Write. • bulk_associate_creatives: Create multiple LICAs in one call. Write. • get_licas_by_line_item: List all LICAs for a line item. Read-only. • get_licas_batch: Retrieve multiple LICAs by ID. Read-only. • deactivate_lica: Deactivate a LICA without deleting it. Write. • update_lica: Update a LICA's weight or start/end date. Write. • delete_licas: Delete LICAs permanently. Destructive write.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the mode (mixed read+write), auth requirement (OAuth 2.0), credit costs (reads=0, writes=0.5), output structure (Creative objects with specific fields), and preview URL expiry. Destructive actions like archive include a warning to run pre_archive_check first.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE, NOTE) and front-loads the main purpose. However, it is slightly verbose in listing action enum options, which are already detailed in the schema, making it somewhat redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple actions, LICA management, native styles), the description covers all essential aspects: purpose, usage guidelines, behavioral traits, parameter meanings, and output format. No output schema exists, but the description explains return fields, making it complete for appropriate tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by including contextual notes (e.g., 'Run pre_archive_check first' for archive actions) and explaining the relationship between Creative entities and LICAs. While the schema's enum descriptions are comprehensive, the description provides additional context for parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages GAM Creative entities and native styles, covering full lifecycle and LICA management. It uses a specific verb+resource ('Manage GAM Creative entities and native styles') and distinguishes from siblings like creative_assets and creative_qa in the 'WHEN TO USE' section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when-to-use guidance in the 'WHEN TO USE' section, directing users to creative_assets for raw file uploads and creative_qa for compliance validation. It also explains the relationship between Creative entities, creative_assets, and LICAs, aiding correct tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creative_wrapper_skillAInspect

Manage GAM CreativeWrapper entities — wrappers that inject scripts around all creatives served on an ad unit or placement.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns CreativeWrapper objects with id, name, adUnitId or placementId, headerHtmlSnippet, footerHtmlSnippet, and ordering. SIDE EFFECTS: Active CreativeWrappers apply globally to every creative served on the targeted ad unit/placement. Misconfigured wrappers can break ad serving. Test in a staging network first. WHEN TO USE: Use for injecting site-wide measurement scripts, viewability tags, or brand safety layers. Use presets for reusable wrapper templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list: List all CreativeWrappers on the network. Read-only. • get: Get a specific CreativeWrapper by ID. Read-only. • create: Create a new CreativeWrapper. Write. Requires adUnitId or placementId, and headerHtmlSnippet or footerHtmlSnippet. • update: Update an existing wrapper's snippet or targeting. Write. • activate: Activate a paused wrapper. Write. • deactivate: Deactivate an active wrapper without deleting it. Write. Preferred over archive for temporary suspension. • archive: Archive a wrapper permanently. Destructive write. • set_data_declaration: Set the data usage declaration for a wrapper (required for GDPR/CCPA compliance). Write. • list_rich_media_ads_companies: List GAM-certified rich media companies available for wrapper configuration. Read-only. • find_third_party_company: Search for a third-party company by name to use in a wrapper. Read-only. • create_preset: Save a wrapper configuration as a reusable preset. Write. • list_wrapper_presets: List all saved wrapper presets. Read-only. • provision: Apply a preset to a set of ad units or placements. Bulk write.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully covers behavioral aspects: MODE (mixed read/write), AUTH (OAuth 2.0), CREDITS (0 for reads, 0.5 for writes), SIDE EFFECTS (global impact, risk of breaking ad serving), and a caution to test in staging. This exceeds typical disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, etc.) and a usage recommendation. It front-loads the purpose. However, some phrases (e.g., 'CreativeWrapper' repetition) could be tightened without loss of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers return values (though no output schema), side effects, authentication, and credits. It is comprehensive given the tool's complexity. Minor gaps: lacks pagination details for list operations and error handling, but overall sufficient for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema descriptions for both parameters (action and network_code) are already detailed. The main description does not add extra meaning beyond what the schema provides, so it meets the baseline without improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages CreativeWrapper entities and explains they inject scripts around creatives. It distinguishes from siblings by specifying its GAM entity focus. However, the verb 'manage' is somewhat generic, though the sub-actions in the schema narrow it down.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section specifying appropriate scenarios (e.g., injecting measurement scripts) and advises testing in staging due to side effects. It implicitly suggests using presets for templates, but does not explicitly contrast with sibling tools like creatives or inventory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dai_skillAInspect

DAI (Dynamic Ad Insertion) and broadcasting operations.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: read = 0 credits. OUTPUT: Results for DAI entities. WHEN TO USE: Use for managing Dynamic Ad Insertion auth keys and encoding profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • create_cdn_configuration: Create a CDN configuration. • create_dai_auth_key: Create a DAI authentication key. • create_dai_encoding_profile: Create a DAI encoding profile. • delete_cdn_configuration: Delete a CDN configuration. • delete_dai_encoding_profile: Delete a DAI encoding profile. • perform_dai_auth_key_action: Perform an action on a DAI authentication key. • register_sessions: Register sessions. • update_cdn_configuration: Update a CDN configuration. • update_dai_auth_key: Update a DAI authentication key. • update_dai_encoding_profile: Update a DAI encoding profile. • get_stream_activity: Get stream activity. • list_cdn_configurations: List CDN configurations. • list_dai_auth_keys: List DAI authentication keys. • list_dai_encoding_profiles: List DAI encoding profiles.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load. It discloses MODE (mixed read+write), AUTH (OAuth 2.0 required), CREDITS (read = 0 credits), and OUTPUT (Results for DAI entities). This gives agents essential behavioral info, though it could mention that some actions (e.g., delete) are destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise and structured with clear MODE, AUTH, CREDITS, OUTPUT, and WHEN TO USE sections. Every sentence provides value with no redundancy. It is front-loaded with the key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 actions) and the absence of an output schema, the description covers purpose, behavior, auth, credits, and output type. However, it does not mention that additionalProperties: true allows dynamic parameters for specific actions, which could be important for agents to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters have descriptions in the schema). The description itself adds no further parameter details beyond what is already in the schema. Baseline 3 is appropriate as the schema already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'DAI (Dynamic Ad Insertion) and broadcasting operations' and specifies 'managing Dynamic Ad Insertion auth keys and encoding profiles'. The enum values in the action parameter further detail the specific operations. This distinguishes it from sibling tools like line_items or orders, which handle different GAM domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly says 'Use for managing Dynamic Ad Insertion auth keys and encoding profiles', providing clear context. However, it does not specify when not to use it or mention alternative tools for non-DAI operations, which would be helpful given the large set of sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dealsAInspect

Author and manage programmatic deals — PMP, PG/PD proposals, ADCP deal flows, and auction packages.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Write operations = 0.5–2 credits. ADCP create = 2 credits. OUTPUT: Returns Deal or Proposal objects with id, status, buyerId, floorPrice, targeting, and negotiation state. SIDE EFFECTS: Proposals go through a negotiation workflow — state transitions (reserve, request_buyer_acceptance) trigger buyer notifications. terminate_proposal_negotiations is irreversible. WHEN TO USE: Use deals for programmatic direct (PG/PD), private marketplace (PMP), and ADCP deal creation. For standard direct-sold campaigns, use campaign tool instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_deals: List all programmatic deals on the network. Read-only. • get_deal: Get a specific deal by ID. Read-only. • create_deal: Create a new programmatic deal. Write. • update_deal: Update a deal's floor price or targeting. Write. • list_auctions: List auction packages. Read-only. • get_auction: Get a specific auction package. Read-only. • create_auction: Create an auction package. Write. • update_auction: Update an auction package. Write. • list_buyers: List all programmatic buyers on the network. Read-only. • get_buyer: Get a specific buyer by ID. Read-only. • get_proposal: Get a proposal by ID including its negotiation history. Read-only. • create_proposal: Create a new PG/PD proposal. Write. • update_proposal: Update a proposal's terms, targeting, or pricing. Write. • archive_proposal: Archive a proposal. Destructive write. • request_buyer_acceptance: Send a proposal to the buyer for acceptance. Write — triggers buyer notification. • reserve_proposal: Reserve inventory for a proposal (locks availability). Write. • edit_proposal_for_negotiation: Reopen an accepted proposal for renegotiation. Write. • terminate_proposal_negotiations: Permanently terminate negotiations. Irreversible destructive write. • get_marketplace_comments: Retrieve buyer/seller comments on a proposal. Read-only. • list_proposal_line_items: List line items within a proposal. Read-only. • create_proposal_line_items: Create line items within a proposal. Write. • update_proposal_line_items: Update proposal line items' targeting or pricing. Write. • archive_proposal_line_items: Archive proposal line items. Destructive write. • create_makegoods: Create makegood line items to compensate for underdelivered campaigns. Write. • estimate_deal_cost: Preview the credit cost of a deal operation. Read-only. • adcp_validate: Validate an ADCP deal configuration before creation. Read-only. • adcp_preview: Preview an ADCP deal's reach and estimated delivery. Read-only. • adcp_create: Create an ADCP deal. Write, 2 credits, requires confirmation_token.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description provides mode (mixed read+write), auth requirements (OAuth), credit costs per operation, side effects (state transitions, buyer notifications, irreversibility of termination). It lacks rate limit info but covers key behavioral traits well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labels (MODE, AUTH, CREDITS, etc.) and bullet-style action list. It is fairly long but most sentences add unique value. Could be more concise, but organization aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 2 parameters and no output schema, the description covers output types, side effects, and credit costs. It lacks explicit mention of error handling or pagination but is otherwise complete for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds overall context like side effects and usage but does not provide additional detail on parameters beyond what the schema already includes. For high coverage, description adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool authors and manages programmatic deals (PMP, PG/PD, ADCP, auction packages). It distinguishes from siblings by specifying to use the campaign tool for standard direct-sold campaigns. The summary verb 'Author and manage' plus the list of deal types provides precise scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (programmatic direct, PMP, ADCP) and when not to (direct-sold campaigns, pointing to campaign tool). Also provides credit costs and side effects like negotiation workflows, giving clear context for agent decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnect_gamAInspect

Revoke and permanently remove the GAM OAuth credentials for a network from the tenant.

MODE: write (destructive) AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns {network_code, disconnected_at} SIDE EFFECTS: All OrbiAds operations requiring this network will fail after disconnection. The network must be re-authorized via initiate_gam_auth to restore access. WHEN TO USE: Use when intentionally removing a network from the tenant (e.g., end of contract). Confirmation token required — this action is irreversible via API.

ParametersJSON Schema
NameRequiredDescriptionDefault
network_codeYesGAM network code to disconnect.
confirmation_tokenYesWrite-confirmation token. Required — disconnection is irreversible.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description thoroughly discloses mode (destructive), auth requirements, side effects, and irreversibility, giving full 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-organized with labeled sections, no unnecessary words, and all essential information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all relevant aspects: purpose, usage, behavior, output format, and side effects. No output schema needed given the explicit output description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes both parameters; the description reinforces the critical role of confirmation_token, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Revoke and permanently remove') and the resource ('GAM OAuth credentials for a network from the tenant'), making it distinct from sibling tools like initiate_gam_auth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides a use case ('end of contract') and notes the requirement of a confirmation token. Could be improved by mentioning alternatives, but the sibling list provides context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

formatsAInspect

Manage the Custom Format Registry — reusable creative format recipes with multi-site scope.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0 credits (config changes only). OUTPUT: Returns Format recipe objects with id, name, dimensions, creative_type, and applicable_sites. WHEN TO USE: Use formats to define reusable creative format specifications (e.g., a 300x250 standard display recipe) that can be applied across multiple GAM networks. NOT the same as blueprint: blueprint defines inventory positions; formats defines creative format specifications. NOT the same as creative_assets: creative_assets manages uploaded files; formats manages format metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_recipes: List all registered creative format recipes. Read-only. • list_suggested_recipes: List AI-suggested format recipes based on the network's inventory. Read-only. • accept_suggested_recipe: Accept and register a suggested recipe. Write. • reject_suggested_recipe: Reject a suggested recipe so it is not shown again. Write. • register_recipe: Register a new custom format recipe. Write. • update_recipe: Update a recipe's dimensions, creative type, or scope. Write. • delete_recipe: Delete a format recipe. Destructive write — does not affect existing creatives. • resolve: Resolve conflicts between formats across sites. Write. • detect_conflicts: Detect format conflicts across registered sites without resolving them. Read-only.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It discloses the MODE ('mixed (read + write)'), AUTH ('OAuth 2.0 required'), CREDITS ('Reads = 0. Writes = 0 credits (config changes only)'), and OUTPUT structure. It also details the behavioral traits of each sub-operation, including which are read-only, write, or destructive, and the implications of destructive actions (e.g., 'delete_recipe: Destructive write — does not affect existing creatives').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). It is front-loaded with the purpose. While it is somewhat long, every sentence adds value, and the bullet points for action types improve readability. However, some repetition of schema content could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete given the tool's complexity and lack of output schema. It explains the output fields (id, name, dimensions, creative_type, applicable_sites), covers authentication, credits, and sub-operations. It provides enough context for an AI agent to understand when and how to use this tool. The differentiation from siblings adds to completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description repeats some parameter details (e.g., action enum values) but does not add significant new meaning beyond the schema's descriptions. The schema already explains each action in detail. The description provides a high-level overview but does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage the Custom Format Registry — reusable creative format recipes with multi-site scope.' It uses a specific verb 'manage' and identifies the resource as creative format recipes. It also distinguishes itself from sibling tools like 'blueprint' and 'creative_assets', providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use formats to define reusable creative format specifications' that can be applied across multiple GAM networks. It also provides explicit scenarios to avoid by stating what it is NOT the same as (blueprint and creative_assets). The 'WHEN TO USE' section provides clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gam_adminAInspect

GAM admin orchestration — 48 operations across 7 administrative areas: Teams, Sites, Mobile Apps, Custom Fields, Labels, Publisher Provided Signals, and Users.

MODE: mixed (read + write) AUTH: OAuth 2.0 required — user must have Network Admin role for write operations CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns administrative entity objects specific to the sub-area (Team, Site, MobileApp, CustomField, Label, PublisherProvidedSignalsConfig, User objects). SIDE EFFECTS: User management operations (deactivate, remove) affect access control. Label and custom field changes propagate to existing entities. Team changes affect inventory access rights. WHEN TO USE: Use gam_admin for network configuration and governance tasks (team structure, user management, custom metadata). Use targeting for custom targeting key-values used in ad serving.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_teams: List all teams on the network. Read-only. • get_team: Get a team by ID. Read-only. • create_team: Create a new team. Write. • update_team: Update a team's name or description. Write. • delete_team: Delete a team. Destructive write — removes team membership associations. • add_team_members: Add users to a team. Write. • remove_team_members: Remove users from a team. Write. • list_sites: List all sites on the network. Read-only. • get_site: Get a site by ID. Read-only. • create_site: Create a new site. Write. • update_site: Update a site. Write. • delete_site: Delete a site. Destructive write. • list_mobile_apps: List mobile apps registered on the network. Read-only. • get_mobile_app: Get a mobile app by ID. Read-only. • create_mobile_app: Register a new mobile app. Write. • update_mobile_app: Update a mobile app's details. Write. • list_custom_fields: List all custom fields defined on the network. Read-only. • get_custom_field: Get a custom field by ID. Read-only. • create_custom_field: Create a custom field for orders, line items, or creatives. Write. • update_custom_field: Update a custom field's name or options. Write. • deactivate_custom_field: Deactivate a custom field. Soft delete — preserves existing values. • list_custom_field_options: List options for a custom field of type SELECT. Read-only. • create_custom_field_option: Add a new option to a SELECT custom field. Write. • update_custom_field_option: Update a custom field option. Write. • deactivate_custom_field_option: Deactivate a custom field option. Write. • list_labels: List all labels. Read-only. • get_label: Get a label by ID. Read-only. • create_label: Create a new label. Write. • update_label: Update a label. Write. • deactivate_label: Deactivate a label. Write. • list_pps_configs: List Publisher Provided Signals configurations. Read-only. • get_pps_config: Get a PPS config by ID. Read-only. • create_pps_config: Create a PPS configuration. Write. • update_pps_config: Update a PPS configuration. Write. • delete_pps_config: Delete a PPS configuration. Destructive write. • list_users: List all users on the network. Read-only. • get_user: Get a user by ID. Read-only. • get_current_user: Get the currently authenticated user's profile. Read-only. • create_user: Create a new user account. Write. • update_user: Update a user's role or email. Write. • deactivate_user: Deactivate a user account. Write — revokes network access. • perform_user_action: Perform a lifecycle action on a user (ACTIVATE, DEACTIVATE). Write. • list_roles: List all roles available on the network. Read-only. • list_team_memberships: List team memberships for a user. Read-only. • get_user_record: Get a user's full record including role and team assignments. Read-only. • get_salesperson_record: Get salesperson metadata for a user. Read-only. • get_trafficker_record: Get trafficker metadata for a user. Read-only. • audit_user_access: Audit user access rights: roles, teams, and accessible inventory. Read-only.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It covers side effects (user deactivation/removal affects access control, label changes propagate), auth needs, credit costs (reads=0, writes=0.5), and output types per sub-area. Does not mention rate limits or error conditions, but given complexity, it's thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with headings (MODE, AUTH, CREDITS, OUTPUT, SIDE EFFECTS, WHEN TO USE). Front-loaded with summary. Could be slightly more concise, but organization aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers many aspects (side effects, auth, credits, when to use). However, fails to mention that sub-operations may require additional parameters beyond action and network_code (schema has additionalProperties: true). Also lacks return value format details. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed enum descriptions for action and network_code. The description adds overall context (auth, credits) but does not significantly enhance individual parameter meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it's a GAM admin orchestration tool with 48 operations across 7 administrative areas. It provides a specific verb+resource summary and distinguishes from sibling 'targeting' tool in the WHEN TO USE section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

WHEN TO USE section explicitly recommends using gam_admin for network configuration and governance tasks, and suggests targeting for custom targeting key-values. Auth requirements (OAuth 2.0, Network Admin role for writes) are stated. Lacks explicit exclusion of other sibling tools but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gam_auditAInspect

Run a full GAM network compliance audit combining hygiene, diagnostics, and a standards baseline in one call.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns a comprehensive markdown report with: (1) hygiene findings, (2) operational diagnostics, (3) standards baseline results per framework control. Overall pass/fail verdict included. WHEN TO USE: Use gam_audit for a complete one-shot network audit. For individual audit components, use audit_skill with the specific action. NOT the same as audit: audit queries change history; gam_audit analyzes current state. NOT the same as audit_skill: gam_audit is a convenience wrapper that calls hygiene_check + ops_diagnostic + standards_baseline in sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameworkNoCompliance framework for the standards baseline section. Defaults to orbiads_baseline if omitted.
network_codeYesGAM network code.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses the tool's read-only mode, required OAuth 2.0 authentication, zero credit cost, and the structure of the markdown output report including pass/fail verdict. It also explains it is a wrapper calling three sub-tools.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and clear differentiators. Every sentence serves a purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately describes the output (comprehensive markdown report with three sections and verdict). It also explains the tool's role as a convenience wrapper and differentiates it from related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by stating the default value for the framework parameter ('Defaults to orbiads_baseline if omitted'), which is not in the schema. However, it does not provide additional semantic context beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a full GAM network compliance audit combining hygiene, diagnostics, and standards baseline. It distinguishes itself from siblings audit and audit_skill with explicit 'NOT the same' statements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section that advises using this tool for a complete one-shot audit and directs to audit_skill for individual components. It also clarifies the difference from audit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gam_featuresAInspect

Inspect GAM network features — discover which beta features and capabilities are enabled.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns a list of NetworkFeature objects with featureName, enabled (boolean), and description. WHEN TO USE: Call before using advanced GAM features to verify they are enabled on the network. Use probe_gam_features when you need to test a specific capability live.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_gam_features: Return the cached list of features enabled on the network. • probe_gam_features: Live-probe the network for feature availability (slower but always current). • refresh_gam_features: Force-refresh the feature cache. Call after a GAM admin enables new features.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only mode, OAuth requirement, zero credits, and output format. Explains caching behavior (cached vs live-probe). No contradicting annotations. Lacks mention of rate limits or error handling, but adequate given annotations absence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with clear section headers (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). Every sentence serves a purpose, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, auth, output, and actions well. Explains caching behavior and sub-action selection. Lacks details on default network_code behavior and error cases, but sufficient for a simple read-only tool with full schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal semantic value beyond what is already in the schema's parameter descriptions, merely rephrasing the action enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Inspect GAM network features' with specific verb and resource, and the first line explicitly defines the tool's purpose. It distinguishes from siblings like 'gam_admin' and 'gam_jobs' by focusing on feature inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Call before using advanced GAM features' and 'Use probe_gam_features when you need to test a specific capability live.' Includes context for when to use each sub-action, though does not exhaustively list all alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gam_jobsAInspect

Poll and manage async GAM background jobs.

MODE: read-only (polling only — jobs are created by other tools) AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns Job objects with id, type, status (PENDING | RUNNING | COMPLETE | FAILED), progress (0–100), result_url or result_data, and error if failed. WHEN TO USE: Use after starting a long-running operation (e.g., large inventory scan, bulk line item creation) that returns a job_id. Poll until status = COMPLETE or FAILED.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • poll: Poll a job's current status and progress. Returns status and progress percentage. Recommended polling interval: 5 seconds. • get: Get a completed job's full result. Returns result_data or result_url for download. • list: List recent jobs for the current tenant. Read-only. • cancel: Cancel a running job. Write — interrupts the background operation.
job_idNoAsync job identifier returned by a previous long-running operation.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: read-only mode, OAuth 2.0 requirement, free credits, output structure (Job objects with id, type, status, progress, result_url, error), and recommended poll interval of 5 seconds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE), is front-loaded with the purpose, and every sentence adds value. Length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description is thorough: it covers all sub-operations, authentication, output format, usage context, and even credits. No critical information is missing for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, but the description adds meaningful context beyond the schema, such as the recommended polling interval for 'poll' and how to obtain network_code. This enhances usability without being redundant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as managing async GAM background jobs, specifying 'Poll and manage async GAM background jobs.' It differentiates from the sibling 'jobs' tool by noting that jobs are created by other tools and this is read-only polling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit 'WHEN TO USE' section advising to use after starting a long-running operation and poll until completion. It also details the four sub-actions (poll, get, list, cancel) with their contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_tenant_idAInspect

Return the OrbiAds tenant ID for the authenticated session.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns {tenant_id: string} WHEN TO USE: Call this first in any workflow to resolve your tenant_id. The tenant_id is required by some internal operations and for multi-tenant debugging.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only mode, OAuth requirement, free credits, and output format. No annotations to contradict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with labeled sections, concise yet complete, no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers purpose, usage, and output for a zero-parameter tool. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; baseline 4 is appropriate since description doesn't need parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns the tenant ID for the authenticated session. Distinct from sibling tools like tenant_catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call first in any workflow and explains why the tenant_id is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initiate_gam_authAInspect

Start the OAuth 2.0 authorization flow to link a GAM network to the OrbiAds tenant.

MODE: write (creates a pending auth session) AUTH: Partially authenticated (OrbiAds session required, GAM auth not yet established) CREDITS: 0 (free) OUTPUT: Returns {auth_url: string, session_id: string}. Open auth_url in a browser and authorize. Then poll poll_auth_status with the session_id. WHEN TO USE: Call when a GAM network has not yet been authorized (check_credentials returns false). Do not call if credentials are already valid.

ParametersJSON Schema
NameRequiredDescriptionDefault
network_codeYesThe GAM network code to authorize. Obtain from the GAM UI or list_accessible_networks after a Google sign-in.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description discloses mode (write), auth requirements, credits (free), output format (auth_url, session_id), and the need to poll poll_auth_status. All behavioral aspects are communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with headings (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and every sentence is informative. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the output and follow-up steps. It also references dependent tools and prerequisites, making the tool's role in the broader workflow clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter network_code has a helpful description in both schema and tool description, including how to obtain it ('from the GAM UI or list_accessible_networks'). Schema coverage is 100%, and the description adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Start the OAuth 2.0 authorization flow to link a GAM network to the OrbiAds tenant.' It uses a specific verb and resource, and distinguishes from sibling tools like check_credentials and poll_auth_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use ('when a GAM network has not yet been authorized (check_credentials returns false)') and when not to ('Do not call if credentials are already valid').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inventoryAInspect

Manage GAM ad unit inventory — tree traversal, audit, batch creation, ads.txt, and blueprint sync.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5–1 credit. OUTPUT: get_ad_unit_tree returns a hierarchical JSON of ad units. audit_inventory returns an analysis report. create_ad_units_batch returns a list of {requested_name, created_id, status}. SIDE EFFECTS: push_inventory_blueprint creates or updates ad units in GAM based on the stored blueprint. archive_inactive_ad_units is destructive and cannot be undone. WHEN TO USE: Use inventory for ad unit structure management. Use targeting for custom targeting keys. Use blueprint for the canonical format/position definition that drives inventory creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_ad_unit_tree: Return the full ad unit hierarchy as a nested JSON tree. Read-only. • audit_inventory: Analyze the inventory for structural issues: orphaned ad units, duplicate sizes, missing placements. Read-only. • create_ad_units_batch: Create multiple ad units in one call from a specification list. Write. • generate_ads_json: Generate an ads.json / app-ads.json file from the current inventory. Read-only. • generate_inventory_blueprint: Generate a blueprint JSON from existing GAM inventory (reverse-engineering). Read-only. • push_inventory_blueprint: Push the stored blueprint to GAM, creating or updating ad units. Write, 1 credit. • get_ad_units_by_ids: Retrieve multiple ad units by ID in one call. Read-only. • find_inactive_ad_units: Find ad units with no recent impressions. Read-only. • archive_inactive_ad_units: Archive ad units flagged as inactive. Destructive write. Run find_inactive_ad_units first. • list_ad_unit_sizes: List all sizes used across ad units on the network. Read-only.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, description fully discloses mode (mixed read+write), auth requirements (OAuth), credit costs, output formats for key actions, and side effects (e.g., destructive nature of archive_inactive_ad_units).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is compact (~150 words) and well-structured with sections (MODE, AUTH, CREDITS, OUTPUT, SIDE EFFECTS, WHEN TO USE). Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 10 sub-operations and no output schema, the description covers all necessary context: mode, auth, credits, side effects, usage guidance, and output format for key actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with detailed enum descriptions for each action and network_code parameter. The description text does not add new information beyond summarizing 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool manages GAM ad unit inventory with specific sub-operations like tree traversal, audit, batch creation. It also distinguishes from sibling tools like targeting and blueprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit WHEN TO USE section directs agents to use inventory for ad unit structure, targeting for custom targeting keys, and blueprint for canonical format. Additionally, within action descriptions, it provides chaining instructions (e.g., run find_inactive_ad_units first before archive).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobsAInspect

Manage OrbiAds campaign deployment jobs — distinct from GAM background jobs (use gam_jobs for those).

MODE: read + limited write AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns OrbiAds Job objects with id, campaign_id, status, created_at, and deployment log. WHEN TO USE: Use jobs to check the status of an OrbiAds campaign deployment job. Use gam_jobs to poll GAM-native background operations. NOT the same as gam_jobs: jobs tracks OrbiAds deployment pipelines; gam_jobs tracks GAM server-side async jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_job: Get an OrbiAds deployment job by ID. Returns status, progress, and deployment log. • list_jobs: List recent OrbiAds deployment jobs for the tenant. Read-only. • duplicate_job: Duplicate a completed job configuration to re-run a similar deployment. Write.
job_idNoOrbiAds deployment job identifier.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses MODE (read+limited write), AUTH (OAuth 2.0 required), CREDITS (0/free), and OUTPUT format (Job objects with specific fields). While it doesn't detail side effects of duplicate_job, it adequately covers the behavioral profile beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured: brief opening sentence, then sections for mode, auth, credits, output, usage. Front-loaded with primary purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters (1 required) and no output schema, the description provides sufficient context: purpose, usage relative to siblings, behavioral traits, and parameter enumeration. Complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description reinforces the action parameter by mentioning sub-operations but does not add significant new meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages OrbiAds campaign deployment jobs, distinct from GAM background jobs. It specifies the resource (jobs) and operation (manage, with sub-operations get, list, duplicate). This distinguishes it from siblings like gam_jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool (check OrbiAds job status) and when to use the sibling gam_jobs (GAM backend operations). Also explicitly says 'NOT the same as gam_jobs', providing clear guidance on alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

line_item_lifecycleAInspect

Perform lifecycle status transitions on a GAM Line Item (activate, pause, archive, resume).

MODE: write AUTH: OAuth 2.0 required CREDITS: 0.5 credits. Confirmation token required for archive. OUTPUT: Returns {line_item_id, previous_status, new_status} WHEN TO USE: Use this for status transitions only. For data updates (targeting, budget, dates), use the line_items update action. DESTRUCTIVE: archive cannot be undone from the API.

ParametersJSON Schema
NameRequiredDescriptionDefault
line_item_idYesGAM Line Item ID.
network_codeYesGAM network code.
lifecycle_actionYesactivate: start delivery. pause: stop delivery temporarily. resume: restart a paused line item. archive: permanently remove from serving (destructive).
confirmation_tokenNoRequired for lifecycle_action=archive. Obtain from a prior estimate_cost call.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses destructive nature of archive, OAuth 2.0 requirement, 0.5 credits, output structure, and confirmation token necessity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise, each sentence adds value. Front-loaded with key info, uses bullet points for clarity, and avoids unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description includes output structure. Covers auth, credits, destructive action, and prerequisite for archive. Complete for a lifecycle tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear descriptions. Description adds context like confirmation token from estimate_cost call, but schema already provides good understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it performs lifecycle status transitions (activate, pause, archive, resume) on a GAM Line Item. Distinguishes from sibling tool 'line_items' which is for data updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: only for status transitions. For data updates, use line_items update action. Also mentions confirmation token requirement for archive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

line_itemsAInspect

Non-lifecycle Line Item operations — get, list, update, duplicate, verify, and create programmatic types.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns LineItem objects with id, name, type, startDateTime, endDateTime, costType, unitsBought, targeting, and deliveryIndicator. WHEN TO USE: Use line_items for individual line item CRUD and programmatic line item creation. Use campaign for full campaign orchestration. Use line_item_lifecycle for status transitions (activate/pause/archive). NOT the same as line_item_lifecycle: line_items handles data updates; line_item_lifecycle handles status transitions.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get: Get a single line item by ID. Read-only. • list_by_order: List all line items under an order. Read-only. Requires order_id. • update: Update a line item's name, targeting, dates, or budget. Write. • update_targeting: Update only the targeting of a line item. Write. More efficient than full update for targeting-only changes. • duplicate: Duplicate a line item to create a copy. Write. • verify: Verify that a line item configuration is valid before activation. Read-only. • approve: Approve a line item for delivery. Write. • archive: Archive a line item. Destructive write. • create_batch: Create multiple standard line items under an order. Write. • activate_batch: Activate multiple line items in one call. Write. • pause_batch: Pause multiple line items in one call. Write. • create_adexchange: Create an Ad Exchange line item. Write. Requires adExchangeEnvironment and targeting. • create_open_bidding: Create an Open Bidding line item. Write. Requires yieldGroupIds. • create_preferred_deal: Create a Preferred Deal line item. Write. Requires fixedCpm and buyerId. • list_private_deals: List Private Marketplace deals associated with line items. Read-only.
order_idNoGAM Order ID (required for list_by_order and create_batch).
line_item_idNoGAM Line Item ID (required for single-entity operations).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It conveys that the tool is mixed read+write, requires OAuth 2.0, consumes credits (reads = 0, writes = 0.5), and lists output fields. However, it could be more explicit about destructive operations beyond 'archive' and the consequences of batch operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (summary, mode, auth, credits, output, when to use). It is concise, using bullet points and short paragraphs, with every sentence adding value. No redundancy or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 4 parameters and no output schema, the description provides comprehensive context: authentication, credit costs, output field list, explicit usage guidance against siblings, and a detailed action enum summary. This fully compensates for the missing output schema and ensures the agent can correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, meaning all parameters already have clear descriptions. The tool description adds a summary of the action enum but does not provide additional semantic value beyond what the schema offers. Baseline is 3, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Non-lifecycle Line Item operations — get, list, update, duplicate, verify, and create programmatic types,' clearly defining the tool's purpose as CRUD and programmatic creation for line items. It also distinguishes from siblings like 'line_item_lifecycle' and 'campaign', ensuring no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section that explicitly contrasts this tool with 'campaign' and 'line_item_lifecycle', stating that line_items handles individual CRUD and programmatic creation, while others handle orchestration or status transitions. This provides clear guidance on when to use each tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

live_streamAInspect

Manage live stream ad breaks for GAM video workflows.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: list/get = 0 credits. create/patch/delete are write operations. OUTPUT: Returns live stream ad break objects scoped by event, asset key, or custom asset key. WHEN TO USE: Use live_stream to inspect, create, update, or delete ad breaks for live video events.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list: List ad breaks for an event_id, asset_key, or custom_asset_key. • get: Get a specific ad break by identifier. • create: Create a new live stream ad break. • patch: Update an existing live stream ad break by asset key. • delete: Delete an existing live stream ad break by asset key.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It explicitly states MODE (mixed read+write), AUTH (OAuth 2.0 required), CREDITS (list/get free, create/patch/delete are write operations), and OUTPUT (returns live stream ad break objects scoped by event/asset key). This disclosure is thorough, though it does not detail potential side effects or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at three sentences plus a structured block (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). Every element serves a purpose, and it is front-loaded with the core function. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's mixed mode and multiple actions, the description covers all essential facets: purpose, auth, credits, output format, and usage guidance. The only gap is the lack of a detailed output schema, but the description compensates by stating the return type. The network_code source is noted. Complete for typical agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% description coverage for its two parameters (action with enum descriptions, network_code with source guidance). The description adds context about scoping by event/asset key but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage live stream ad breaks for GAM video workflows', which is a specific verb+resource. It further breaks down into five sub-operations (list, get, create, patch, delete) via the action parameter, distinguishing it from sibling tools focused on other aspects of ad management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a dedicated 'WHEN TO USE' section: 'Use live_stream to inspect, create, update, or delete ad breaks for live video events.' It also specifies the MODE (mixed), AUTH requirements, and CREDITS cost, providing context for appropriate use. However, it does not explicitly mention when not to use or list alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcmAInspect

Read Multi-Customer Management earnings for parent publishers.

MODE: read-only AUTH: OAuth 2.0 required with MCM principal access CREDITS: 0 credits OUTPUT: Returns monthly MCM earnings for the requested month and year. WHEN TO USE: Use mcm for publisher revenue reporting across MCM child networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • earnings_fetch: Fetch monthly MCM earnings for a given month and year.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description discloses read-only mode, OAuth requirements, zero credits, and output type. This provides good behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and no redundant sentences. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers read-only nature and output, but lacks details on the additional properties (month/year) implied by the schema's additionalProperties:true. Missing details on parameter formats reduce completeness for a tool with unlisted required inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for defined parameters (action, network_code), but the description mentions month and year as implicit parameters not in the schema, adding context. However, it does not detail their formats or where to specify them, so value added is moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads MCM earnings for parent publishers, using specific verb and resource. It distinguishes from siblings as the only tool focused on Multi-Customer Management earnings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear when-to-use statement for publisher revenue reporting. However, it does not explicitly exclude alternatives or mention when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

networkAInspect

GAM network management — get info, switch active network, list accessible networks, update settings.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. update_network = 0.5 credits. OUTPUT: get_network_info returns {networkCode, displayName, currencyCode, timeZone, effectiveRootAdUnit}. list_accessible_networks returns all networks the authenticated user can access. WHEN TO USE: Use network to discover and switch between multiple GAM networks. Call list_accessible_networks after authentication to find available networks, then switch_network to set the active one.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_network_info: Return metadata about the current active GAM network. • switch_network: Set a different network as the active one for subsequent operations. Requires network_code of the target network. • list_accessible_networks: List all GAM networks accessible to the authenticated Google account. • update_network: Update network-level settings (display name, currency). Write, requires Network Admin role.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description compensates by stating MODE (mixed), AUTH (OAuth 2.0), and CREDITS per operation. It also details return values for get_network_info and list_accessible_networks. However, it does not explicitly mention that switching or updating may have side effects, though those are implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). It is slightly verbose but each sentence adds value. Front-loaded with summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description thoroughly explains return values and behavior. The tool has only 2 parameters with simple enum, and the description covers all necessary context for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. The description adds value beyond schema by providing context for network_code ('Obtain via select_gam_network or list_accessible_networks') and detailing each action's purpose and requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool is for 'GAM network management' and lists specific sub-operations: get info, switch, list, update. This distinguishes it from sibling tools that handle different entities like audiences, orders, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' paragraph that explicitly explains usage: after authentication, call list_accessible_networks to find networks, then switch_network to set active. It also provides context for each sub-operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

order_lifecycleAInspect

Perform lifecycle status transitions on a GAM Order (approve, archive, disapprove).

MODE: write AUTH: OAuth 2.0 required CREDITS: 0.5 credits. Confirmation token required for archive. OUTPUT: Returns {order_id, previous_status, new_status} WHEN TO USE: Use this for order status transitions. For data updates, use the orders update action. DESTRUCTIVE: archive stops all line item delivery under the order.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesGAM Order ID.
network_codeYesGAM network code.
lifecycle_actionYesapprove: allow delivery. disapprove: block delivery. archive: permanently deactivate (destructive).
confirmation_tokenNoRequired for lifecycle_action=archive.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully shoulders the transparency burden. It declares MODE: write, AUTH: OAuth 2.0 required, CREDITS: 0.5 credits, and OUTPUT: returns {order_id, previous_status, new_status}. It also flags the destructive nature: 'DESTRUCTIVE: archive stops all line item delivery under the order.' This covers mutation, authentication, cost, return format, and side effects thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using a structured format with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE, DESTRUCTIVE). Every sentence adds value—no fluff, and the most critical information is front-loaded in the first line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool involves mutation with 4 parameters and no output schema. The description covers all essential aspects: purpose, when to use, authentication requirements, credit cost, return format, and destructive consequences. It leaves no significant gaps for an agent to interpret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing detailed descriptions for each parameter, including enum options and required fields. The description adds context about confirmation_token being required for archive and the destructive nature of archive, which enhances understanding beyond the schema. With full schema coverage, the additional description justifies a score above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Perform lifecycle status transitions on a GAM Order (approve, archive, disapprove).' It clearly states the specific actions and the resource (GAM Order), distinguishing it from sibling tools like line_item_lifecycle or orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes a 'WHEN TO USE' section that explicitly states 'Use this for order status transitions. For data updates, use the orders update action.' This provides clear context and an alternative, helping the agent decide when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ordersAInspect

Non-lifecycle Order operations — list, get, create, update, and manage orders.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns Order objects with id, name, status, advertiserId, agencyId, salespersonId, secondarySalespersonIds, traffickerId, customFieldValues, totalBudget, and startDateTime/endDateTime. WHEN TO USE: Use orders for Order entity management. Use campaign for full campaign orchestration that includes Order + LineItems. Use order_lifecycle for status transitions. NOT the same as order_lifecycle: orders handles data; order_lifecycle handles approve/archive/disapprove transitions.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_delivering: List orders currently in delivery. Read-only. • get: Get a single order by ID. Read-only. • list: List orders with optional filters (advertiser, status, date range). Read-only. • create: Create a new order. Write. Requires advertiserId, name, and traffickerId. • archive: Archive an order. Destructive write — stops delivery. • approve: Approve an order for delivery. Write. • verify_setup: Verify an order's setup (targeting, creative associations) before activation. Read-only. • update: Update an order's name, salespersonId, secondarySalespersonIds, customFieldValues, or notes. Write. • find_or_create: Find an existing order matching the criteria or create a new one if not found. Idempotent write. • list_users: List users (salespeople, traffickers) associated with an order. Read-only. • list_roles: List available order roles. Read-only.
order_idNoGAM Order ID (required for single-entity operations).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: MODE (mixed), AUTH (OAuth 2.0 required), CREDITS (reads 0, writes 0.5), and OUTPUT fields. It also flags destructive actions (archive) and idempotency (find_or_create), providing comprehensive behavioral context beyond what structured fields would offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, mode/auth/credits/output, usage guidance, differentiation). It is informative without being overly verbose, though slightly long. Every sentence earns its place, and key info is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 sub-actions), absence of output schema, and no annotations, the description compensates well. It details each action, output fields, and usage context, making it complete for an agent to understand and use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context for the 'action' parameter by detailing each enum value with read/write status and requirements (e.g., 'create: Write. Requires advertiserId, name, and traffickerId'). This enhances understanding beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'Non-lifecycle Order operations — list, get, create, update, and manage orders.' It differentiates from sibling tools like campaign and order_lifecycle with explicit statements, making the purpose distinct and well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly states when to use this tool ('Use orders for Order entity management') and when not to, naming alternatives ('Use campaign for full campaign orchestration... Use order_lifecycle for status transitions'). This provides clear guidance for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placementsAInspect

Manage GAM placements — named groups of ad units used for targeting.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns Placement objects with id, name, description, targetedAdUnitIds, and status. WHEN TO USE: Use placements to create named groupings of ad units for targeting in line items. Placements are referenced in line item targeting via the targeting tool. Use inventory for individual ad unit management.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_placements: List all placements on the network. Read-only. • create_placement: Create a new placement grouping ad units. Write. Requires name and targetedAdUnitIds. • update_placement: Update a placement's name or ad unit membership. Write. • archive_placement: Archive a placement. Destructive write — removes from targeting options.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, description fully discloses MODE (mixed), AUTH (OAuth 2.0), CREDITS (reads=0, writes=0.5), and output fields. For each action, it explains behavior, e.g., 'archive_placement' is 'Destructive write — removes from targeting options.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with sections (purpose, MODE/AUTH/CREDITS/OUTPUT, WHEN TO USE). Every sentence adds value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with enum actions, description covers all essential aspects: purpose, behavioral traits, when to use, output structure, and differentiation from siblings. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed enum explanations for action. Description adds no additional parameter semantics beyond what's in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Manage GAM placements — named groups of ad units for targeting.' It distinguishes from sibling tools by noting 'Use inventory for individual ad unit management' and references targeting tool for line item targeting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'WHEN TO USE' section explains when to use placements (creating named groupings for targeting in line items) and when not (use inventory for individual ad unit management). Provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

poll_auth_statusAInspect

Poll the OAuth authorization status after initiating a GAM auth flow.

MODE: read-only AUTH: OrbiAds session required CREDITS: 0 (free) OUTPUT: Returns {status: 'pending'|'authorized'|'failed', error?: string} WHEN TO USE: Call repeatedly (every 2–5 seconds) after initiate_gam_auth until status = 'authorized' or 'failed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesAuth session ID returned by initiate_gam_auth.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully compensates by including MODE (read-only), AUTH requirements, CREDITS, and OUTPUT format. It clearly sets expectations about side effects and behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). Every sentence serves a purpose, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter polling tool with no output schema, the description covers purpose, usage context, behavior, auth, and expected output format completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no additional detail beyond the schema's parameter description. The context of use is implied, but no new semantic information is provided for the parameter itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Poll the OAuth authorization status after initiating a GAM auth flow', specifying the verb (poll), resource (authorization status), and context (after initiate_gam_auth), distinguishing it from sibling tools like initiate_gam_auth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides 'WHEN TO USE' with specific instructions: 'Call repeatedly (every 2–5 seconds) after initiate_gam_auth until status = \'authorized\' or \'failed\''. This gives clear context and timing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pqlAInspect

Execute PQL (Publisher Query Language) queries against GAM reporting tables.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns a ResultSet with column definitions and rows. Each row is an array of values matching the column order. WHEN TO USE: Use pql for ad-hoc data extraction not covered by the reporting tool's structured reports. LIMITATIONS: Not all PQL tables are available on all networks (some require beta features). The Language and Device_Category tables have known limitations. For structured delivery/inventory reports, use reporting instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • run_query: Execute a PQL SELECT statement. Example: SELECT Id, Name FROM Order WHERE Status = 'DELIVERING'. Returns rows up to 1000 per call.
pql_queryNoPQL SELECT statement. Supported tables: Order, LineItem, Creative, AdUnit, Placement, Company, User, and others. Max 1000 rows returned.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It declares read-only mode, OAuth 2.0 requirement, zero credits, and a clear output format (ResultSet with columns and rows). It also states a 1000-row limit. Minor omission: no mention of error handling or timeouts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE, LIMITATIONS) and front-loaded with the main purpose. Every sentence adds information; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters and no output schema. The description covers return format, row limit, table references, and alternatives. It could mention pagination or that queries must be SELECT-type, but the read-only flag implies that. Sufficient for the given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value beyond schema by listing supported tables (Order, LineItem, etc.), providing an example query, and explaining the network_code parameter's scope. This incrementally aids understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute PQL queries against GAM reporting tables' with a specific verb and resource. It differentiates from siblings like 'reporting' by stating it's for ad-hoc extraction not covered by structured reports, and explicitly directs users to 'reporting' for structured reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use ('ad-hoc data extraction not covered by the reporting tool's structured reports') and when-not-to-use ('For structured delivery/inventory reports, use reporting instead'). It also lists limitations about table availability and known table issues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prebid_skillAInspect

Plan and operate Prebid.js / header bidding setup for GAM.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: preview and inspect reads are free. Generation/update actions may charge credits when they create or mutate GAM entities. OUTPUT: Returns targeting-key plans, line item generation summaries, cleanup previews, or update results. WHEN TO USE: Use prebid_skill to generate Prebid targeting keys, create or update Prebid line items, preview batches, inspect existing setup, or clean up generated artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • preview_batch: Preview a Prebid batch plan without mutating GAM. • generate_targeting_keys: Generate GAM custom targeting keys and values for Prebid. • generate_line_items: Generate Prebid line items from bucket and placement configuration. • update_line_items: Update existing Prebid line items. • inspect_existing_setup: Inspect existing GAM targeting keys, values, and line items for Prebid readiness. • cleanup: Preview or run cleanup for generated Prebid artifacts.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: mixed read/write mode, OAuth 2.0 requirement, credit costs (free reads, possible charges for mutations), and output types. It also implies mutation for cleanup/update actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with labeled sections (MODE, AUTH, etc.) and front-loaded with overall purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's multiple sub-actions, the description covers high-level outputs and credit costs. The action enum in schema provides specifics. However, no output schema exists, and per-sub-action return details could be clearer, but overall it's sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with detailed descriptions for action (enum with sub-action details) and network_code. The main description adds no extra parameter meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Plan and operate Prebid.js / header bidding setup for GAM.' It lists specific actions (generate targeting keys, line items, preview, inspect, cleanup), making it distinct from sibling tools like creative_qa or dai_skill.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section provides explicit use cases, such as generating Prebid targeting keys or cleaning up artifacts. While it does not explicitly state when not to use or mention alternatives, the guidance is clear and contextual.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

previewAInspect

Generate creative and campaign preview URLs and validate creative coverage.

MODE: read-only AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns preview URLs (expire after 24h) and coverage reports listing which line items have zero or insufficient creative associations. WHEN TO USE: Use preview before launching a campaign to verify all creatives render correctly and coverage is complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • get_preview_urls: Generate preview URLs for a single creative across its associated ad sizes. • get_campaign_preview_urls: Generate preview URLs for all creatives in a campaign. Returns a per-line-item, per-creative list. • check_creative_coverage: Check that all line items in a campaign have at least one active creative. Returns a coverage report.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden of behavioral disclosure. It states read-only mode, required OAuth 2.0 authentication, zero credits, and output specifics (URLs expire after 24h, coverage reports). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: one clear introductory sentence followed by key-value lines for mode, auth, credits, output, and usage. Every sentence adds value with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 params, no output schema), the description adequately covers all necessary context: output format, expiration, and coverage report content. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific information beyond what the schema already provides (enum values and network code description). It adds output context but not parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'generate' and 'validate' with clear resources 'preview URLs' and 'creative coverage'. It uniquely identifies the tool's function among siblings like 'creatives' or 'campaign', making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('before launching a campaign to verify all creatives render correctly and coverage is complete') but does not provide explicit when-not-to-use scenarios or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

productsAInspect

Manage GAM Products and Product Packages for programmatic direct deals.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns Product objects with id, name, type, rateType, rate, targeting, and status. WHEN TO USE: Use products to manage the GAM product catalogue for Programmatic Direct (PD) deals. Products define the inventory packages offered to buyers. For creating deals from products, use the deals tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • create: Create a new GAM product. Write. Requires name, productTemplateId, and rate. • list: List all products on the network with optional filters. Read-only. • get: Get a product by ID. Read-only. • update: Update a product's rate, targeting, or description. Write. • archive: Archive a product. Destructive write — removes from buyer-facing catalogue. • get_adcp: Get the ADCP (Automated Direct Campaign Pricing) configuration for a product. Read-only. • pricing_suggestion: Get a pricing suggestion for a product based on historical delivery data. Read-only.
product_idNoGAM Product ID (required for single-entity operations).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.8/5.0
Behavior5/5

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 discloses MODE (mixed), AUTH (OAuth 2.0 required), CREDITS (reads 0, writes 0.5 credits), OUTPUT (Product objects with fields), and details each sub-operation's nature (read/write/destructive). The archive action is explicitly described as destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with headers (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and bullet points for actions. It is moderately sized and front-loaded with purpose. Every sentence adds value, though slightly verbose due to detailed action list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format (Product objects with id, name, etc.). It covers all actions, prerequisites for 'create', and references sibling tools. The tool is fairly complex, but the description fully addresses the gaps left by structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant meaning by detailing each enum action with its requirements and the network_code parameter with an example and how to obtain it. However, the schema already documents thoroughly, so a slight bump to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages GAM Products and Product Packages for programmatic direct deals, specifying the verb 'Manage' and the resource. It distinguishes from sibling tools by mentioning the 'deals' tool for creating deals from products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit 'WHEN TO USE' section, stating this tool is for managing the product catalogue for Programmatic Direct deals, and refers to the 'deals' tool for creating deals from products, giving clear context and exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reportingAInspect

Full GAM and GA4 reporting — delivery reports, custom reports, forecasting, traffic data, billing, and report management.

MODE: mixed (read + write) READ: all report-run, forecast, list, get, and discovery actions (majority of actions) WRITE: save_report_template (creates), update_report_template (mutates), duplicate_report_template (creates), delete_report_template (destructive), create_gam_report (creates in GAM), update_gam_report (mutates in GAM), delete_gam_report (destructive soft-delete — PATCH visibility=HIDDEN) AUTH: OAuth 2.0 required CREDITS: 0 (all actions free) OUTPUT: Delivery/custom reports return rows of dimension+metric values. Forecasts return estimated_impressions, estimated_clicks, and confidence intervals. Template/GAM report actions return the object after mutation. SIDE EFFECTS: • delete_report_template permanently removes the template from the tenant — irreversible. • delete_gam_report uses soft-delete (PATCH visibility=HIDDEN on the GAM REST API) — the report is hidden from the UI but not purged; there is no DELETE endpoint on GAM reports. • save_report_template and create_gam_report persist new entities that count against quotas. WHEN TO USE: Use reporting for all data extraction and analysis. Use reporting_skill for high-level multi-step reporting workflows described in natural language. • Delivery analysis: check_delivery_status or fetch_delivery_report. • Custom ad-hoc reports: run_custom_report. • Forecasting: get_standalone_forecast or get_delivery_forecast_by_line_item. For pre-flight feasibility, pass sizes/creativeSizes, geo/geoTargeting, priority, frequencyCaps, lineItemType and cpmMicroAmount so the estimate is constrained like the planned Line Item. • GA4 data: run_ga_report. • Reusable reports: save_report_template / run_report_from_template. LIMITATIONS: Some SOAP-era metrics (TOTAL_*, AD_SERVER_ALL_REVENUE) and dimensions (MONTH_AND_YEAR, CREATIVE_SIZE) are rejected by the REST API. Use get_report_dimensions/get_report_metrics to discover valid options.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • check_delivery_status: Check delivery status (actual vs booked) for an order or line item. Returns pacing indicator. • fetch_delivery_report: Fetch a delivery report for a date range. Returns impressions, clicks, CTR by line item. • run_custom_report: Run an ad-hoc report with specified dimensions and metrics. Returns result rows. • fetch_inventory_report: Fetch an inventory forecast report for ad units. Returns available impressions. • get_report_result: Retrieve the result of a previously run report by report_id. • export_report_csv: Export a report result as a CSV download URL. • get_report_dimensions: List valid dimension names for custom reports. Use to discover available breakdown options. • get_report_metrics: List valid metric names for custom reports. Use to discover available measurements. • get_report_date_ranges: List valid relative date range strings (LAST_7_DAYS, LAST_MONTH, etc.). • get_standalone_forecast: Get a constrained forecast for a prospective line item. Accepts adUnitIds, startDate, endDate, sizes/creativeSizes, geo/geoTargeting, priority, frequencyCaps, lineItemType and cpmMicroAmount. • get_delivery_forecast_by_line_item: Get a delivery forecast for one or more existing line items. • get_prospective_delivery_forecast: Get a prospective forecast for a hypothetical line item configuration. • get_traffic_data: Get historical traffic data (impressions available) for targeting criteria. • list_report_templates: List saved report templates. Read-only. • save_report_template: Save a report configuration as a reusable template. Write. • delete_report_template: Delete a report template. Destructive write. • duplicate_report_template: Duplicate a report template. Write. • update_report_template: Update a saved report template. Write. • run_report_from_template: Run a report using a saved template. Returns report_id for async result retrieval. • list_gam_reports: List reports saved in the GAM UI. Read-only. • get_gam_report: Get a specific GAM report by ID. Read-only. • create_gam_report: Create a new report in GAM. Write. • update_gam_report: Update a GAM report configuration. Write. • delete_gam_report: Delete a GAM report. Destructive write — uses soft-delete (PATCH visibility=HIDDEN). • run_gam_report: Run a GAM report and return result rows. • run_ga_report: Run a GA4 report for connected Google Analytics data. • get_ga_dimensions: List valid GA4 dimension names. • get_ga_metrics: List valid GA4 metric names. • check_underdelivery_alerts: Check for active underdelivery alerts across all line items. Returns affected line items with severity. • check_budget_alerts: Check for budget pacing alerts. Returns line items at risk of overspending. • generate_billing_report: Generate a billing summary report for a date range. Returns revenue by advertiser and line item.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses behavioral traits: it states the mode (mixed read+write) and categorizes actions, details side effects (e.g., irreversible delete for templates, soft-delete for GAM reports, quota implications), lists authentication and credit requirements, describes output formats, and notes limitations (rejected SOAP-era metrics/dimensions). No contradictions with annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (intro, MODE, AUTH, CREDITS, OUTPUT, SIDE EFFECTS, WHEN TO USE, LIMITATIONS). It is front-loaded with the overall purpose, and every sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (30+ actions), the description comprehensively covers all aspects: purpose, read/write mode, authentication, credits, output formats, side effects, usage guidelines, and limitations. No output schema exists, but the OUTPUT section adequately explains return types. The description is complete for an AI agent to correctly select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by providing strategic guidance on parameter usage for forecasting (e.g., 'For pre-flight feasibility, pass sizes/creativeSizes...'). This extra context justifies a score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool covers 'Full GAM and GA4 reporting' including delivery reports, custom reports, forecasting, traffic data, billing, and report management. It distinguishes from sibling 'reporting_skill' by specifying when to use each tool, making the purpose and scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly states to use this tool for all data extraction and analysis, and 'reporting_skill' for high-level multi-step workflows. It also provides specific use cases for delivery analysis, custom reports, forecasting, etc., including detailed advice for forecasting parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reporting_skillAInspect

High-level reporting orchestration — describe a reporting goal in natural language and get results.

MODE: read-only (orchestrates multiple reporting tool calls internally) AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns a formatted report with dimensions, metrics, and data rows. May include charts or summary analysis. WHEN TO USE: Use reporting_skill when the reporting goal is clear but the exact dimension/metric combination is unknown. It internally calls get_report_dimensions, get_report_metrics, and run_custom_report. Example: "weekly revenue by ad unit for last month" → selects AD_UNIT_NAME + TOTAL_LINE_ITEM_LEVEL_REVENUE automatically. NOT the same as reporting: reporting gives direct access to individual report operations; reporting_skill is a higher-level orchestrator.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesPlain-language description of the reporting goal. Example: 'top 10 advertisers by revenue last quarter' or 'daily CTR for line items in order 12345'.
network_codeYesGAM network code.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses read-only mode, OAuth 2.0 requirement, zero credits, and internal orchestration behavior. However, it does not mention error handling or limitations, which would make it a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE, Example, NOT). Every sentence adds value, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only 2 simple parameters and no output schema, the description covers all essential aspects: purpose, authentication, cost, output format, usage guidance, and relation to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that 'goal' is a plain-language description and provides an example of how it is used (e.g., selecting dimensions/metrics automatically), which goes beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'high-level reporting orchestration' tool that accepts natural language goals and returns formatted reports. It distinguishes itself from the sibling 'reporting' tool by noting it is a higher-level orchestrator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly includes a 'WHEN TO USE' section with an example and contrasts with the sibling tool: 'NOT the same as reporting'. It also shows how the tool internally calls other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_gam_networkAInspect

Set the active GAM network for the current session when the tenant has multiple linked networks.

MODE: write (session state change) AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: Returns {network_code: int, display_name: string, currency: string} WHEN TO USE: Call after authentication when the tenant has more than one GAM network linked. All subsequent tool calls will use this network_code unless overridden per-call.

ParametersJSON Schema
NameRequiredDescriptionDefault
network_codeYesGAM network code to set as active.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully disclosures behavioral traits: it is a write operation that changes session state, requires OAuth 2.0, costs 0 credits, and returns a structured output. It also explains the side effect of setting the active network for future calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and well-structured: a single sentence for purpose, followed by metadata lines and usage guidelines. Every sentence provides new information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description includes the output format. It covers purpose, usage, authentication, credits, and side effects, making it complete for this simple state-changing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning for the parameter beyond the schema's 'GAM network code to set as active.' The usage context is helpful but does not enhance parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the active GAM network for the session, with a specific verb (Set) and resource (active GAM network). It distinguishes itself from siblings by focusing on network selection, which is unique among the listed tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Call after authentication when the tenant has more than one GAM network linked.' Also clarifies that subsequent calls use this network unless overridden, providing clear usage context and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_infoBInspect

Public health and catalogue summary. Real Google Ad Manager operations require OAuth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only discloses that it is public, but no details on safety, side effects, or data characteristics. Insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no parameters or output schema, the description is minimal. It does not explain what 'public health and catalogue summary' returns, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so the description does not need to add param info. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'public health and catalogue summary', which indicates a summary function but is vague. It differentiates from sibling tools by implying this is for public info, but lacks a specific verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The hint 'Real Google Ad Manager operations require OAuth' suggests this tool is for public data without OAuth, providing clear usage context. No explicit exclusions, but helpful guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settingsAInspect

Manage OrbiAds tenant settings — naming conventions, delivery defaults, and configuration presets.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0 credits (configuration only). OUTPUT: Returns settings objects with key-value pairs for naming patterns, delivery parameters, and preset configurations. WHEN TO USE: Use settings to configure tenant-level defaults that apply across all campaigns. For network-level GAM settings, use the network tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_presets: List all saved configuration presets. Read-only. • create_preset: Save current settings as a named preset. Write. • delete_preset: Delete a preset. Destructive write. • get_tenant_settings: Get all tenant-level settings. Read-only. • update_tenant_settings: Update tenant settings. Write. • get_naming_conventions: Get configured naming convention patterns for orders, line items, and creatives. • update_naming_conventions: Update naming convention patterns. Write. • get_delivery_defaults: Get default delivery settings (pacing, priority, roadblocking) applied to new line items. • update_delivery_defaults: Update delivery defaults. Write.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although annotations are absent, the description discloses MODE (mixed read/write), AUTH (OAuth required), and CREDITS (0 credits). However, it does not explicitly state the destructiveness of delete operations in the main description; these details appear only in the input schema parameter descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear labeled sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE). It is front-loaded with purpose and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has multiple sub-actions and no output schema, the description covers usage context, output format, and sibling differentiation. However, it lacks details on error handling or edge cases (e.g., deleting a non-existent preset).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed enum descriptions for 'action' and a clear description for 'network_code'. The main description adds little beyond summarizing the action categories, so it meets the baseline but does not add significant extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages OrbiAds tenant settings, naming conventions, delivery defaults, and configuration presets. It differentiates from sibling 'network' by specifying that network-level GAM settings should use that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section that explicitly tells users to use this tool for tenant-level defaults and to use the 'network' tool for network-level GAM settings. It also provides AUTH and CREDITS context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

targetingAInspect

Manage GAM custom targeting keys, values, and ad unit targeting configuration.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: Reads = 0. Writes = 0.5 credits. OUTPUT: Returns CustomTargetingKey objects with id, name, type (PREDEFINED/FREEFORM), and associated values. get_available_countries/languages/devices return canonical lists for geographic/device targeting. WHEN TO USE: Use targeting to manage the custom targeting vocabulary (keys and values) used in line item targeting. Use line_items to apply targeting to line items. Use inventory for ad unit structure. NOTE: get_inventory_forecast takes targeting criteria and returns estimated available impressions — useful before creating a line item to verify reach.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • list_ad_units: List all ad units with their sizes and status. Read-only. For full hierarchy, use inventory get_ad_unit_tree. • validate_fluid: Validate a fluid targeting expression for syntax and reference errors. Read-only. • list_custom_targeting_keys: List all custom targeting keys on the network. Read-only. • get_inventory_forecast: Get estimated available impressions for a targeting specification. Read-only. Use before creating a line item to validate reach. • create_custom_targeting_key: Create a new custom targeting key. Write. • create_custom_targeting_values: Create one or more values for an existing key. Write. • update_custom_targeting_key: Update a key's name or type. Write. • delete_custom_targeting_key: Delete a targeting key and all its values. Destructive write. • update_custom_targeting_value: Update a targeting value's name or display name. Write. • perform_custom_targeting_value_action: Activate or deactivate a targeting value. Write. • search_ad_units: Search ad units by name or path. Read-only. • update_ad_unit: Update an ad unit's name, description, or size. Write. • archive_ad_unit: Archive an ad unit. Destructive write. Run inventory find_inactive_ad_units first. • get_custom_targeting_values: Get all values for a specific targeting key. Read-only. • search_custom_targeting: Search targeting keys and values by text. Read-only. • get_available_countries: Return the canonical list of countries for geographic targeting (ISO 3166-1 alpha-2 codes). • get_available_languages: Return the canonical list of language codes for language targeting. • get_device_categories: Return the canonical list of device categories (DESKTOP, MOBILE, TABLET, CONNECTED_TV).
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully bears the burden of behavioral disclosure. It clearly states MODE (mixed read+write), AUTH (OAuth 2.0 required), CREDITS (reads 0, writes 0.5), and marks destructive actions (e.g., 'Destructive write'). It also describes output objects and special cases like get_inventory_forecast.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE, NOTE) and each action is described concisely. While it is lengthy, every sentence provides necessary guidance. Slight redundancy in repeating 'Read-only' could be trimmed but overall earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 18 sub-actions and no output schema, the description is complete. It specifies return types (CustomTargetingKey objects, canonical lists), credits, authentication, and prerequisites for destructive actions. No gaps remain for an AI agent to safely invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant value beyond the schema by providing usage context for each action (e.g., 'Run inventory find_inactive_ad_units first' for archive_ad_unit) and clarifying scope (e.g., 'Read-only'). This justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage GAM custom targeting keys, values, and ad unit targeting configuration.' It uses specific verbs and resources, and the 'WHEN TO USE' section distinguishes it from sibling tools like 'line_items' and 'inventory'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly guides when to use this tool versus alternatives: 'Use targeting to manage the custom targeting vocabulary... Use line_items to apply targeting to line items. Use inventory for ad unit structure.' Additionally, individual action descriptions note alternatives, e.g., 'For full hierarchy, use inventory get_ad_unit_tree'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tenant_catalogAInspect

Scan and cache the tenant's GAM inventory catalog for fast downstream operations.

MODE: read (scan triggers a background read job) AUTH: OAuth 2.0 required CREDITS: 0 (free) OUTPUT: get_active_catalog returns a JSON catalog of ad units, placements, and key-values. get_scan_status returns {status: IDLE|RUNNING|COMPLETE, progress, last_updated}. WHEN TO USE: Run scan_network once after connecting a new GAM network, then call refresh periodically (daily) to keep the catalog current. Other tools use the catalog for fast lookups without hitting the GAM API on every call.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • scan_network: Trigger a background scan of the GAM network to build the inventory catalog. Returns a scan job ID. Poll with get_scan_status. • get_scan_status: Get the status of the most recent catalog scan. Returns status, progress, and last_updated timestamp. • get_active_catalog: Return the current cached inventory catalog (ad units, placements, targeting keys). May be stale if not refreshed recently. • refresh: Trigger an incremental catalog refresh to pick up recent GAM changes without a full rescan.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even without annotations, the description discloses behavioral traits: MODE: read, AUTH: OAuth 2.0 required, CREDITS: 0 (free), and explains that scanning triggers a background job. It also describes the output of two sub-operations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections (MODE, AUTH, CREDITS, OUTPUT, WHEN TO USE) and front-loaded with the main purpose. Every sentence adds value without redundancy. It is concise yet comprehensive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple actions, background job, caching), the description covers authentication, credits, usage patterns, and expected outputs for the two main sub-operations. Despite no output schema, the description compensates adequately. Sibling tools are listed, adding context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by explaining the sub-operations in context and providing usage patterns (e.g., 'Poll with get_scan_status'). It also clarifies that network_code is required for network-scoped operations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Scan and cache the tenant's GAM inventory catalog for fast downstream operations.' It uses specific verbs ('Scan and cache') and clearly distinguishes itself from sibling tools by noting that other tools use the catalog for fast lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use instructions: 'Run scan_network once after connecting a new GAM network, then call refresh periodically (daily) to keep the catalog current.' It also explains that other tools depend on this catalog, implying when not to use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_opsBInspect

Video monetization: ad rule management, content metadata, and content bundle operations.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: read = 0 credits. OUTPUT: Results for video ops entities. WHEN TO USE: Use for managing Ad Rules, Content metadata, and Content bundles.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • create_ad_rules: Create ad rules. • create_content_bundles: Create content bundles. • perform_ad_rule_action: Perform an action on ad rules. • perform_content_action: Perform an action on content. • perform_content_bundle_action: Perform an action on content bundles. • update_ad_rules: Update ad rules. • update_content_bundles: Update content bundles. • get_ad_rules_by_statement: Get ad rules by statement. • get_content_bundles_by_statement: Get content bundles by statement. • get_content_by_statement: Get content by statement.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

B3.2/5.0
Behavior3/5

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 MODE: mixed (read + write), AUTH: OAuth 2.0 required, and CREDITS: read = 0 credits, which implies some write operations may consume credits. However, it does not describe potential destructive actions, error behavior, rate limits, or the exact credit cost for writes. The OUTPUT is vague. This is acceptable but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose but contains redundancy: 'Ad Rules, Content metadata, and Content bundles' appears both in the header and the 'WHEN TO USE' section. The metadata lines are useful but could be integrated more tightly. Overall, it is adequate but not maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 sub-operations and the schema allows additional properties (additionalProperties: true), but the description does not explain what extra parameters are required for each action. This is a significant gap for an agent to correctly invoke the tool. Output schema is absent, but the primary issue is the missing sub-parameter documentation. The description is incomplete for a multifunction tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the two defined parameters. The action enum has detailed descriptions for each value, and network_code has a clear description. The description adds minimal extra meaning beyond the schema, such as the vague 'OUTPUT: Results for video ops entities.' With high coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is for video monetization and lists three areas: ad rule management, content metadata, and content bundle operations. The tool name 'video_ops' is generic, but the description clarifies the scope. Sibling tools like 'creatives' or 'line_items' do not directly overlap, so the purpose is fairly clear, though it could be more specific about what each area entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'WHEN TO USE' section: 'Use for managing Ad Rules, Content metadata, and Content bundles.' This provides clear context but does not specify when not to use the tool or suggest alternatives. No exclusions are mentioned, and sibling tools are not referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yield_skillAInspect

Yield optimization group management and forecast governance.

MODE: mixed (read + write) AUTH: OAuth 2.0 required CREDITS: read = 0 credits. OUTPUT: Results for yield groups and forecast adjustments. WHEN TO USE: Use for managing yield groups and reading forecast adjustments.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSub-operation to perform: • create_yield_group: Create a yield group. • update_yield_group: Update a yield group. • list_forecast_adjustments: List forecast adjustments. • list_forecast_segments: List forecast segments. • list_yield_groups: List yield groups.
network_codeNoGAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description bears full responsibility for behavioral disclosure. It states MODE (mixed), AUTH, and CREDITS, but lacks details on side effects of write operations (e.g., irreversibility, permission requirements). Score 3 reflects moderate transparency with gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear sections and is relatively concise. However, the first sentence and the 'WHEN TO USE' section are somewhat redundant, preventing a top score. Score 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 5 sub-actions and the absence of an output schema, the description provides an overview but lacks details on return values, error handling, or prerequisites beyond OAuth. Additional context would be needed for full completeness. Score 3.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters well-described in the schema. The tool description adds general context (MODE, OUTPUT) but does not enhance parameter-specific meaning, leading to a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the domain (yield optimization group management and forecast governance) and lists specific sub-operations. However, it does not provide a single focused verb+resource and lacks explicit differentiation from sibling tools, resulting in a score of 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes dedicated sections for MODE, AUTH, CREDITS, OUTPUT, and WHEN TO USE, offering clear context for usage. However, it does not specify when not to use this tool or mention alternatives, justifying a score of 4.

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.

  1. 11 tool updatesv0.1.2
    • Addedad_review_center
    • Changedcampaign4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform:\n  • deploy: Deploy a complete campaign to GAM: creates Order, LineItems, Creatives, and LICAs. Requires confirmation_token. Returns campaign_id and all created entity IDs.\n  • update: Update an existing campaign's metadata, budget, or targeting without full redeployment. Write.\n  • ensure_template: Ensure a native ad template exists in GAM, creating it if absent. Idempotent write.\n  • create_native_style: Create a GAM native ad style for use in native campaigns. Write.\n  • create_line_items_batch: Create multiple line items under an existing order in one call. Write. Faster than individual line item creation.\n  • create_licas: Create LineItem-Creative Associations (LICAs) to link creatives to line items. Write.\n  • create_display: Create a standard display ad campaign (order + line items + creatives) from a template. Write, requires confirmation_token.\n  • rollback: Revert a campaign to its previous deployed version. Destructive write — archives current version. Requires confirmation_token.\n  • pause: Pause all active line items in a campaign. Write.\n  • archive: Archive a campaign (order + line items). Destructive — removes from active serving. Requires confirmation_token."New value: +"Sub-operation to perform:\n  • deploy: Deploy a complete campaign to GAM: accepts campaignId from create_draft/REST or legacy jobId, plus confirmation_token. Creates Order, LineItems, Creatives, and LICAs.\n  • create_draft: Create an OrbiAds campaigns/{campaignId} draft from MCP without using the web UI. Write, requires confirmation_token.\n  • update: Update an existing campaign's metadata, budget, or targeting without full redeployment. Write.\n  • ensure_template: Ensure a native ad template exists in GAM, creating it if absent. Idempotent write.\n  • create_native_style: Create a GAM native ad style for use in native campaigns. Write.\n  • create_line_items_batch: Create multiple line items under an existing order in one call. Write. Faster than individual line item creation.\n  • create_licas: Create LineItem-Creative Associations (LICAs) to link creatives to line items. Write.\n  • create_display: Create a standard display ad campaign (order + line items + creatives) from a template. Write, requires confirmation_token.\n  • rollback: Revert a campaign to its previous deployed version. Destructive write — archives current version. Requires confirmation_token.\n  • pause: Pause all active line items in a campaign. Write.\n  • archive: Archive a campaign (order + line items). Destructive — removes from active serving. Requires confirmation_token."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "deploy",
        -  "update",
        -  "ensure_template",
        -  "create_native_style",
        -  "create_line_items_batch",
        -  "create_licas",
        -  "create_display",
        -  "rollback",
        -  "pause",
        -  "archive"
        -]New value: +[
        +  "deploy",
        +  "create_draft",
        +  "update",
        +  "ensure_template",
        +  "create_native_style",
        +  "create_line_items_batch",
        +  "create_licas",
        +  "create_display",
        +  "rollback",
        +  "pause",
        +  "archive"
        +]
      • changedInput schema / properties / campaign_id / description
        Previous value: -"OrbiAds campaign identifier (required for update/rollback/pause/archive)."New value: +"OrbiAds campaigns/{campaignId} identifier, accepted by deploy and campaign lifecycle actions."
      • addedInput schema / properties / jobId
        Added value: +{
        +  "description": "Legacy Firestore jobs/{jobId} document. deploy also accepts modern campaignId.",
        +  "type": "string"
        +}
    • Addeddai_skill
    • Addedlive_stream
    • Addedmcm
    • Changedorders1 field changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform:\n  • list_delivering: List orders currently in delivery. Read-only.\n  • get: Get a single order by ID. Read-only.\n  • list: List orders with optional filters (advertiser, status, date range). Read-only.\n  • create: Create a new order. Write. Requires advertiserId, name, and traffickerId.\n  • archive: Archive an order. Destructive write — stops delivery.\n  • approve: Approve an order for delivery. Write.\n  • verify_setup: Verify an order's setup (targeting, creative associations) before activation. Read-only.\n  • update: Update an order's name, salesperson, or notes. Write.\n  • find_or_create: Find an existing order matching the criteria or create a new one if not found. Idempotent write.\n  • list_users: List users (salespeople, traffickers) associated with an order. Read-only.\n  • list_roles: List available order roles. Read-only."New value: +"Sub-operation to perform:\n  • list_delivering: List orders currently in delivery. Read-only.\n  • get: Get a single order by ID. Read-only.\n  • list: List orders with optional filters (advertiser, status, date range). Read-only.\n  • create: Create a new order. Write. Requires advertiserId, name, and traffickerId.\n  • archive: Archive an order. Destructive write — stops delivery.\n  • approve: Approve an order for delivery. Write.\n  • verify_setup: Verify an order's setup (targeting, creative associations) before activation. Read-only.\n  • update: Update an order's name, salespersonId, secondarySalespersonIds, customFieldValues, or notes. Write.\n  • find_or_create: Find an existing order matching the criteria or create a new one if not found. Idempotent write.\n  • list_users: List users (salespeople, traffickers) associated with an order. Read-only.\n  • list_roles: List available order roles. Read-only."
    • Addedprebid_skill
    • Changedreporting1 field changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform:\n  • check_delivery_status: Check delivery status (actual vs booked) for an order or line item. Returns pacing indicator.\n  • fetch_delivery_report: Fetch a delivery report for a date range. Returns impressions, clicks, CTR by line item.\n  • run_custom_report: Run an ad-hoc report with specified dimensions and metrics. Returns result rows.\n  • fetch_inventory_report: Fetch an inventory forecast report for ad units. Returns available impressions.\n  • get_report_result: Retrieve the result of a previously run report by report_id.\n  • export_report_csv: Export a report result as a CSV download URL.\n  • get_report_dimensions: List valid dimension names for custom reports. Use to discover available breakdown options.\n  • get_report_metrics: List valid metric names for custom reports. Use to discover available measurements.\n  • get_report_date_ranges: List valid relative date range strings (LAST_7_DAYS, LAST_MONTH, etc.).\n  • get_standalone_forecast: Get a forecasted impression estimate for a targeting specification without an existing line item.\n  • get_delivery_forecast_by_line_item: Get a delivery forecast for one or more existing line items.\n  • get_prospective_delivery_forecast: Get a prospective forecast for a hypothetical line item configuration.\n  • get_traffic_data: Get historical traffic data (impressions available) for targeting criteria.\n  • list_report_templates: List saved report templates. Read-only.\n  • save_report_template: Save a report configuration as a reusable template. Write.\n  • delete_report_template: Delete a report template. Destructive write.\n  • duplicate_report_template: Duplicate a report template. Write.\n  • update_report_template: Update a saved report template. Write.\n  • run_report_from_template: Run a report using a saved template. Returns report_id for async result retrieval.\n  • list_gam_reports: List reports saved in the GAM UI. Read-only.\n  • get_gam_report: Get a specific GAM report by ID. Read-only.\n  • create_gam_report: Create a new report in GAM. Write.\n  • update_gam_report: Update a GAM report configuration. Write.\n  • delete_gam_report: Delete a GAM report. Destructive write — uses soft-delete (PATCH visibility=HIDDEN).\n  • run_gam_report: Run a GAM report and return result rows.\n  • run_ga_report: Run a GA4 report for connected Google Analytics data.\n  • get_ga_dimensions: List valid GA4 dimension names.\n  • get_ga_metrics: List valid GA4 metric names.\n  • check_underdelivery_alerts: Check for active underdelivery alerts across all line items. Returns affected line items with severity.\n  • check_budget_alerts: Check for budget pacing alerts. Returns line items at risk of overspending.\n  • generate_billing_report: Generate a billing summary report for a date range. Returns revenue by advertiser and line item."New value: +"Sub-operation to perform:\n  • check_delivery_status: Check delivery status (actual vs booked) for an order or line item. Returns pacing indicator.\n  • fetch_delivery_report: Fetch a delivery report for a date range. Returns impressions, clicks, CTR by line item.\n  • run_custom_report: Run an ad-hoc report with specified dimensions and metrics. Returns result rows.\n  • fetch_inventory_report: Fetch an inventory forecast report for ad units. Returns available impressions.\n  • get_report_result: Retrieve the result of a previously run report by report_id.\n  • export_report_csv: Export a report result as a CSV download URL.\n  • get_report_dimensions: List valid dimension names for custom reports. Use to discover available breakdown options.\n  • get_report_metrics: List valid metric names for custom reports. Use to discover available measurements.\n  • get_report_date_ranges: List valid relative date range strings (LAST_7_DAYS, LAST_MONTH, etc.).\n  • get_standalone_forecast: Get a constrained forecast for a prospective line item. Accepts adUnitIds, startDate, endDate, sizes/creativeSizes, geo/geoTargeting, priority, frequencyCaps, lineItemType and cpmMicroAmount.\n  • get_delivery_forecast_by_line_item: Get a delivery forecast for one or more existing line items.\n  • get_prospective_delivery_forecast: Get a prospective forecast for a hypothetical line item configuration.\n  • get_traffic_data: Get historical traffic data (impressions available) for targeting criteria.\n  • list_report_templates: List saved report templates. Read-only.\n  • save_report_template: Save a report configuration as a reusable template. Write.\n  • delete_report_template: Delete a report template. Destructive write.\n  • duplicate_report_template: Duplicate a report template. Write.\n  • update_report_template: Update a saved report template. Write.\n  • run_report_from_template: Run a report using a saved template. Returns report_id for async result retrieval.\n  • list_gam_reports: List reports saved in the GAM UI. Read-only.\n  • get_gam_report: Get a specific GAM report by ID. Read-only.\n  • create_gam_report: Create a new report in GAM. Write.\n  • update_gam_report: Update a GAM report configuration. Write.\n  • delete_gam_report: Delete a GAM report. Destructive write — uses soft-delete (PATCH visibility=HIDDEN).\n  • run_gam_report: Run a GAM report and return result rows.\n  • run_ga_report: Run a GA4 report for connected Google Analytics data.\n  • get_ga_dimensions: List valid GA4 dimension names.\n  • get_ga_metrics: List valid GA4 metric names.\n  • check_underdelivery_alerts: Check for active underdelivery alerts across all line items. Returns affected line items with severity.\n  • check_budget_alerts: Check for budget pacing alerts. Returns line items at risk of overspending.\n  • generate_billing_report: Generate a billing summary report for a date range. Returns revenue by advertiser and line item."
    • Addedserver_info
    • Addedvideo_ops
    • Addedyield_skill
  2. 36 tool updatesv0.1.1
    • Changedaudiences2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_audience_segments, get_audience_segment, create_audience_segment, update_audience_segment, perform_audience_segment_action."New value: +"Sub-operation to perform:\n  • list_audience_segments: List all audience segments on the network. Read-only, free. Returns paginated list with id, name, type, and status.\n  • get_audience_segment: Get a specific audience segment by ID. Read-only, free. Requires segment_id parameter.\n  • create_audience_segment: Create a new first-party audience segment. Write operation, costs 0.5 credits, requires confirmation_token. Returns the created segment with its new ID.\n  • update_audience_segment: Update an existing audience segment's name, description, or membership rules. Write, free. Requires segment_id.\n  • perform_audience_segment_action: Activate or deactivate a segment. Write, free. Requires segment_id and action type (ACTIVATE or DEACTIVATE)."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedaudit2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: query_audit_log."New value: +"Sub-operation to perform:\n  • query_audit_log: Execute a filtered query against the GAM audit log. Filterable by entityId, entityType, userId, and date range. Returns a paginated list of audit events."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedaudit_skill3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: hygiene_check, ops_diagnostic, standards_baseline, wrapper_coverage, estimate_cost, export_authoring."New value: +"Sub-operation to perform:\n  • hygiene_check: Scan the network for hygiene issues: orphaned creatives, line items past end date still active, orders with no live line items, creative-line item association gaps. Returns severity-tagged findings.\n  • ops_diagnostic: Diagnose operational delivery problems: underdelivery, pacing issues, targeting conflicts, creative disapprovals. Correlates data across orders/line items/creatives.\n  • standards_baseline: Evaluate the network against a named compliance framework. Requires framework parameter: orbiads_baseline | iso27001_adops | iab_anti_tampering | nist_csf. Returns a pass/fail checklist per control.\n  • wrapper_coverage: Audit CreativeWrapper coverage across ad units and placements. Detects missing wrappers, double-wrapping, and wrapper misconfiguration.\n  • estimate_cost: Preview the credit cost of an operation before executing it. Requires operation_name and parameters. Returns cost in credits and explanation.\n  • export_authoring: Export an authoring-audit CSV of GAM entities (teams, users, custom fields, labels) for governance and compliance reporting. Returns a download URL or inline CSV."
      • changedInput schema / properties / framework / description
        Previous value: -"Compliance framework for standards_baseline action."New value: +"Compliance framework for standards_baseline action. Required when action=standards_baseline."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedbilling2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_credit_balance, list_transactions."New value: +"Sub-operation to perform:\n  • get_credit_balance: Return the current credit balance, plan type, and monthly allowance for the authenticated tenant.\n  • list_transactions: List credit transaction history (debits for write operations, credits for plan renewal/top-ups). Filterable by date range."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedblueprint2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_active_preferences, get_active_blueprint, save_blueprint, save_preferences, add_format, remove_format, add_position, remove_position, add_key_value, remove_key_value, update_brand, update_platforms, list_templates."New value: +"Sub-operation to perform:\n  • get_active_preferences: Read the current tenant preferences (naming conventions, default targeting, delivery settings).\n  • get_active_blueprint: Read the full active inventory blueprint JSON.\n  • save_blueprint: Replace the full blueprint with a new version. Write. Validate with a dry-run before saving to production.\n  • save_preferences: Update tenant preferences. Write.\n  • add_format: Add a creative format to the blueprint. Write. Requires format_code and size parameters.\n  • remove_format: Remove a creative format from the blueprint. Write. Does not remove existing GAM creatives.\n  • add_position: Add an inventory position (ad unit + targeting combination) to the blueprint. Write.\n  • remove_position: Remove an inventory position from the blueprint. Write. Does not archive existing ad units.\n  • add_key_value: Add a custom targeting key-value definition to the blueprint. Write.\n  • remove_key_value: Remove a key-value definition from the blueprint. Write.\n  • update_brand: Update brand metadata (name, logo, primary color) attached to the blueprint. Write.\n  • update_platforms: Update the list of target platforms (desktop, mobile_web, app_ios, app_android) in the blueprint. Write.\n  • list_templates: List all available campaign templates (display, native, video presets). Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcampaign3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: deploy, update, ensure_template, create_native_style, create_line_items_batch, create_licas, create_display, rollback, pause, archive."New value: +"Sub-operation to perform:\n  • deploy: Deploy a complete campaign to GAM: creates Order, LineItems, Creatives, and LICAs. Requires confirmation_token. Returns campaign_id and all created entity IDs.\n  • update: Update an existing campaign's metadata, budget, or targeting without full redeployment. Write.\n  • ensure_template: Ensure a native ad template exists in GAM, creating it if absent. Idempotent write.\n  • create_native_style: Create a GAM native ad style for use in native campaigns. Write.\n  • create_line_items_batch: Create multiple line items under an existing order in one call. Write. Faster than individual line item creation.\n  • create_licas: Create LineItem-Creative Associations (LICAs) to link creatives to line items. Write.\n  • create_display: Create a standard display ad campaign (order + line items + creatives) from a template. Write, requires confirmation_token.\n  • rollback: Revert a campaign to its previous deployed version. Destructive write — archives current version. Requires confirmation_token.\n  • pause: Pause all active line items in a campaign. Write.\n  • archive: Archive a campaign (order + line items). Destructive — removes from active serving. Requires confirmation_token."
      • changedInput schema / properties / confirmation_token / description
        Previous value: -"Write-confirmation token (required for deploy and rollback)."New value: +"Write-confirmation token from a prior estimate/preview call. Required for deploy, rollback, archive."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcompanies3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_advertisers, get_advertiser, create_advertiser, update_advertiser, archive_advertiser, list_agencies, get_agency, create_agency, update_agency, list_contacts, get_contact, update_contact."New value: +"Sub-operation to perform:\n  • list_advertisers: List all advertiser companies on the network. Read-only, paginated.\n  • get_advertiser: Get a specific advertiser by ID. Read-only. Requires company_id.\n  • create_advertiser: Create a new advertiser company. Write, 0.5 credits. Requires name and optionally creditStatus, address.\n  • update_advertiser: Update an existing advertiser's name, credit status, or address. Write.\n  • archive_advertiser: Archive (deactivate) an advertiser. Destructive write — prevents new orders. Requires company_id.\n  • list_agencies: List all agency companies on the network. Read-only.\n  • get_agency: Get a specific agency by ID. Read-only.\n  • create_agency: Create a new agency company. Write, 0.5 credits.\n  • update_agency: Update an existing agency. Write.\n  • list_contacts: List contacts associated with a company. Read-only. Requires company_id.\n  • get_contact: Get a specific contact by ID. Read-only.\n  • update_contact: Update a contact's details. Write."
      • addedInput schema / properties / company_id
        Added value: +{
        +  "description": "GAM Company ID (required for get/update/archive operations).",
        +  "type": "integer"
        +}
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcreative_assets2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: bulk_upload, upload_from_url, upload_and_associate, upload_html5_zip, create_image, create_html5, create_html5_from_files, create_video, create_audio, create_vast_redirect, create_companion, create_third_party, create_classic_native, compress_image, get_video_transcode_status."New value: +"Sub-operation to perform:\n  • bulk_upload: Upload multiple asset files in one call. Returns list of assetId per file. Preferred over individual uploads for batch workflows.\n  • upload_from_url: Download a file from a URL and upload it to GAM as an asset. Write. Requires source_url and file_name.\n  • upload_and_associate: Upload an asset and immediately associate it with an existing creative. Write.\n  • upload_html5_zip: Upload an HTML5 ZIP package and validate its structure before storage. Returns assetId and a list of validation warnings.\n  • create_image: Create an image asset from raw bytes or a local file path. Write.\n  • create_html5: Create an HTML5 asset from inline HTML/CSS/JS content. Write.\n  • create_html5_from_files: Create an HTML5 asset by bundling multiple local files. Write.\n  • create_video: Create a video creative asset (VAST URL or inline video). Write.\n  • create_audio: Create an audio creative asset. Write.\n  • create_vast_redirect: Create a VAST redirect creative that points to an external VAST URL. Write.\n  • create_companion: Create a companion ad asset associated with a video creative. Write.\n  • create_third_party: Create a third-party tag creative asset (JavaScript or iframe snippet). Write.\n  • create_classic_native: Create a classic native ad asset with headline, body, image, and CTA fields. Write.\n  • compress_image: Compress an existing image asset to reduce file size. Modifies asset in-place. Write.\n  • get_video_transcode_status: Check the status of a video transcode job. Read-only. Returns status: PENDING | PROCESSING | COMPLETE | FAILED."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcreative_qa2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: scan_creative_compliance, validate_creative_ssl, validate_creative_ssl_batch, audit_creative_tracking, audit_order_tracking, validate_tag_snippet, pre_archive_check."New value: +"Sub-operation to perform:\n  • scan_creative_compliance: Scan a creative for policy violations, prohibited content, missing click-through URLs, and size non-compliance. Returns a compliance report per check.\n  • validate_creative_ssl: Verify that all URLs in a creative (click-throughs, image src, tracking pixels) are HTTPS. Critical for modern GAM requirements.\n  • validate_creative_ssl_batch: Run SSL validation on multiple creatives in one call. Returns a per-creative summary.\n  • audit_creative_tracking: Verify all impression and click tracking pixels are reachable and return 200. Detects broken trackers.\n  • audit_order_tracking: Audit tracking pixels across all creatives associated with an order. Returns a per-creative, per-tracker report.\n  • validate_tag_snippet: Validate a third-party ad tag snippet for syntax errors, unsafe JS, and missing required macros (%%CLICK_URL%%, etc.).\n  • pre_archive_check: Check whether a creative has active LICA associations before archiving. Returns list of active line items that would be affected."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcreative_wrapper_skill2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list, get, create, update, activate, deactivate, archive, set_data_declaration, list_rich_media_ads_companies, find_third_party_company, create_preset, list_wrapper_presets, provision."New value: +"Sub-operation to perform:\n  • list: List all CreativeWrappers on the network. Read-only.\n  • get: Get a specific CreativeWrapper by ID. Read-only.\n  • create: Create a new CreativeWrapper. Write. Requires adUnitId or placementId, and headerHtmlSnippet or footerHtmlSnippet.\n  • update: Update an existing wrapper's snippet or targeting. Write.\n  • activate: Activate a paused wrapper. Write.\n  • deactivate: Deactivate an active wrapper without deleting it. Write. Preferred over archive for temporary suspension.\n  • archive: Archive a wrapper permanently. Destructive write.\n  • set_data_declaration: Set the data usage declaration for a wrapper (required for GDPR/CCPA compliance). Write.\n  • list_rich_media_ads_companies: List GAM-certified rich media companies available for wrapper configuration. Read-only.\n  • find_third_party_company: Search for a third-party company by name to use in a wrapper. Read-only.\n  • create_preset: Save a wrapper configuration as a reusable preset. Write.\n  • list_wrapper_presets: List all saved wrapper presets. Read-only.\n  • provision: Apply a preset to a set of ad units or placements. Bulk write."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedcreatives2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_creatives_by_advertiser, list_creatives_by_line_item, list_creatives_by_network, get_creative, update_creative, archive_creative, duplicate_creative, get_creative_preview_url, get_native_style_preview_urls, get_campaign_preview_links, get_video_transcode_status, list_native_styles, get_native_style, update_native_style, archive_native_style, duplicate_native_style, ensure_classic_native_template, list_creative_templates, get_creative_template, discover_native_formats, associate_creative, bulk_associate_creatives, get_licas_by_line_item, get_licas_batch, deactivate_lica, update_lica, delete_licas."New value: +"Sub-operation to perform:\n  • list_creatives_by_advertiser: List all creatives for a given advertiser ID. Read-only.\n  • list_creatives_by_line_item: List all creatives associated with a line item. Read-only.\n  • list_creatives_by_network: List all creatives on the network with optional filters. Read-only.\n  • get_creative: Get a single creative by ID. Read-only.\n  • update_creative: Update a creative's name, size, or snippet. Write.\n  • archive_creative: Archive a creative. Destructive write — removes from active serving. Run pre_archive_check first.\n  • duplicate_creative: Duplicate an existing creative to use as a starting point. Write.\n  • get_creative_preview_url: Generate a preview URL for a creative. Read-only. URL expires after 24h.\n  • get_native_style_preview_urls: Generate preview URLs for a native style across all sizes. Read-only.\n  • get_campaign_preview_links: Get all preview links for a campaign (all creatives + all placements). Read-only.\n  • get_video_transcode_status: Check transcode status for a video creative. Read-only.\n  • list_native_styles: List all native ad styles. Read-only.\n  • get_native_style: Get a specific native style by ID. Read-only.\n  • update_native_style: Update a native style's template or CSS. Write.\n  • archive_native_style: Archive a native style. Destructive write.\n  • duplicate_native_style: Duplicate a native style. Write.\n  • ensure_classic_native_template: Ensure a classic native template exists, creating it if absent. Idempotent write.\n  • list_creative_templates: List all creative templates available on the network. Read-only.\n  • get_creative_template: Get a specific creative template by ID. Read-only.\n  • discover_native_formats: Discover available native ad formats and their required fields. Read-only.\n  • associate_creative: Create a LICA between one creative and one line item. Write.\n  • bulk_associate_creatives: Create multiple LICAs in one call. Write.\n  • get_licas_by_line_item: List all LICAs for a line item. Read-only.\n  • get_licas_batch: Retrieve multiple LICAs by ID. Read-only.\n  • deactivate_lica: Deactivate a LICA without deleting it. Write.\n  • update_lica: Update a LICA's weight or start/end date. Write.\n  • delete_licas: Delete LICAs permanently. Destructive write."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changeddeals2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_deals, get_deal, create_deal, update_deal, list_auctions, get_auction, create_auction, update_auction, list_buyers, get_buyer, get_proposal, create_proposal, update_proposal, archive_proposal, request_buyer_acceptance, reserve_proposal, edit_proposal_for_negotiation, terminate_proposal_negotiations, get_marketplace_comments, list_proposal_line_items, create_proposal_line_items, update_proposal_line_items, archive_proposal_line_items, create_makegoods, estimate_deal_cost, adcp_validate, adcp_preview, adcp_create."New value: +"Sub-operation to perform:\n  • list_deals: List all programmatic deals on the network. Read-only.\n  • get_deal: Get a specific deal by ID. Read-only.\n  • create_deal: Create a new programmatic deal. Write.\n  • update_deal: Update a deal's floor price or targeting. Write.\n  • list_auctions: List auction packages. Read-only.\n  • get_auction: Get a specific auction package. Read-only.\n  • create_auction: Create an auction package. Write.\n  • update_auction: Update an auction package. Write.\n  • list_buyers: List all programmatic buyers on the network. Read-only.\n  • get_buyer: Get a specific buyer by ID. Read-only.\n  • get_proposal: Get a proposal by ID including its negotiation history. Read-only.\n  • create_proposal: Create a new PG/PD proposal. Write.\n  • update_proposal: Update a proposal's terms, targeting, or pricing. Write.\n  • archive_proposal: Archive a proposal. Destructive write.\n  • request_buyer_acceptance: Send a proposal to the buyer for acceptance. Write — triggers buyer notification.\n  • reserve_proposal: Reserve inventory for a proposal (locks availability). Write.\n  • edit_proposal_for_negotiation: Reopen an accepted proposal for renegotiation. Write.\n  • terminate_proposal_negotiations: Permanently terminate negotiations. Irreversible destructive write.\n  • get_marketplace_comments: Retrieve buyer/seller comments on a proposal. Read-only.\n  • list_proposal_line_items: List line items within a proposal. Read-only.\n  • create_proposal_line_items: Create line items within a proposal. Write.\n  • update_proposal_line_items: Update proposal line items' targeting or pricing. Write.\n  • archive_proposal_line_items: Archive proposal line items. Destructive write.\n  • create_makegoods: Create makegood line items to compensate for underdelivered campaigns. Write.\n  • estimate_deal_cost: Preview the credit cost of a deal operation. Read-only.\n  • adcp_validate: Validate an ADCP deal configuration before creation. Read-only.\n  • adcp_preview: Preview an ADCP deal's reach and estimated delivery. Read-only.\n  • adcp_create: Create an ADCP deal. Write, 2 credits, requires confirmation_token."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changeddisconnect_gam1 field changed
      • changedInput schema / properties / confirmation_token / description
        Previous value: -"Write-confirmation token (required — this action is irreversible)."New value: +"Write-confirmation token. Required — disconnection is irreversible."
    • Changedformats2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_recipes, list_suggested_recipes, accept_suggested_recipe, reject_suggested_recipe, register_recipe, update_recipe, delete_recipe, resolve, detect_conflicts."New value: +"Sub-operation to perform:\n  • list_recipes: List all registered creative format recipes. Read-only.\n  • list_suggested_recipes: List AI-suggested format recipes based on the network's inventory. Read-only.\n  • accept_suggested_recipe: Accept and register a suggested recipe. Write.\n  • reject_suggested_recipe: Reject a suggested recipe so it is not shown again. Write.\n  • register_recipe: Register a new custom format recipe. Write.\n  • update_recipe: Update a recipe's dimensions, creative type, or scope. Write.\n  • delete_recipe: Delete a format recipe. Destructive write — does not affect existing creatives.\n  • resolve: Resolve conflicts between formats across sites. Write.\n  • detect_conflicts: Detect format conflicts across registered sites without resolving them. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedgam_admin2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_teams, get_team, create_team, update_team, delete_team, add_team_members, remove_team_members, list_sites, get_site, create_site, update_site, delete_site, list_mobile_apps, get_mobile_app, create_mobile_app, update_mobile_app, list_custom_fields, get_custom_field, create_custom_field, update_custom_field, deactivate_custom_field, list_custom_field_options, create_custom_field_option, update_custom_field_option, deactivate_custom_field_option, list_labels, get_label, create_label, update_label, deactivate_label, list_pps_configs, get_pps_config, create_pps_config, update_pps_config, delete_pps_config, list_users, get_user, get_current_user, create_user, update_user, deactivate_user, perform_user_action, list_roles, list_team_memberships, get_user_record, get_salesperson_record, get_trafficker_record, audit_user_access."New value: +"Sub-operation to perform:\n  • list_teams: List all teams on the network. Read-only.\n  • get_team: Get a team by ID. Read-only.\n  • create_team: Create a new team. Write.\n  • update_team: Update a team's name or description. Write.\n  • delete_team: Delete a team. Destructive write — removes team membership associations.\n  • add_team_members: Add users to a team. Write.\n  • remove_team_members: Remove users from a team. Write.\n  • list_sites: List all sites on the network. Read-only.\n  • get_site: Get a site by ID. Read-only.\n  • create_site: Create a new site. Write.\n  • update_site: Update a site. Write.\n  • delete_site: Delete a site. Destructive write.\n  • list_mobile_apps: List mobile apps registered on the network. Read-only.\n  • get_mobile_app: Get a mobile app by ID. Read-only.\n  • create_mobile_app: Register a new mobile app. Write.\n  • update_mobile_app: Update a mobile app's details. Write.\n  • list_custom_fields: List all custom fields defined on the network. Read-only.\n  • get_custom_field: Get a custom field by ID. Read-only.\n  • create_custom_field: Create a custom field for orders, line items, or creatives. Write.\n  • update_custom_field: Update a custom field's name or options. Write.\n  • deactivate_custom_field: Deactivate a custom field. Soft delete — preserves existing values.\n  • list_custom_field_options: List options for a custom field of type SELECT. Read-only.\n  • create_custom_field_option: Add a new option to a SELECT custom field. Write.\n  • update_custom_field_option: Update a custom field option. Write.\n  • deactivate_custom_field_option: Deactivate a custom field option. Write.\n  • list_labels: List all labels. Read-only.\n  • get_label: Get a label by ID. Read-only.\n  • create_label: Create a new label. Write.\n  • update_label: Update a label. Write.\n  • deactivate_label: Deactivate a label. Write.\n  • list_pps_configs: List Publisher Provided Signals configurations. Read-only.\n  • get_pps_config: Get a PPS config by ID. Read-only.\n  • create_pps_config: Create a PPS configuration. Write.\n  • update_pps_config: Update a PPS configuration. Write.\n  • delete_pps_config: Delete a PPS configuration. Destructive write.\n  • list_users: List all users on the network. Read-only.\n  • get_user: Get a user by ID. Read-only.\n  • get_current_user: Get the currently authenticated user's profile. Read-only.\n  • create_user: Create a new user account. Write.\n  • update_user: Update a user's role or email. Write.\n  • deactivate_user: Deactivate a user account. Write — revokes network access.\n  • perform_user_action: Perform a lifecycle action on a user (ACTIVATE, DEACTIVATE). Write.\n  • list_roles: List all roles available on the network. Read-only.\n  • list_team_memberships: List team memberships for a user. Read-only.\n  • get_user_record: Get a user's full record including role and team assignments. Read-only.\n  • get_salesperson_record: Get salesperson metadata for a user. Read-only.\n  • get_trafficker_record: Get trafficker metadata for a user. Read-only.\n  • audit_user_access: Audit user access rights: roles, teams, and accessible inventory. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedgam_audit1 field changed
      • changedInput schema / properties / framework / description
        Previous value: -"Compliance framework to evaluate against."New value: +"Compliance framework for the standards baseline section. Defaults to orbiads_baseline if omitted."
    • Changedgam_features2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_gam_features, probe_gam_features, refresh_gam_features."New value: +"Sub-operation to perform:\n  • get_gam_features: Return the cached list of features enabled on the network.\n  • probe_gam_features: Live-probe the network for feature availability (slower but always current).\n  • refresh_gam_features: Force-refresh the feature cache. Call after a GAM admin enables new features."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedgam_jobs2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: poll, get, list, cancel."New value: +"Sub-operation to perform:\n  • poll: Poll a job's current status and progress. Returns status and progress percentage. Recommended polling interval: 5 seconds.\n  • get: Get a completed job's full result. Returns result_data or result_url for download.\n  • list: List recent jobs for the current tenant. Read-only.\n  • cancel: Cancel a running job. Write — interrupts the background operation."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedinitiate_gam_auth1 field changed
      • changedInput schema / properties / network_code / description
        Previous value: -"The GAM network code to authorize."New value: +"The GAM network code to authorize. Obtain from the GAM UI or list_accessible_networks after a Google sign-in."
    • Changedinventory2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_ad_unit_tree, audit_inventory, create_ad_units_batch, generate_ads_json, generate_inventory_blueprint, push_inventory_blueprint, get_ad_units_by_ids, find_inactive_ad_units, archive_inactive_ad_units, list_ad_unit_sizes."New value: +"Sub-operation to perform:\n  • get_ad_unit_tree: Return the full ad unit hierarchy as a nested JSON tree. Read-only.\n  • audit_inventory: Analyze the inventory for structural issues: orphaned ad units, duplicate sizes, missing placements. Read-only.\n  • create_ad_units_batch: Create multiple ad units in one call from a specification list. Write.\n  • generate_ads_json: Generate an ads.json / app-ads.json file from the current inventory. Read-only.\n  • generate_inventory_blueprint: Generate a blueprint JSON from existing GAM inventory (reverse-engineering). Read-only.\n  • push_inventory_blueprint: Push the stored blueprint to GAM, creating or updating ad units. Write, 1 credit.\n  • get_ad_units_by_ids: Retrieve multiple ad units by ID in one call. Read-only.\n  • find_inactive_ad_units: Find ad units with no recent impressions. Read-only.\n  • archive_inactive_ad_units: Archive ad units flagged as inactive. Destructive write. Run find_inactive_ad_units first.\n  • list_ad_unit_sizes: List all sizes used across ad units on the network. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedjobs3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_job, list_jobs, duplicate_job."New value: +"Sub-operation to perform:\n  • get_job: Get an OrbiAds deployment job by ID. Returns status, progress, and deployment log.\n  • list_jobs: List recent OrbiAds deployment jobs for the tenant. Read-only.\n  • duplicate_job: Duplicate a completed job configuration to re-run a similar deployment. Write."
      • changedInput schema / properties / job_id / description
        Previous value: -"OrbiAds job identifier."New value: +"OrbiAds deployment job identifier."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedline_item_lifecycle2 fields changed
      • changedInput schema / properties / confirmation_token / description
        Previous value: -"Write-confirmation token (required for destructive transitions)."New value: +"Required for lifecycle_action=archive. Obtain from a prior estimate_cost call."
      • changedInput schema / properties / lifecycle_action / description
        Previous value: -"Lifecycle transition to apply."New value: +"activate: start delivery. pause: stop delivery temporarily. resume: restart a paused line item. archive: permanently remove from serving (destructive)."
    • Changedline_items3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get, list_by_order, update, update_targeting, duplicate, verify, approve, archive, create_batch, activate_batch, pause_batch, create_adexchange, create_open_bidding, create_preferred_deal, list_private_deals."New value: +"Sub-operation to perform:\n  • get: Get a single line item by ID. Read-only.\n  • list_by_order: List all line items under an order. Read-only. Requires order_id.\n  • update: Update a line item's name, targeting, dates, or budget. Write.\n  • update_targeting: Update only the targeting of a line item. Write. More efficient than full update for targeting-only changes.\n  • duplicate: Duplicate a line item to create a copy. Write.\n  • verify: Verify that a line item configuration is valid before activation. Read-only.\n  • approve: Approve a line item for delivery. Write.\n  • archive: Archive a line item. Destructive write.\n  • create_batch: Create multiple standard line items under an order. Write.\n  • activate_batch: Activate multiple line items in one call. Write.\n  • pause_batch: Pause multiple line items in one call. Write.\n  • create_adexchange: Create an Ad Exchange line item. Write. Requires adExchangeEnvironment and targeting.\n  • create_open_bidding: Create an Open Bidding line item. Write. Requires yieldGroupIds.\n  • create_preferred_deal: Create a Preferred Deal line item. Write. Requires fixedCpm and buyerId.\n  • list_private_deals: List Private Marketplace deals associated with line items. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
      • changedInput schema / properties / order_id / description
        Previous value: -"GAM Order ID (required for list_by_order)."New value: +"GAM Order ID (required for list_by_order and create_batch)."
    • Changednetwork2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_network_info, switch_network, list_accessible_networks, update_network."New value: +"Sub-operation to perform:\n  • get_network_info: Return metadata about the current active GAM network.\n  • switch_network: Set a different network as the active one for subsequent operations. Requires network_code of the target network.\n  • list_accessible_networks: List all GAM networks accessible to the authenticated Google account.\n  • update_network: Update network-level settings (display name, currency). Write, requires Network Admin role."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedorder_lifecycle2 fields changed
      • changedInput schema / properties / confirmation_token / description
        Previous value: -"Write-confirmation token (required for approve/archive)."New value: +"Required for lifecycle_action=archive."
      • changedInput schema / properties / lifecycle_action / description
        Previous value: -"Lifecycle transition to apply."New value: +"approve: allow delivery. disapprove: block delivery. archive: permanently deactivate (destructive)."
    • Changedorders2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_delivering, get, list, create, archive, approve, verify_setup, update, find_or_create, list_users, list_roles."New value: +"Sub-operation to perform:\n  • list_delivering: List orders currently in delivery. Read-only.\n  • get: Get a single order by ID. Read-only.\n  • list: List orders with optional filters (advertiser, status, date range). Read-only.\n  • create: Create a new order. Write. Requires advertiserId, name, and traffickerId.\n  • archive: Archive an order. Destructive write — stops delivery.\n  • approve: Approve an order for delivery. Write.\n  • verify_setup: Verify an order's setup (targeting, creative associations) before activation. Read-only.\n  • update: Update an order's name, salesperson, or notes. Write.\n  • find_or_create: Find an existing order matching the criteria or create a new one if not found. Idempotent write.\n  • list_users: List users (salespeople, traffickers) associated with an order. Read-only.\n  • list_roles: List available order roles. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedplacements2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_placements, create_placement, update_placement, archive_placement."New value: +"Sub-operation to perform:\n  • list_placements: List all placements on the network. Read-only.\n  • create_placement: Create a new placement grouping ad units. Write. Requires name and targetedAdUnitIds.\n  • update_placement: Update a placement's name or ad unit membership. Write.\n  • archive_placement: Archive a placement. Destructive write — removes from targeting options."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedpql3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: run_query."New value: +"Sub-operation to perform:\n  • run_query: Execute a PQL SELECT statement. Example: SELECT Id, Name FROM Order WHERE Status = 'DELIVERING'. Returns rows up to 1000 per call."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
      • changedInput schema / properties / pql_query / description
        Previous value: -"PQL SELECT statement (e.g. SELECT Id, Name FROM Order WHERE ...)."New value: +"PQL SELECT statement. Supported tables: Order, LineItem, Creative, AdUnit, Placement, Company, User, and others. Max 1000 rows returned."
    • Changedpreview2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: get_preview_urls, get_campaign_preview_urls, check_creative_coverage."New value: +"Sub-operation to perform:\n  • get_preview_urls: Generate preview URLs for a single creative across its associated ad sizes.\n  • get_campaign_preview_urls: Generate preview URLs for all creatives in a campaign. Returns a per-line-item, per-creative list.\n  • check_creative_coverage: Check that all line items in a campaign have at least one active creative. Returns a coverage report."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedproducts2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: create, list, get, update, archive, get_adcp, pricing_suggestion."New value: +"Sub-operation to perform:\n  • create: Create a new GAM product. Write. Requires name, productTemplateId, and rate.\n  • list: List all products on the network with optional filters. Read-only.\n  • get: Get a product by ID. Read-only.\n  • update: Update a product's rate, targeting, or description. Write.\n  • archive: Archive a product. Destructive write — removes from buyer-facing catalogue.\n  • get_adcp: Get the ADCP (Automated Direct Campaign Pricing) configuration for a product. Read-only.\n  • pricing_suggestion: Get a pricing suggestion for a product based on historical delivery data. Read-only."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedreporting2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: check_delivery_status, fetch_delivery_report, run_custom_report, fetch_inventory_report, get_report_result, export_report_csv, get_report_dimensions, get_report_metrics, get_report_date_ranges, get_standalone_forecast, get_delivery_forecast_by_line_item, get_prospective_delivery_forecast, get_traffic_data, list_report_templates, save_report_template, delete_report_template, duplicate_report_template, update_report_template, run_report_from_template, list_gam_reports, get_gam_report, create_gam_report, update_gam_report, delete_gam_report, run_gam_report, run_ga_report, get_ga_dimensions, get_ga_metrics, check_underdelivery_alerts, check_budget_alerts, generate_billing_report."New value: +"Sub-operation to perform:\n  • check_delivery_status: Check delivery status (actual vs booked) for an order or line item. Returns pacing indicator.\n  • fetch_delivery_report: Fetch a delivery report for a date range. Returns impressions, clicks, CTR by line item.\n  • run_custom_report: Run an ad-hoc report with specified dimensions and metrics. Returns result rows.\n  • fetch_inventory_report: Fetch an inventory forecast report for ad units. Returns available impressions.\n  • get_report_result: Retrieve the result of a previously run report by report_id.\n  • export_report_csv: Export a report result as a CSV download URL.\n  • get_report_dimensions: List valid dimension names for custom reports. Use to discover available breakdown options.\n  • get_report_metrics: List valid metric names for custom reports. Use to discover available measurements.\n  • get_report_date_ranges: List valid relative date range strings (LAST_7_DAYS, LAST_MONTH, etc.).\n  • get_standalone_forecast: Get a forecasted impression estimate for a targeting specification without an existing line item.\n  • get_delivery_forecast_by_line_item: Get a delivery forecast for one or more existing line items.\n  • get_prospective_delivery_forecast: Get a prospective forecast for a hypothetical line item configuration.\n  • get_traffic_data: Get historical traffic data (impressions available) for targeting criteria.\n  • list_report_templates: List saved report templates. Read-only.\n  • save_report_template: Save a report configuration as a reusable template. Write.\n  • delete_report_template: Delete a report template. Destructive write.\n  • duplicate_report_template: Duplicate a report template. Write.\n  • update_report_template: Update a saved report template. Write.\n  • run_report_from_template: Run a report using a saved template. Returns report_id for async result retrieval.\n  • list_gam_reports: List reports saved in the GAM UI. Read-only.\n  • get_gam_report: Get a specific GAM report by ID. Read-only.\n  • create_gam_report: Create a new report in GAM. Write.\n  • update_gam_report: Update a GAM report configuration. Write.\n  • delete_gam_report: Delete a GAM report. Destructive write — uses soft-delete (PATCH visibility=HIDDEN).\n  • run_gam_report: Run a GAM report and return result rows.\n  • run_ga_report: Run a GA4 report for connected Google Analytics data.\n  • get_ga_dimensions: List valid GA4 dimension names.\n  • get_ga_metrics: List valid GA4 metric names.\n  • check_underdelivery_alerts: Check for active underdelivery alerts across all line items. Returns affected line items with severity.\n  • check_budget_alerts: Check for budget pacing alerts. Returns line items at risk of overspending.\n  • generate_billing_report: Generate a billing summary report for a date range. Returns revenue by advertiser and line item."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedreporting_skill1 field changed
      • changedInput schema / properties / goal / description
        Previous value: -"Plain-language reporting goal (e.g. 'weekly revenue by ad unit for last month')."New value: +"Plain-language description of the reporting goal. Example: 'top 10 advertisers by revenue last quarter' or 'daily CTR for line items in order 12345'."
    • Changedselect_gam_network1 field changed
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code to activate."New value: +"GAM network code to set as active."
    • Changedsettings2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_presets, create_preset, delete_preset, get_tenant_settings, update_tenant_settings, get_naming_conventions, update_naming_conventions, get_delivery_defaults, update_delivery_defaults."New value: +"Sub-operation to perform:\n  • list_presets: List all saved configuration presets. Read-only.\n  • create_preset: Save current settings as a named preset. Write.\n  • delete_preset: Delete a preset. Destructive write.\n  • get_tenant_settings: Get all tenant-level settings. Read-only.\n  • update_tenant_settings: Update tenant settings. Write.\n  • get_naming_conventions: Get configured naming convention patterns for orders, line items, and creatives.\n  • update_naming_conventions: Update naming convention patterns. Write.\n  • get_delivery_defaults: Get default delivery settings (pacing, priority, roadblocking) applied to new line items.\n  • update_delivery_defaults: Update delivery defaults. Write."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedtargeting2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: list_ad_units, validate_fluid, list_custom_targeting_keys, get_inventory_forecast, create_custom_targeting_key, create_custom_targeting_values, update_custom_targeting_key, delete_custom_targeting_key, update_custom_targeting_value, perform_custom_targeting_value_action, search_ad_units, update_ad_unit, archive_ad_unit, get_custom_targeting_values, search_custom_targeting, get_available_countries, get_available_languages, get_device_categories."New value: +"Sub-operation to perform:\n  • list_ad_units: List all ad units with their sizes and status. Read-only. For full hierarchy, use inventory get_ad_unit_tree.\n  • validate_fluid: Validate a fluid targeting expression for syntax and reference errors. Read-only.\n  • list_custom_targeting_keys: List all custom targeting keys on the network. Read-only.\n  • get_inventory_forecast: Get estimated available impressions for a targeting specification. Read-only. Use before creating a line item to validate reach.\n  • create_custom_targeting_key: Create a new custom targeting key. Write.\n  • create_custom_targeting_values: Create one or more values for an existing key. Write.\n  • update_custom_targeting_key: Update a key's name or type. Write.\n  • delete_custom_targeting_key: Delete a targeting key and all its values. Destructive write.\n  • update_custom_targeting_value: Update a targeting value's name or display name. Write.\n  • perform_custom_targeting_value_action: Activate or deactivate a targeting value. Write.\n  • search_ad_units: Search ad units by name or path. Read-only.\n  • update_ad_unit: Update an ad unit's name, description, or size. Write.\n  • archive_ad_unit: Archive an ad unit. Destructive write. Run inventory find_inactive_ad_units first.\n  • get_custom_targeting_values: Get all values for a specific targeting key. Read-only.\n  • search_custom_targeting: Search targeting keys and values by text. Read-only.\n  • get_available_countries: Return the canonical list of countries for geographic targeting (ISO 3166-1 alpha-2 codes).\n  • get_available_languages: Return the canonical list of language codes for language targeting.\n  • get_device_categories: Return the canonical list of device categories (DESKTOP, MOBILE, TABLET, CONNECTED_TV)."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
    • Changedtenant_catalog2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Sub-operation to perform. One of: scan_network, get_scan_status, get_active_catalog, refresh."New value: +"Sub-operation to perform:\n  • scan_network: Trigger a background scan of the GAM network to build the inventory catalog. Returns a scan job ID. Poll with get_scan_status.\n  • get_scan_status: Get the status of the most recent catalog scan. Returns status, progress, and last_updated timestamp.\n  • get_active_catalog: Return the current cached inventory catalog (ad units, placements, targeting keys). May be stale if not refreshed recently.\n  • refresh: Trigger an incremental catalog refresh to pick up recent GAM changes without a full rescan."
      • changedInput schema / properties / network_code / description
        Previous value: -"GAM network code (e.g. 12345678). Required for all network-scoped operations."New value: +"GAM network code (e.g. 12345678). Required for all network-scoped operations. Obtain via select_gam_network or list_accessible_networks."
  3. 39 tool updatesv0.1.0
    • First observedaudiences
    • First observedaudit
    • First observedaudit_skill
    • First observedbilling
    • First observedblueprint
    • First observedcampaign
    • First observedcheck_credentials
    • First observedcompanies
    • First observedcreative_assets
    • First observedcreative_qa
    • First observedcreative_wrapper_skill
    • First observedcreatives
    • First observeddeals
    • First observeddisconnect_gam
    • First observedformats
    • First observedgam_admin
    • First observedgam_audit
    • First observedgam_features
    • First observedgam_jobs
    • First observedget_my_tenant_id
    • First observedinitiate_gam_auth
    • First observedinventory
    • First observedjobs
    • First observedline_item_lifecycle
    • First observedline_items
    • First observednetwork
    • First observedorder_lifecycle
    • First observedorders
    • First observedplacements
    • First observedpoll_auth_status
    • First observedpql
    • First observedpreview
    • First observedproducts
    • First observedreporting
    • First observedreporting_skill
    • First observedselect_gam_network
    • First observedsettings
    • First observedtargeting
    • First observedtenant_catalog

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have distinct purposes with detailed descriptions that help differentiate them. However, some tools like audit, audit_skill, and gam_audit could be confused, as they all relate to auditing but with subtle differences. The names alone don't always clarify the distinction.

Naming Consistency3/5

Tool names are inconsistent: some are single nouns like 'audit' and 'billing', others are verb_noun like 'check_credentials' and 'initiate_gam_auth'. There is no uniform pattern, though most names are descriptive. The mix of conventions reduces predictability.

Tool Count3/5

With 47 tools, the server is extensive. While each tool has a specific purpose in GAM management, the high number may be overwhelming. Some tools could potentially be merged (e.g., line_items and line_item_lifecycle), but the scope justifies many specialized operations.

Completeness5/5

The tools cover a comprehensive range of GAM operations including authentication, inventory, orders, line items, creatives, deals, reporting, auditing, admin, and specialized areas like prebid, DAI, and yield. The surface appears complete for a full campaign lifecycle.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    This read-only MCP Server allows you to connect to Google Ad Manager data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcp
    5
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to manage Google Ad Manager campaigns, line items, creatives, and advertisers through natural language, automating ad operations that normally require countless clicks through the UI.
    35
    18
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables programmatic management of Google Ads campaigns, allowing users to monitor performance metrics, update budgets, and toggle campaign statuses. It supports real-time analytics, top performer analysis, and reporting in CSV or JSON formats.
    11
    27
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides Meta and Google Ads intelligence for AI assistants, enabling users to analyze performance, track competitors, and manage ad campaigns through natural language. It features 17 tools for generating creative concepts, scraping competitor ads, and performing deep account-level analysis.
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OrbiAds/Orbiads-GAM-MCP'

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