Skip to main content
Glama

manage_audits_and_monitors

Destructive

Start a one-off audit of one AW or FA account when asked how it is doing or what's wrong; use data_query for specific metrics, custom dates, other sources or several accounts. Or create, update or run a scheduled FA, AW or GAWA monitor: metrics, page_check or naming_convention (GAWA: metrics only).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "manage_audits_and_monitors"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoMonitor name. Required for create. Up to 255 characters.
ds_idNoData source ID. Required for create and audit; audit supports only AW or FA. For monitors, fixed at creation; on update, only the current ds_id is accepted.
actionYes"audit" with ds_id, account_ids and optional timezone returns a run_token for read_audits_and_monitors(action='audit'). The report supports one AW or FA account and groups findings, most severe first, under seven angles: trust (whether conversion tracking can be relied on), delivery, waste, efficiency, allocation, change and upside. It does not assess ad copy, creative, landing page relevance, search term intent or why numbers moved. It is not campaign_and_resource_get health_check (one campaign) or marketing_utilities (UTM, link and page checks). "create" with name, ds_id, account_ids, config and schedule makes a new monitor; "update" with monitor_id and only the fields to change updates one; "run" with monitor_id runs a monitor now and waits for its result. If a run for this monitor and configuration is already in progress, "run" waits for that one. name, description, status and shared_with_team can be updated straight from a list result. config (including notifications), schedule and account_ids replace the stored value whole, so before changing any of them start from the monitor's current value — from read_audits_and_monitors(action='get') for the monitor, or the last create/update result. For config, call read_audits_and_monitors(action='schema') for the monitor type.
configNoMonitor check configuration. Get a worked example from `read_audits_and_monitors(action="schema", monitor_type=..., ds_id=...)`; metric and dimension ids come from `field_discovery`. Required for create; Slack webhooks must be full URLs. On update, config is not merged: pass the complete config from the monitor's most recent `read_audits_and_monitors(action="get")` or update result with the user's change applied, notifications included ([] clears them); keep `stored:…#…` references unchanged. Never build config from a list result.
statusNoWhether the monitor is active. Omitted on create means enabled: the monitor starts running on its schedule straight away.
scheduleNoRequired for create. On update it replaces the stored schedule: pass the complete object — the schedule from `read_audits_and_monitors(action="get")` for the monitor, with the change applied. When the monitor runs. time is required for daily and weekly; day_of_week for weekly only; hourly and every6hours take neither. timezone is always required.
timezoneNoIANA timezone of the audited ad account, e.g. America/New_York. Used only by action='audit'; omitted means UTC. Ask the user if the account's timezone is not known; do not guess.
run_tokenNoMonitor run token. Used only by action='run'. Resume waiting for a run you already started, by passing back the exact run_token from a result that was still running. Omit it to start a new run. Without the token, calling again starts a second run instead of waiting for the first.
connectionNoWhich connection to use, as an override — not a guess. Pass a name only if you already have one, from accounts_discovery or the user. Leave it unset otherwise: the backend picks automatically, and an unmatched name fails the call. When changing accounts of an existing monitor, pass its current connection (connection.data_source_username from get) unless the user asks to switch login; otherwise another login that reaches the same accounts may be picked.
date_rangeNoPeriod to audit. Used only by action='audit'; omitted means last_30_days.
monitor_idNoThe monitor's ID, a UUID. Required for update and run.
account_idsNoAccount IDs of the monitor's data source (ds_id), from accounts_discovery, as strings. Required for create monitors and start audit (audit: exactly one account). On monitors update, replaces all accounts: pass the full list from get (connection.accounts[].account_id) with your change. Up to 200 account IDs.
descriptionNoFree-text note about what this monitor watches. Optional. Up to 1000 characters.
shared_with_teamNoWhether the whole team can view and manage this monitor. Omitted on create means true.

Output Schema

NameRequiredDescriptionDefault
dataNo
errorNo
notesNo
successYes
business_contextNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag this as a non-idempotent, destructive, open-world mutation, and the description layers on the semantics that matter: config, schedule and account_ids replace stored values wholesale, updates require rebuilding from a get result, and 'never build config from a list result'. It also discloses run_token duplication risk (a second call without the token starts a new run) and warns against guessing timezone or connection — none of which the annotations convey.

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?

Two sentences, front-loaded with the audit use case and its redirect before introducing monitor management. The second sentence is dense — packing FA/AW/GAWA plus three ruleset types into one clause — but every element carries routing or constraint information rather than filler.

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 14-parameter, four-action tool with an output schema, the description covers the hard parts: creation versus update versus run versus audit, the replace-not-merge hazard, and the connection/timezone pitfalls. The main omission is that retrieving audit results requires a follow-up read_audits_and_monitors(action='audit') call with the returned run_token, which is left to the schema.

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 coverage the baseline is 3, and the description does add cross-parameter conditions: timezone and date_range apply only to audit, run_token only to run, monitor_id only to update/run, and config/schedule/account_ids are wholesale replacements. Much of this restates the field-level schema text, so it earns a 4 rather than a 5 for originality.

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 opens with a concrete verb+resource pair ('Start a one-off audit of one AW or FA account') and then enumerates the remaining actions ('create, update or run a scheduled FA, AW or GAWA monitor') along with the monitor types supported. It explicitly separates itself from data_query, campaign_and_resource_get health_check and marketing_utilities, so an agent can choose it without opening a sibling schema.

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?

It states both the trigger ('when asked how it is doing or what's wrong') and the exclusions ('use data_query for specific metrics, custom dates, other sources or several accounts'), and repeats the negative routing against the health_check and marketing_utilities siblings. The only mild gap is that it does not name read_audits_and_monitors for retrieving audit output, though that path is covered in the schema.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources