Skip to main content
Glama

set_x_ad_status

Activate or pause an X campaign or line item. ACTIVATION STARTS REAL AD SPEND and always requires the human (live chat or an approved card) — agents cannot activate. Pausing stops spend. Use after the user has reviewed a paused X draft and explicitly says to launch, or asks to stop a running X ad. Distinct from set_meta_ad_status.

[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYes'ACTIVE' (starts spend — human only) or 'PAUSED' (stops spend)
companyIdYesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
object_idYesCampaign or line item id
object_typeNo'campaign' (default) or 'line_item'
ad_account_idNoOptional ads account id when several exist

TDQS

A4.5/5.0
Behavior5/5

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

With NO annotations provided, the description carries the full burden and delivers richly: it discloses that activation 'STARTS REAL AD SPEND', that agents cannot activate and a human must approve, that pausing stops spend, and includes a full outbound-tier rail explaining per-call manager approval, one-time send, and no standing grant. This is exemplary disclosure for a financial mutation tool.

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 essential risk information (spend, human-only activation) is front-loaded, and every sentence carries substance—there is no filler. The outbound-tier block is long but each clause (per-send rail, queues approval card, sends once, no standing grant) is load-bearing, so the density is justified rather than wasteful.

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 mutation tool with no annotations and no output schema, the description covers purpose, spend risk, human approval flow, when-to-use, and sibling differentiation comprehensively. The only minor gap is the unspecified return format/confirmation shape after the approval is queued, which is non-critical for a state-change tool.

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

Parameters3/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. The description conceptually references the status values (ACTIVE/PAUSED with spend semantics) but adds little beyond what the schema already documents for parameters like object_type, object_id, and ad_account_id. The schema does the heavy lifting.

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 uses a specific verb-resource pair ('Activate or pause an X campaign or line item') and explicitly differentiates from the sibling 'set_meta_ad_status'. The platform and target object are unambiguous, so an agent can distinguish this tool from near-names 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 Guidelines5/5

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

The description names the sibling alternative (set_meta_ad_status) and gives explicit trigger conditions: 'Use after the user has reviewed a paused X draft and explicitly says to launch, or asks to stop a running X ad.' Both when-to-use and the Meta/X routing distinction are 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.

TDQS

A3.6/5.0
Disambiguation4/5

The tool set is heavily disambiguated by detailed routing descriptions, domain prefixes, and lifecycle verbs, so most tools have a clear intended purpose. However, at 297 tools there are still close pairs and overlapping decision surfaces (e.g., approval workflows, 'what should I work on' readers, multiple finance/ads readers) that require careful description reading to avoid misselection.

Naming Consistency4/5

Naming is predominantly consistent snake_case verb_noun with strong domain prefixes like shopify_, x_, posthog_, and list_/create_/update_ patterns. Minor inconsistencies exist, such as several collection-returning tools using get_ (get_team_members, get_icps, get_okrs) instead of list_, and some generate_ vs create_ vs draft_ verbs, but the pattern is still predictable overall.

Tool Count1/5

297 tools is an extreme outlier and far beyond a usable MCP tool surface. Even a large suite has no justification for this count in one server; the agent would struggle to select among hundreds of similarly descriptive tools, and the natural 3-15 tool range is exceeded by nearly 20x.

Completeness4/5

The individual domains represented — OKRs, CRM/leads, Shopify, content pipelines, ads, PostHog, team hiring, knowledge, finance, and session management — are covered remarkably well with full lifecycle patterns. Minor gaps exist, such as no full deal CRUD, no delete for several Google/Shopify artifacts, and some analytical surfaces being read-heavy, but most workflows can be completed without dead ends.

Resources