这是一个通过网络爬虫提供访问 Facebook 广告库的 Model Context Protocol (MCP) 服务器。该服务器公开了一个 MCP 工具,用于搜索广告并提供了全面的过滤选项。
git clone <repository-url>
cd FbAdLibraryMCPServer
npm install
npx playwright install
npm run dev
npm run build
npm start
服务器将在端口 3000 上启动(可通过 PORT 环境变量配置)。
search_ads搜索 Facebook 广告,可选过滤条件。
参数:
company (字符串,可选):要筛选的公司/广告商名称start_date (字符串,可选):开始日期,格式为 YYYY-MM-DDend_date (字符串,可选):结束日期,格式为 YYYY-MM-DDkeywords (字符串数组,可选):在广告内容中搜索的关键词limit (整数,可选):返回的最大广告数量(默认:50,最大:100)order (字符串,可选):排序方式 - "date_desc"(按日期降序),"date_asc"(按日期升序)或 "relevance"(按相关性)(默认:"date_desc")工具调用示例:
{
"tool": "search_ads",
"arguments": {
"company": "Nike",
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"keywords": ["running", "shoes"],
"limit": 10,
"order": "date_desc"
}
}
响应格式:
{
"ads": [
{
"id": "unique_ad_identifier",
"advertiser": "公司名称",
"content": "广告文本内容",
"start_date": "2024年1月15日",
"end_date": "2024年2月15日",
"impressions": "1,000-5,000",
"spend": "$100-$500",
"platforms": ["Facebook"],
"creative_url": "https://...",
"demographics": {"targeting": "..."},
"scraped_at": "2024-01-20T10:30:00Z"
}
]
}
使用任何兼容 MCP 的客户端连接到服务器:
HTTP 传输:
http://localhost:3000/mcpContent-Type: application/json健康检查:
http://localhost:3000/healthzsrc/index.ts):托管 MCP 协议的 Express HTTP 服务器src/mcp/searchAdsHandler.ts):核心业务逻辑src/scraper/scrapeFacebookAds.ts):基于 Playwright 的 Facebook 爬虫src/utils/filters.ts):日期解析和过滤工具该服务器成功绕过了 Facebook 的反机器人检测机制,通过以下方式:
@modelcontextprotocol/sdk:MCP 协议实现playwright:网络爬虫自动化date-fns:日期解析和操作express:HTTP 服务器框架zod:运行时类型验证curl -L https://fly.io/install.sh | sh
export FLYCTL_INSTALL="/root/.fly"
export PATH="$FLYCTL_INSTALL/bin:$PATH"
flyctl auth signup
flyctl launch --no-deploy
flyctl secrets set NODE_ENV=production
flyctl deploy
https://fbadlibrarymcpserver.fly.devhttps://fbadlibrarymcpserver.fly.dev/healthzhttps://fbadlibrarym_服务器.fly.dev/mcp(仅限 POST)https://fbadlibrarymcpserver.fly.dev/test-search(GET/POST)公共 URL:https://fbadlibrarymcpserver.fly.dev
快速测试:https://fbadlibrarymcpserver.fly.dev/test-search?company=Nike&limit=3
MCP 客户端配置:
{
"transport": "http",
"url": "https://fbadlibrarymcpserver.fly.dev/mcp",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream"
}
}
认证:无需认证
ISC