Hosted Microsoft Ads (Bing Ads) MCP server: 92 actions (35 read, 57 that make changes). New campaigns start paused and the server refuses to set them live; deletes off by default.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/Insightful-Pipe/microsoft-ads-mcp-server{
"mcpServers": {
"microsoft-ads": {
"command": "node",
"args": ["/path/to/microsoft-ads-mcp-server/dist/index.js"]
}
}
}MCP Servers overview
# Microsoft Ads MCP Server (Bing Ads) by Insightful Pipe
[](https://insightfulpipe.com/mcp-servers/microsoft-ads)
[](https://insightfulpipe.com/mcp-servers)
[](LICENSE)
> **Connect Microsoft Ads to AI assistants for Bing search advertising analytics and campaign optimization.**
Part of the [Insightful Pipe MCP Server Collection](https://insightfulpipe.com/mcp-servers) — The Microsoft Ads MCP server enables Claude, ChatGPT, Cursor, and other AI assistants to analyze your Microsoft Advertising campaigns. Reach users on Bing, Yahoo, and Microsoft properties with AI-powered insights.
[](https://insightfulpipe.com/mcp-servers)

## MCP Server URL
```
https://microsoft-ads.insightfulmcp.com/
```
## What is Microsoft Ads MCP?
Microsoft Ads MCP is a **remote Model Context Protocol server** that connects your Microsoft Advertising account to AI assistants. This search advertising integration allows you to:
- Query Bing Ads performance using natural language
- Analyze keyword and audience performance
- Generate detailed performance reports
- Track ROAS across Microsoft Search Network
- Get AI recommendations for campaign optimization
## Installation
### Claude
1. Copy the MCP Server URL: `https://microsoft-ads.insightfulmcp.com/`
2. Open [Claude connector settings](https://claude.ai/settings/connectors) (**Customize > Connectors**), click **+** and then **Add custom connector**
3. Paste the URL and click **Add**
4. Click **Connect** and sign in to InsightfulPipe if asked. Claude then lists the connector as connected.
### ChatGPT
Custom MCP servers are added through ChatGPT's **Developer mode**. Availability depends on your ChatGPT plan, and workspace admins may need to allow it.
1. Turn on **Developer mode** in ChatGPT settings
2. Create a new app for a remote MCP server and paste the URL: `https://microsoft-ads.insightfulmcp.com/`
3. Sign in to InsightfulPipe if asked. The connection finishes as soon as you are signed in.
See OpenAI's guide: [Developer mode and MCP apps in ChatGPT](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt)
### Claude Code
```bash
claude mcp add --transport http microsoft-ads https://microsoft-ads.insightfulmcp.com/
```
### Cursor
Add the server to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project):
```json
{
"mcpServers": {
"microsoft-ads": {
"url": "https://microsoft-ads.insightfulmcp.com/"
}
}
}
```
When Cursor shows **Needs authentication**, click **Connect** and sign in to InsightfulPipe if asked.
## Available Actions
92 actions: 35 read and 57 that make changes, 3 of them destructive and off by default.
### Read Actions (35)
<details>
<summary>Show all 35 read actions</summary>
| Action | Description |
|--------|-------------|
| `get_ad_extension_associations` | Get ad extension associations for specific entities |
| `get_ad_extensions` | Get ad extensions for an account by type |
| `get_ad_group_criterions` | Get targeting criteria for an ad group |
| `get_ad_groups` | Get ad groups for a campaign |
| `get_ads` | Get ads for an ad group |
| `get_asset_groups` | Get asset groups for a Performance Max campaign |
| `get_audiences` | Get audience lists for an account |
| `get_bid_strategies` | Get portfolio bid strategies for an account |
| `get_budgets` | Get shared budgets for an account |
| `get_campaign_criterions` | Get targeting criteria for a campaign |
| `get_campaigns` | Get campaigns for an account |
| `get_conversion_goals` | Get conversion goals for an account |
| `get_experiments` | Get campaign experiments for an account |
| `get_keywords` | Get keywords for an ad group |
| `get_label_associations` | Get label associations for specific entities |
| `get_labels` | Get labels for an account |
| `get_negative_keywords_by_entity_ids` | Get negative keywords associated with campaigns or ad groups |
| `get_shared_entities` | Get shared negative keyword lists for an account |
| `get_shared_entity_associations` | Get associations between shared entities and campaigns |
| `get_shared_list_items` | Get items (negative keywords) in a shared list |
| `get_uet_tags` | Get Universal Event Tracking tags for an account |
| `get_videos` | Get videos from the account's video library with their processing status, by id or all active ones |
| `poll_report_status` | Poll for report generation status and fetch data when ready |
| `search_accounts` | Search for advertising accounts the user has access to |
| `submit_account_performance_report` | Submit an account performance report request |
| `submit_ad_group_performance_report` | Submit an ad group performance report request |
| `submit_ad_performance_report` | Submit an ad performance report request |
| `submit_age_gender_audience_report` | Submit an age and gender audience report request |
| `submit_audience_performance_report` | Submit an audience performance report request |
| `submit_campaign_performance_report` | Submit a campaign performance report request |
| `submit_geographic_performance_report` | Submit a geographic performance report request |
| `submit_goals_and_funnels_report` | Submit a goals and funnels report request |
| `submit_keyword_performance_report` | Submit a keyword performance report request |
| `submit_search_query_performance_report` | Submit a search query performance report request |
| `submit_user_location_performance_report` | Submit a user location performance report request |
</details>
### Actions That Make Changes (57)
<details>
<summary>Show all 57 write and destructive actions</summary>
| Action | Description |
|--------|-------------|
| `add_ad_extensions` | Create ad extensions in an account |
| `add_ad_group_criterions` | Add targeting criteria to ad groups (location, device, demographics, audience, etc.) |
| `add_ad_groups` | Create new ad groups in a campaign |
| `add_ads` | Create new ads in an ad group |
| `add_asset_groups` | Create asset groups for Performance Max campaigns |
| `add_audience_groups` | Create audience groups for targeting |
| `add_audiences` | Create audience lists (remarketing, customer match, etc.) |
| `add_bid_strategies` | Create portfolio bid strategies |
| `add_budgets` | Create new shared budgets in an account |
| `add_campaign_conversion_goals` | Associate conversion goals with campaigns |
| `add_campaign_criterions` | Add targeting criteria to campaigns (location, device, demographics, etc.) |
| `add_campaigns` | Create new campaigns in an account |
| `add_conversion_goals` | Create conversion goals for tracking |
| `add_conversion_value_rules` | Create conversion value rules for adjusting conversion values |
| `add_data_exclusions` | Create data exclusions to exclude time periods from bid strategy learning |
| `add_experiments` | Create campaign experiments for A/B testing |
| `add_keywords` | Create new keywords in an ad group |
| `add_labels` | Create new labels in an account |
| `add_list_items_to_shared_list` | Add negative keywords to an existing shared list |
| `add_negative_keywords_to_entities` | Add negative keywords to campaigns or ad groups |
| `add_seasonality_adjustments` | Create seasonality adjustments to inform bid strategies of expected conversion rate changes |
| `add_shared_entity` | Create a shared negative keyword list |
| `add_uet_tags` | Create Universal Event Tracking tags for conversion tracking |
| `add_videos` | Upload videos to the account's video library from direct-download URLs; returns their VideoIds |
| `apply_customer_list_items` | Add or remove items from a customer list audience |
| `apply_hotel_group_actions` | Apply add/update/delete actions to hotel group nodes |
| `apply_offline_conversion_adjustments` | Adjust previously submitted offline conversions |
| `apply_offline_conversions` | Submit offline conversion data |
| `apply_product_partition_actions` | Apply add/update/delete actions to product partition nodes in a Shopping campaign |
| `delete_keywords` | Delete keywords from an ad group |
| `delete_list_items_from_shared_list` | Remove individual negative keywords, by list item id, from a shared list without touching the list or its associations |
| `delete_negative_keywords_from_entities` | Remove specific negative keywords, by id, from campaigns or ad groups |
| `set_account_properties` | Set account-level properties (auto-tagging, tracking templates, etc.) |
| `set_ad_extension_associations` | Associate ad extensions with campaigns or ad groups |
| `set_label_associations` | Associate labels with campaigns, ad groups, ads, or keywords |
| `set_negative_sites_to_ad_groups` | Set negative site URLs for ad groups (replaces existing) |
| `set_negative_sites_to_campaigns` | Set negative site URLs for campaigns (replaces existing) |
| `set_shared_entity_associations` | Associate shared negative keyword lists with campaigns |
| `update_ad_extensions` | Update existing ad extensions |
| `update_ad_group_criterions` | Update targeting criteria on ad groups |
| `update_ad_groups` | Update existing ad groups |
| `update_ads` | Update existing ads |
| `update_asset_groups` | Update existing asset groups |
| `update_audience_groups` | Update existing audience groups |
| `update_audiences` | Update existing audience lists |
| `update_bid_strategies` | Update existing portfolio bid strategies |
| `update_budgets` | Update existing shared budgets |
| `update_campaign_criterions` | Update targeting criteria on campaigns |
| `update_campaigns` | Update existing campaigns |
| `update_conversion_goals` | Update existing conversion goals |
| `update_conWhat people ask about microsoft-ads-mcp-server
What is Insightful-Pipe/microsoft-ads-mcp-server?
+
Insightful-Pipe/microsoft-ads-mcp-server is mcp servers for the Claude AI ecosystem. Hosted Microsoft Ads (Bing Ads) MCP server: 92 actions (35 read, 57 that make changes). New campaigns start paused and the server refuses to set them live; deletes off by default. It has 0 GitHub stars and its last recorded update is dated 2026-10-20.
How do I install microsoft-ads-mcp-server?
+
You can install microsoft-ads-mcp-server by cloning the repository (https://github.com/Insightful-Pipe/microsoft-ads-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Insightful-Pipe/microsoft-ads-mcp-server safe to use?
+
Our security agent has analyzed Insightful-Pipe/microsoft-ads-mcp-server and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains Insightful-Pipe/microsoft-ads-mcp-server?
+
Insightful-Pipe/microsoft-ads-mcp-server is maintained by Insightful-Pipe. The last recorded GitHub activity is dated 2026-10-20, with 0 open issues.
Are there alternatives to microsoft-ads-mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy microsoft-ads-mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/insightful-pipe-microsoft-ads-mcp-server)<a href="https://claudewave.com/repo/insightful-pipe-microsoft-ads-mcp-server"><img src="https://claudewave.com/api/badge/insightful-pipe-microsoft-ads-mcp-server" alt="Featured on ClaudeWave: Insightful-Pipe/microsoft-ads-mcp-server" width="320" height="64" /></a>More MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev