Microsoft Ads MCP Server
# Microsoft Ads MCP Server
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.adkit/microsoft-ads) [](https://adkit.so/features/ads-mcp/microsoft) [](./LICENSE)
Connect Microsoft Ads (Bing Ads) to Claude, ChatGPT, Cursor, Codex or any AI app that supports MCP. AdKit hosts the server, so you only add an address to your AI app.
- **MCP address:** `https://mcp.adkit.so/microsoft-ads`
- **Website:** [Microsoft Ads MCP by AdKit](https://adkit.so/features/ads-mcp/microsoft)
> **Beta:** Your AI writes Microsoft Advertising API requests and AdKit sends them. It can do what the API allows, with more steps than on Meta or Google. Turn on Advanced Platform Access in your AdKit project (Agent Permissions) first.
Every change is saved as a draft first, so your AI can't spend money on its own. Nothing goes live on Microsoft Ads until you approve it.

## What you can do
- Connect your Microsoft Advertising accounts
- Read campaigns and reports through the Microsoft Advertising API
- Save campaign changes as drafts, then publish them after you approve
## Example prompts
- "How did my Bing campaigns perform last week?"
- "Lower the budget of the ‘Brand’ campaign to $20 a day. Save it as a draft."
## Set up
You need an AdKit account. On first use, you sign in to AdKit and connect your Microsoft Ads account.
There are two ways to connect:
- **All platforms:** the main AdKit connector. One connection for Google, Meta, TikTok, LinkedIn, Microsoft, Reddit, X and Pinterest. Pick this if you run ads on more than Microsoft Ads.
- **Microsoft Ads only:** the address above. Your AI only sees the Microsoft Ads tools.
### Claude (web and desktop)
- **All platforms:** [install AdKit from the Claude directory](https://claude.ai/directory/adkit), in one click.
- **Microsoft Ads only:** Settings → **Connectors** → **Add custom connector** → paste `https://mcp.adkit.so/microsoft-ads`.
### ChatGPT
- **All platforms:** [add the AdKit app](https://chatgpt.com/apps/adkit/asdk_app_6a1e848decdc8191a4974b315c51661f), in one click.
- **Microsoft Ads only:** Settings → **Connectors** → **Add custom connector** → paste `https://mcp.adkit.so/microsoft-ads`.
### Claude Code
As a plugin:
```
/plugin marketplace add adkit/microsoft-ads-mcp
/plugin install microsoft-ads@adkit-microsoft-ads
```
Or as an MCP server only:
```
claude mcp add --transport http adkit-microsoft-ads https://mcp.adkit.so/microsoft-ads
```
### Gemini CLI
```
gemini extensions install https://github.com/adkit/microsoft-ads-mcp
```
### Cursor
Add to `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"adkit-microsoft-ads": {
"url": "https://mcp.adkit.so/microsoft-ads"
}
}
}
```
### Codex
Add to `~/.codex/config.toml`:
```toml
[mcp_servers.adkit-microsoft-ads]
url = "https://mcp.adkit.so/microsoft-ads"
```
In Claude Code, Gemini CLI, Cursor and Codex, use `https://mcp.adkit.so` instead to connect all platforms.
## Tools
| What | Tools |
| --- | --- |
| Ad accounts | `microsoft_ads_accounts_connect`, `microsoft_ads_accounts_disconnect`, `microsoft_ads_accounts_read` |
| Direct API requests | `microsoft_ads_platform_api_request_mutate` |
Every AdKit connector also has these tools:
| Tool | What it does |
| --- | --- |
| `adkit_projects` | List your AdKit projects and pick one |
| `adkit_status` | Show the connected ad accounts |
| `adkit_setup` | Get the link to connect an ad account |
| `adkit_drafts_read` | List saved drafts, or read one |
| `adkit_drafts_update` | Edit a draft before it goes live |
| `adkit_drafts_delete` | Delete a draft |
| `adkit_drafts_publish` | Publish drafts after you approve them |
| `adkit_help` | Look up fields, limits and examples |
| `adkit_feedback` | Report a bug or a missing feature |
## FAQ
### What is the Microsoft Ads MCP server?
A hosted MCP server from AdKit. It lets Claude, ChatGPT, Cursor, Codex and other AI apps work on your Microsoft Ads account: Microsoft Advertising (Bing Ads) reports and campaign changes through its API, in beta.
### Is the Microsoft Ads MCP server free?
It is included in every AdKit plan. Plans start at $29 a month, with a 7-day free trial. See [pricing](https://adkit.so/pricing).
### Can my AI change my Microsoft Ads without asking me?
No. Every create, edit or pause is saved as a draft. It goes live only after you approve it, on AdKit's Draft Approval page or by telling your AI to publish it.
### Do I need an API key or a developer token?
No. You sign in to AdKit in your browser and connect your Microsoft Ads account there. You also need to turn on Advanced Platform Access in your AdKit project (Agent Permissions), because this beta sends requests through the platform API.
### Can I manage several Microsoft Ads accounts?
Yes. Connect several accounts and keep each client in its own AdKit project. How many projects you get depends on your plan.
### Which AI apps does it work with?
Claude, ChatGPT, Claude Code, Gemini CLI, Cursor, Codex and any app that supports remote MCP servers with OAuth sign-in.
## Other ad platforms
- [Meta Ads MCP Server](https://github.com/adkit/meta-ads-mcp)
- [Google Ads MCP Server](https://github.com/adkit/google-ads-mcp)
- [TikTok Ads MCP Server](https://github.com/adkit/tiktok-ads-mcp)
- [LinkedIn Ads MCP Server](https://github.com/adkit/linkedin-ads-mcp)
- [Reddit Ads MCP Server](https://github.com/adkit/reddit-ads-mcp)
- [X Ads MCP Server](https://github.com/adkit/x-ads-mcp)
- [Pinterest Ads MCP Server](https://github.com/adkit/pinterest-ads-mcp)
- [All platforms in one connector](https://github.com/adkit/ads-mcp)
## Support and policies
- Help: [adkit.so/support](https://adkit.so/support) or contact@adkit.so
- [Privacy](./PRIVACY.md), [Terms](./TERMS.md), [Security](./SECURITY.md), [Support](./SUPPORT.md)
## Docs server
[`docs-server/`](./docs-server/index.mjs) is a small local MCP server that answers questions about AdKit from this README: setup per AI app, hosted tools, ad platforms, example prompts and the FAQ. It needs no login and does not manage ads; for that, connect the hosted server above. Run it with `npm start` or the Dockerfile.
## License
MIT
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: setup instructions, hosted tool inventory, platform directory, example prompts, and FAQ. The descriptions even include explicit cross-references (e.g., get_setup_guide says to use list_hosted_tools for capability info), which eliminates the main potential confusion between onboarding and capability questions.
All five tools follow a consistent snake_case verb_noun pattern (get_setup_guide, list_hosted_tools, list_ad_platforms, get_example_prompts, get_faq). The get_/list_ prefix split maps sensibly to single-item retrieval vs. collection listing.
Five tools is well-scoped for a documentation/onboarding front-end; each covers a distinct question type (install, capabilities, platforms, prompts, FAQ) with no filler. Nothing feels missing or redundant at this count.
The onboarding surface is essentially complete: setup, capability discovery, cross-platform pointers, starter prompts, and FAQ cover the full user journey for connecting to the hosted server. The only minor gap is the absence of any tool to verify a connection or account status, which would be a natural next step after setup.