Skip to main content
Glama

Read saved Meta catalog and product-set evidence plus bounded products, formatted prices and stock

native.genads_read_catalogs
DestructiveIdempotent

Read saved Meta catalog and product-set evidence plus bounded products, formatted prices and stock. Missing or partial data remains unavailable. Refresh through genads_ad_action action catalogs; optionally name catalogId from the saved inventory to read its products and retailerId for an exact catalog SKU lookup. Completeness for a SKU lookup describes only that SKU, not the whole catalog. Product IDs identify variants in the catalog, not an owned Library file. A campaign catalogOffer binds the exact operationId, catalogId, productIds and validUntil; new prices, sold-out stock or expired offers require review, without rewriting live ads.

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": {
      "work_id": "<work_id>",
      "arguments": "<arguments>",
      "expected_catalog_version": "<expected_catalog_version>",
      "read_skills": "<read_skills>",
      "request_key": "<request_key>"
    },
    "name": "native.genads_read_catalogs"
  }
}

Input Schema

NameRequiredDescriptionDefault
work_idYes
argumentsYes
read_skillsYesExact required native skills and their dependencies, copied from the accepted session bootstrap's skills array. Include only entries in that array. General mcp.* guides and native.{studio}.instructions are guidance, not native skill proofs.
request_keyYes
publication_proposal_idNoFor native Social scheduling, the exact server-approved publication proposal. This identifier cannot confer approval by itself.
expected_catalog_versionYesFor a new session, read a studios/{studio}/native/{pack} child toolset and copy invocation.catalog_version from a native tool descriptor. Do not use the top-level library version. For calls in an existing session, use that session proposal's catalog_version.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.7/5.0
Behavior1/5

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

The description explicitly frames this as a read that leaves live ads untouched ('without rewriting live ads', 'Read saved ... evidence'), while the annotations declare readOnlyHint=false and destructiveHint=true. That is a direct conflict on the single most consequential property an agent checks before invoking, and it would make an agent either wrongly hesitate or wrongly assume safety. The genuinely useful caveats (stale/partial data remains unavailable, SKU-level completeness, expired offers need review) cannot offset a contradiction on the destructive/read-only axis.

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?

It is front-loaded with the purpose and kept to five sentences with no filler, which is good. But the sentences are dense with internal jargon ('bounded products', 'evidence', 'catalogOffer binds the exact operationId') and the most actionable guidance (SKU lookup, refresh alternative) is buried mid-paragraph. Some clauses, such as the variant-vs-Library-file note, are useful but poorly signposted.

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 needn't be explained, and the description does add staleness and review semantics plus a completeness caveat that an agent genuinely needs. But for a 6-parameter, nested-schema, skill-gated tool it leaves the session/envelope parameters (work_id, request_key, read_skills, expected_catalog_version) entirely to the schema, and it references a nonexistent retailerId. Adequate but with real holes for a tool of this complexity.

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 only 50%, so the description must carry more weight than it does. It gives real semantics for catalog_id ('name catalogId from the saved inventory to read its products') and operation_id ('a campaign catalogOffer binds the exact operationId, catalogId, productIds and validUntil'), but says nothing about work_id, request_key, account_id, or read_skills gating. Worse, it instructs the agent to supply 'retailerId for an exact catalog SKU lookup', yet no retailerId parameter exists in the schema (additionalProperties: false), which is actively misleading.

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 first sentence names a specific verb (Read) and specific resources (saved Meta catalog and product-set evidence, bounded products, formatted prices, stock), which is far more informative than the name alone. It also implicitly separates itself from the refresh path (genads_ad_action) and from catalog-sync siblings. It stops short of explicitly contrasting with the closest siblings such as genads_stores or genads_store_products, so it is clear but not fully disambiguating.

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?

It does route one alternative explicitly — 'Refresh through genads_ad_action action catalogs' tells the agent this tool is not the refresh path. It also hints at two modes (pass catalogId for products, retailerId for a SKU lookup). However, there is no general 'use this when X, not Y' statement, no prerequisites (e.g. what the saved evidence must contain first), and it never says when to prefer the catalog-sync or store-product siblings.

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