WTFM
OfficialWTFM is a plugin for your coding agent that writes your user docs. Ask Claude Code or Codex for a guide and it reads your source, writes the steps in plain language, and shows every screen with a screenshot rendered from your real templates and CSS. No running app, no manual captures, no account.
Not API reference, not a README: docs for the people who will never read your code, like the customer who can't find the export button, or the admin inviting their team.
WTFM was formerly SupportPages Writer. The
supportpagescommand still works as an alias forwtfm, and existing installations, settings andSUPPORTPAGES_*environment variables are unchanged.
Set it up once in your terminal, then just ask your agent:
curl -fsSL https://wtfm.sh/install | bashwtfm setup # once per computerwtfm init # once per projectYou → Claude Code: Write an illustrated guide to inviting a teammate.
Features
Written from your source. Routes, button labels and flows come from the code, not from a description you type, so the steps match what users actually see.
Screenshots without running the app. Mockups are rebuilt from your own markup, styles and branding, then rendered to PNG in a local headless Chromium.
Plain Markdown output. Each article is an
index.mdwith its images beside it, ready to commit next to your code or drop into any docs site.Checked before it's saved. Every article passes structure, copy and screenshot checks first.
Uses the agent you already have. Claude Code or Codex, with your own subscription and model settings.
Local-first. Nothing is sent to SupportPages.io unless you choose to publish.
Related MCP server: autowiki-mcp
Examples
The same loop on other open-source codebases. Each image is one screenshot from a guide WTFM wrote from that repository's source; the apps were never run.
immich-app/immich · SvelteKit | paperless-ngx/paperless-ngx · Angular | maybe-finance/maybe · Rails |
How to create a new album | How to create a tag and apply it to a document | How to add a new account |
For a whole help centre, see WTFM's own docs: every article and screenshot there was written by WTFM from this repository.
Install
curl -fsSL https://wtfm.sh/install | bashThe installer downloads a checksum-verified release with its own Node.js, installs
the wtfm command into ~/.local/bin (no sudo), and offers to add it to your
PATH. It also installs supportpages as an alias for wtfm.
You'll need:
macOS or Linux, on ARM64 or x64 (on Windows, use WSL)
Claude Code or Codex, installed and signed in
Git
Chromium for screenshots is downloaded the first time you run wtfm setup.
Updating: releases check for updates once a day and install them in the background.
Run wtfm update to update now, or set SUPPORTPAGES_AUTO_UPDATE=0 to turn
automatic updates off.
Install in Codex
WTFM is also a Codex plugin. You'll need Node.js 22.12 or later with npm on your
PATH.
codex plugin marketplace add SupportPages-io/wtfm
codex plugin add wtfm@supportpagesThen start a new Codex session. The first time the plugin starts, it installs its npm
packages (without running their install scripts) and downloads Chromium for
screenshots in the background. Codex asks you to review the plugin's two hooks in
/hooks before they run; WTFM works without them. To update, run
codex plugin add wtfm@supportpages again.
Build from source
You'll need Node.js 22.12 or later, npm and Git.
git clone https://github.com/SupportPages-io/wtfm.git
cd wtfm
./install-cli.shThis builds your checkout and installs it as wtfm (with the supportpages alias).
Run ./install-cli.sh again after pulling changes.
Quick start
Configure once in the terminal, then do everything else in your coding agent.
1. Set up your computer
wtfm setupThis connects Claude Code and/or Codex, adds the SupportPages.io writer to them and downloads the screenshot renderer. When it asks how you want to work, choose Save articles in my projects without an account.
2. Set up your project
cd path/to/your-product
wtfm initPick where articles should be saved and which model to use. WTFM then studies the project's structure, styles and branding once, so every article starts from that analysis.
3. Ask your coding agent
Open Claude Code or Codex in your project (restart any session that was already open) and ask for an article in plain words:
Write an illustrated guide to inviting a teammate.
A few minutes later the article is in your project:
output/articles/how-to-invite-a-teammate/
├── index.md
├── block_open-settings.png
├── block_invite-form.png
└── block_send-invite.pngThat's the whole loop. Some other things to ask:
What help articles do we have?
Write a troubleshooting article for when a sign-in link has expired.
CLI commands
You only need the terminal to set things up and keep them running. Writing happens in your coding agent.
Command | What it does |
| Set up this computer: connect your coding agents and install the renderer |
| Set up this project: where articles go, which model, project analysis |
| Change this project's agent, model, writing style or article folder |
| Re-run project analysis after big changes ( |
| Show this project's setup and article progress |
| Check that everything is installed and connected |
| Stop anonymous usage counts and crash reports ( |
| Install the latest release |
| Forget this project's setup (keeps a recovery archive) |
| Disconnect from your coding agents (keeps projects and articles) |
| Remove WTFM from this computer; |
Run wtfm --help for every option. status and doctor accept --json.
Your articles
Where they go.
output/articles/<slug>/by default. To keep them in your repo, choose a folder likedocs/helpduringinitor withwtfm configure.Writing style. Pick from friendly, minimal, technical or formal with
wtfm configure.Screenshots. Each article gets up to three. The main path gets them first; optional branches are described in text. Every screenshot carries a small "created automatically by supportpages.io" strip.
How it works
setupconnects a local MCP server and a writer agent to Claude Code or Codex.inithas your agent map the project once: framework, routes, layouts, CSS and branding.When you ask for an article, the writer agent reads the relevant source, writes the steps, and builds each screenshot as an HTML mockup of your real UI.
The mockups are rendered to PNG with a local Chromium, checked against your source, and saved with the article.
Publish
Give your users somewhere to read it. A Markdown folder in your repo helps nobody who can't find it. SupportPages.io, made by the same team, turns the guides WTFM writes into a help centre your users can search and ask: on your own domain, in your branding, and kept current as the product changes.
Kept current on every merge. When a pull request merges, SupportPages.io reads the diff and drafts the article updates for you to review.
Video walkthroughs. Each guide can come with a narrated video that clicks through the same steps, with captions.
Answers, not just search. Readers ask in their own words and get an answer drawn from your articles, with the sources linked.
Your branding on your own domain, an editor to review drafts before anyone sees them, and publishing straight from your coding agent.
Everything above works without it, and a free account hosts up to 10 articles.
The same pattern applies: connect once in the terminal, then work in your agent.
Connect a project:
wtfm publishYou'll sign in or create an account in your browser and choose a help centre. Any
articles you've already saved upload as drafts. (Setting up a new project? Choose
Publish them to a SupportPages.io help centre during wtfm init instead.)
Then keep asking your agent:
Write a guide to exporting a report.
New articles arrive in the help centre as drafts, with a link to review them in the editor. Publishing is always a separate step: click Publish in the editor, or ask:
Publish the guide to exporting a report.
Command | What it does |
| Sign in, pick a help centre and upload this project's saved articles |
| Write the whole manual on SupportPages.io (account required; drafts only) |
| Sign this computer in or out |
| Refresh help-centre settings and article history |
A help centre never needs access to your GitHub or Bitbucket. Only wtfm yolo does.
wtfm yolo: write the whole manual
Starting from nothing? wtfm yolo plans every guide your product needs and
writes them all at once, on SupportPages.io's servers instead of your computer and your
coding agent's usage.
wtfm yoloIt walks you through whatever is missing: browser sign-in, choosing or creating a help
centre, and connecting your repository (SupportPages.io needs read access to write from
your code). It then shows your plan's article allowance and asks before starting
(--yes skips the question). The free plan covers your first 10 guides.
Progress shows live: sections, recommended articles, then drafts as they are written.
Everything lands as drafts; nothing goes live until you publish it in the editor, whose
link is printed at the end. Ctrl+C only stops watching: the run keeps going, and
wtfm status picks it up again. If a run fails, run wtfm yolo again to resume it
without losing the drafts already written.
Privacy
Local projects send only anonymous usage counts and crash reports to SupportPages.io (see below). Your coding agent and its model provider read your source, as they do for any other task.
Publishing uploads the article, its images and a small provenance record. Your source code is never uploaded.
wtfm yolowrites on SupportPages.io from the repository you connect there; it is the only command that gives SupportPages.io access to your code.Credentials are stored in private files under
~/.config/supportpages, never in your repository. Signing in also saves your account email there, to show which account is connected.Other network requests carry none of your code or articles. Chromium for screenshots downloads from Google's Chrome for Testing storage, and the plugin's packages install from the npm registry. When a project's own styles can't be compiled, analysis fetches its CSS framework (Bootstrap, Bulma or Foundation) from the jsDelivr CDN, and a mockup with no project styles loads Tailwind from its CDN while rendering. An article's optional generated images use OpenAI only if you have set your own
OPENAI_API_KEY; WTFM never sets it.Project analysis runs unattended.
initandanalysestart your agent with its permission prompts off (--dangerously-skip-permissionsfor Claude Code,--dangerously-bypass-approvals-and-sandboxfor Codex). Writing articles uses the agent's normal approval prompts.
Plugin hooks
Installed as a Claude Code plugin, WTFM registers two hooks. Neither sends anything over the network except the Chromium download, and neither can block or change a tool call.
SessionStartchecks whether Chromium for screenshots is installed. If it isn't, it starts puppeteer's Chromium download in the background, once, and returns straight away without printing anything into the session.PostToolUseruns after every tool call, but does nothing unless an article is being written (a.rtfm-trace/CURRENTmarker in your project). During a run it appends one line per tool call to.rtfm-trace/<article>.ndjsonin your project: the time, tool name, file path, search pattern and the first 500 characters of a shell command. The trace stays on your computer and is used to spot repeated work in a run. It prints nothing and always exits successfully.
Anonymous usage counts and crash reports
WTFM tells us how many installs are in use and when something breaks, so we can fix it. It says so the first time you set up a project, and it's easy to turn off. It is sent to SupportPages.io without your sign-in and stays anonymous until you sign in from this computer; after that, usage from this computer is linked to your account. Turning it off stops both.
What is sent
A random install ID created on this computer (not derived from it), the WTFM version, the coding client's name (e.g.
claude-code), your OS, CPU architecture and Node.js major version.A count when WTFM is first used and when it is uninstalled (and whether its settings were kept), when a project is set up (local or hosted), and when an article or video walkthrough finishes: its outcome, where it went (local, uploaded or generated on SupportPages.io), an error code if it failed, and how many seconds it took; likewise when a
wtfm yolorun starts and ends.For unexpected errors only: the error type and code, and stack frames with every path outside WTFM replaced by
<external>. Messages from other code are never sent.
What is never sent: your code, file names or paths, article titles or content, repository or project names, or credentials. Your IP address is not stored. The install ID is also sent when you sign in from this computer, which is what links later usage from it to your account.
Turn it off with any of these:
ask your coding agent to turn off SupportPages telemetry;
run
wtfm telemetry off;set
SUPPORTPAGES_TELEMETRY=0orDO_NOT_TRACK=1.
It is always off in CI. wtfm doctor shows whether it's on and why; set
SUPPORTPAGES_TELEMETRY_DEBUG=1 to print each report to stderr as it is sent.
FAQ
Is this for API docs or READMEs? No. WTFM writes end-user documentation: how-to and troubleshooting guides for the people who use your product, with screenshots. Your agent already handles developer docs well.
Why not just ask Claude Code to write the docs? It will write you decent steps. It won't show the screen, and it guesses at labels it hasn't looked up. WTFM adds a project analysis, a renderer that builds screenshots from your own UI code, and checks that run before anything is saved.
What does it cost?
WTFM is free and Apache 2.0. Articles run on your own Claude Code or Codex subscription.
wtfm yolo is the exception: it runs on SupportPages.io and needs an account; the free
plan covers 10 guides.
wtfm: command not found
Open a new terminal, or run the PATH command the installer printed.
My agent can't see the SupportPages tools.
Restart any Claude Code or Codex sessions that were open during wtfm setup.
Setup won't finish.
Run wtfm doctor, fix what it reports, then run wtfm init again.
An article was interrupted halfway.
Ask your agent to continue it, or run wtfm status to see where it stopped.
Does it collect usage data? Only anonymous counts and crash reports, never your code or articles. See Anonymous usage counts and crash reports to see exactly what is sent or turn it off.
Can I use it on Windows? Yes, inside WSL.
More on supportpages.io/wtfm.
Contributing
Bug reports and pull requests are welcome. When reporting a bug, include your OS,
wtfm --version, the command you ran and its output, with credentials and
private code removed. For larger changes, open an issue first so we can agree on the
approach.
To work on the code:
npm ci
npm test
node scripts/cli.mjs --helpThe article engine in engine/ is synced from upstream on each engine release, so
changes there are reviewed here and ported back by the maintainers.
License
Apache 2.0. The UI stylesheets bundled under engine/ keep their own
licenses; see NOTICE. The license doesn't cover the SupportPages name or logo.
Available Tools
47 toolssupportpages_bind_workspaceADestructive
Bind this configured local workspace to a remote project. Refuses to silently change an existing destination.
Inputs: project_id (required). Returns: error, result
supportpages_cancel_runA
Release a generation run after the host agent has stopped. Does not stop processes or delete files. A writing run requires stopped=true.
Inputs: run_id (required), stopped, workspace. Returns: error, result
supportpages_complete_articleADestructive
After successful host writing and validation, finalize and upload this run as a draft. In a local folder it saves the article as Markdown with its screenshots and returns the saved path instead of an editor link. Safe to retry after an upload failure without regenerating. The writer finish handshake can already have delivered the draft; still call this tool to get the final response. Never infer completion from the writer’s prose or preview link. Return the editor link, then any show_to_user text verbatim, open only if the returned open_when_ready is true, and ask whether the user wants to publish. Never call for a partial or interrupted writer.
Inputs: run_id (required), completed (required), workspace. Returns: error, result
supportpages_connect_repositoryA
Compatibility alias for supportpages_setup_hosted. Sign in or create an account and connect a repository for the original requested hosted action. Opens browser sign-in first, asks which help centre to use, requests missing device consent, then opens that project repository connection or repair page. After the user completes a step, call again with next_arguments (and the selected project_id when asked). Returns resume_tool and resume_arguments when ready. Never approves consent, chooses a repository, uploads local articles or starts generation.
Inputs: action, signup, feature, workspace, +3 more. Returns: error, result
supportpages_create_articleADestructive
Create one illustrated article using the permitted execution location. Hosted projects run in SupportPages with configured repositories/models; never launch a local writer for a hosted operation. Local responses return the existing prepared writer task. Defaults to draft even if project auto-publish is enabled. Set publish only for an explicit user publication request. Reuse request_id when recovering a lost response.
Inputs: title, publish, workspace, request_id, +5 more. Returns: error, result
supportpages_create_projectCDestructive
Create a SupportPages.io project for local generation; no repository connection is needed.
Inputs: name (required), subdomain (required). Returns: error, result
supportpages_create_video_walkthroughADestructive
Create a hosted video walkthrough for a completed eligible article. Uses project voice/settings and returns a durable operation. Review/playback is private until the user explicitly shares it in SupportPages; never publish, share or record locally.
Inputs: workspace, article_id, request_id, open_when_ready, +2 more. Returns: error, result
supportpages_delete_articleADestructive
Soft-delete the selected article using its latest revision. Use only when the user requests deletion. Existing retention and browser restoration apply; never recreate it through upload or retry.
Inputs: article_id (required), expected_revision (required), workspace. Returns: error, result
supportpages_doctorARead-only
Check configuration and local generation prerequisites without exposing credentials.
Inputs: no named parameters. Returns: error, result
supportpages_edit_articleADestructive
Edit an existing article according to instructions. Read it first and supply its current revision. Repository-connected edits run in SupportPages: send instructions, never write the replacement locally. Account-only drafts return local editing guidance. Successful published edits become live immediately; failures preserve the existing article and images.
Inputs: article_id (required), instructions (required), expected_revision (required), workspace, +3 more. Returns: error, result
supportpages_finalize_articleA
Snapshot a successfully completed article for upload. Set completed=true only after the full skill pipeline succeeds (or after reviewing an existing finished article). Prepared runs require their run_id. Never finalize interrupted generation.
Inputs: completed (required), artifact_dir (required), run_id, section_id. Returns: error, result
supportpages_find_article_gapsCDestructive
Run hosted documentation analysis and return a durable operation. Suggestions remain pending for review. Never analyse locally, accept suggestions automatically or generate articles implicitly.
Inputs: workspace, request_id, open_when_ready, prefer_background. Returns: error, result
supportpages_get_articleBRead-only
Read remote content, revision and publication state for an article in the bound project.
Inputs: article_id (required). Returns: error, result
supportpages_get_capabilitiesBRead-only
Check whether an action can run and return its execution location or next setup step. No job or browser consent is started.
Inputs: action (required), workspace, article_id. Returns: error, result
supportpages_get_contextARead-only
Fetch writing guidance, sections, article inventory and current account-wide article hosting capacity with billing and management links. A local folder returns its writing guidance with no sections, inventory or capacity.
Inputs: no named parameters. Returns: error, result
supportpages_get_local_planARead-only
Read validated local project detection context. Sections, recommendations and PR analysis require a repository connection in the web app. This compatibility tool does not expose a local plan. Run wtfm analyse in the project terminal if analysis is required.
Inputs: no named parameters. Returns: error, result
supportpages_get_operationARead-only
Check a hosted operation once, when the user asks how it is going or after a client restart; it never resubmits work. Do not call it on a loop while an operation runs: the review link shows progress as it is written. After a restart use the saved operation_id, or omit it to recover the most recent request, including a lost submission response. Polling is bounded to 20 seconds.
Inputs: wait_ms, workspace, operation_id. Returns: error, result
supportpages_get_walkthroughARead-only
Read a hosted video walkthrough by ID: current generation and public visibility, revision, assets, transcript when available, and private review/playback links. Use get_operation for a Writer generation job; this tool also reads videos created outside Writer. Read-only: never publishes, shares or starts generation.
Inputs: walkthrough_id (required), workspace. Returns: error, result
supportpages_initADestructive
Sign this device in to SupportPages.io if needed and link the current workspace to a help centre. A folder set up to save articles locally returns local without any sign-in unless host_local=true, which means the user explicitly asked to sign in or use a help centre from it. Without a device sign-in it opens browser approval when supported, otherwise returns an approval link: show the link and comparison code to the user; sign-in completes privately in the background (check supportpages_status). Once signed in, a workspace with no linked help centre returns project_required with the account’s help centres: ask the user which one to use, then call this tool again with that project_id, or call supportpages_create_project first. Never accept a token in chat or approve for the user.
Inputs: signup, workspace, host_local, project_id. Returns: error, result
supportpages_list_articlesARead-only
List existing support articles. By default, inspect local article files when signed out or in local mode; otherwise list the linked help centre. Do not call status or init first and do not ask for login for a local listing. An empty local result does not mean the hosted help centre is empty. Use source=hosted only for an explicitly hosted inventory request, or source=local to inspect local files while signed in. Hosted results use next_cursor as after_id.
Inputs: source, after_id, workspace. Returns: error, result
supportpages_list_local_articlesA
List current local article files when signed out or in local mode, without login or network requests. Otherwise refresh the linked project inventory, including remote-only articles and conflicts. Preserves local content.
Inputs: workspace. Returns: error, result
supportpages_list_projectsARead-only
List accessible SupportPages.io help centres.
Inputs: no named parameters. Returns: error, result
supportpages_list_recommendationsBRead-only
List persisted suggestions with IDs and review state. Use after_id to read the next page.
Inputs: after_id, workspace. Returns: error, result
supportpages_list_sectionsCRead-only
List persisted suggestions with IDs and review state. Use after_id to read the next page.
Inputs: after_id, workspace. Returns: error, result
supportpages_list_walkthroughsARead-only
List existing hosted video walkthroughs, including videos created in the browser. Returns generation, readiness, sharing and article-publication state with review/playback links. Optional article_id filters to one article. For the next page pass both next_cursor as after_id and through_id. Does not generate or share videos.
Inputs: after_id, workspace, article_id, through_id. Returns: error, result
supportpages_prepare_articleADestructive
Check account-wide article hosting capacity before preparing a writing task and self-contained task brief. Call this before writing content or rendering images. In a local folder there is no capacity check or preview: the response says where the article will be saved. On plan_limit, show usage, upgrade and article-management links and stop; no writer should launch. This creates a preview when supported and returns its editor_url. Show that link immediately before launching the writer. This does not execute generation. Follow the returned personal preference for background or foreground execution; report started after launch and complete automatically after success.
Inputs: title (required), workspace, section_id, description, +4 more. Returns: error, result
supportpages_preview_articleB
Create a self-contained local preview. Returns a file path and URI; no network requests or article scripts execute in the preview.
Inputs: artifact_dir (required). Returns: error, result
supportpages_publishA
Host saved local articles on a SupportPages.io help centre. Use only when the user asks to host or publish saved local articles, after asking whether they want to sign in or create a free account. Signs in through browser approval if needed, links a chosen help centre, and uploads selected articles as drafts. With no slugs, returns the available articles for selection; pass their slugs to upload. Follow authentication_required or project_required responses and call again after approval or selection. This changes the folder to hosted generation and preserves local files. It does not make articles publicly visible; publish_article is the separate public publication action. Never use automatically after local generation.
Inputs: slugs, signup, workspace, project_id. Returns: error, result
supportpages_publish_articleA
Make an article visible in the hosted help centre. It can be unpublished again in the web editor or with unpublish_article. Use only when the user has instructed publication. Address by article_id and current revision, or use the legacy slug and uploaded bundle revision; never both.
Inputs: expected_revision (required), slug, workspace, article_id. Returns: error, result
supportpages_recommend_articlesBDestructive
Run hosted documentation analysis and return a durable operation. Suggestions remain pending for review. Never analyse locally, accept suggestions automatically or generate articles implicitly.
Inputs: workspace, request_id, open_when_ready, prefer_background. Returns: error, result
supportpages_request_permissionsADestructive
Request explicit browser consent for missing Writer permissions. Preserve the original action and retry it after consent. Never approve the browser form for the user.
Inputs: action (required), scopes (required), workspace, article_id. Returns: error, result
supportpages_retry_articleADestructive
Resume the same partial article after stopping the previous writer. Run the returned recovery task, report started, and complete after validation. Always show its returned editor_url before retrying, even if the link was already shown or the operation fails. Never retry a draft the user kept for editing.
Inputs: run_id (required), stopped (required), workspace. Returns: error, result
supportpages_retry_operationADestructive
Explicitly retry a failed hosted operation after fixing its reported prerequisite. Reuses the operation and target; rechecks permissions. Pass the current attempt from get_operation. Revision conflicts require a new request with a freshly read revision; retry cannot overwrite an old snapshot.
Inputs: operation_id (required), expected_attempt (required), workspace. Returns: error, result
supportpages_review_recommendationsBDestructive
Accept or reject one selected suggestion. Acceptance never advances onboarding or starts generation. Generate an accepted article recommendation explicitly with create_article and recommendation_id.
Inputs: id (required), decision (required), workspace. Returns: error, result
supportpages_review_sectionsADestructive
Accept or reject one selected suggestion. Acceptance never advances onboarding or starts generation. Generate an accepted article recommendation explicitly with create_article and recommendation_id.
Inputs: id (required), decision (required), workspace. Returns: error, result
supportpages_set_hosting_remindersA
Enable or disable the optional hosting reminders shown after an article is saved locally, when the user asks. Needs no account or help centre: the preference covers every local folder on this device for this API origin. Disabling lasts until explicitly enabled again; it does not affect article generation or hosting.
Inputs: enabled (required), workspace. Returns: error, result
supportpages_set_repository_remindersB
Enable or disable optional repository connection reminders when the user asks. Applies to the bound help centre across local checkouts on this device, for this API origin. Disabling lasts until explicitly enabled again; it does not affect article generation or publication.
Inputs: enabled (required), workspace. Returns: error, result
supportpages_set_telemetryA
Turn the Writer’s anonymous usage counts and crash reports on or off for this device when the user asks. Needs no account. Returns what is sent and the current state; environment variables such as SUPPORTPAGES_TELEMETRY=0 or DO_NOT_TRACK=1 still win.
Inputs: enabled (required). Returns: error, result
supportpages_setup_hostedA
Sign in or create an account and connect a repository for the original requested hosted action. Opens browser sign-in first, asks which help centre to use, requests missing device consent, then opens that project repository connection or repair page. After the user completes a step, call again with next_arguments (and the selected project_id when asked). Returns resume_tool and resume_arguments when ready. Never approves consent, chooses a repository, uploads local articles or starts generation.
Inputs: action (required), signup, workspace, article_id, +2 more. Returns: error, result
supportpages_statusARead-only
Check article progress and draft links, the signed-in account, browser approval progress and access to the linked help centre. Does not start authentication, open a browser, change bindings or expose credentials. Uses a read-only API check when configured.
Inputs: run_id, workspace. Returns: error, result
supportpages_suggest_sectionsCDestructive
Run hosted documentation analysis and return a durable operation. Suggestions remain pending for review. Never analyse locally, accept suggestions automatically or generate articles implicitly.
Inputs: workspace, request_id, open_when_ready, prefer_background. Returns: error, result
supportpages_syncA
Refresh remote project settings, articles and video walkthroughs, including remote-only resources, publication/sharing, review links and changes. Missing walkthroughs are unavailable, not confirmed deletion tombstones. Preserves local content and upload baselines. Review conflicts in the editor; never recreate deleted resources automatically.
Inputs: workspace. Returns: error, result
supportpages_unpublish_articleADestructive
Remove an article from the public help centre while retaining it as a draft. Requires an account and publish permission, not a repository. Use the latest revision.
Inputs: article_id (required), expected_revision (required), workspace. Returns: error, result
supportpages_update_articleADestructive
Save an exact content update using the current revision from get_article. Structured articles use structured_content; Markdown articles use body and optional title. Preserves images and publication state. Published changes become live immediately and require repository access and publish permission. On conflict read again; never overwrite browser changes.
Inputs: article_id (required), expected_revision (required), body, title, +2 more. Returns: error, result
supportpages_update_runA
Report actual host task start, failure, interruption or cancellation. Returns a compact acknowledgement and editor link; use supportpages_status for full run details when needed. Always show the returned editor_url, including after failure or interruption. Cannot mark content delivered or published. Stop the writer before reporting a terminal event.
Inputs: event (required), run_id (required), stopped, workspace, +2 more. Returns: error, result
supportpages_upload_draftADestructive
Upload the finalized article bundle to the bound SupportPages.io project as an unreviewed draft. Repeating an upload is safe. Published-article changes are rejected.
Inputs: slug (required). Returns: error, result
supportpages_validate_articleARead-only
Validate article schema, image references and available lint results. Validation does not finalize a generation run.
Inputs: artifact_dir (required). Returns: error, result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 47 tools
Several tools are near-duplicates: find_article_gaps, suggest_sections, and recommend_articles share nearly identical descriptions, while list_sections/list_recommendations and review_sections/review_recommendations are hard to distinguish. setup_hosted and connect_repository are explicit aliases, and many article lifecycle tools overlap, making tool selection error-prone.
All tools use a consistent supportpages_ snake_case prefix, and most follow a verb_noun pattern. Minor deviations such as noun-style supportpages_doctor or the compatibility alias supportpages_connect_repository are readable but slightly less uniform.
47 tools is well above the ideal 3-15 range and feels over-fragmented for the domain. Many narrowly scoped lifecycle steps and duplicate analysis/list/review variants increase selection cost without clear proportional benefit.
Article handling covers a broad lifecycle: create, edit, list, get, validate, preview, finalize, upload, publish, unpublish, and delete. Video walkthroughs are less complete, with create/list/get but no obvious update, delete, or sharing operation, leaving minor gaps.
Maintenance
Related MCP Connectors
Serves your design system and coding standards to coding agents, so they stop guessing.
Your coding agent keeps your help center current: it drafts article fixes after code changes.
Make narrated, on-brand product videos of your real app from your coding agent or AI assistant.
Turn screen recordings into step-by-step guides, SOPs, tutorials and user docs with screenshots.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides documentation generation and analysis tools for AI agents, including JSDoc generation, README analysis, changelog generation, API documentation, and code comment analysis.40 npmMIT
- AlicenseNot gradedqualityDmaintenanceAutomatically generates comprehensive wiki documentation from any codebase, including Mermaid diagrams, source code citations, and automated quality checks.3MIT
- AlicenseNot gradedqualityDmaintenanceGenerates comprehensive documentation (architecture overview, dependency graph, API surface, and README) for any codebase locally without external APIs.8 npm1MIT

Doc Bridgeofficial
AlicenseNot gradedqualityAmaintenanceTurn repository documentation into deterministic, executable handoffs for coding agents through MCP, CLI, and CI—without an LLM or API key.10,153 npm10MIT