Skip to content

v1.8.0 - Apify (6,000+ scrapers)

Choose a tag to compare

@freddy-schuetz freddy-schuetz released this 11 May 13:57

What's new

n8n-claw gets dynamic, instance-wide access to the entire Apify Store: Apify Actors, a bridge skill that wraps https://mcp.apify.com and exposes 8 meta-tools to the agent. The agent uses search-actors to discover scrapers by platform keyword, fetch-actor-details to read each Actor's live JSON input schema, and call-actor to execute any of the 6,000+ Actors in the Store — Google Maps places, Instagram posts, Trustpilot reviews, Booking.com hotels, LinkedIn profiles, Amazon bestsellers, you name it — without writing a single line of per-Actor glue code.

End-to-end validated on 2026-05-11 against a real Apify token (execution 103944: agent → search-actorsfetch-actor-detailscall-actor → parsed dataset → 4 real Instagram comments formatted as a markdown table for Telegram, 101 seconds for the whole chain).

This is the first production bearer-auth MCP bridge in n8n-claw. The previous (and only) bridge skill, deepwiki, ran with auth_type: "none". The bearer-auth code path — mcp_registry.auth_type + auth_token written by the credential form, then read by the agent's inline MCP Client toolCode and injected as Authorization: Bearer <token> on every JSON-RPC call to the upstream MCP server — was wired since migration 006_mcp_bridge in v1.3.0 but had never been exercised end-to-end. Apify exercises it now. No code patches were needed in mcp-client.json, mcp-library-manager.json, or n8n-claw-agent.json to ship this skill: the infrastructure was already there.

Catalog grows to 71 skills.

Skill: Apify Actors (8 tools)

  • search-actors — discover Actors in the Apify Store by broad keyword (e.g. instagram, google maps, tiktok). Returns ranked Actor cards with name, description, pricing, usage stats, success rate, rating. Mandatory first step in the discovery chain — the agent picks the best-rated specialised scraper for the platform instead of guessing Actor names.
  • fetch-actor-details — get full metadata for a specific Actor (username/name format): JSON input schema, README summary, pricing breakdown, output schema, deprecation status. Always called before call-actor so the agent reads the live input spec instead of inventing it.
  • call-actor — run any Actor synchronously or asynchronously. Sync returns datasetId plus preview items inline; async returns a runId for long-running scrapes. Supports callOptions.memory (128 MB – 32 GB) and callOptions.timeout. For MCP-server Actors uses the actorName:toolName invocation format.
  • get-actor-run — check status and metadata of a specific Actor run by runId (timestamps, stats, dataset reference) — used to poll async runs before fetching output.
  • get-actor-output — fetch dataset items from a completed run. Supports fields (comma-separated, with dot notation like crawl.statusCode) and offset + limit, so the agent can pull large scrapes piece by piece without blowing the LLM context.
  • search-apify-docs — full-text search over Apify Platform / Crawlee-JS / Crawlee-Python documentation (docSource parameter switches between them). Returns matching URLs + content snippets.
  • fetch-apify-docs — fetch the full markdown content of a documentation page by URL.
  • apify--rag-web-browser — pre-bundled web browser Actor for one-shot Google-search-and-scrape. Framed as a last-resort fallback in the manifest description; the agent is steered toward Crawl4AI (Web Reader) for plain page reads and SearXNG (Web Search) for general queries instead — to avoid spending Apify credits on what other skills handle for free.

Bridge install path — zero workflow imports

Bridges register directly into mcp_registry. Install flow:

  1. Library Manager fetches manifest.json from the templates CDN, sees type: "bridge", skips workflow import entirely.
  2. Inserts one row into mcp_registry with template_type='bridge', mcp_url='https://mcp.apify.com', auth_type='bearer', the 8 tool names, and a NULL auth_token.
  3. Generates a one-time credential_tokens link to the secure HTTPS credential form.
  4. User pastes the Apify API Token into the form; on submit, the token is dual-written to template_credentials (template_id='apify', cred_key='auth_token') and mirrored into mcp_registry.auth_token for the matching template_id.
  5. On reinstall after remove_template, the existing template_credentials row is reused — no re-entry needed.

The agent's existing MCP Client toolCode picks the new bridge up automatically: on every mcp_client call it queries mcp_registry by mcp_url, prepends Bearer for auth_type='bearer' (or uses the raw token verbatim for auth_type='header'), and injects the Authorization header into all three JSON-RPC roundtrips (initialize, notifications/initialized, tools/list for schema validation, tools/call). The same toolCode pre-fetches the upstream tools/list schema on each call and rewrites missing-required-args errors into schema-hint responses the LLM can self-correct from — which is why the agent recovers gracefully when it guesses query instead of keywords for search-actors.

Fixed (during release)

  • The agent reached for apify--rag-web-browser instead of the discovery chain on the first install. Given the choice between search-actorsfetch-actor-detailscall-actor and the pre-bundled one-shot RAG meta-tool, Claude sometimes picked the shortcut and paid Apify compute units for what a generic Crawl4AI/SearXNG fetch would have handled. Same regression had to be patched on the OpenWebUI Apify adapter side. Fix: a stronger workflow nudge in the manifest description (templates v1.0.0 → v1.0.1, commit b522ae6) that the Library Manager pulls into mcp_registry.description and the system-prompt builder shows to the LLM on every turn. apify--rag-web-browser is now explicitly framed as a last-resort fallback, and the description routes plain webpage reads to Crawl4AI and web search to SearXNG.

Validated

  • Apify MCP endpointhttps://mcp.apify.com (no /mcp suffix), Streamable HTTP transport (MCP protocol 2024-11-05), SSE-formatted JSON-RPC responses (event: message / id: … / data: {…} framing). Bearer auth via Authorization header confirmed working with a real token. Tool names use dashes, not snake_case (search-actors, fetch-actor-details, call-actor, apify--rag-web-browser) — passed through verbatim by the agent's MCP Client toolCode without rewriting.
  • End-to-end production test (execution 103944, 2026-05-11) — user message "Suche mir die letzten 10 Kommentare von dem Instagram Kanal ep_reisen, kein Zwischenstatus" → agent discovered the Instagram Actor via search-actors, inspected its input schema via fetch-actor-details, ran it via call-actor, parsed the returned dataset, formatted 4 real comments (with usernames, text, dates, like counts) as a Telegram-ready markdown table. Total runtime 101 seconds, 21 nodes green, no errors. First successful invocation of a bearer-auth bridge in n8n-claw.

Breaking changes

None. No schema changes, no migration. Existing skills are unaffected. The mcp_registry.auth_type + auth_token columns were already present since v1.3.0; this release is the first to put them to real use.

Known limitations

  • Single instance-wide token. The Apify token lives in mcp_registry.auth_token, one row per installed bridge skill. There is no per-user-credential mechanism in template_credentials yet, so on multi-user instances (dmo-claw) every chat user consumes credits from the same Apify account and shares the same view of the data. A per-user-credential schema extension is plausible but out of scope for v1.8.0.
  • Manifest description is set once at install time. Description text changes pushed to the templates repo (like the v1.0.0 → v1.0.1 tool-selection-nudge fix in this release) require a remove_template + install_template cycle on existing instances to land in mcp_registry.description. Token is preserved across the cycle via the template_credentials lookup.
  • apify--rag-web-browser is still in the tool list. Hiding it via the manifest description (last-resort framing) is a behavioural nudge, not enforcement. Apify's MCP server exposes it unconditionally on tools/list. The framing usually steers the agent away, but does not guarantee it.

Examples — what you can ask your agent

You talk to your existing main agent (Telegram, OpenWebUI, or webhook) as usual. The agent routes anything Apify-related via mcp_client to the new bridge. Plain natural language, no special prefixes:

Sales — on-the-fly lead enrichment, single contact:

Just met Max from XY GmbH at the fair — get me his LinkedIn

Agent finds the profile, calls a LinkedIn Actor (e.g. dev_fusion/Linkedin-Profile-Scraper, ~$0.01 per profile), returns email + role + recent posts.

Hospitality — competitor / partner hotel reviews:

What are guests saying about Hotel Goldener Adler on Booking lately?

Agent picks voyager/booking-reviews-scraper (~$0.05 per 1,000 reviews), pulls the last batch, summarises rating trend + top complaints + top praise.

Reputation — competitor monitoring on Trustpilot:

What's the latest Trustpilot buzz about competitor X?

Agent uses memo23/trustpilot-scraper-ppe ($0.75 per 1,000 reviews, 4.86★), extracts the recent rating + recurring themes + red flags.

E-commerce — daily bestseller intel:

What's hot on Amazon DE Sports today?

Agent calls junglee/amazon-bestsellers (4.97★ in the Store), returns today's top-100 with prices and biggest movers. Schedulable via the existing scheduled_actions table for a fresh-every-morning digest.

Documentation — when an Actor's docs are unclear:

Search Apify docs for "standby actors"

Agent calls search-apify-docs (docSource=apify), then fetch-apify-docs on the top hit. No browser tabs needed.

Install

Telegram → "Install the Apify skill"

You'll get a one-time HTTPS link to enter your Apify API Token (free plan includes $5/month in platform credits — Apify Console → Settings → Integrations). The skill is then live across every chat — search Actors, inspect, run.

Pricing note

The Apify skill itself is free. Actor runs consume Apify compute units / event-based pricing charged to your Apify account. Most Actors in the Store are paid; the free $5/month covers ~hundreds to thousands of small calls depending on Actor. The agent does not spend credits on search-actors, fetch-actor-details, search-apify-docs, fetch-apify-docs, get-actor-run, or get-actor-output — only call-actor and apify--rag-web-browser cost credits.