Built by a marketer, for marketers.
Launch and manage Google Ads straight from your MCP client (e.g., Claude) with a hosted, remote MCP server. No Google Cloud setup, no JSON edits, no terminal.
I’m a solo builder - expect speed and opinionated defaults (with the occasional paper cut). If you hit one, don’t bounce - ping me and we’ll fix it together. 💪
What this is (and why it’s different)
- Remote Google Ads MCP server. Unlike most MCP servers that run locally and expect you to fiddle with Google Cloud, edit MCP JSON, and babysit a process. Otto is fully hosted. You just paste a URL and go.
- Safer by design. Local setups can accidentally expose files, tokens, or system permissions. Otto uses modern OAuth flows aligned with the June 18, 2025 MCP auth spec and scopes tokens to this server only.
- Built for marketers. Opinionated defaults and prompts that map to how PPC is actually run - fast, consistent, low-friction.
<aside>
✅
Who it’s for: in-house marketers, agencies, and consultants who want speed without wrestling with setup.
</aside>
Prerequisites
- A MCP client that supports remote MCP servers (Claude Web, Desktop, Claude Code, etc).
- A Google account with access to the Google Ads accounts you’ll manage.
Getting started (Claude Web example)
These are the exact buttons you’ll click in Claude Web. Claude Desktop is similar.
-
Open Claude → Settings → Connectors → Add Custom Connector.
Paste the server URL:
<https://googleads.hireotto.com/mcp>
Give it a friendly name like Otto – Google Ads MCP and click Add.
-
Click Connect.
A Google sign‑in window opens. This is a quick handshake so Otto can recognize your workspace. Approve the prompt.
-
You’ll see “Successfully connected” in Claude (blue banner).
That confirms Otto is reachable as a remote MCP server.
-
Ask Claude to connect Google Ads.
Try a plain-English prompt like “Connect Google Ads” or “Authenticate Google Ads.”
Claude will return a link - open it and grant access. During this step you’ll also be asked to select which Google Ads accounts Otto can access.
-
Finish and return.
When the auth page says you’re done, close that window and return to Claude. Otto is now fully set up.
-
Sanity check (optional).
Ask for something simple like “List my accessible accounts” or “List campaigns for 123‑456‑7890.”
💡 Tip: If Claude doesn’t respond to natural language, try: “run the Google Ads authentication tool.” Some clients prefer explicit wording on first use.
What you can do today
You don’t need to remember tool names - just ask in plain English. Here are capabilities powered by the server right now:
Reporting
- “Retrieve a campaigns report for the last 7 days for 123‑456‑7890 — show top 10 by spend inline, export full CSV.”
- “Give me search terms for the last 30 days and flag low‑quality queries — show top 25 wasting spend inline, export CSV for the rest.”
- “Break down performance by device and geo for this month — summary inline, CSV export for analysis.”
- “What’s my impression share and lost IS?”
- “List my conversion actions and their performance.”
Build & edit (Search)
- “Create a Search campaign targeting United States, language English, Manual CPC, $50/day.”
- “Add exact‑match keywords “kw1”, “kw2”, “kw3” to adgroup ABC in campaign XYZ”
- “Increase daily budget on US | Brand | Exact to $100.”
- “Pause two low‑performing keywords in campaign XYZ”
- “Update ad #ID: new headlines, descriptions, paths.”
- “Disable search partners and display partners for my campaigns”
Negatives & brand safety
- “Create a negative keyword list called Careers & Hiring and add terms like jobs, careers, openings (phrase match).”
- “Attach my Investors & Funding negative list to US | Brand | Exact.”
- “Add education intent negatives to this campaign.”
Hygiene & reviews
- “Review auto‑tagging for 123‑456‑7890 and turn it on if it’s off.”
- “Disable auto‑apply recommendations across the account.”
- “List all disapproved ads.”
- “Review negative keywords for campaign X.”
Discovery & settings
- “List my campaigns / ad groups / ads / keywords.”
- “Show campaign settings for US | Brand | Exact (networks, languages, schedules, devices).”
- “Turn on Search Partners for US | Brand | Exact.”
🔜 I’ll keep expanding this as new features land. If there’s a workflow you repeat a lot, tell me - I’ll streamline it.
Keyword planning
- “Generate keyword ideas for ‘marketing automation software’ (US) - top 15 in chat, export full CSV.”
- “Generate keyword ideas from this landing page: https://example.com — keep top 50.”
- “Get historical metrics for these keywords: [‘b2b crm’, ‘crm software’] in US/UK/IN (separate by country) + export full csv.”
- “For ‘accounting software’, show only LOW/MEDIUM competition keywords with 200+ monthly searches.”
- “Filter ideas for ‘ai meeting notes’: only LOW/MEDIUM competition and 200+ monthly searches; export CSV for Sheets.”
Troubleshooting
“Google Ads isn’t connected.”
Ask “Connect Google Ads” again, open the link, finish consent, then say “List my accessible accounts.”
“Account 123‑456‑7890 isn’t in your saved list.”
You probably just got access. Say “List my accessible accounts” and then use one of those IDs.
Claude didn’t pick the right tool.
Say it explicitly: “Run the Google Ads authentication tool.” Then try your request again.
Privacy & security
- Stored: encrypted OAuth tokens required to call the Google Ads API on your behalf.
- Not stored long‑term: your Google Ads data; it’s processed to answer your request and not retained.
- You’re in control: revoke anytime from your Google Account → Security → Third‑party access.
✅ Remote server = no local file exposure, no system‑wide permissions.
FAQ
Which clients are supported?
Any MCP client that supports remote MCP servers should work. Otto is tested with Claude Web, ChatGPT (dev mode), Make.com and Claude Desktop. If you run into issues with any client, email [email protected].
CSV exports work best in clients that can fetch URLs (Claude Web/Desktop, Make.com scenarios).
Do I need Google Cloud or JSON editing?
No. Paste the URL, connect, authenticate, use.
Pricing?
Free preview while I gather feedback.
Will Otto change my campaigns automatically?
Only when you ask for edits (e.g., creating/updating). Reports are read‑only.
Changelog
- [24-03-2026] Daily Ops Audit: A simple tool that flags under/over pacing campaigns and wasteful search terms (conversions < 1, sorted by cost).
- [22-02-2026] CSV support: Extended CSV support: export modes (summary / summary+csv / csv_only) to other relevant tools.
- [30-12-2025] Reporting: Added CSV export modes (summary / summary+csv / csv_only) to prevent context-window overload on large reports.
- [29-12-2025] Keyword Planner: CSV export support for
keyword_planner - keep context lengths short and allow LLMs to analyze data programmatically.
- [25-12-2025] Keyword Planner: Added
keyword_planner tool for keyword ideas + historical metrics (with location_mode, sorting, filtering).
- [21-11-2025] Server Updates to work more smoothly with Claude web
- [03-10-2025] Google Ads API Updates: Updated tools to work with the latest ads API.
- [09-08-2025] Preview - Remote MCP, Google Ads auth, core reporting, Search build/edit tools, helpful defaults.