# Microsoft Advertising (Bing Ads)

Connect Microsoft Advertising accounts to an MCP client, inspect campaigns and reports, and stage account changes behind explicit confirmation.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: get-mcp-ads
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/get-mcp-ads/bing-ads-mcp-server
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/microsoft-advertising-bing-ads

## What it does

This server connects to Microsoft Advertising through the Bing Ads API. Its 20 read tools cover account discovery, campaigns, ad groups, keywords, targeting, audiences and reports. Another 23 tools prepare account changes, while write access stays off by default.

Every write produces a preview first and runs only when `confirm: true` is supplied. Newly created entities start in `Paused` status. The setup requires Node.js 22.23.4, 24.22.1, 26.12.1, or a newer release from those lines, plus `BING_ADS_*` environment variables. Without the required `BING_ADS_ACCOUNT_IDS` allowlist, the server has no permitted accounts to use.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `BING_ADS_DEVELOPER_TOKEN`, `BING_ADS_CLIENT_ID`, `BING_ADS_CLIENT_SECRET`, `BING_ADS_REFRESH_TOKEN`, `BING_ADS_CUSTOMER_ID`, `BING_ADS_ACCOUNT_IDS`, `BING_ADS_ENVIRONMENT`, `BING_ADS_IDENTITY_PROVIDER`, `BING_ADS_OAUTH_TENANT`, `BING_ADS_ENABLE_WRITES` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add bing-ads -e BING_ADS_DEVELOPER_TOKEN=<BING_ADS_DEVELOPER_TOKEN> -e BING_ADS_CLIENT_ID=<BING_ADS_CLIENT_ID> -e BING_ADS_CLIENT_SECRET=<BING_ADS_CLIENT_SECRET> -e BING_ADS_REFRESH_TOKEN=<BING_ADS_REFRESH_TOKEN> -e BING_ADS_ACCOUNT_IDS=<BING_ADS_ACCOUNT_IDS> -- npx -y @getmcpads/bing-ads-mcp-server
```
Replace <…> with your own values. 5 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add microsoft-advertising-bing-ads --env BING_ADS_DEVELOPER_TOKEN=<BING_ADS_DEVELOPER_TOKEN> --env BING_ADS_CLIENT_ID=<BING_ADS_CLIENT_ID> --env BING_ADS_CLIENT_SECRET=<BING_ADS_CLIENT_SECRET> --env BING_ADS_REFRESH_TOKEN=<BING_ADS_REFRESH_TOKEN> --env BING_ADS_CUSTOMER_ID=<BING_ADS_CUSTOMER_ID> -- npx -y @getmcpads/bing-ads-mcp-server
```
Replace <…> with your own values. 5 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "microsoft-advertising-bing-ads": {
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/bing-ads-mcp-server"
            ],
            "env": {
                "BING_ADS_DEVELOPER_TOKEN": "<BING_ADS_DEVELOPER_TOKEN>",
                "BING_ADS_CLIENT_ID": "<BING_ADS_CLIENT_ID>",
                "BING_ADS_CLIENT_SECRET": "<BING_ADS_CLIENT_SECRET>",
                "BING_ADS_REFRESH_TOKEN": "<BING_ADS_REFRESH_TOKEN>",
                "BING_ADS_CUSTOMER_ID": "<BING_ADS_CUSTOMER_ID>"
            }
        }
    }
}
```
Replace <…> with your own values. 5 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "microsoft-advertising-bing-ads": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/bing-ads-mcp-server"
            ],
            "env": {
                "BING_ADS_DEVELOPER_TOKEN": "<BING_ADS_DEVELOPER_TOKEN>",
                "BING_ADS_CLIENT_ID": "<BING_ADS_CLIENT_ID>",
                "BING_ADS_CLIENT_SECRET": "<BING_ADS_CLIENT_SECRET>",
                "BING_ADS_REFRESH_TOKEN": "<BING_ADS_REFRESH_TOKEN>",
                "BING_ADS_CUSTOMER_ID": "<BING_ADS_CUSTOMER_ID>"
            }
        }
    }
}
```
Replace <…> with your own values. 5 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e BING_ADS_DEVELOPER_TOKEN=<BING_ADS_DEVELOPER_TOKEN> -e BING_ADS_CLIENT_ID=<BING_ADS_CLIENT_ID> -e BING_ADS_CLIENT_SECRET=<BING_ADS_CLIENT_SECRET> -e BING_ADS_REFRESH_TOKEN=<BING_ADS_REFRESH_TOKEN> -e BING_ADS_CUSTOMER_ID=<BING_ADS_CUSTOMER_ID> microsoft-advertising-bing-ads npx -y @getmcpads/bing-ads-mcp-server
```
Replace <…> with your own values. 5 more environment variables are in the server README

## When to use it
- inspect campaigns and ad groups
- review targeting, audiences and reports
- discover accounts through the Bing Ads API
- stage changes before applying them

## Example prompts
- Show the campaigns and ad groups for my permitted Microsoft Advertising accounts.
- Build a report for the accessible accounts and compare their results.
- Prepare a keyword change, show the preview, and do not confirm the write.

## Similar
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16730
- [PostHog MCP Server](https://affpapa.org/en/nevibecode/mcp/posthog-mcp-server.md) — MCP server · ★ 40459
- [OpenWork MCP Gateway](https://affpapa.org/en/nevibecode/mcp/openwork-mcp-gateway.md) — MCP server · ★ 24271
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18779
- [Nhost](https://affpapa.org/en/nevibecode/mcp/nhost.md) — MCP server · ★ 9369
- [basebalance.cloud — x402 RPC & MCP gateway](https://affpapa.org/en/nevibecode/mcp/basebalancecloud-x402-rpc-mcp-gateway.md) — MCP server · ★ 7548

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
