Skip to main content
Glama

Add posts to an X Ads ad group

x_ads_add_posts

Promote existing posts in an X Ads ad group by post ID (the number at the end of the post URL). The ads follow the ad group's status: they spend only if the ad group and campaign are on.

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": {
      "campaign": "<campaign>",
      "ad_group": "<ad_group>",
      "post_ids": "<post_ids>"
    },
    "name": "x_ads_add_posts"
  }
}

Input Schema

NameRequiredDescriptionDefault
folderNoClient folder name.
accountNoX Ads account name or ID. Optional when only one is enabled.
ad_groupYesAd group (line item) name or ID.
campaignYesCampaign name or ID.
languageNoLanguage of the card: the language the user is writing in.
post_idsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description's job is to add beyond that — and it does, by disclosing that the created ads inherit the ad group's status and only spend when both ad group and campaign are on. That spend implication is real context an agent would not get from annotations. It still omits idempotency/duplicate handling and whether the call returns the new ad IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero padding, and the core action plus the post-ID format are front-loaded. The status/spend caveat follows naturally without restating the title.

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?

For a 6-parameter mutation tool with no output schema, the description covers the action and the ID format but leaves the agent guessing about the response (does it return ad IDs?), what happens on duplicate post IDs, and the 50-item cap behavior. Adequate to invoke correctly, not complete.

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 description coverage is 83%, so the baseline is 3. The description adds one genuinely useful piece of meaning the schema lacks — that post_ids are the numeric string at the end of the post URL — but says nothing about folder, account, campaign, ad_group resolution or the language enum. Net effect is roughly baseline with one value-add.

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?

States a specific verb and resource — 'Promote existing posts in an X Ads ad group by post ID' — which is unambiguous about what gets created and where. It does not name any sibling (e.g. x_ads_remove, x_ads_add_locations) to sharpen the boundary, so it lands at 4 rather than 5.

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?

Usage is implied rather than stated: it makes clear this is for promoting posts that already exist (as opposed to creating new creative), and it explains how to find a post ID ('the number at the end of the post URL'). However, there is no explicit when-not guidance, no mention of prerequisites such as the ad group already existing, and no routing to a sibling for the removal/replacement case.

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