Skip to main content
Glama

AdsAgent — Meta Ads MCP

insights_query_overview

Read-only

Read stored aggregated insights for one product/account and YYYY-MM-DD date_from/date_to; group_by=account/campaign/adset/ad. No refresh. Check completeness and paginate while has_more. Use insights_query_batch_overview for many scopes, or insights_query_consistent when the agent-method profile is advertised

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
searchNo
date_toNo
group_byYes
sort_dirNodesc
sort_keyNospend
date_fromNo
page_sizeNo
view_modeNogrouped
managementNo
attributionNo
product_refNo
product_nameNo
ad_account_idNo
metadata_contract_versionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNo
retryableNo
support_refNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedOutput schema / $defs / s5
      Removed value: -{
      -  "properties": {
      -    "can_report_stored_total": {
      -      "type": "boolean"
      -    },
      -    "reason": {
      -      "type": "string"
      -    },
      -    "zero_proven": {
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "can_report_stored_total",
      -    "zero_proven",
      -    "reason"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / $defs / s6
      Added value: +{
      +  "properties": {
      +    "can_report_stored_total": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "zero_proven": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "can_report_stored_total",
      +    "zero_proven",
      +    "reason"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / daily / items / properties / configured_status_observed_at
      Added value: +{
      +  "description": "Configuration snapshot time only.",
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedOutput schema / else / properties / items / items / properties / configured_status_observed_at
      Added value: +{
      +  "description": "Configuration snapshot time only.",
      +  "format": "date-time",
      +  "type": "string"
      +}
    • changedOutput schema / else / properties / read_evidence / properties / scopes / items / properties / funnel / additionalProperties / $ref
      Previous value: -"#/$defs/s5"New value: +"#/$defs/s6"
    • changedOutput schema / else / properties / read_evidence / properties / scopes / items / properties / metrics / additionalProperties / $ref
      Previous value: -"#/$defs/s5"New value: +"#/$defs/s6"
  2. Changed3 schema fields changed
    • addedOutput schema / $defs / s5
      Added value: +{
      +  "properties": {
      +    "can_report_stored_total": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "zero_proven": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "can_report_stored_total",
      +    "zero_proven",
      +    "reason"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / meta / properties / standard_metrics_complete
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / else / properties / read_evidence
      Added value: +{
      +  "description": "Proofs apply independently to returned metrics and scope as stored/observed. A new read_ref is a call identifier, never a source watermark. False or missing proof means unknown, not zero. Fingerprints correlate requests/results in audits; they are not authorization or pagination tokens.",
      +  "properties": {
      +    "artifact_returned": {
      +      "type": "boolean"
      +    },
      +    "configuration": {
      +      "properties": {
      +        "account_inventory_enumerated": {
      +          "const": false
      +        },
      +        "all_campaigns_paused_proven": {
      +          "const": false
      +        },
      +        "requested_ids_complete": {
      +          "type": "boolean"
      +        },
      +        "scope": {
      +          "const": "requested_entity_ids_only"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "mmp": {
      +      "properties": {
      +        "can_report_scoped_totals": {
      +          "type": "boolean"
      +        },
      +        "provider_cache_max_age_seconds": {
      +          "const": 90
      +        },
      +        "reason": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "const": "linked_apps_queried_channels_and_windows"
      +        },
      +        "source_observed_at": {
      +          "type": "null"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "read_ref": {
      +      "pattern": "^read_[0-9a-f]{32}$",
      +      "type": "string"
      +    },
      +    "request_fingerprint": {
      +      "type": "string"
      +    },
      +    "result_fingerprint": {
      +      "type": "string"
      +    },
      +    "scopes": {
      +      "items": {
      +        "properties": {
      +          "all_campaigns_paused_proven": {
      +            "const": false
      +          },
      +          "funnel": {
      +            "additionalProperties": {
      +              "$ref": "#/$defs/s5"
      +            },
      +            "maxProperties": 32,
      +            "type": "object"
      +          },
      +          "index": {
      +            "type": "integer"
      +          },
      +          "inventory_anchor": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "inventory_coverage": {
      +            "type": "string"
      +          },
      +          "inventory_source_observed_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "metrics": {
      +            "additionalProperties": {
      +              "$ref": "#/$defs/s5"
      +            },
      +            "type": "object"
      +          },
      +          "metrics_source_observed_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "range_complete": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "scope": {
      +            "const": "stored_query"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "maxItems": 10,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "read_ref",
      +    "request_fingerprint",
      +    "result_fingerprint"
      +  ],
      +  "type": "object"
      +}
  3. Changed5 schema fields changed
    • addedOutput schema / else / properties / daily / items / properties / funnel_observation
      Added value: +{
      +  "properties": {
      +    "proves_source_coverage": {
      +      "const": false
      +    },
      +    "proves_zero": {
      +      "const": false
      +    },
      +    "status": {
      +      "enum": [
      +        "selected_events_returned",
      +        "no_selected_events_returned",
      +        "read_unverified",
      +        "insights_unavailable"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / funnel_semantics / properties / empty_funnel_interpretation
      Added value: +{
      +  "const": "no_selected_events_returned_not_zero_proof"
      +}
    • addedOutput schema / else / properties / funnel_semantics / properties / read_coverage_scope
      Added value: +{
      +  "const": "query_result_not_upstream_ingestion"
      +}
    • addedOutput schema / else / properties / items / items / properties / funnel_observation
      Added value: +{
      +  "properties": {
      +    "proves_source_coverage": {
      +      "const": false
      +    },
      +    "proves_zero": {
      +      "const": false
      +    },
      +    "status": {
      +      "enum": [
      +        "selected_events_returned",
      +        "no_selected_events_returned",
      +        "read_unverified",
      +        "insights_unavailable"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / workspace_ref
      Added value: +{
      +  "description": "Opaque workspace comparison hint; not an authorization credential.",
      +  "pattern": "^workspace_[0-9a-f]{32}$",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / else / properties / meta / properties / data_freshness / properties / last_pull_scope
      Added value: +{
      +  "const": "workspace"
      +}
  5. Changed13 schema fields changed
    • addedOutput schema / $defs
      Added value: +{
      +  "s2": {
      +    "additionalProperties": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / else / properties / daily / items / properties / funnel / $ref
      Added value: +"#/$defs/s2"
    • removedOutput schema / else / properties / daily / items / properties / funnel / additionalProperties
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / else / properties / daily / items / properties / funnel / type
      Removed value: -"object"
    • addedOutput schema / else / properties / funnel_semantics
      Added value: +{
      +  "properties": {
      +    "coverage_requirement": {
      +      "const": "verify_insights_and_source_coverage"
      +    },
      +    "missing_event_implies_missing_insights": {
      +      "const": false
      +    },
      +    "missing_event_is_zero": {
      +      "const": false
      +    },
      +    "representation": {
      +      "const": "sparse"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / items / items / properties / funnel / $ref
      Added value: +"#/$defs/s2"
    • removedOutput schema / else / properties / items / items / properties / funnel / additionalProperties
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / else / properties / items / items / properties / funnel / type
      Removed value: -"object"
    • addedOutput schema / else / properties / meta / properties / funnel_incomplete
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / else / properties / meta / properties / funnel_read_coverage
      Added value: +{
      +  "properties": {
      +    "complete": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / else / properties / summary / properties / funnel / $ref
      Added value: +"#/$defs/s2"
    • removedOutput schema / else / properties / summary / properties / funnel / additionalProperties
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / else / properties / summary / properties / funnel / type
      Removed value: -"object"
  6. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world). The description adds real behavioral context beyond that: it reads stored data with 'No refresh', and instructs to 'Check completeness and paginate while has_more', disclosing pagination semantics. It omits auth requirements or rate limits.

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?

Dense but front-loaded, leading with the read action and scope before routing guidance. Semicolon-packed phrasing is efficient though bordering on run-on; every clause carries information.

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?

An output schema exists, so return values need not be explained, and the routing plus refresh/pagination notes are useful. However, for a 15-parameter tool with zero schema description coverage, the description leaves too many parameters unexplained to be considered complete.

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

Parameters2/5

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

Schema description coverage is 0% across 15 parameters, so the description carries the full burden. It explains date_from/date_to format and the group_by enum values, but leaves roughly a dozen parameters (page, search, sort_key, sort_dir, page_size, view_mode, management, attribution, product_ref, product_name, ad_account_id, metadata_contract_version) entirely undocumented.

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 ('Read') and resource ('stored aggregated insights') scoped to one product/account with an explicit date range and group_by dimensions. It also names the sibling tools it is not, so an agent can distinguish it from insights_query_batch_overview and insights_query_consistent without opening schemas.

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 routes to alternatives ('Use insights_query_batch_overview for many scopes, or insights_query_consistent when the agent-method profile is advertised') and notes 'No refresh'. The routing condition for the consistent variant is somewhat opaque, so it falls short of fully explicit when/when-not guidance.

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