adhistory: Google Ads, reviews, jobs, PDFs について
adhistory-mcpは、広告、レビュー、求人、書類、メールリスト、ウェブサイトの公開データを扱うAgent向けMCPサーバーです。利用者のApifyアカウントでActorを実行し、コンテキストに収まるJSONを返します。
主な機能
- 01Google Adsの透明性データ
- 02アプリレビューと求人情報
- 03PDF・画像の表抽出
- 04銀行明細、請求書、給与明細
- 05メール検査とウェブサイト診断
活用シーン
- 01競合他社の公開広告の確認
- 02求人の検索と絞り込み
- 03PDF書類から財務情報を抽出
- 04メールリストと公開サイトの検査
MCP 対応
MCPクライアントに11種類のデータツールを提供します。各ツールは設定済みのApifyアカウントで公開Apify Actorを実行し、JSON結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx adhistory-mcpAPIFY_TOKENシークレットYour Apify API token (free account): console.apify.com -> Settings -> API & IntegrationsAPIFY_MAX_CHARGE_USDOptional cost cap per tool call in USD (default 0.50)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
13掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | enum | いいえ | 'ads' は広告を一覧表示します。'advertiserCheck' はドメインごとに 1 行の概要を返します。ads | advertiserCheck |
| country | enum | いいえ | この国で表示された広告のみ。ANY = すべての国。ANY | US | GB | CA | AU | NZ | IE | DE | FR | ES | IT | NL | BE | CH | AT | SE | NO | DK | FI | PL | PT | IN | SG | JP | BR | MX | ZA | AE |
| date_to | any | いいえ | 終了日の任意指定(YYYY-MM-DD)。 |
| domains | any | いいえ | 広告主のウェブサイト。例:['hubspot.com']。URL も使用できます。 |
| platform | enum | いいえ | この Google プラットフォームで表示された広告のみ。all | search | youtube | shopping | maps | play |
| ad_format | enum | いいえ | text = Google Search 広告。image と video は Display と YouTube を対象とします。all | text | image | video |
| date_from | any | いいえ | 開始日の任意指定(YYYY-MM-DD)。 |
| company_names | any | いいえ | Transparency Center で検索する企業名。最も一致するものが使用されます。 |
| advertiser_ids | any | いいえ | Transparency Center の広告主 ID(AR で始まります)。 |
| only_active_ads | boolean | いいえ | 過去 3 日間に表示された広告のみを残します。 |
| max_ads_per_advertiser | integer | いいえ | 新しい広告が先に表示されます。値を大きくすると、より古い長期掲載広告まで取得できます。 |
詳細
adhistory-mcp
AI エージェント(Claude Desktop、Claude Code、Cursor、その他の MCP クライアント)に、アシスタントに実際によく依頼される作業向けの11種類のデータツールを提供する MCP サーバーです。
- 競合他社の Google 広告:Google 広告透明性センターから、あらゆる企業が掲載している検索広告、YouTube 広告、ショッピング広告、ディスプレイ広告を取得します。
- アプリのレビュー:App Store と Google Play のレビューを取得し、評価が1~2つの苦情に絞り込めます。
- 求人情報:Workday の採用サイト、Greenhouse、Lever、Ashby の求人掲示板に掲載された募集中の求人と、6つのリモート求人掲示板(Remotive、Remote OK、We Work Remotely、Jobicy、Himalayas、Arbeitnow)に掲載された給与を解析済みのリモート求人を取得します。
- PDF の表:PDF のリンクから表を行データとして取得し、CSV と Excel にも対応します。
- 銀行取引明細書:取引明細書の PDF を取引、残高、残高チェックのデータに変換します。
- 請求書:請求書の PDF から番号、日付、販売元、合計金額、税金、明細項目を取得します。
- 給与明細:給与明細の PDF から総支給額、税金、控除額、手取り額、給与明細項目を取得します。
- 表画像:OCR を使って、スクリーンショットや写真にある表を行データに変換します。
- メールリストのクリーニング:構文、MX、使い捨てアドレス、ロールアカウント、入力ミスをチェックします。
- ウェブサイトのスクリーンショット:公開ページ全体、またはファーストビューの画像を取得します。
- リンク切れ:サイトをクロールし、リンク切れ、画像、スクリプトを一覧表示します。
各ツールは、ご自身の Apify アカウントで公開 Apify Actor を1つ実行し、エージェントのコンテキストに収まるように結果を整えて JSON で返します。無料の Apify API トークンが必要です。お支払いいただくのは Actor の結果ごとの料金のみです。デフォルトの制限では、1回の呼び出しにつき数セント以下です。
クイックスタート
- https://console.apify.com/sign-up で無料の Apify アカウントを作成します。
- API トークンをコピーします:console.apify.com → Settings → API & Integrations。
- MCP クライアントにサーバーを追加します(以下の例を参照)。
uvxを使って stdio 経由でローカル実行するため、uvをインストールしてください(macOS/Linux ではcurl -LsSf https://astral.sh/uv/install.sh | sh、またはbrew install uv)。
Claude Desktop
claude_desktop_config.json を編集します(Settings → Developer → Edit Config):
{
"mcpServers": {
"adhistory": {
"command": "uvx",
"args": ["adhistory-mcp"],
"env": { "APIFY_TOKEN": "apify_api_your_token_here" }
}
}
}
Claude Desktop を再起動します。ツールアイコンの下にツールが表示されます。
Claude Code
claude mcp add adhistory --env APIFY_TOKEN=apify_api_your_token_here -- uvx adhistory-mcp
Cursor
~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1つのプロジェクト)に追加します:
{
"mcpServers": {
"adhistory": {
"command": "uvx",
"args": ["adhistory-mcp"],
"env": { "APIFY_TOKEN": "apify_api_your_token_here" }
}
}
}
その他のクライアント
stdio サーバーを起動できる MCP クライアントであれば、どれでも使用できます。コマンドは uvx、引数は adhistory-mcp、環境変数は APIFY_TOKEN です。uv を使わない場合は、pip install adhistory-mcp を実行してから adhistory-mcp を実行します。
ツール
| ツール | 返される内容 | 1,000 件あたりの料金 | デフォルトの件数 | 目安時間 |
|---|---|---|---|---|
competitor_google_ads | Google Ads Transparency Center から取得した、Google 検索、YouTube、ショッピング、マップ、Play、ディスプレイで企業が掲載している広告:テキスト広告の見出しと説明、形式、初回/最終表示日、掲載日数、国、リンク。またはドメインごとに 1 行の概要(mode: advertiserCheck)。 | $1.00 | 広告主あたり 20 件 | 20-90 秒 |
app_reviews | App Store と Google Play のレビュー:評価、タイトル、本文、日付、アプリのバージョン、開発者からの返信。低評価のレビューのみを対象にする星評価フィルター。 | $0.10 | アプリあたり 20 件 | 10-40 秒 |
workday_jobs | *.myworkdayjobs.com の採用サイトから取得した募集中の求人。任意で、説明、給与範囲、応募リンクも取得できます。 | $1.00 | 20 件 | 10-60 秒 |
ats_jobs | Greenhouse、Lever、Ashby の求人サイトから取得した募集中の求人:部門、勤務地、リモート可否、公開されている場合は給与。 | $1.50 | 20 件 | 5-30 秒 |
remote_jobs | Remotive、Remote OK、We Work Remotely、Jobicy、Himalayas、Arbeitnow から重複を除いて取得したリモート求人:企業、就業可能な地域、掲載日、応募リンク、最低額/最高額/通貨/期間に解析した給与と年額。キーワード、勤務地、掲載からの経過期間、最低給与でフィルターできます。 | $1.00 | 20 件 | 5-30 秒 |
pdf_tables | PDF リンク内の表を行形式で取得し、CSV と Excel のリンクも返します。 | $2.00 | 10 個の表 | 10-60 秒 |
bank_statement | 銀行取引明細書の PDF から、残高、合計、残高照合、取引を取得し、Excel も返します。 | $15.00 | 5 件 | 10-40 秒 |
invoice | 請求書の PDF から、番号、日付、販売元、合計、税額、明細項目を取得し、Excel も返します。 | $5.00 | 10 件 | 10-30 秒 |
payslip | 給与明細の PDF から、従業員、給与期間、総支給額、税額、控除額、手取り額、支給項目、控除項目を取得し、Excel も返します。 | $5.00 | 10 件 | 10-30 秒 |
image_tables | 画像(スクリーンショット、写真)内の表を OCR で行と列として取得し、CSV と Excel も返します。 | $2.00 | 5 個の表 | 10-40 秒 |
clean_email_list | メールアドレスごとに、構文、MX レコード、使い捨てアドレス、ロールアカウント、入力ミスを確認し、有効/無効/要注意/不明の結果を返します。 | $0.20 | 最大 1,000 件のメールアドレス | 5-30 秒 |
website_screenshot | 公開ページ全体、または最初に表示される範囲を PNG/JPEG で撮影し、画像 URL として返します。 | $1.00 | URL あたり 1 件(最大 10 件) | ページあたり 10-30 秒 |
broken_links | サイトをクロールし、ステータス、エラー、該当ページとともに、リンク、画像、スクリプトの問題を報告します。 | $1.00 | 10 ページ、問題のみ | 20-120 秒 |
各 Actor は、実行開始ごとに $0.00005 も請求します。料金は執筆時点での Actor の公開 Apify Store 価格です。各 Actor の Store ページが最新の正確な情報源です。
プロンプトの例
- 「hubspot.com は現在、米国でどのような Google 検索広告を出していますか?メッセージ別にまとめてください。」
→
competitor_google_ads(domains=["hubspot.com"], country="US", platform="search", only_active_ads=true) - 「この20個のドメインのうち、Google に広告を出しているのはどれですか?」 →
competitor_google_ads(domains=[...], mode="advertiserCheck") - 「iOS と Android での Notion の直近50件の星1つと星2つのレビューを要約してください。」
→
app_reviews(apps=["notion", "notion.id"], max_reviews_per_app=25, max_rating=2) - 「今週掲載された NVIDIA のリモート勤務のソフトウェア関連求人を一覧にしてください。」
→
workday_jobs(career_site_urls=["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"], search_text="software", location_contains="Remote", posted_within_days=7) - 「Airbnb と Palantir では、どのようなデータ関連の職種を募集していますか?」
→
ats_jobs(boards=["https://boards.greenhouse.io/airbnb", "https://jobs.lever.co/palantir"], search_text="data") - 「今週掲載された、年収12万ドル以上のリモート勤務の Python 求人を探してください。」
→
remote_jobs(search_text="python", posted_within_days=7, min_yearly_salary=120000) - 「この PDF の1~3ページにある表を行データとして取り出してください。」 →
pdf_tables(pdf_urls=["https://.../report.pdf"], pages="1-3") - 「この明細の借方合計を加盟店別に集計してください。」 →
bank_statement(pdf_urls=["https://.../statement.pdf"]) - 「これらの給与明細を、月別の手取り額をまとめた1つの表にしてください。」 →
payslip(pdf_urls=[...]) - 「このスクリーンショットから表を取り出してください。」 →
image_tables(image_urls=["https://.../table.png"]) - 「これらのメールアドレスのうち、バウンスしそうなものはどれですか?」 →
clean_email_list(emails=[...]) - 「料金ページをモバイル表示でスクリーンショットしてください。」 →
website_screenshot(urls=["example.com/pricing"], device="mobile") - 「example.com のリンク切れを探してください。」 →
broken_links(start_urls=["https://example.com"])
コスト管理
- デフォルトの処理規模は小さいため、通常の呼び出しは0.10ドルを大きく下回ります。
- 各実行には Apify の
maxTotalChargeUsdによる上限があり、デフォルトでは1回あたり0.50ドルです。より大きな処理を許可するには、環境変数APIFY_MAX_CHARGE_USDを設定します(例:2)。 - Apify の無料アカウントには毎月のプラットフォームクレジットが含まれており、小規模な呼び出しの多くをまかなえます。
制限事項
- 呼び出しは同期処理で、Apify は300秒後に待機を終了します。そのため、非常に大きなリクエストは明確なメッセージとともに失敗します。代わりに、取得件数を減らしてください。
- エージェント向けのレスポンスは短縮されます。長いテキストフィールドは短縮され、ネストされたリスト(表の行、取引)は上限が設けられ、返される JSON は最大で約60,000文字です。PDF ツールが返す CSV/Excel のリンクから、表や明細の全データを取得できます。
clean_email_listは DNS レベルで動作します。メールサーバーには接続しないため、特定のメールボックスが存在するかどうかは判定できません。- PDF ツールには、公開 URL にあるテキストベースの PDF が必要です。スキャン画像は読み取れません。ローカルファイルは、最初に公開されている場所へアップロードする必要があります。
competitor_google_adsは、Google が Transparency Center で公開している情報を読み取ります。Google は広告費、キーワード、クリックデータを公開していません。website_screenshotとbroken_linksは、ログインが必要なページには対応していません。remote_jobsが返すのは、6つのリモート求人ボードに現時点で掲載されている求人であり、ウェブ上のすべてのリモート求人ではありません。求人ボードに給与フィールドがない場合は、求人情報から給与を解析します。通貨の換算は行いません。
プライバシー
サーバーはお使いのマシン上で動作します。入力はお客様のアカウントに紐づく Apify API にのみ送信され、トークンは api.apify.com に Authorization ヘッダーでのみ送信されます。結果は通常の保持期間に従って、お客様の Apify アカウントのストレージに保存されます。
開発
uv sync --group dev
uv run pytest
uv run adhistory-mcp # starts the stdio server
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。