关于 fecklesspleb Apify Actors
fecklesspleb Apify Actors 是面向 AI Agent 的 MCP 服务,通过 Apify Actors 提供 SEO、网站信息、新闻和招聘数据工具。结果直接随工具调用返回,并为每次运行设置费用上限。
主要功能
- 01SEO 审计与页面元数据提取
- 02提取站点地图 URL
- 03搜索 Hacker News 内容
- 04聚合远程职位与公司招聘
- 05可选网页抓取、截图和链接检查
- 06同步返回结果并限制调用费用
适用场景
- 01检查网站 SEO 问题与页面元数据
- 02查找 Hacker News 帖子或远程职位
- 03获取公司招聘网站的职位列表
- 04将网页转为 Markdown 或检查失效链接
MCP 相关
该 MCP 服务向 AI Agent 提供 14 个工具,默认启用 10 个,另有 4 个网页工具可选启用。工具调用对应 Apify Actor,并将数据集结果直接返回;每次调用可设置费用上限。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y fecklesspleb-actors-mcpAPIFY_TOKEN密钥Your Apify API token. Actor runs are billed to this Apify account per result.FECKLESSPLEB_TOOLSETSComma-separated toolsets: core, jobs, web, or all. Default: core,jobs.APIFY_MAX_COST_USDDefault spending cap per tool call, in USD.APIFY_MAX_COST_CEILING_USDHighest per-call cap a tool call may request, in USD.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
10收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startUrls | array | 是 | 要审查的网站。每个站点的起始页面,通常是主页,例如 ["https://books.toscrape.com/"]。可使用纯 URL 字符串或 {"url": "..."} 对象;未包含 http(s):// 的 URL 会自动添加 https://。仅抓取同一主机上的链接(www. 和裸域名视为同一主机),并遵守 robots.txt。默认值 ["https://www.python.org/"] 是示例运行:最多 2 个页面,15 秒后停止。 |
| maxCostUsd | number | 否 | 此调用最多可向你的 Apify 账户收取的金额,单位为美元。默认值 0.25,最大值 5。作为 maxTotalChargeUsd 传递给 Apify,即 Apify 对本次运行的最高收费。 |
| maxResults | integer | 否 | 数据集中的最大页面数。整个运行期间跨所有站点保存到数据集的最大行数。默认值 0 = 无上限。免费行(返回 HTTP 400+ 或无响应的页面)也计入。达到上限时停止抓取。每条收费行的费用为 $0.003。 |
| includeJsonLd | boolean | 否 | 包含 JSON-LD 数据。若为 true,每行都会获得 jsonLd:解析后的 JSON-LD 区块,其中已移除 email、telephone、author、creator、contributor、editor 和 reviewedBy 键。jsonLdTypes(找到的 schema.org 类型)和 jsonLdErrors(解析失败的区块)始终包含。 |
| excludePatterns | array | 否 | 排除 URL 模式。用于排除不抓取链接的正则表达式,在完整 URL 中进行不区分大小写的任意位置匹配,例如 ["/tag/", "\\?page="]。这些模式适用于页面中找到的链接;起始 URL 始终会被审查。默认值:无。 |
| maxPagesPerSite | integer | 否 | 每个站点的最大页面数。每个起始 URL 最多审查 1 到 10,000 个页面。默认值 10。失败的页面(HTTP 400+ 或无响应)计入;被 robots.txt 屏蔽的页面、非 HTML 文件以及重定向到其他主机的页面不计入。示例:对小型站点进行完整审查时设为 200。 |
| onlyPagesWithIssues | boolean | 否 | 仅包含存在问题的页面。若为 true,无问题的页面不会保存,也不会收费;仅输出至少存在一个问题的页面。默认值 false:输出每个已审查的页面。 |
详细介绍
fecklesspleb-actors-mcp
一个 MCP 服务,为 AI Agent 提供 14 个工具:默认启用 10 个,用于 SEO 审计、页面元数据、站点地图、Hacker News 搜索和职位列表;另有 4 个可选的 Web 工具,用于 Markdown 爬取、图片下载、截图和失效链接检查。每个工具都会运行我公开的一个 Apify Actor,并在工具响应中返回结果。
披露:我(fecklesspleb)编写并维护此服务及其调用的每个 Actor。运行费用按结果计费,由你自己的 Apify 账户按照 Actors Store 价格支付,其中一部分收入会作为 Actor 开发者收益归我所有。本项目与 Apify、Greenhouse、Lever、Ashby、Workday、Remote OK、We Work Remotely、Jobicy、Hacker News、Y Combinator 或 Algolia 均无关联,也未获其认可。
为什么不用 Apify 自己的 MCP 服务
你不必使用本服务。Apify 的官方服务也能运行这些 Actor:
- 托管版:
https://mcp.apify.com?tools=fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor(OAuth,或使用Authorization: Bearer <APIFY_TOKEN>请求头) - 本地版:设置
APIFY_TOKEN后,运行npx -y @apify/actors-mcp-server --tools fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor
本服务是一个更精简、更专注的选项:
- 工具调用会直接返回结果。 每次调用都会使用 Apify 的同步
run-sync-get-dataset-items端点,因此 Agent 会直接获得数据集条目,无须通过运行 ID 轮询。 - 每次调用都有费用上限。
maxCostUsd(默认值为 $0.25)会作为maxTotalChargeUsd发送给 Apify。服务端上限(默认值为 $5)则限制 Agent 可请求的费用。 - 默认值较小。 Agent 未提供参数时,服务会设置限制,例如最多 25 个职位、50 条 Hacker News 条目或每个站点 10 个页面。除非 Agent 请求,否则不会包含职位描述,以保持响应简短。
- 输入架构保持最新。 启动时,服务会从 Apify 当前的构建中读取每个 Actor 的输入架构,因此工具接受的输入与 Actor 接受的完全一致。如果无法连接 Apify,则会使用随附的快照。
工具
价格为本文编写时的 Apify Store 价格。实时价格请查看各 Actor 的页面。
core(5 个工具,默认启用)
| 工具 | Actor | 返回内容 | 价格 |
|---|---|---|---|
seo_audit_website | website-seo-audit | 从 startUrls 开始爬取站点(同一主机),并为每个页面返回一条记录:状态、0-100 分数、问题(标题、元描述、H1、规范链接、noindex、替代文本、内容单薄、Open Graph、JSON-LD、页面速度慢) | 每页 $0.003 + 每次运行启动 $0.00005 |
extract_website_metadata | website-metadata-extractor | 为每个 urls 返回:标题、元描述、规范链接、语言、Open Graph、Twitter 卡片、JSON-LD、网站图标、RSS 源、hreflang。无法读取的 URL 所对应的行不收费 | 每个 URL $0.001 + 每次运行启动 $0.00005 |
extract_sitemap_urls | sitemap-extractor | 网站站点地图中的所有 URL(通过 robots.txt 查找,或使用你提供的站点地图 URL),附带 lastmod、changefreq、priority。支持正则表达式和日期筛选 | 每个 URL $0.0002 |
search_hacker_news | hacker-news-scraper | mode: "search":通过关键词、积分、评论数和日期搜索 HN 故事和评论(使用 Algolia 的 HN Search API)。mode: "whoIsHiring":从每月的“Ask HN: Who is hiring?”帖子中获取职位记录 | 每条 $0.00015 |
search_remote_jobs | remote-jobs-aggregator | 汇总 Remote OK、We Work Remotely 和 Jobicy 的职位源,生成去重后的远程职位列表,并在每个职位上标明来源。支持关键词、地点、薪资和日期筛选 | 每个职位 $0.001 |
jobs(5 个工具,默认启用)
从公司招聘网站获取职位。每个职位包含公司、职称、地点、远程标记、部门、雇佣类型、薪资(招聘信息中提供时)、发布日期和 URL。
| 工具 | Actor | companies 的传入方式 | 价格 |
|---|---|---|---|
greenhouse_jobs | greenhouse-jobs-scraper | Greenhouse slug(airbnb)、职位板 URL 或招聘页面。也可以设置 searchDirectory: true | 每个职位 $0.001 |
lever_jobs | lever-jobs-scraper | Lever slug(palantir)、职位板 URL 或招聘页面。也可以设置 searchDirectory: true | 每个职位 $0.001 |
ashby_jobs | ashby-jobs-scraper | Ashby slug(ramp)、职位板 URL 或招聘页面。也可以设置 searchDirectory: true | 每个职位 $0.001 |
workday_jobs | workday-jobs-scraper | 完整的 Workday 招聘网站 URL,例如 https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite | 每个职位 $0.002 |
ats_jobs | ats-jobs-scraper | Greenhouse、Lever、Ashby、Workday、Workable、Recruitee 或 Teamtailor 上的职位板 URL 或招聘页面(Polymer 和 HireHive 使用 URL)。不知道公司使用哪种 ATS 时使用 | 每个职位 $0.002 |
web(4 个工具,选择启用:FECKLESSPLEB_TOOLSETS=core,jobs,web 或 all)
| 工具 | Actor | 返回内容 | 价格 |
|---|---|---|---|
crawl_website_to_markdown | website-to-markdown-crawler | 网站页面的 Markdown 或文本 | 每页 $0.0008 + 每次运行启动 $0.00005 |
download_images | bulk-image-downloader | 保存到你的 Apify 存储空间中的图片和文件链接,以及大小、尺寸、替代文本和 SHA-256 | 每个文件 $0.001 + 每次运行启动 $0.00005 |
screenshot_website | website-screenshot | 保存到你的 Apify 存储空间中的 PNG/JPEG 截图链接(以及可选的 PDF) | 每张截图 $0.0008 + 每次运行启动 $0.00005 |
check_broken_links | broken-link-checker | 无效链接和图片,以及所在页面、链接文本和状态码 | 每个无效链接 $0.003(onlyBroken 关闭时,每个已检查链接 $0.0005)+ 每次运行启动 $0.00005 |
“运行启动”费用按运行内存的 GB 计费,每次运行收取一次。
每个工具还接受 maxCostUsd。所有其他参数都是 Actor 自身的输入字段,详见工具的输入架构。
设置
你需要 Node.js 20 或更高版本,以及一个 Apify 账户。从 Apify Console > Settings > API & Integrations 复制 API 令牌。
Claude Desktop、Cursor 和其他使用 mcpServers 配置的客户端:
{
"mcpServers": {
"fecklesspleb-actors": {
"command": "npx",
"args": ["-y", "fecklesspleb-actors-mcp"],
"env": { "APIFY_TOKEN": "<your Apify API token>" }
}
}
}
Claude Code:
claude mcp add fecklesspleb-actors --env APIFY_TOKEN=<your Apify API token> -- npx -y fecklesspleb-actors-mcp
从源代码安装:
git clone https://github.com/fecklesspleb/actors-mcp.git
cd actors-mcp
npm ci && npm run build
APIFY_TOKEN=<your Apify API token> node dist/index.js
Docker:
docker build -t fecklesspleb-actors-mcp .
docker run -i --rm -e APIFY_TOKEN=<your Apify API token> fecklesspleb-actors-mcp
配置
| 变量 | 默认值 | 含义 |
|---|---|---|
APIFY_TOKEN | (调用所必需) | 你的 Apify API 令牌。即使没有令牌,工具仍会列出,但调用会返回错误。 |
FECKLESSPLEB_TOOLSETS | core,jobs | 逗号分隔的选项:core、jobs、web 或 all。 |
APIFY_MAX_COST_USD | 0.25 | 当 Agent 未传入 maxCostUsd 时,每次调用的费用上限。必须为正数;若为 0、负数或非数字,服务将在启动时停止。超过上限的值会被下调至上限。 |
APIFY_MAX_COST_CEILING_USD | 5 | Agent 可请求的最高 maxCostUsd。更大的值会被下调至此上限。必须为正数。 |
APIFY_RUN_TIMEOUT_SECS | 280 | 发送给 Apify 的运行超时时间。0 表示使用 Actor 自身的超时时间。 |
MAX_OUTPUT_CHARS | 60000 | 工具响应的最大长度。超出部分会被截断,响应会说明省略了多少项。 |
FECKLESSPLEB_LIVE_SCHEMAS | 1 | 设为 0 可跳过实时架构查询,改用捆绑的快照。 |
APIFY_API_BASE_URL | https://api.apify.com/v2 | API 基础 URL。仅用于针对模拟 API 进行测试;请保持未设置。必须使用 https;只有 localhost、127.0.0.1 和 ::1 才接受纯 http。 |
调用会返回什么
{
"actor": "fecklesspleb/sitemap-extractor",
"itemCount": 2,
"maxCostUsd": 0.25,
"items": [
{ "url": "https://example.com/blog/a", "lastmod": "2026-10-01", "sitemapUrl": "https://example.com/sitemap.xml" },
{ "url": "https://example.com/blog/b", "lastmod": "2026-10-03", "sitemapUrl": "https://example.com/sitemap.xml" }
]
}
items 是 Actor 的数据集条目,原样返回。每个 Actor 的字段都列在其 Apify Store 页面上。
限制
- Apify 的同步端点最多等待 300 秒。运行时间更长时会返回错误,但运行可能仍会在你的 Apify Console 中继续。请减少 URL、页面或公司的数量。
- 超过
MAX_OUTPUT_CHARS的结果会被截断。完整数据集仍保留在你的 Apify 账户中。 - 截图和下载的文件会以 Apify 存储链接的形式返回,而不是图像数据。
开发
构建和运行测试需要 Node.js 20.19 或更高版本(在 Node 22 上,需要 22.12 或更高版本),因为测试运行器(基于 Vite 8 的 Vitest)有此要求。运行服务仍只需要 Node.js 20 或更高版本。
npm ci
npm run build
npm test # builds, then runs unit, protocol and token-leak tests against a mocked Apify API, no network
APIFY_TOKEN=<your Apify API token> npm run e2e # one real call (Hacker News, 5 items, about $0.00075, billed to that account)
npm run snapshot-schemas # refresh the bundled input schemas from the live Actor builds
许可证
MIT。版权所有 (c) 2026 fecklesspleb。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。