Ducto

Microsoft Ads

Bing search campaigns with the same server-side write path

Campaigns, ad groups, keywords, and responsive search ads on Microsoft Advertising — ten reads, ten writes, one policy engine. Usually the cheapest clicks your agent will ever buy, governed like the expensive ones.

20 tools10 read10 writemcp.getducto.com/microsoft-ads
connect the microsoft-ads mount

$ claude mcp add --transport http microsoft-ads \

https://mcp.getducto.com/microsoft-ads

✓ connected — 20 tools

read-only until you set a policy

What your agent does here

Real Microsoft Ads work, in conversation

Stand up search campaigns

Create campaigns, ad groups, keywords, and responsive search ads with budgets capped by policy.

microsoft_create_campaignmicrosoft_create_ad_groupmicrosoft_create_keywordsmicrosoft_create_responsive_search_ad

Tune what's running

Update campaign budgets and statuses inside your caps, informed by real account reads.

microsoft_update_campaignmicrosoft_set_status

Report without exports

Download performance reports and list every level of the account directly in conversation.

microsoft_download_reportmicrosoft_list_campaignsmicrosoft_list_keywords

Governed writes

How writes are enforced

The same fixed request path as every other mount: caps from the policy row, preview-before-apply on mutations, approval on the classes you flag, and a ledger entry for everything.

read-only defaultcaps ← policy rowpreview before applyapproval on flagged classeshash-chained audit

The full request path is on the security architecture page.

Tool reference

Every tool in the microsoft-ads mount

Generated from the running gateway's tool registry — this is the complete list, not a highlight reel.

microsoft_create_ad_groupwriteCreate an ad group (paused by default; ``CpcBid`` cap).
microsoft_create_campaignwriteCreate a campaign (paused by default; ``DailyBudget`` cap in major units).
microsoft_create_keywordswriteAdd keywords to an ad group (paused by default; per-keyword ``Bid`` cap).
microsoft_create_responsive_search_adwriteCreate a Responsive Search Ad (paused by default; 3-15 headlines / 2-4 descriptions).
microsoft_download_reportreadDownload + parse a completed report CSV into rows.
microsoft_get_accountreadFetch one ad account (node includes ``CurrencyCode``).
microsoft_list_accountsreadList the ad accounts under a customer (Customer Management ``Accounts/Search``).
microsoft_list_ad_groupsreadAd groups under a campaign (``AdGroups/QueryByCampaignId``).
microsoft_list_adsreadAds under an ad group (``Ads/QueryByAdGroupId``).
microsoft_list_campaignsreadCampaigns under an account (``Campaigns/QueryByAccountId``).
microsoft_list_keywordsreadKeywords under an ad group (``Keywords/QueryByAdGroupId``).
microsoft_poll_reportreadPoll a submitted report; returns its status + download url.
microsoft_run_reportreadSubmit → poll → download convenience (bounded poll).
microsoft_set_statuswriteChange a campaign/ad_group/keyword/ad status (Active/Paused/Deleted — Deleted destructive).
microsoft_submit_reportreadSubmit an async report request; returns ``{"ReportRequestId": ...}``.
microsoft_update_adwriteUpdate an ad from API-shaped fields (e.g. FinalUrls, Status).
microsoft_update_ad_groupwriteUpdate an ad group from API-shaped fields (``CpcBid.Amount`` cap-checked).
microsoft_update_budgetwriteChange a campaign's daily budget (``DailyBudget`` cap, major units).
microsoft_update_campaignwriteUpdate a campaign from API-shaped fields (``DailyBudget`` cap-checked).
microsoft_update_keyword_bidwriteChange a keyword's bid (``max_cpc`` cap, major units).

More in the Paid social & search stack

Connect Microsoft Ads