Skip to main content
Glama

AdsAgent — Meta Ads MCP

insights_export_csv

Export or queue CSV for one bounded scope

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
searchNo
date_toNo
filtersNo
group_byYes
date_fromNo
attributionNo
export_modeNogrouped
product_refNo
product_nameNo
ad_account_idNo
confirm_exportNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNo
retryableNo
support_refNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / $defs
      Added value: +{
      +  "s0": {
      +    "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 / 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/s0"
      +            },
      +            "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/s0"
      +            },
      +            "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"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / else / else / properties
      Added value: +{
      +  "workspace_ref": {
      +    "description": "Opaque workspace comparison hint; not an authorization credential.",
      +    "pattern": "^workspace_[0-9a-f]{32}$",
      +    "type": "string"
      +  }
      +}
  3. First observed

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds only 'queue,' implying an asynchronous side effect, but says nothing about confirm_export, permissions, export versus queue behavior, rate limits, or what happens to previously queued exports.

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 a single short sentence with the action front-loaded and no filler. It is arguably too terse for an 11-parameter tool, but the wording itself is efficient and well-structured.

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?

For an 11-parameter export tool with no schema descriptions, the one-sentence description is far from complete on usage, parameter meaning, and side effects. The output schema may cover return values, but the description still leaves critical call-time context missing.

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

Parameters1/5

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

Schema description coverage is 0% across 11 parameters, so the description must compensate and does not. It never mentions required group_by, date_from/date_to, filters, search, attribution, export_mode, product_ref, product_name, ad_account_id, or confirm_export.

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 a specific verb and resource ('Export or queue CSV'), so the core action is identifiable. However, 'for one bounded scope' is vague and there is no differentiation from sibling insight/export tools, so an agent cannot easily tell when this tool is the right choice.

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

Usage Guidelines2/5

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

No when-to-use guidance is provided, and no alternatives or exclusions are named. 'Export or queue' hints that two modes exist but does not explain when each applies, what prerequisites are needed, or how this differs from insights_pull_insights or insights_query_*.

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