Back to MCP Servers

Mureo

Framework for AI agents (Claude Code, Cursor, Codex, Gemini) to operate Google Ads, Meta Ads, and Search Console. Grounded in a local STRATEGY.md — not metric-chasing. Defense-in-depth security, local-first. Apache 2.0.

marketinggosecurityaiagent
By logly
11Updated 2 days agoPythonApache-2.0

Installation

npx -y mureo

Configuration

{
  "mcpServers": {
    "mureo": {
      "command": "npx",
      "args": ["-y", "mureo"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/img/logo-dark.png"> <img src="docs/img/logo.png" alt="mureo" width="300"> </picture> </p> <p align="center"> <a href="https://mureo.io">Website</a> · <a href="README.ja.md">日本語</a> </p> <p align="center"> <a href="https://pypi.org/project/mureo/"><img alt="PyPI" src="https://img.shields.io/pypi/v/mureo.svg"></a> <a href="https://pypi.org/project/mureo/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/mureo.svg"></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache%202.0-blue.svg"></a> <a href="https://github.com/logly/mureo/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/logly/mureo/actions/workflows/ci.yml/badge.svg"></a> </p>

mureo — your local-first AI ad ops crew. Find waste, audit changes, run ad accounts safely.

Local-first. Strategy-grounded. Safety-gated.

Works with Claude Code, Cursor, Codex & Gemini. mureo sits on top of the official ad-platform MCPs and gives your AI a strategy to follow, an outcome to be measured against, and an audit trail you can show to anyone — credentials never leave your machine.

<p align="center"> <img src="docs/img/sample-search-term-cleanup.svg" alt="mureo /search-term-cleanup output: brand self-cannibalization detected — same brand term converts at ¥4,550 CPA in one campaign vs ¥31,800 wasted in another, ~¥250,000/30d redirectable"> </p> <p align="center"><em>Real output: brand cannibalization auto-detected on a 30-day BYOD bundle (anonymized B2B SaaS account). <a href="#what-the-output-actually-looks-like-anonymized-b2b-saas-account">More samples ↓</a></em></p>

What is mureo?

mureo is a local-first control plane for AI ad ops. Once installed, AI agents (Claude Code, Cursor, Codex, Gemini, etc.) operate Google Ads, Meta Ads, Search Console, and GA4 through mureo — which keeps every action grounded in your business strategy, tied to real outcomes, and recorded in an audit log you can replay.

When official ad-platform MCPs ship (Meta Ads MCP, Google Ads MCP, etc.), mureo uses them as drivers. mureo's value is not the API connection — it is what happens around it:

  • Strategy-grounded — every decision reads STRATEGY.md (persona, USP, brand voice, goals)
  • Safety-gated — rollback allow-list, GAQL guards, BYOD read-only by default, credential guard, per-platform throttle
  • Cross-platform — Google Ads / Meta Ads / Search Console / GA4 in one workflow
  • Auditable — append-only action log with rollback
  • Local-first — credentials never leave your machine
  • Learnable/learn builds account-specific knowledge over time

Choose your setup

The easy way: pip install + mureo configure

For most people, two commands set up mureo for Claude — no terminal secret-pasting, no JSON editing:

pip install mureo
mureo configure

mureo configure opens a local browser UI (bound to 127.0.0.1, ephemeral port — no remote access) that walks you through everything:

  • Pick your Claude appClaude Code (CLI / Desktop app) or Claude Desktop app (Chat, Cowork); mureo writes the right config file for that host.
  • Basic setup — registers the mureo MCP server, the credential-guard hook (Claude Code), and the workflow skills, in one click.
  • Connect platforms — interactive Google / Meta OAuth in the browser (deep links to each console), or paste a GA4 service-account path / project id; values are written to ~/.mureo/credentials.json for you.
  • Official MCP providers — register Google Ads / GA4 official MCPs into ~/.claude.json. (Meta is a hosted MCP with no OAuth dynamic client registration, so it can't be wired as a Claude Code user-scope server; the UI shows how to add it as a Claude.ai account connector instead — it then works in Claude Code and Claude Desktop alike.)
  • Per-platform tool source — a dashboard toggle to switch each platform between mureo-native tools and the official MCP.
  • Demo / BYOD — scaffold a demo scenario or import your XLSX bundle from the same UI.

The terminal flow below still works (and is scriptable); mureo configure is just the friendlier front door to the same operations.

Manual / scriptable (3 modes × 3 hosts)

mureo has 3 modes (where the data comes from) and runs across 3 hosts (where the agent operates). Pick the cell, run the command — or just use mureo configure above:

Claude CodeClaude Desktop chatCowork (Desktop)
Demo (synthetic)mureo setup claude-code --skip-auth + mureo demo init --scenario seasonality-trapmureo install-desktop --with-demo seasonality-trapSame as chat + connect the workspace folder
BYOD (your XLSX)mureo setup claude-code --skip-auth + mureo byod import bundle.xlsxmureo install-desktop + mureo byod import bundle.xlsxSame as chat + connect the workspace folder
Auth (Live API)mureo setup claude-code (interactive OAuth)mureo install-desktop + mureo configureSame as chat + connect the workspace folder

Full per-row walkthroughs (including how to obtain your XLSX, where to put it, and how to import it): Getting Started →.

Not familiar with Google Cloud Console or Meta for Developers? OAuth flows, developer-token registration, and Business-app sign-ups can feel intimidating if you have never used those consoles before. Start with BYOD — you will see what mureo can do for your account in a few minutes, then decide whether the Live API path is worth setting up.

BYOD vs Live API at a glance

Mode A: BYOD — 5 minutes to first diagnosis, no OAuth

Drop a Sheet-bundle XLSX into mureo and get a strategy-grounded multi-platform diagnosis. No OAuth flow, no developer-token approval, no SaaS sign-up.

pip install mureo
mureo setup claude-code --skip-auth
mureo byod import ~/Downloads/mureo-google-ads.xlsx
mureo byod import ~/Downloads/mureo-meta-ads.xlsx     # add Meta later — they're independent
# Open Claude Code and ask: "Run /daily-check"

Producing the XLSX is a one-time setup per platform:

  • Google Ads — Apps Script template populates a Google Sheet you own; download as XLSX (~5 min). See guide →
  • Meta Ads — Saved Report in Ads Manager → 2-click export. Recognized in 9 languages (English / 日本語 / 简体中文 / 繁體中文 / 한국어 / Español / Português / Deutsch / Français), so you do not need to switch Ads Manager UI to English. See guide →

Read-only by construction. Every mutation tool (/rescue, /budget-rebalance, /creative-refresh) returns {"status": "skipped_in_byod_readonly"} — the agent analyzes and recommends but never writes to your real account. Upgrade a platform to the Live API later with mureo byod remove --google-ads (one platform) or mureo byod clear (all).

Mode B: Live API OAuth — full functionality

Connect mureo directly to Google Ads / Meta Ads APIs. Required to actually execute changes (/rescue, /budget-rebalance, /creative-refresh, mureo rollback apply) and for GA4 / Search Console support.

pip install mureo
mureo configure            # browser UI: pick host, basic setup, OAuth, providers
# …or the terminal equivalent:
#   mureo auth setup        # interactive OAuth in the terminal
#   mureo setup claude-code # MCP server + workflow skills
# Open Claude Code and ask: "Run /daily-check"

Prerequisites: Google Ads Developer Token + OAuth Client; Meta App ID + Secret. Both mureo configure (browser) and mureo auth setup (terminal) walk you through them — see Authentication below.

Which mode fits?

CapabilityMode A: BYODMode B: Live API
First-time setup time5–10 min per platform30–60 min
Approval / waiting riskNone1–3 weeks Google review, sometimes rejected
/daily-check, /weekly-report✅ (campaign / ad-set / ad drill-down + placement / platform / device breakdown)
/goal-review, /sync-state
/rescue / /budget-rebalance (proposals)
/search-term-cleanup (analysis)✅ Google Ads only
/search-term-cleanup (execute)🛡️ Preview only✅ Live
/rescue / /budget-rebalance (execute)🛡️ Preview only✅ Live
/creative-refresh (execute)🛡️ Preview only✅ Live
/competitive-scan⚠️ Google Ads BYOD has no auction insights (Ads Scripts limitation)
GA4 / Search Console❌ (not in BYOD bundle)

Recommended starting path: Try Mode A on one platform first → run /daily-check → decide whether to add the second platform via BYOD or graduate to Mode B. The presence of ~/.mureo/byod/manifest.json is the switch — no config flags, no global toggle.

See docs/byod.md for the full walkthrough, Saved Report config, and per-platform export instructions.

Features

Strategy-driven decisions

Every operation starts from STRATEGY.md -- your persona, USP, brand voice, goals, and operation mode. The agent doesn't just optimize metrics; it optimizes toward your business objectives.

/creative-refresh reads your Persona and USP before drafting a single headline.
/budget-rebalance checks your Operation Mode before shifting a single dollar.
/rescue cross-references your Goals before recommending what to fix first.

Cross-platform analysis

mureo orchestrates across Google Ads, Meta Ads, Search Console, and GA4 in a single workflow:

  • /daily-check -- pulls delivery status, ad performance, organic search trends, and site behavior across all platforms, then correlates them into one health report.
  • /search-term-cleanup -- compares paid keywords against organic rankings to eliminate wasteful overlap.
  • /competitive-scan -- combines auction insights with organic position data for a complete competitive picture.

The agent auto-discovers your configured platforms. Add Meta Ads later? Every command adapts automatically.

Built-in marketing expertise

Campaign diagnostics that pinpoint why ads aren't delivering -- budget constraints, bidding misconfiguration, policy disapprovals, and more. Search term intent classification. Budget efficiency scoring. RSA ad validation and asset auditing. Landing page analysis. Device-level CPA gap detection. The kind of knowledge experienced ad operators carry in their heads -- built into every workflow.

Learnable operational know-how

When you correct the agent or share an operational insight, /learn saves it to a persistent knowledge base. That knowledge is loaded at the start of every future session, so the agent doesn't repeat the same mistakes and applies what it learned to similar situations across your account.

You: "That's not a real CPA spike -- this industry always dips in Golden Week."
Agent: Saved. I'll flag this as seasonal next time.

→ Written to the diagnostic knowledge base.
→ Every future /daily-check and /rescue will factor this in.

Beyond your own /learn history, mureo can also consult external advisor MCP servers — consulting firms, industry trade groups, OSS communities, or internal team wikis can stand up a vector-search MCP

View source on GitHub