mcpField
A
adhistory: Google Ads, reviews, jobs, PDFs

adhistory: Google Ads, reviews, jobs, PDFs

本地服务
apify.com商业与营销01 天前更新

关于 adhistory: Google Ads, reviews, jobs, PDFs

adhistory-mcp 是面向 Agent 的 MCP 服务,可获取广告、评论、职位、文档、邮件列表和网站的公开数据。它通过用户的 Apify 账户运行 Actor,并返回适合 Agent 上下文的 JSON 结果。

主要功能

  1. 01Google Ads 透明度数据
  2. 02应用评论与职位信息
  3. 03PDF 和图片表格提取
  4. 04银行对账单、发票和工资单
  5. 05邮件检查与网站诊断

适用场景

  1. 01查看竞争对手发布的广告
  2. 02查找并筛选职位
  3. 03提取 PDF 文件中的财务信息
  4. 04检查邮件列表和公开网站

MCP 相关

向 MCP 客户端提供十一种数据工具。每种工具都通过配置的 Apify 账户运行公开 Apify Actor,并返回 JSON 结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"obrandon-adhistory": {
"command": "uvx",
"args": [
"adhistory-mcp"
],
"env": {
"APIFY_TOKEN": "<APIFY_TOKEN>",
"APIFY_MAX_CHARGE_USD": "<APIFY_MAX_CHARGE_USD>"
}
}
}
}
启动命令uvx adhistory-mcp
需要配置的环境变量
APIFY_TOKEN密钥Your Apify API token (free account): console.apify.com -> Settings -> API & Integrations
APIFY_MAX_CHARGE_USDOptional cost cap per tool call in USD (default 0.50)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiadhistory-mcp0.5.0

工具

13

收录的工具列表 · 更新于 今天

参数类型必填说明
modeenum否'ads' 列出广告;'advertiserCheck' 为每个域名返回一行摘要。ads | advertiserCheck
countryenum否仅包含在此国家/地区展示的广告。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_toany否可选的结束日期,格式为 YYYY-MM-DD。
domainsany否广告主网站,例如 ['hubspot.com']。也可使用 URL。
platformenum否仅返回在此 Google 平台展示的广告。all | search | youtube | shopping | maps | play
ad_formatenum否text = Google Search 广告;image 和 video 涵盖 Display 和 YouTube。all | text | image | video
date_fromany否可选的开始日期,格式为 YYYY-MM-DD。
company_namesany否要在 Transparency Center 中查询的公司名称;将使用最佳匹配项。
advertiser_idsany否Transparency Center 广告主 ID(以 AR 开头)。
only_active_adsboolean否仅保留过去 3 天内展示的广告。
max_ads_per_advertiserinteger否按最新广告优先排序。提高此值可获取更早发布的长期投放广告。

详细介绍

adhistory-mcp

一个 MCP 服务,为 AI Agent(Claude Desktop、Claude Code、Cursor 及其他 MCP 客户端) 提供 11 种数据工具,完成用户常请助手处理的任务:

  • 竞争对手的 Google 广告:任何公司投放的搜索、YouTube、购物和展示广告,数据来自 Google Ads Transparency Center。
  • 应用评价:App Store 和 Google Play 评价,可筛选 1~2 星的投诉。
  • 招聘信息:来自 Workday 招聘网站、Greenhouse、Lever 和 Ashby 招聘板的开放职位,以及 六个远程招聘网站(Remotive、Remote OK、We Work Remotely、Jobicy、Himalayas、 Arbeitnow)的远程职位,并解析薪酬。
  • PDF 表格:将 PDF 链接中的表格转换为行,也支持 CSV 和 Excel。
  • 银行对账单:将对账单 PDF 转换为交易记录、余额,并检查余额。
  • 发票:从发票 PDF 中提取编号、日期、供应商、总额、税额和明细项。
  • 工资单:从工资单 PDF 中提取税前工资、税款、扣款、实发工资和收入明细。
  • 表格图片:通过 OCR 将屏幕截图或照片中的表格转换为行。
  • 电子邮件列表清理:检查语法、MX、一次性邮箱、角色账户和拼写错误。
  • 网站截图:截取公开网页的整页或首屏图片。
  • 失效链接:抓取网站并列出失效链接、图片和脚本。

每个工具都会在你自己的 Apify 账户上运行一个公开的 Apify Actor, 并将结果以 JSON 格式返回,精简到适合放入 Agent 的上下文中。你需要一个免费的 Apify API 令牌。你只需按 Actor 的每条结果价格付费,默认限制下每次调用只需几美分或更少。

快速开始

  1. 在 https://console.apify.com/sign-up 创建一个免费的 Apify 账户。
  2. 复制你的 API 令牌:console.apify.com → Settings → API & Integrations。
  3. 将服务添加到你的 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(单个项目):

{
  "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 搜索、YouTube、Shopping、Maps、Play 和 Display 上投放的广告,数据来自 Google Ads Transparency Center:文字广告的标题和说明、格式、首次/最近展示时间、投放天数、国家/地区和链接。也可按域名返回一行汇总数据(mode: advertiserCheck)。$1.00每位广告主 20 条广告20-90 秒
app_reviewsApp Store 和 Google Play 的评论:评分、标题、文本、日期、应用版本和开发者回复。可筛选星级,仅查看投诉。$0.10每款应用 20 条10-40 秒
workday_jobs任意 *.myworkdayjobs.com 招聘网站上的在招职位;可选返回职位说明、薪酬范围和申请链接。$1.0020 个职位10-60 秒
ats_jobsGreenhouse、Lever 和 Ashby 招聘网站上的在招职位:部门、地点、远程标记,以及已公布的薪酬。$1.5020 个职位5-30 秒
remote_jobs来自 Remotive、Remote OK、We Work Remotely、Jobicy、Himalayas 和 Arbeitnow 的远程职位,已去重:公司、允许的工作地点、发布日期、申请链接,以及解析为最低/最高金额、币种/周期和年薪的薪酬。可按关键词、地点、发布时间和最低薪酬筛选。$1.0020 个职位5-30 秒
pdf_tables从 PDF 链接提取表格并按行返回,同时提供 CSV 和 Excel 链接。$2.0010 个表格10-60 秒
bank_statement将银行对账单 PDF 提取为余额、总计、余额核对结果和交易记录,同时提供 Excel 文件。$15.005 份对账单10-40 秒
invoice将发票 PDF 提取为编号、日期、供应商、总计、税额和明细,同时提供 Excel 文件。$5.0010 张发票10-30 秒
payslip将工资单 PDF 提取为员工、工资周期、税前工资、税款、扣款、实发工资、收入和扣款明细,同时提供 Excel 文件。$5.0010 份工资单10-30 秒
image_tables通过 OCR 将图片(屏幕截图、照片)中的表格提取为行和列,同时提供 CSV 和 Excel 文件。$2.005 个表格10-40 秒
clean_email_list检查每个电子邮件地址的语法、MX 记录、一次性邮箱、角色账户和拼写错误,并返回有效/无效/有风险/未知结果。$0.20最多 1,000 个电子邮件地址5-30 秒
website_screenshot返回公开网页整页或首屏的 PNG/JPEG 图片链接。$1.00每个 URL 1 张(最多 10 张)每页 10-30 秒
broken_links抓取网站并报告失效链接、图片和脚本,以及状态、错误和出现这些问题的页面。$1.0010 个页面,仅报告问题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)
  • “这些域名中,哪些在 Google 上投放广告?” → competitor_google_ads(domains=[...], mode="advertiserCheck")
  • “总结 Notion 在 iOS 和 Android 上最近 50 条一星和二星评论。” → 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")
  • “查找本周发布且年薪至少为 $120k 的远程 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"])
  • “将这些工资单整理成一张按月列出净工资的表格。” → 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 控制,默认每次调用为 $0.50。设置环境变量 APIFY_MAX_CHARGE_USD(例如 2)可允许更大规模的运行。
  • Apify 免费账户包含每月平台额度,可用于许多小规模调用。

限制

  • 调用采用同步方式,Apify 等待 300 秒后会停止,因此非常大的请求会失败并返回明确提示;请改为请求较少的结果。
  • 返回给 Agent 的响应会经过精简:较长的文本字段会被缩短,嵌套列表(表格行、交易记录)会受到数量限制,并且返回的 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 返回的是六个远程招聘平台当前列出的岗位,并非网络上的所有远程工作。如果招聘平台没有薪酬字段,系统会从招聘信息中解析薪酬;不会转换货币。

隐私

服务在你的机器上运行。输入内容只会通过你的账户发送到 Apify API,令牌只会通过 Authorization 标头发送到 api.apify.com。结果会按照 Apify 的常规保留期限存储在你的 Apify 账户中。

开发

uv sync --group dev
uv run pytest
uv run adhistory-mcp   # starts the stdio server

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。