Microsoft Ads MCP Server
Connect Claude, ChatGPT, or any AI tool to your Microsoft Advertising (Bing Ads) account. Explore accounts, campaigns, ad groups, ads, and keywords with natural language.
What is the Microsoft Ads MCP?
The Pipeboard Microsoft Ads MCP (Model Context Protocol) Server connects AI assistants like Claude, ChatGPT, and custom agents to the Microsoft Advertising (Bing Ads) API. Inspect your accounts, campaigns, ad groups, ads, and keywords through natural language.
Instead of clicking through Microsoft Advertising Editor or building Bing Ads API integrations from scratch, you get instant read access to your Search, Shopping, Dynamic Search, Audience, and Performance Max campaigns across every Microsoft account you have connected.
Key features:
Getting Started
Set up in under 2 minutes
1. Sign up for a Pipeboard account:
pipeboard.co/auth/signup →2. Connect your Microsoft Ads account:
pipeboard.co/connections →You can connect multiple Microsoft logins — handy when you manage agency accounts that span more than one Microsoft Advertising customer.
3. Add the MCP server to Claude (or another MCP client):
https://microsoft-ads.mcp.pipeboard.co/Use this URL as a Streamable HTTP MCP server in your client. Authentication is handled automatically through your Pipeboard session.
Connect to Your AI Tool
The Microsoft Ads MCP works with any MCP-compatible client. Just add the server URL and start exploring your Bing Ads campaigns with natural language.
Claude Pro / Max
Recommended- 1.Open claude.ai/customize/connectors
- 2.Click "Add custom connector"
- 3.URL:
https://microsoft-ads.mcp.pipeboard.co/
Claude Code
CLI / VS CodeRun this command in your terminal:
claude mcp add --transport http pipeboard-microsoft-ads https://microsoft-ads.mcp.pipeboard.co/Then type /mcp in Claude Code to authenticate with Pipeboard.
Alternative: use an API token for instant setup (no browser auth needed):
claude mcp add --transport http pipeboard-microsoft-ads https://microsoft-ads.mcp.pipeboard.co/?token=pipeboard_...Get your token at pipeboard.co/api-tokens
Claude Desktop JSON configuration:
Add this to your Claude Desktop MCP settings (Settings → MCP Servers → Add):
{
"mcpServers": {
"microsoft-ads": {
"url": "https://microsoft-ads.mcp.pipeboard.co/"
}
}
}More integrations:
Tips for getting started
list_microsoft_ads_accounts to grab the account_id and customer_id other tools requireTry these prompts
Account Overview
"List my Microsoft Advertising accounts and show every campaign in the largest one"
Campaign Audit
"Show me all Search and Shopping campaigns in my Bing Ads account and flag the paused ones"
Keyword Review
"List the keywords in my top ad group with their match types and bids, sorted by bid"
Ad Inventory
"Walk through each ad group in my Performance Max campaign and list the ads inside"
Available Tools
The Microsoft Ads MCP reads and writes: alongside reporting it creates and updates campaigns, ad groups, ads, keywords, negative keywords, ad extensions, ad schedules and the Google Ads auto-import settings. All tools are available through natural language when connected to an AI assistant.
Account Management
list_microsoft_ads_accountsList Microsoft Advertising accounts across all connected logins, returning AccountId, CustomerId, name, currency, time zone, and status
get_microsoft_ads_account_infoFetch metadata for a single account: currency, time zone, status, and parent customer
get_microsoft_ads_import_jobsRead the Google Ads auto-import schedules and see exactly which fields an import is allowed to overwrite
update_microsoft_ads_import_jobPause or reschedule a Google Ads import, or stop it overwriting bids and budgets while still importing new entities
Campaigns & Ad Groups
get_microsoft_ads_campaignsList campaigns under an account, with an optional CampaignType filter (Search, Shopping, DynamicSearchAds, Audience, PerformanceMax)
get_microsoft_ads_ad_groupsList ad groups under a campaign
create_microsoft_ads_campaignCreate a Search campaign with its budget, bid strategy and targeting defaults
update_microsoft_ads_campaignUpdate a campaign: name, status, budget, bid strategy, language targeting, audience-network bid adjustment, tracking template
create_microsoft_ads_ad_groupCreate an ad group inside a campaign
update_microsoft_ads_ad_groupUpdate an ad group: name, status, CPC bid, language, network, and the start/end dates that schedule when a Search campaign stops serving
Ads & Keywords
get_microsoft_ads_adsList ads under an ad group
get_microsoft_ads_keywordsList keywords under an ad group with their bid and match type
create_microsoft_ads_responsive_search_adCreate a Responsive Search Ad, with pinned headlines and descriptions where you need them
add_microsoft_ads_keywordsAdd keywords to an ad group with their match type, bid and final URLs
update_microsoft_ads_keywordsChange bids, pause or re-enable keywords, and edit keyword-level URLs
get_microsoft_ads_negative_keywordsList the negative keywords on a campaign or ad group, with the id of each
add_microsoft_ads_negative_keywordsAdd negative keywords to a campaign or ad group (Exact or Phrase match)
remove_microsoft_ads_negative_keywordsRemove negative keywords by id or by text — the undo for a negative added by mistake
Scheduling, Extensions & Assets
get_microsoft_ads_ad_scheduleRead the day-and-time windows on a campaign or ad group with their bid adjustments
set_microsoft_ads_ad_scheduleSet hour-of-day and day-of-week bid adjustments — the way to act on which hours actually convert
get_microsoft_ads_extensionsList sitelink, callout, structured snippet and call extensions and where they are associated
create_microsoft_ads_sitelinkCreate a sitelink extension and associate it with a campaign or ad group
create_microsoft_ads_calloutCreate a callout extension and associate it with a campaign or ad group
create_microsoft_ads_structured_snippetCreate a structured snippet extension — one header plus 3 to 10 values, shown as "Courses: A Levels, GCSEs"
create_microsoft_ads_call_extensionCreate a click-to-call phone number extension and attach it to a campaign
update_microsoft_ads_extensionChange the text, URLs or phone number on an existing extension, keeping its id and associations
add_microsoft_ads_extension_associationAttach an extension already in the account library to a campaign or ad group
delete_microsoft_ads_extensionDelete an extension from the account library — including sitelinks pointing at a dead URL
remove_microsoft_ads_extension_associationDetach an extension from one campaign or ad group while keeping it in the library
get_microsoft_ads_asset_groupsList Performance Max asset groups with their assets and status
create_microsoft_ads_asset_groupCreate a Performance Max asset group with headlines, descriptions, images and final URL
update_microsoft_ads_asset_groupUpdate a Performance Max asset group, or pause it
delete_microsoft_ads_asset_groupDelete a Performance Max asset group
get_microsoft_ads_performance_reportRun a campaign, ad group, ad, search query, product or asset group performance report and get the rows as JSON
Reference & Feedback
query_microsoft_ads_api_docsSearch the Microsoft Advertising API documentation index for endpoints, schemas, or error codes
submit_feedbackSend feedback or report an issue with the Microsoft Ads MCP directly to the Pipeboard team
Supported Campaign Types
Pass any of these to the campaign_type filter on get_microsoft_ads_campaigns (it defaults to all of them):
SearchText ads on Bing, Yahoo, and AOL search results
ShoppingProduct ads driven by a Microsoft Merchant Center catalog
DynamicSearchAdsAuto-generated headlines and targeting from your website content
AudienceNative display and audience targeting across the Microsoft Audience Network
PerformanceMaxGoal-based campaigns spanning all Microsoft inventory and formats
Best Practices
- Call list_microsoft_ads_accounts first — every other tool needs the account_id and customer_id it returns
- Pass both account_id and customer_id together; Microsoft scopes campaign and ad-group calls to the parent customer
- When you have multiple connected Microsoft logins, pass connection_id to disambiguate which account a tool should use
- Use the campaign_type filter to narrow large accounts to just Search, Shopping, or Performance Max campaigns
- Drill down account → campaign → ad group → ads/keywords; each level returns the IDs the next call needs
- Use query_microsoft_ads_api_docs to resolve unfamiliar Bing Ads fields or error codes mid-conversation
Frequently Asked Questions
Is the Microsoft Ads MCP the same as Bing Ads?
Yes. Microsoft Advertising is the platform formerly known as Bing Ads. The MCP talks to the Microsoft Advertising API and covers ads served across Bing, Yahoo, and the Microsoft Audience Network.
Can it create or edit campaigns?
Not yet. The current Microsoft Ads MCP is read-focused — it lists accounts, campaigns, ad groups, ads, and keywords so you can audit and analyze them. Use it alongside the Microsoft Advertising UI for write operations.
Do I need both account_id and customer_id?
Yes for campaign and ad-group calls. list_microsoft_ads_accounts returns both the AccountId and the parent CustomerId for every account, so run it first and reuse those IDs.
I sign in to Microsoft Advertising with Google. Does that work?
Yes. Microsoft Advertising lets an account be registered under a Google identity, and those users cannot authenticate through Microsoft at all. On pipeboard.co/connections, use the "Sign in with Google" option on the Microsoft Advertising card instead of the blue Connect button. If you picked the wrong one, the connection is refused with a message naming the right one — nothing is left half-connected.
Can I connect more than one Microsoft account?
Yes. Connect multiple Microsoft logins from pipeboard.co/connections, then pass connection_id to target a specific one when accounts overlap.
Which AI tools work with it?
Any MCP-compatible client: Claude Desktop and Claude Code, ChatGPT (developer mode), Python + LangChain, n8n, and more. Just add the https://microsoft-ads.mcp.pipeboard.co/ URL as a Streamable HTTP server.
