关于 adhistory: Google Ads, reviews, jobs, PDFs
adhistory-mcp 是面向 Agent 的 MCP 服务,可获取广告、评论、职位、文档、邮件列表和网站的公开数据。它通过用户的 Apify 账户运行 Actor,并返回适合 Agent 上下文的 JSON 结果。
主要功能
- 01Google Ads 透明度数据
- 02应用评论与职位信息
- 03PDF 和图片表格提取
- 04银行对账单、发票和工资单
- 05邮件检查与网站诊断
适用场景
- 01查看竞争对手发布的广告
- 02查找并筛选职位
- 03提取 PDF 文件中的财务信息
- 04检查邮件列表和公开网站
MCP 相关
向 MCP 客户端提供十一种数据工具。每种工具都通过配置的 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' 为每个域名返回一行摘要。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
一个 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 的每条结果价格付费,默认限制下每次调用只需几美分或更少。
快速开始
- 在 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(单个项目):
{
"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_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 图片链接。 | $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) - “这些域名中,哪些在 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。