Skip to main content
Glama

update_report_settings

Change a report's settings that apply to all of its widgets. Takes language, excludeMetaCampaigns or both. language: the report's language (en, de, es or fr) for its labels, dates, numbers and AI text in the app, share links, PDFs and e-mails; it changes how the report reads, not its figures. excludeMetaCampaigns: Meta Ads campaigns whose name contains any of the terms (case-insensitive) are left out of every figure of the report (widgets, blends, share links, PDFs, e-mails, get_report_data), and each such widget says so in its aiNote. The full list replaces the current one; [] or null removes the exclusion; at most 20 terms of at most 100 characters. When a period's exclusion cannot be applied or verified (more than 200 matching campaigns, or a campaign list that does not add up to the account's spend), the affected widgets have no figures and get_report_data names the reason in _meta.unavailable. Requires MCP write actions; without confirm:true it returns a preview.

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": {
      "reportId": "<reportId>"
    },
    "name": "update_report_settings"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmNoSet true to apply. Omit for a preview. With confirm:true, also pass the preview's previewToken.
languageNoThe report's language: en, de, es or fr. Omit to leave it as it is.
reportIdYesReport id (from list_reports).
previewTokenNoWith confirm:true: the previewToken from this tool's preview (valid 15 minutes, once, for exactly the previewed arguments).
excludeMetaCampaignsNoThe complete list of name terms: a Meta Ads campaign whose name contains any of them (case-insensitive) is excluded. [] or null = exclude none. Omit to leave the exclusion as it is. At most 20 terms of at most 100 characters.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / excludeMetaCampaigns / description
      Previous value: -"The complete list of name terms: a Meta Ads campaign whose name contains any of them (case-insensitive) is excluded. [] or null = exclude none. At most 20 terms of at most 100 characters."New value: +"The complete list of name terms: a Meta Ads campaign whose name contains any of them (case-insensitive) is excluded. [] or null = exclude none. Omit to leave the exclusion as it is. At most 20 terms of at most 100 characters."
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "The report's language: en, de, es or fr. Omit to leave it as it is.",
      +  "enum": [
      +    "en",
      +    "de",
      +    "es",
      +    "fr"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "reportId",
      -  "excludeMetaCampaigns"
      -]New value: +[
      +  "reportId"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare a non-read-only, non-destructive, closed-world write; the description goes far beyond that by disclosing full-replacement semantics ('The full list replaces the current one'), clearing via [] or null, the write-permission requirement, the preview token gate, and the failure mode where widgets lose figures and get_report_data reports the reason in `_meta.unavailable`. It also notes propagation targets (widgets, blends, share links, PDFs, e-mails) and the aiNote marking.

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?

Front-loaded with verb and scope, and every clause carries real information. It loses a point for density and for restating schema facts (the 'en, de, es or fr' enum and the 'at most 20 terms of at most 100 characters' limit) inside an already long single block.

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 mutation tool with 5 params and no output schema, it covers what an agent needs: scope, propagation, replacement semantics, preview/confirm handshake, permission requirement, and the degraded-state behavior. Nothing material about calling it correctly is left unstated.

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%, so the baseline is 3, but the description genuinely adds meaning: `language` affects labels, dates, numbers and AI text in app/share/PDF/e-mail without changing figures, and `excludeMetaCampaigns` is a case-insensitive substring match whose full list replaces the current one. These are behavioral semantics the schema cannot express.

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?

States a specific verb and resource ('Change a report's settings') and immediately scopes it to 'settings that apply to all of its widgets', which cleanly separates it from edit_widget and from update_project_settings/update_scan_settings. It also names the exact two settings it can change.

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?

Says it takes `language`, `excludeMetaCampaigns` or both, and explains the preview-vs-apply flow ('without confirm:true it returns a preview'), which tells the agent how to invoke safely. It does not explicitly name an alternative sibling (e.g. use edit_widget for per-widget changes), so the when-not guidance is implied by scope rather than stated.

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