Skip to content

docs: fix Apify MCP server page and its generated .md output - #2850

Open
birosrichard wants to merge 2 commits into
masterfrom
feat/update-mcp-docs
Open

docs: fix Apify MCP server page and its generated .md output#2850
birosrichard wants to merge 2 commits into
masterfrom
feat/update-mcp-docs

Conversation

@birosrichard

@birosrichard birosrichard commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Fixes the MCP server integration page's generated .md output: nested Tabs inside a TabItem broke the llms-txt plugin's flattening, duplicating the auth explanation five times and misattaching tab content to the wrong client. Also corrects tool names, defaults, and the SSE transport note against the released @apify/actors-mcp-server package, and reorders the page anonymous-first.

Also updates manus.md, which repeated the same stale get-actor-output claim in its default-tools list and example walkthrough. Out of the issue's original scope, but the same fix applies.

Nested Tabs in the per-client setup section broke the generated Markdown
counterpart (duplicated auth prose, misattributed tab content). Also
corrects tool names, defaults, and transport notes against the released
@apify/actors-mcp-server package, and reorders the page anonymous-first.

Refs #2805
@github-actions github-actions Bot added this to the 146th sprint - Web team milestone Aug 5, 2026
@github-actions github-actions Bot added the t-web Issues with this label are in the ownership of the web team. label Aug 5, 2026
@apify-service-account

apify-service-account commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

✅ Preview for this PR (commit 5ae6be07) is ready at https://pr-2850.preview.docs.apify.com (see action run).

@birosrichard
birosrichard requested a review from marekh19 August 5, 2026 09:52
@birosrichard
birosrichard marked this pull request as ready for review August 5, 2026 09:54
@cursor

cursor Bot commented Aug 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@marekh19 marekh19 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👨 Marek

I've let my clanker do the review, see below. The writing style notes are more on the docs team decision I would say.

I've validated the point with removing apify--rag-web-browser myself and it is really included if you don't select any specific actors in tools.

This is what I got by default:

abort-actor-run
apify--rag-web-browser
call-actor
fetch-actor-details
fetch-apify-docs
get-actor-run
get-dataset-items
get-key-value-store-record
report-problem
search-actors
search-apify-docs

So this content change might be misleading.

Also checked the published package:

package/dist/utils/tools_loader.js:108-109 - when no tools selectors are supplied at all:

// No selectors supplied: use defaults unless actors were explicitly empty
return actorsExplicitlyEmpty ? [] : defaults.actors;   // = ['apify/rag-web-browser']

and tools_loader.js:204-212 pushes the default categories, then report-problem, then those Actor tools:

for (const cat of toolCategoriesEnabledByDefault) {   // = ['actors', 'docs']
    result.push(...categories[cat]);
}
result.push(reportProblem);
...
if (actorTools.length > 0) result.push(...actorTools);   // ← rag-web-browser lands here

Note

defaults.actors applies only when you don't pass any selectors. ?tools=actors,docs gives you no RAG browser. Which is the "replaces, doesn't add" behavior the PR already documents. So the correct fix isn't just re-adding the tool to the list; it's saying the default set includes it and that naming tools at all drops it.

I think it's worth it to address these points.


🤖 Clanker

Writing style

  1. Concept used before it's explainedcontent-standards.md "Information ordering" (line 67: "no concept is used before it's explained"). mcp.md:60 opens the first post-intro section with "when the tools query parameter contains only tools enabled for unauthenticated use", and mcp.md:69 hands the reader ?tools=search-actors,.... The tools parameter isn't explained until ## Tool selection (mcp.md:245), and the load-bearing gotcha — "The tools parameter does not add to the default selection - it replaces it" (mcp.md:271) — sits 200 lines further on. Move the tools explanation above ### Anonymous discovery, or link forward from line 60.

  2. Passive voicewriting-style.md "Active & inclusive voice"; quality-standards.md:35. mcp.md:89 "Two methods are available."; mcp.md:267 "Tools are grouped into five categories"; mcp.md:275 "Tools marked auto-injected are added automatically".

Judgement calls

  • Mysterious Namemcp.md:277 renames the column to Loaded by default, then fills it with three values: ✅, blank, and Auto-injected. A yes/no header now carries a third state. Worse, mcp.md:284 marks get-actor-run as Auto-injected while mcp.md:275 names get-actor-run as one of the triggers for auto-injection — it injects itself. Split into two columns, or drop get-actor-run from the trigger list.
  • Mysterious Namemcp.md:128 "The configuration below uses the OAuth form." "Form" reads as a web form. Say "uses OAuth".
  • Duplicated Codemcp.md:50 "If your client doesn't support remote MCP servers, run the server locally over stdio instead" is restated verbatim at mcp.md:225. The "authenticate before running Actors" fact appears four times in 40 lines (mcp.md:48, 81, 83, 87). The anonymous URL appears twice back to back (mcp.md:69 inline, mcp.md:75 in JSON) — drop the inline one.
  • Shotgun Surgery — the default-tool list is asserted in mcp.md:247 and again in manus.md:87, forcing both to be edited here. A third copy sits untouched at sources/platform/get-started/agent-onboarding.md:116; it happens to still agree, but it will drift.
  • Residual .md flattening risk — the nested <Tabs> are gone (good), but the outer <Tabs> at mcp.md:130 wraps four unlabeled client panels. If the PR's goal is clean llms-txt output, confirm those four don't concatenate into one unmarked run.

Spec

mcp.md:247 now claims "the MCP server loads the actors and docs tool categories, plus report-problem." The released package disagrees. Its README (§Tools configuration) lists defaults as actors, docs, and apify/rag-web-browser, and src/const.ts confirms it: export const defaults = { actors: [RAG_WEB_BROWSER] }.

The PR compounds this by deleting the apify--rag-web-browser row from the tools table (old mcp.md:331, enabled by default). The README still marks that tool . So the PR removed a correct row and replaced a correct default list with an incomplete one — the exact class of error AC4 exists to prevent. It also leaves the very next line, the example ?tools=actors,docs,apify/rag-web-browser, looking like an arbitrary illustration when it is in fact the default set written out.

Same root cause in manus.md:87: the new text drops web browsing from the default set entirely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-web Issues with this label are in the ownership of the web team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants