実際の出力です。30日分の BYOD バンドルからブランドのカニバリゼーションを自動検出しました (B2B SaaS アカウント、匿名化済)。他のサンプルを見る ↓
## mureoとは mureo は、**AI 広告運用のための、ローカルで動く制御基盤(control plane)** です。インストールすると、AIエージェント(Claude Code、Cursor、Codex、Geminiなど)が Google 広告、Meta 広告、Amazon 広告、TikTok 広告、Search Console、GA4 を *mureo を経由して* 操作できるようになります。すべての判断はあなたの事業戦略に基づき、実際の成果に紐づき、後から再生できる監査ログに残ります。 mureo は Google 広告、Meta 広告、Search Console の接続を自前で同梱しており、各プラットフォームが公式 MCP を公開すればそれをドライバとして利用します(TikTok の公式 MCP には対応済みで、**Amazon 広告(公式 MCP ブリッジ)** は mureo が中継するため認証情報がホストの MCP 設定に入りません。詳細は [docs/amazon-ads.ja.md](docs/amazon-ads.ja.md))。mureo の価値は API 接続そのものではなく、**その周辺で起きること**にあります。 - **戦略準拠**:すべての判断が `STRATEGY.md`(ペルソナ、USP、ブランドボイス、目標)を読み込む - **セーフティゲート**:rollback allow-list、GAQL ガード、BYOD は既定で read-only、認証情報ガード、プラットフォーム別スロットリング - **クロスプラットフォーム**:Google 広告 / Meta 広告 / Amazon 広告 / TikTok 広告 / Search Console / GA4 を 1 つのワークフローで - **監査可能**:追記専用の action log、rollback 対応。さらに全ツール呼び出しとその結果を記録する journal(`mureo journal`) - **ローカルファースト**:認証情報はお手元のPCから出ない - **学習可能**:`/learn` でアカウント固有のナレッジを継続的に蓄積 ## クイックスタート(2分で動きを見る) 必要なのは Python 3.10 以上と [Claude Code](https://claude.com/claude-code) だけです(Cursor、Codex CLI、Gemini CLI でも動きます。詳しくは[そのほかのエージェントとホスト](#そのほかのエージェントとホスト))。**デモシナリオ**は合成データで動くため、広告アカウントの認証情報も、OAuth も、サインアップも要りません。 ```bash pip install mureo mureo configure ``` `mureo configure` はローカル(`127.0.0.1` にバインド。外部からはアクセス不可)にブラウザ UI を起動します。Claude アプリを選び、1クリックの基本セットアップを実行したら、Demo / BYOD セクションで**デモシナリオ**を選んでください。UI にはプラットフォーム接続(OAuth)の項目もありますが、**ここでは飛ばして構いません**。デモに認証情報は不要です。(ターミナルでは `mureo setup claude-code --skip-auth && mureo demo init --scenario seasonality-trap` で同じことができます。) 生成されたデモディレクトリ(パスは UI に表示されます)を Claude Code で開いて、こう聞いてください。 ``` /daily-check ``` エージェントがデモ用の `STRATEGY.md` を読み、キャンペーンデータを取得し、数値だけを見るツールが見落とす「季節性の罠」に踏み込んでいく様子を見られます。次は `/search-term-cleanup` を試してみてください。 自分のデータで使う準備ができたら、次のどちらかに進んでください。 ### まず自分のデータで試す(BYOD、5〜10分、OAuth 不要) **Google Ads / Meta Ads から XLSX として書き出して mureo に取り込むだけで、媒体をまたいだ戦略レベルの診断が手に入ります。** OAuth も Google Ads API のアクセス審査待ちも要りません。取り込みは `mureo configure` のダッシュボード(デモと同じ Demo / BYOD セクション)から、またはターミナルからできます。 ```bash mureo byod import ~/Downloads/mureo-google-ads.xlsx mureo byod import ~/Downloads/mureo-meta-ads.xlsx # 媒体は互いに独立。片方だけでも、後から追加でも可 # Claude Code を開いて /onboard を実行し、続けて /daily-check ``` 最初に `/onboard` を一度実行すると、対話形式で `STRATEGY.md`(戦略)と `STATE.json`(状態)が生成されます。以降のコマンドはすべてこの戦略を読んで動きます。デモでこの手順が要らないのは、デモに `STRATEGY.md` が同梱されているためです。 XLSX の生成は媒体ごとに一回だけのセットアップです。Google Ads は Apps Script テンプレートで約5分、Meta Ads は広告マネージャの保存済みレポートから2クリックで書き出せます(9言語のUIに対応しているため、広告マネージャを英語に切り替える必要はありません)。**[BYOD ガイド →](docs/byod.ja.md)** BYOD は**設計上、読み取り専用**です。すべての変更系ツールは `{"status": "skipped_in_byod_readonly"}` を返します。エージェントは分析と提案はしますが、実アカウントへの書き込みは決してしません。 ### 本番のアカウントに接続する(Live API OAuth、全機能) mureo を Google Ads / Meta Ads API に直接接続します。実際に変更を実行する場合(`/rescue`、`/budget-rebalance`、`/creative-refresh` の実行や、`rollback_apply` ツールによるロールバックの適用)と、GA4 / Search Console を使う場合はこちらが必須です。 同じ `mureo configure` の UI で「プラットフォーム接続」を開くと、各コンソールへのディープリンク付きで Google / Meta の OAuth をブラウザ内で完了でき、公式 MCP プロバイダの登録もできます。(ターミナルでは `mureo auth setup` で同じことができます。)**[認証ガイド →](docs/authentication.ja.md)** 前提として、Google Ads API のアクセス権を持つ Google Cloud プロジェクトと OAuth クライアント、Meta の App ID と Secret が必要です(開発モードのままで構いません)。取得手順もウィザードが案内します。 接続できたら、運用に使うディレクトリを Claude Code で開き、最初に `/onboard` を一度実行して `STRATEGY.md`(戦略)と `STATE.json`(状態)を生成してください。戦略に基づく運用は、この2つのファイルがあって初めて動きます。 > **Google Cloud Console や Meta for Developers に慣れていない方へ。** OAuth フローや Google Ads API のアクセス申請は、これらのコンソールを使ったことがない方には難しく感じるかもしれません。**まずはデモか BYOD から始めてください。** 数分で mureo がどう動くかが分かるので、Live API のセットアップに踏み込むかどうかはそれから判断すれば大丈夫です。 ### どちらのモードが合うか | 機能 | BYOD | Live API | |----------------------------------------------------|-----------------------------------------|------------------| | **初回セットアップ時間** | **プラットフォームごとに5〜10分** | 30〜60分 | | **審査と待ち時間のリスク** | **なし** | Google審査に1〜3週間、却下される場合あり | | `/daily-check`、`/weekly-report` | ✅(campaign / ad-set / ad のドリルダウン + プレースメント / プラットフォーム / デバイス内訳) | ✅ | | `/goal-review`、`/sync-state` | ✅ | ✅ | | `/rescue` / `/budget-rebalance`(提案) | ✅ | ✅ | | `/search-term-cleanup`(分析) | ✅ Google Ads のみ | ✅ | | 実行(`/rescue`、`/budget-rebalance`、`/creative-refresh`、`/search-term-cleanup`) | 🛡️ プレビューのみ | ✅ 実アカウントで実行 | | `/competitive-scan` | ⚠️ Google Ads BYOD は auction insights 非対応(Apps Script の制約) | ✅ | | GA4 / Search Console | ❌(BYOD バンドルに含まれず) | ✅ | `~/.mureo/byod/manifest.json` があるかどうかでモードが切り替わります。取り込んだ媒体は BYOD、それ以外は Live API で動作し、`mureo byod remove --google-ads`(媒体単位)や `mureo byod clear`(全削除)でいつでも切り替えられます。 ### そのほかのエージェントとホスト Claude 系のホスト(Claude Code / Claude Desktop)は `mureo configure` だけで最後まで設定できます。下の表は、スクリプト化したい場合の同等コマンドと、Claude 以外のホストの一覧です。 | ホスト | コマンド | 補足 | |------|---------|-------| | Claude Code | `mureo setup claude-code` | MCP サーバ+認証情報ガード+ワークフロースキル | | Claude Desktop(Chat / Cowork) | `mureo install-desktop` | Cowork ではワークスペースフォルダを接続 | | Cursor | `mureo setup cursor` | MCP ツールのみ(ワークフロースキルなし) | | Codex CLI | `mureo setup codex` | Claude Code と同等。スキルは `~/.codex/skills/` に配置され、`$daily-check` で起動 | | Gemini CLI | `mureo setup gemini` | 拡張マニフェスト形式。PreToolUse フックは非対応 | | 任意の MCP クライアント / CI | Docker | **[Docker ガイド →](docs/docker.md)** | ホスト別の詳細手順(各ホストのデモ / BYOD / Live の組み合わせを含む)は **[はじめかた →](docs/getting-started.ja.md)** にまとめています。 ## 特徴 ### 戦略に基づいた判断 広告操作の前に、エージェントはまず `STRATEGY.md` を読みます。ペルソナ、USP、ブランドボイス、目標、運用モードなど、あなたのビジネス戦略が定義されたファイルです。数値だけを追いかけるのではなく、ビジネスの目的に沿った判断をします。 例えば `/creative-refresh` は、広告コピーを考える前にまずペルソナとUSPを確認します。`/budget-rebalance` は現在の運用モードを踏まえてから予算配分を提案します。`/rescue` はゴールの優先度に照らして、何から対処すべきかを判断します。 ### 媒体横断の分析 Google広告、Meta広告、Amazon広告、TikTok広告、Search Console、GA4を1つのワークフローでまとめて処理します。 - `/daily-check`:全媒体の配信状況、広告パフォーマンス、自然検索のトレンド、サイト内行動を一括取得し、相関させて1つのレポートにまとめます。 - `/search-term-cleanup`:有料キーワードと自然検索の順位を突き合わせ、無駄な重複出稿を洗い出します。 - `/competitive-scan`:オークション分析と自然検索の順位データを統合して、競合の全体像を把握します。 設定済みの媒体はエージェントが自動検出します。後からMeta広告、Amazon広告、TikTok広告を追加しても、全コマンドがそのまま対応します。 ### 広告運用の専門知識 配信が出ない原因の自動特定(予算不足、入札設定ミス、広告の不承認など)、検索語の検索意図による分類、予算の使い方の効率評価、RSA広告の入稿チェックとアセットごとの成果分析、LPの解析、デバイス別のCPA差異の検出など、ベテラン運用者が経験で身につけている判断基準がワークフローに組み込まれています。 ### クリエイター品質のクリエイティブ生成 `/creative-generate` は、クリエイターが作ったものと遜色ない広告クリエイティブを生成します。自分の API キーで使う画像プロバイダで文字なしのキービジュアルを作り、HTML/CSS とヘッドレス Chromium で日本語タイポグラフィをピクセル単位で合成します。エージェントが全候補を採点してから納品します。詳細は [docs/creative-studio.ja.md](docs/creative-studio.ja.md) を参照してください。 ### 学習する運用ノウハウ エージェントの分析を修正したり、運用で気づいたことを `/learn` でナレッジベースに保存できます。保存した知識は次回以降のセッションで自動的に読み込まれるため、同じ間違いを繰り返しません。1つのキャンペーンで得た知見が、アカウント内の似た状況にも活かされます。 ``` あなた: /learn それは本当のCPA悪化じゃない。この業界はGW期間は毎年こうなる エージェント: 保存します。次回同じパターンを検知したら季節要因として報告します。 → ナレッジベースに記録 → 以降の /daily-check や /rescue で自動的に考慮 ``` ローカルの `/learn` 履歴に加え、mureo は**外部の advisor MCP サーバー**に問い合わせることもできます。コンサルファーム、業界団体、OSS コミュニティ、社内 wiki などがベクトル検索ベースの advisor MCP を立てれば、LLM が持っていない実務ノウハウ(媒体仕様の癖、業界別の CPA / CTR ベンチマーク、学習データの cutoff 以降の媒体アップデートなど)をエージェントが取り込めるようになります。`~/.mureo/insight_sources.json` で設定すれば、診断 skill の実行時にエージェントが `mureo_consult_advisor` を呼び出して該当する断片だけを取得します。コーパス自体は advisor 側に残り、mureo は文脈付きクエリを送って関連するスニペットの上位数件だけを受け取る方式です。詳細は [`docs/insight-federation.ja.md`](docs/insight-federation.ja.md) を参照してください(オペレーター向けの設定手順と、サーバー実装者向けの仕様書があります)。 ### セキュリティ設計 AIエージェントに広告アカウントを任せる以上、認証情報の漏洩や暴走は無視できないリスクです。mureo はこの前提に立って、いくつかの防御を最初から組み込んでいます。 - **認証情報の保護**:`mureo setup claude-code` が `~/.claude/settings.json` に PreToolUse フックを追加し、`~/.mureo/credentials.json` や `.env` などの秘密ファイルをエージェントが読み取れないようにします。プロンプトインジェクションでトークンが盗まれる経路を塞ぎます。 - **GAQL の入力チェック**:Google Ads クエリに渡される ID、日付、期間指定、文字列は、すべて `mureo/google_ads/_gaql_validator.py` のホワイトリスト検証を通ります。`BETWEEN` 句もそのまま流さず、日付部分を切り出して再検証します。 - **異常の自動検知**:`mureo/analysis/anomaly_detector.py` が action_log の履歴から中央値で基準値を作り、いまのキャンペーン指標と比べて「支出がゼロ」「CPA が跳ねた」「CTR が落ちた」を優先度つきで通知します。サンプル数が少ない日は単日のノイズとして扱い、誤検知を抑えます。エージェントは MCP ツール `analysis_anomalies_check` から呼び出せます。`state_file` 引数は MCP サーバの作業ディレクトリ配下にサンドボックスされ、`..` による親ディレクトリ越えや、サンドボックス外を指すシンボリックリンクは拒否されます。これにより、プロンプトインジェクションされたエージェントが攻撃者が用意した別の `STATE.json` を読み込ませることはできません。 - **ロールバック(許可リスト制)**:`mureo/rollback/` が action_log に記録された `reversible_params` を解釈して、取り消しプランを組み立てます。対象にできる操作はあらかじめ許可リストに登録したものだけです。`.delete` / `.remove` / `.transfer` など破壊的なメソッドや、想定外のパラメータキーは拒否されるので、乗っ取られたエージェントが「取り消し」に見せかけて危険な操作を仕込むことはできません。`mureo rollback list` / `show` で実行前に内容を確認でき、実行は MCP ツール `rollback_apply` として提供されます。apply は通常の操作と同じハンドラ経由でディスパッチされるため、認証、レート制限、入力検証のゲートをそのまま通ります。`confirm=true`(真偽値の `True`)を明示的に渡す必要があり、成功すると `rollback_of=