Repository navigation
Update the Apify adapter to the MCP server 0.21 tool list - #1552
Merged
Merged
Conversation
Apify's MCP server 0.21 serves apify--web-fetch through the Actor's
server interface ({method, path, query, body}), adds apify--web-search
and three tools for Server and MCP server Actors, and drops
apify--rag-web-browser. Refresh the catalog snapshot to the 15 tools the
server lists today, rewrite the instructions for the new request shape
and the extra credit-spending tools, and extend the static spec.
helpcodeai
enabled auto-merge (squash)
November 6, 2026 08:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Apify released version 0.21 of its MCP server (
mcp.apify.com) on 2026-11-05, and it breaks one of our tools.apify--web-fetchnow goes through the Actor's server interface, so it takes{method, path, query, body}instead of{url, formats, ...}.apify--web-searchwas added the same way,apify--rag-web-browserwas removed, and three tools were added for Actors that run their own HTTP API or MCP server. Since 2026-11-05 13:00 UTC, everyapify_web_fetchcall from a connector that still has the old schema fails with-32602 Invalid arguments ... must have required property 'method'.This PR updates the catalog snapshot in
intl/apify.jsonto the current server tool list (server 0.21.2, 15 tools, read-onlytools/list). It also rewrites the connector instructions so they no longer mention the RAG Web Browser or the old web-fetch arguments.Changes
packages/backend/src/adapters/intl/apify.json:apify_rag_web_browser.apify_web_fetchnow has the 0.21 schema (requiredmethodandpath, plusqueryandbody). The server now marks it read-only (readOnlyHint: true,destructiveHint: false). The other ten tools that are still served got Apify's current descriptions and schemas. Their names did not change.apify_web_search,apify_fetch_actor_mcp_tool_list,apify_call_actor_mcp_toolandapify_send_server_actor_request.enabled: I applied the same policy as before. Onlyapify_report_probleminstalls switched off, because its text goes to Apify.apify_call_actor_mcp_toolandapify_send_server_actor_requestspend credits just likeapify_call_actor, which has always been on: running Actors is the point of this connector. So they install switched on, and the Safety section names them as tools to restrict with roles.apify_send_server_actor_requestcan send any HTTP method,DELETEincluded, to an Actor's own API.apify_+ remote name with-/--turned into_,endpointMapping: {method: <remote name>, path: "/"},parameters= the server'sinputSchema, and the server's annotations withouttitle. As before, em and en dashes in Apify's text are replaced (0–45becomes0 to 45,—becomes,).fetch-actor-detailswithserverInterface, thensend-server-actor-request) and MCP server Actors.packages/backend/src/adapters/intl/apify.live.spec.ts: static assertions for:rag-web-browser.method/pathofapify_web_fetchandapify_web_search, and the required fields ofsend-server-actor-request.mergeDiscoveredMcpToolsover a discovery of this list gives the same local names and endpoint mappings, with onlyreport-problemoff.The spec has no live calls, so there is nothing to put behind
RUN_APIFY_LIVE=1.catalog.ts,llms.txtandllms-full.txt: no diff after regeneration. Tool counts are not quoted anywhereadapter-count.mjschecks.What happens to connectors that are already installed
I checked
CatalogResyncService.computeDiff/resync,CatalogReconciler, thediscover-toolsendpoint and the connector page. Apify is an MCP adapter, so the catalog never adds, rewrites or retires its tools (serverOwnsTools). This PR does not fix the tools of installed connectors on its own:CATALOG_AUTOSYNCon, which is the default on both Cloud and self-hosted), the reconciler sees a new adapter version. The only thing it can change is the instructions: it refreshes them when the user has not edited them (safe class) and stamps the version. No "Catalog update available" card stays behind. If the user edited the instructions, they keep their text and the connector counts as up to date.CATALOG_AUTOSYNC=false). It too refreshes only the instructions. It does not removeapify_rag_web_browserand does not fix the schema ofapify_web_fetch.OAUTH2connectors.) It runstools/listand goes throughcatalogMcpToolsFor, which applies this catalog's policy:apify_web_fetchis matched by its endpoint and gets the new schema and annotations.report-problemwould stay off if it were new.apify_rag_web_browseris soft-deprecated and switched off.apify_web_fetchon an installed connector keeps failing with-32602, both on Cloud and on self-hosted installs (both callmcp.apify.com). New installs on either deployment discover the 0.21 tools at install, so they are not affected. This snapshot is what the catalog lists, and the fallback when the server cannot be reached at install.Type
Testing
Commands and results (worktree off
mainat 3dc2604, afternpm ciandnpx prisma generate):Repository root:
node scripts/validate-adapters.mjs --warn: exit 0, 1440 warnings, the same output as onmain(diffof the two outputs is empty). None of them is forapify.node scripts/regenerate-catalog.mjs: 729 adapters across 15 regions.catalog.tshas no diff.node scripts/adapter-count.mjs --check:OK: every quoted count equals 713 adapters (35 keyless, 12893 tools)(it was 12890 tools onmain). No quoted tool count to fix.node scripts/generate-llms-txt.mjs:llms.txtandllms-full.txthave no diff.packages/backend:npx jest src/adapters/intl/apify --maxWorkers=4: 1 suite, 8 tests passed.npx jest src/adapters src/connectors/catalog --maxWorkers=4: 721 suites passed, 1 skipped, 1 failed. The failure iscatalog-summary.spec.ts, "serves one adapter's instructions, and 404 for an unknown slug", which hit the 5000 ms timeout while the machine was under load. It is not related to this change. Re-run alone,npx jest src/adapters/catalog-summary --maxWorkers=4: 12/12 passed.npx tsc --noEmit -p tsconfig.json: exit 0.npx eslint src/adapters/intl/apify.live.spec.ts: exit 0. I did not run the fullnpm run lint, because its--fixrewrites files across the package.Checklist
npm test): the rootnpm testwas not run (see AGENTS.md). The backend catalog/adapters/catalog-resync specs pass, see above.Related Issues
None. Upstream change: https://github.com/apify/apify-mcp-server/blob/master/CHANGELOG.md (v0.20.0, v0.21.0).