fecklesspleb-actors-mcp
An MCP server that gives AI agents 14 tools: 10 on by default for SEO audits, page metadata, sitemaps, Hacker News search and job listings, plus 4 opt-in web tools for Markdown crawling, image downloads, screenshots and broken-link checks. Each tool runs one of my public Apify Actors and returns the results in the tool response.
Disclosure: I (fecklesspleb) wrote and maintain this server and every Actor it calls. Runs are billed per result to your own Apify account at the Actors' Store prices, and some of that money comes to me as the Actor developer. This project is not affiliated with or endorsed by Apify, Greenhouse, Lever, Ashby, Workday, Remote OK, We Work Remotely, Jobicy, Hacker News, Y Combinator or Algolia.
Why use this instead of Apify's own MCP server
You don't have to. Apify's official server can run these Actors too:
- Hosted:
https://mcp.apify.com?tools=fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor (OAuth, or an Authorization: Bearer <APIFY_TOKEN> header)
- Local:
npx -y @apify/actors-mcp-server --tools fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor with APIFY_TOKEN set
This server is a smaller, focused option:
- The results come back in the tool call. Each call uses Apify's synchronous
run-sync-get-dataset-items endpoint, so the agent gets the dataset items directly instead of a run ID to poll.
- Every call has a dollar cap.
maxCostUsd (default $0.25) is sent to Apify as maxTotalChargeUsd. A server-side ceiling (default $5) caps what an agent can ask for.
- Small defaults. When the agent leaves them out, the server sets limits such as 25 jobs, 50 Hacker News items or 10 pages per site. Job descriptions are left out unless the agent asks for them, which keeps responses short.
- Input schemas stay current. At startup the server reads each Actor's input schema from its live Apify build, so the tools accept exactly what the Actors accept. If Apify can't be reached, it uses a bundled snapshot.
Tools
Prices are the Apify Store prices when this was written. The live price is on each Actor's page.
core (5 tools, on by default)
jobs (5 tools, on by default)
Open jobs from company career sites. Each job has the company, title, location, remote flag, department, employment type, salary (when the posting gives one), posting date and URL.
web (4 tools, opt-in: FECKLESSPLEB_TOOLSETS=core,jobs,web or all)
The "run start" charge is per GB of run memory, once per run.
Every tool also takes maxCostUsd. All other arguments are the Actor's own input fields, described in the tool's input schema.
Setup
You need Node.js 20 or newer and an Apify account. Copy your API token from Apify Console > Settings > API & Integrations.
Claude Desktop, Cursor and other clients that use an mcpServers config:
Claude Code:
From source:
Docker:
Configuration
What a call returns
items are the Actor's dataset items, unchanged. The fields for each Actor are listed on its Apify Store page.
Limits
- Apify's synchronous endpoint waits at most 300 seconds. A longer run returns an error, but the run may keep going in your Apify Console. Ask for fewer URLs, pages or companies.
- Results larger than
MAX_OUTPUT_CHARS are cut short. The full dataset stays in your Apify account.
- Screenshots and downloaded files are returned as links to your Apify storage, not as image data.
Development
Building and running the tests needs Node.js 20.19 or newer (on Node 22, 22.12 or newer), because the test runner (Vitest, on Vite 8) requires it. Running the server still needs only Node.js 20 or newer.
License
MIT. Copyright (c) 2026 fecklesspleb.