---
title: "Microsoft Ads MCP Server: Run Microsoft Ads from OpenClaw, Hermes or Claude | Toffu"
description: "Toffu is a hosted MCP server with a marketing agent behind it. Build Microsoft Advertising search campaigns with responsive search ads and keywords, query performance and change budgets from OpenClaw, Hermes, Claude or ChatGPT, with one approval per request."
canonical: https://toffu.ai/mcp/microsoft-ads.md
html: https://toffu.ai/mcp/microsoft-ads
---

# Run Microsoft Ads from OpenClaw, Hermes or Claude. A Bing Search campaign with a responsive search ad and keywords, and nothing left Active by accident.

Toffu is an MCP server with a marketing agent behind it. Ask for a Search campaign from the agent you already use. Toffu builds the campaign, ad group, responsive search ad and keywords in your Microsoft Advertising account, pauses the keywords Microsoft would have left Active, reads everything back with ids, and asks you once before it writes.

## Add Toffu to your MCP client

If you are an agent, follow this prompt (it is the same flow as https://toffu.ai/llms.txt):

```
Onboard onto Toffu as my AI marketing agent. Read https://toffu.ai/llms.txt and follow it: sign up at https://mcp.toffu.ai/agent/signup (no email needed), then add https://mcp.toffu.ai/mcp as an MCP server in your client with the key you get back and reload so its tools load. Don't hand-roll JSON-RPC. Then use the send_message tool to create a paused Microsoft Ads Search campaign for signups on my site: US only, $20 a day, one ad group, keywords and a responsive search ad, paused at every level, and read it back.
```

Works with: openclaw, Hermes, Claude, ChatGPT, Codex, Muse, Grok Bot, Dots.

MCP server URL: `https://mcp.toffu.ai/mcp` (streamable HTTP; OAuth 2.1 for interactive clients, or a bearer key from `POST https://mcp.toffu.ai/agent/signup`).

Then connect Microsoft Ads inside Toffu once, at toffu.ai, Integrations. Toffu holds the OAuth token; your MCP client never sees it.

## Example conversation

**User:** Create a paused Microsoft Ads search campaign for signups at toffu.ai. US only, $20 a day, one ad group with a responsive search ad and a few keywords. Pick sensible defaults and tell me what you chose.

**Toffu (status):** Waiting for approval to write to Microsoft Ads: Create campaign "Signups | Microsoft | US | Oct26". Reply "approve" to run it, or "skip" to cancel.

**User:** approve

**Toffu (status):** Creating campaign, ad group, responsive search ad and keywords. Pausing the keywords. Reading each one back...

**Toffu:** **Campaign, ad group, ad and keywords are in, all Paused.** Microsoft creates keywords Active by default, so I paused the three right after creating them and read them back.

1. **Campaign** id 571778322, Paused, $20/day, Enhanced CPC
2. **Ad group** AI Marketing Agent, id 1175380339250627, Paused, $2.00 bid, US (location 190), English
3. **Responsive search ad** id 73461496950967, Paused. Headlines: Toffu AI Marketing Agent, Automate Your Ad Campaigns, Sign Up for Toffu Today. Path: toffu.ai/ai-marketing/signup
4. **Keywords** 73462094691656 "ai marketing agent" (phrase), 73462094691657 "ai marketing agency" (phrase), 73462094691658 "ai agent for marketing" (exact), all Paused

**One thing to know:** the ad already passed editorial review, so its review status shows Active. Its serving status is Paused and stays that way until you enable the campaign.

## Bing Search, run from your chat window

- **Search campaign with keywords in one request**: Campaign, ad group, responsive search ad and keywords from one sentence. Toffu picks the bid strategy, ad group bid, location and language, tells you what it chose, and reads every object back with its id.
- **Keywords get paused too**: Microsoft creates new keywords Active even under a paused ad group. Toffu notices and pauses them, so a paused campaign is paused at every level, and reports the three ids it touched.
- **Re-sending does not duplicate**: Toffu reads your campaigns by name before creating one. Send the same request twice and the second run reuses the existing campaign instead of building a copy next to it.
- **Approve once per request**: The first write asks for approval. The rest of that request runs on the same approval, so a campaign with an ad and three keywords is one "approve". A new request asks again.
- **Query performance across platforms**: One call returns spend, impressions, clicks and conversions per campaign for Microsoft alongside Google, Meta, Reddit, TikTok and ChatGPT Ads, normalized into one table.
- **Safe by default**: Toffu never enables what you asked to keep paused and works only on the accounts you allowed in Toffu. Budget and status changes are a plain request plus one approval card.

## Connect. Ask. Approve.

1. **Connect Toffu as an MCP server**: Paste the onboarding prompt into your agent. It signs up, registers https://mcp.toffu.ai/mcp and loads the tools. Connect Microsoft Ads inside Toffu once.
2. **Ask in plain language**: "Create a paused search campaign for signups, US, $20 a day, with an RSA and a few keywords." Toffu plans the structure and asks you before the first write.
3. **Approve, then read back**: Reply "approve". Toffu builds everything, pauses the keywords, reads each object back from Microsoft, and reports ids, statuses and the defaults it chose.

## Keep running it from the same chat

The campaign is a normal Microsoft Advertising campaign. The Microsoft Ads UI still works. Toffu is the faster hand.

- **Change budgets with one approval**: "Raise the campaign to $30 a day." Toffu shows one approval card with the change, writes it after you approve, and reads the new value back.
- **Pause or enable at any level**: Campaign, ad group, ad or a single keyword. Each change is one request and one approval, and the read-back shows the new status.
- **Ask about review status**: "Is the ad approved?" Toffu reads the ad's editorial status separately from its serving status, so an approved-but-paused ad is reported as exactly that.
- **Same agent in Toffu's own chat**: Everything you build from OpenClaw, Hermes or Claude shows up in your Toffu workspace, with the same history and the same account rules.

## FAQ

### What is MCP?

Model Context Protocol, the open standard that lets agents like OpenClaw, Hermes, Claude and ChatGPT call outside tools. Toffu is a hosted MCP server, so there is nothing to install.

### Which clients work?

Any client that supports remote MCP servers over streamable HTTP with OAuth: OpenClaw, Hermes, Claude (web, desktop, Claude Code), ChatGPT apps, Cursor, and most agent frameworks.

### Will it spend money without asking?

No. The first write in a request asks for approval, and Toffu creates the campaign, ad group, ad and keywords Paused unless you say otherwise. Budget and status changes are one request and one approval card each.

### Why does my ad show Active while the campaign is Paused?

Microsoft reports two statuses on an ad. Editorial status says whether the ad passed review; Active there means approved. Serving status says whether it can run; Paused there means it will not. Toffu reads both back and tells you which is which.

### Why did Toffu pause my keywords?

Microsoft creates keywords Active by default, even inside a paused ad group. You asked for a paused campaign, so Toffu paused the keywords right after creating them and reported their ids. Say "enable the keywords" when you are ready.

### Can I undo a budget change?

Undo exists on Google Ads and Meta Ads. On Microsoft Ads every change is one approval card, and the read-back shows the value you replaced, so "set it back to $20" is one more request.

## Your next Bing campaign is one sentence away.

Connect Toffu to the client you already use. Ask for the campaign. Approve once.

Sign up: https://toffu.ai/account/sign-up?utm_campaign=mcp-microsoft-ads
HTML version: https://toffu.ai/mcp/microsoft-ads
