Skip to main content
Glama

Metadata MCP Connector

Create or Update Microsoft Ads Ad

create_update_microsoft_ads_ad
Destructive

Create a new or update an existing Microsoft Ads (Bing) text ad on the Metadata platform. IMPORTANT: This tool is ONLY for Microsoft Ads (MICROSOFT_ADS channel) text ads. Ad library entries are PER-CHANNEL: a Google RSA can NOT be attached to a Microsoft Ads channel, and vice versa. Building the "same" ad for both channels means two calls, one per tool. For Google Ads text ads use create_update_google_ads_ad. Do NOT use this tool for Facebook, LinkedIn, Instagram or Reddit ads: use create_update_image_ad (IMAGE/GIF) or create_update_video_ad (VIDEO).

                            ALSO KNOWN AS: Microsoft Ads text ad, Bing text ad, Bing search ad, MS Ads ad, Microsoft responsive search ad

                            BEHAVIOR:
                            - If "id" is NOT provided -> creates a new Microsoft Ads text ad.
                            - If "id" IS provided -> updates the existing Microsoft Ads text ad with that ID.

                            CHARACTER LIMITS (HARD LIMITS — THE API REJECTS ANYTHING OVER)
                            Microsoft Ads and Google Ads share one text-ad shape on the platform, so the limits are identical:
                            - Headlines: MAXIMUM 30 characters each (minimum 3, maximum 15 headlines)
                            - Descriptions: MAXIMUM 90 characters each (minimum 2, maximum 4 descriptions)
                            - Ad name: MAXIMUM 50 characters

                            DESCRIPTIONS — 90 CHARACTER HARD LIMIT — READ THIS CAREFULLY
                            THIS IS THE #1 MOST COMMON FAILURE MODE.
                            - 90 characters is an ABSOLUTE ceiling. 91 = REJECTION. 89 = OK.
                            - EVERY character counts: letters, digits, spaces, punctuation, apostrophes, hyphens, line breaks, emoji.
                            - The MCP schema enforces maxLength=90, and the server truncates as a backstop, so over-length copy is either rejected outright or SILENTLY CUT MID-SENTENCE.
                            - Target 70-85 characters per description. Do not write to the cliff.
                            - LLMs systematically underestimate length by 5-15 characters. ALWAYS COUNT, never estimate.

                            EVERY HEADLINE AND EVERY DESCRIPTION MUST BE UNIQUE
                            The platform rejects the WHOLE ad when two headlines carry identical text ("Enter a headline that is different from: '<text>'"), and applies the same rule to descriptions. Writing 12 real headlines plus 3 near-copies of them is the second most common rejection. Make every line genuinely different.

                            NO EXCLAMATION MARK IN A HEADLINE
                            "!" is rejected in headline text ("! is not supported"). Descriptions accept it.

                            DYNAMIC KEYWORD INSERTION
                            A headline may use the "{KeyWord:fallback text}" form; the platform measures the 30-character limit against the fallback text inside the braces.

                            MANDATORY PRE-CALL VALIDATION — DO THIS BEFORE EVERY CALL:
                            1. Count each headline: every one MUST be 30 characters or fewer, and free of "!".
                            2. Count each description: every one MUST be 90 characters or fewer.
                            3. Check for repeats across headlines, and across descriptions. Rewrite any duplicate.
                            4. Rewrite anything over the limit BEFORE calling. Do not submit known-bad copy and hope.

                            USAGE INSTRUCTIONS FOR LLM:
                            Use this tool when users want to:
                            - Create a new Microsoft Ads / Bing text ad
                            - Update an existing Microsoft Ads text ad (headlines, descriptions, or name)
                            - Give a Microsoft Ads campaign the ad it needs to become launch-ready

                            WHEN TO USE:
                            - User asks "create a Microsoft Ads ad" / "Bing ad" / "MS Ads search ad"
                            - A campaign has Microsoft Ads enabled and the channel has no ad yet
                            - User says "update Microsoft ad 23149 with new headlines"

                            WHEN NOT TO USE:
                            - User wants the Google Ads version of the ad -> use create_update_google_ads_ad
                            - User wants a Facebook, LinkedIn, Instagram or Reddit IMAGE ad -> use create_update_image_ad
                            - User wants a Facebook, LinkedIn, Instagram or Reddit VIDEO ad -> use create_update_video_ad
                            - User wants a sitelink, callout or other extension -> use the create_microsoft_*_extension tools

                            INPUT PARAMETERS:
                            - id: The ad ID (optional). If provided, that ad is updated. If omitted, a new ad is created. This is the adLibraryId inside the creatives of the microsoft channel in a campaign response.
                            - name: The name/label for the ad (required, max 50 characters)
                            - headlines: Array of headline text strings (required, minimum 3, maximum 15, each STRICT MAX 30 CHARACTERS, all distinct, no "!")
                            - descriptions: Array of description text strings (required, minimum 2, maximum 4, each STRICT MAX 90 CHARACTERS, all distinct)

                            EXAMPLE USAGE (Create):
                            create_update_microsoft_ads_ad(
                                name="Bing Hosting Q1 2026",
                                headlines=["EU Data Centers", "Local Expert Support", "Hosting Built For Founders"],
                                descriptions=["Keep your business data in Europe.", "2000+ local experts, one platform."]
                            )

                            EXAMPLE USAGE (Update):
                            create_update_microsoft_ads_ad(
                                id=23149,
                                name="Bing Hosting Q1 2026 v2",
                                headlines=["Updated Headline 1", "Updated Headline 2", "Updated Headline 3"],
                                descriptions=["Updated description one.", "Updated description two."]
                            )

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe existing ad ID to update. If omitted, a new ad will be created.
nameYesThe name/label for the ad in Metadata platform (max 50 characters)
headlinesYesList of headline texts for the Microsoft Ads ad (minimum 3, maximum 15 headlines, each max 30 characters). Every headline must be DISTINCT — the platform rejects the ad if two share the same text — and must not contain '!'.
descriptionsYesList of description texts for the Microsoft Ads ad (2 to 4 descriptions — 2 is the platform minimum, a single-description ad is rejected). Each description MUST be 90 characters or fewer and MUST be distinct from the others. Count every character (incl. spaces/punctuation/emoji); target 70-85 chars to leave margin for sanitization.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (destructiveHint, openWorldHint) carry only the safety profile, so the description carries the behavioral burden and over-delivers: create-vs-update semantics keyed on id, hard character limits with server silent-truncation backstop, whole-ad rejection on duplicate headlines/descriptions, '!' rejection in headlines, and {KeyWord:fallback} length measurement. No contradiction with annotations — update overwrites existing ad, consistent with destructiveHint=true.

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?

Well-structured with clear headers and critical warnings front-loaded, but substantially redundant: the 90-character rule is stated at least four times (CHARACTER LIMITS section, DESCRIPTIONS warning section, INPUT PARAMETERS, and pre-call validation steps) and repeats what the schema already documents. The uniqueness requirement and headline limits are also restated multiple times. The emphasis is pedagogically motivated, but many sentences duplicate rather than add.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param tool with no output schema, the description is exhaustive: channel restrictions, create/update id semantics, hard limits, validation failure modes, how to locate the ad id, and worked examples for both create and update flows. An agent has everything needed to call the tool correctly; the only omission (return value) is minor for an input-heavy mutation tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds genuine value beyond the schema: id is decoded as 'the adLibraryId inside the creatives of the microsoft channel in a campaign response', and the {KeyWord:fallback} headline-measurement rule is absent from the schema. Most validation constraints (30/90 chars, distinctness, no '!') are already in the schema, which caps this at 4.

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?

Description states a specific verb+resource ('Create a new or update an existing Microsoft Ads (Bing) text ad on the Metadata platform') and explicitly differentiates from siblings by naming create_update_google_ads_ad, create_update_image_ad, and create_update_video_ad, plus the channel-scoping rule. An agent can select this tool without opening any schema.

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?

Dedicated WHEN TO USE and WHEN NOT TO USE sections give concrete triggers ('User says update Microsoft ad 23149 with new headlines') and explicit alternatives for every exclusion (Google ads, FB/LinkedIn/IG/Reddit image/video, sitelink/callout extensions). Also explains the per-channel library rule that makes a second call necessary. Nothing is left to inference.

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