Documentation — MCP Tools
30 tools in the Documentation group of the Routebase MCP server.
clone_doc_version
Creates a new mutable Draft version by deep-copying an existing version (pages, folders, snapshots). Use this to start a repeatable sync after a version was published. Returns the new version's Id and version number. Requires project context (call set_context first).
Required scope: docs:publish
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
sourceVersionId |
string | Yes | The public Id (Guid) of the source version to deep-copy |
create_doc_folder
Create a folder in the documentation tree to organize pages. Optionally nest inside another folder. Returns the folder ID and slug. The version must be in Draft or Review status (mutable). Requires project context (call set_context first).
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
name |
string | Yes | Folder name |
icon |
string | No | Optional icon identifier for the folder |
description |
string | No | Optional description |
parentFolderId |
string | No | Optional parent folder public Id (Guid) for nesting |
slug |
string | No | Optional URL slug (lowercase letters, digits and single hyphens). Defaults to a slug derived from the name. |
create_doc_page
Create a new documentation page with Markdown content in a doc version. Optionally place it inside a folder. Returns the created page ID and slug. The version must be in Draft or Review status (mutable). Requires project context (call set_context first).
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version (must be Draft or Review) |
title |
string | Yes | Page title |
content |
string | No | Markdown content for the page |
parentFolderId |
string | No | Optional parent folder public Id (Guid) to place the page in |
pageType |
string | No | Page type: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog (default: custom) |
slug |
string | No | Optional URL slug (lowercase letters, digits and single hyphens). Defaults to a slug derived from the title. |
create_documentation
Create the documentation container for the active project, together with its first Draft version. A project has at most one documentation — call list_documentations first; creating a second one fails. Requires project context.
Required scope: docs:write
No parameters.
get_doc_page
Get a documentation page with full content and metadata. Returns title, slug, Markdown content, page type, and timestamps. Requires project context (call set_context first).
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
pageId |
string | Yes | The public Id (Guid) of the page |
get_doc_page_revision
Get one revision's full title and content — the preview before restoring it with manage_doc_page(action: 'restore_revision'). Get revisionId from list_doc_page_revisions. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
pageId |
string | Yes | The public Id (Guid) of the page |
revisionId |
string | Yes | The public Id (Guid) of the revision |
get_doc_settings
Get a documentation's settings: version numbering scheme, whether publishing needs approval and who may give it, the default code languages of the samples, and how schema names are displayed. Also returns the rowVersion that update_doc_settings takes. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
get_doc_snippet
Get one snippet with its full Markdown content and rowVersion. Set includeUsages to also list the pages embedding it — do that before deleting one. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
snippetId |
string | Yes | The public Id (Guid) of the snippet |
includeUsages |
boolean | No (default false) |
Also list the pages using this snippet (default false) |
get_doc_tree
Get the documentation tree (folders, pages, spec snapshots) for a specific version. Returns a hierarchical structure with sort order. Each node is typed as page, folder, or specSnapshot. Requires project context (call set_context first).
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
get_doc_version_publish_state
Whether a documentation version is ready to go live and whether the portal is showing its current content: lifecycle status, visibility, approval state, and whether anything was edited since the last successful portal build. Read this before publishing or building. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
get_org_doc_template
Get one organization documentation template with its full content and rowVersion.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId |
string | Yes | The public Id (Guid) of the template |
get_portal_url
Get the public portal URL for a documentation (the custom domain if one is configured, otherwise null) along with its custom-domain setup status. Requires project context (call set_context first).
Required scope: docs:manage-portal
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
get_spec_usage_in_docs
Find which documentation versions embed a given API specification — read this after publishing a spec to see which snapshots are now stale. By default only mutable (Draft/Review) doc versions are listed; set includePublished to also see the live ones. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
specId |
string | Yes | The public Id (Guid) of the API specification |
includePublished |
boolean | No (default false) |
Also list published doc versions, not just mutable ones (default false) |
list_available_specs
List the project's API specifications with their published status — the candidates for manage_spec_snapshot(action: 'add'). A spec without a published version cannot be snapshotted. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
list_doc_page_revisions
List a page's revision history, newest first. Metadata only — read a revision's content with get_doc_page_revision before restoring it via manage_doc_page. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
pageId |
string | Yes | The public Id (Guid) of the page |
list_doc_snippets
List the snippets of a documentation version with their slug, content and how many pages use each one. Requires project context.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
list_documentations
List all documentations in the active project with their versions. Returns documentation settings, branding info, and version summaries (status, visibility, dates). Requires project context (call set_context first).
Required scope: docs:read
No parameters.
list_org_doc_templates
List the organization's documentation page templates, optionally filtered to one page type. Returns each template's full content.
Required scope: docs:read
| Parameter | Type | Required | Description |
|---|---|---|---|
pageType |
string | No | Optional page type filter: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog |
manage_doc_folder
Change or remove a folder in the documentation tree. Actions: 'update' renames it and/or sets icon, description, slug or section flag — every field you omit keeps its current value, and an empty string clears it; 'delete' removes the folder and everything nested in it. Create folders with create_doc_folder. Get folderId and rowVersion from get_doc_tree. The version must be Draft or Review. Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
folderId |
string | Yes | The public Id (Guid) of the folder |
action |
string | Yes | What to do: 'update' or 'delete' |
name |
string | No | New folder name — omit to keep the current one |
icon |
string | No | New icon identifier — omit to keep, empty string to clear |
description |
string | No | New description — omit to keep, empty string to clear |
slug |
string | No | New URL slug (lowercase letters, digits and single hyphens) — omit to keep |
isSection |
boolean | No | Whether the folder renders as a section header instead of a collapsible folder — omit to keep |
rowVersion |
string | No | Optional rowVersion (Base64) from get_doc_tree for optimistic concurrency |
manage_doc_page
Page operations beyond writing content. Actions: 'delete' removes the page; 'lock' makes it reject content edits (moving and deleting stay allowed), 'unlock' lifts that; 'restore_revision' rolls the page back to an earlier revision — the current state is snapshotted first, so a restore is itself undoable, and the page must be unlocked. 'restore_revision' needs revisionId from list_doc_page_revisions. Create and edit pages with create_doc_page / update_doc_page. Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
pageId |
string | Yes | The public Id (Guid) of the page |
action |
string | Yes | What to do: 'delete', 'lock', 'unlock' or 'restore_revision' |
revisionId |
string | No | The public Id (Guid) of the revision — required for 'restore_revision' |
manage_doc_snippet
Manage the reusable snippets of a documentation version — blocks of Markdown that pages embed by slug, so one edit updates every page using them. Actions: 'create' (needs name and content), 'update' (name, content and/or description; omitted fields keep their current value) and 'delete'. Check get_doc_snippet with includeUsages before deleting. Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
action |
string | Yes | What to do: 'create', 'update' or 'delete' |
snippetId |
string | No | The public Id (Guid) of the snippet — required for 'update' and 'delete' |
name |
string | No | Snippet name — required for 'create' |
content |
string | No | Markdown content — required for 'create' |
description |
string | No | Optional description |
rowVersion |
string | No | Optional rowVersion (Base64) from get_doc_snippet for optimistic concurrency |
manage_doc_tree
Restructure the documentation tree. Actions: 'move' puts one tree item under a different folder (omit targetFolderId to move it to the root; folders may nest four levels deep); 'reorder' sets the display order within one parent — pass every item ID at that level in the order you want, and omit parentFolderId for the root level. The IDs are the tree-item IDs from get_doc_tree (the node 'id', not the page or folder id). Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
action |
string | Yes | What to do: 'move' or 'reorder' |
treeItemId |
string | No | The tree-item Id (Guid) to move — required for 'move' |
targetFolderId |
string | No | Target folder Id (Guid) for 'move'; omit to move to the root level |
itemIds |
string | No | Tree-item Ids (Guids) in the desired order, comma-separated — required for 'reorder'. All of them must sit under the same parent. |
parentFolderId |
string | No | Parent folder Id (Guid) whose children are being reordered; omit for the root level |
manage_doc_version
The documentation version lifecycle. Actions: 'create' opens the next Draft version EMPTY — no pages, folders or spec snapshots are copied, so get_doc_tree returns nothing and publishing it blanks the live portal. Use clone_doc_version (deep-copy) to keep the existing content — that is what a normal docs update needs; 'create' is only for starting from scratch. 'delete' discards a Draft or Review version (Published and Archived ones are immutable history and cannot be discarded); 'set_status' moves a version between 'draft', 'review', 'published' and 'archived' — publish_doc_version is the dedicated shortcut for going live; 'approve' records the approval a documentation with requireApproval needs before it can be published, and only a configured approver may do it. Get versionId from list_documentations. Requires project context.
Required scope: docs:publish
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
action |
string | Yes | What to do: 'create', 'delete', 'set_status' or 'approve' |
versionId |
string | No | The public Id (Guid) of the doc version — required for everything but 'create' |
status |
string | No | Target status for 'set_status': 'draft', 'review', 'published' or 'archived' |
rowVersion |
string | No | Optional rowVersion (Base64) from list_documentations for optimistic concurrency on 'set_status' |
manage_org_doc_template
Manage the organization-wide documentation templates new pages start from. Actions: 'create' (needs pageType, name and content), 'update' (name, content and/or description; omitted fields keep their current value) and 'delete'. These are organization settings, not project content — they apply to every project in the organization.
Required scope: org:manage-settings
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
string | Yes | What to do: 'create', 'update' or 'delete' |
templateId |
string | No | The public Id (Guid) of the template — required for 'update' and 'delete' |
pageType |
string | No | Page type the template applies to: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog — required for 'create' |
name |
string | No | Template name — required for 'create' |
content |
string | No | Markdown content — required for 'create' |
description |
string | No | Optional description |
rowVersion |
string | No | Optional rowVersion (Base64) from get_org_doc_template for optimistic concurrency |
manage_snapshot_content
Control how a spec snapshot is presented in the portal. Actions: 'reorder_endpoints' and 'reorder_tags' set a custom order (pass every id/name at that level in the order you want); 'reset_endpoint_order' drops the custom endpoint order so the snapshot follows the API designer again; 'set_endpoint_annotation' adds Markdown prose above one endpoint — send an empty content to remove it; 'set_folder_description' sets the intro Markdown of a designer folder path (empty content removes it, and the portal falls back to the same-named tag's description). Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
snapshotId |
string | Yes | The public Id (Guid) of the spec snapshot |
action |
string | Yes | What to do: 'reorder_endpoints', 'reset_endpoint_order', 'reorder_tags', 'set_endpoint_annotation' or 'set_folder_description' |
endpointIds |
string | No | Endpoint ids in the desired order, comma-separated — required for 'reorder_endpoints' |
tagNames |
string | No | Tag names in the desired order, comma-separated — required for 'reorder_tags' |
endpointId |
string | No | The endpoint id the annotation belongs to — required for 'set_endpoint_annotation' |
folderPath |
string | No | Designer folder path (e.g. 'Billing/Invoices') — required for 'set_folder_description' |
content |
string | No | Markdown content for 'set_endpoint_annotation' and 'set_folder_description'; empty removes it |
manage_spec_snapshot
Manage the API spec snapshots embedded in a documentation version. Actions: 'add' freezes a spec's latest published version into the doc tree (needs specId from list_available_specs); 'update' toggles the try-it playground and/or refreshes the frozen copy from the spec's newest published version (set refresh to true); 'remove' takes it out of the tree; 'set_auto_sync' decides whether the snapshot follows future spec publishes on its own. 'add' needs specId, everything else snapshotId from get_doc_tree. The version must be Draft or Review. Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
action |
string | Yes | What to do: 'add', 'update', 'remove' or 'set_auto_sync' |
specId |
string | No | The public Id (Guid) of the API specification — required for 'add' |
snapshotId |
string | No | The public Id (Guid) of the snapshot — required for everything but 'add' |
parentFolderId |
string | No | Optional parent folder Id (Guid) to place the snapshot in, for 'add' |
playgroundEnabled |
boolean | No | Whether the portal shows the interactive try-it playground — used by 'add' (default false) and 'update' (omit to keep the current setting) |
refresh |
boolean | No (default false) |
For 'update': re-freeze the snapshot from the spec's newest published version (default false) |
autoSyncEnabled |
boolean | No | Whether the snapshot follows future spec publishes automatically — required for 'set_auto_sync' |
publish_doc_version
Publish a documentation version, making it live. The version must be in Review status. Publishing transitions it to Published and archives any previously published version. Requires project context (call set_context first).
Required scope: docs:publish
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version to publish |
trigger_portal_build
Trigger a portal build for a published documentation version. Renders all pages and uploads to blob storage. Returns build status and metrics. Requires project context (call set_context first).
Required scope: docs:manage-portal
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the published doc version to build |
update_doc_page
Update an existing documentation page's title and content, and optionally its URL slug. Omitting the slug keeps the current one; setting it makes the previous slug redirect to the new one in the published portal. Only allowed on mutable versions (Draft or Review status). Requires project context (call set_context first).
Required scope: docs:read, docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versionId |
string | Yes | The public Id (Guid) of the doc version |
pageId |
string | Yes | The public Id (Guid) of the page to update |
title |
string | Yes | New page title |
content |
string | Yes | New Markdown content |
slug |
string | No | Optional new URL slug (lowercase letters, digits and single hyphens). Omit to keep the current one; changing it keeps the previous slug alive as a redirect in the published portal. |
update_doc_settings
Change a documentation's settings. Every field you omit keeps its current value — the tool reads the present state first, because the underlying command replaces all of them at once. approverUserIds replaces the approver list wholesale; pass an empty string to clear it. Requires project context.
Required scope: docs:write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentationId |
string | Yes | The public Id (Guid) of the documentation |
versioningScheme |
string | No | Version numbering: 'semantic' (v1.0.0), 'simple' (v1), 'dateBased' or 'custom' |
requireApproval |
boolean | No | Whether a version needs an approval before it can be published |
approverUserIds |
string | No | User Ids (Guids) allowed to approve, comma-separated — replaces the whole list; empty string clears it |
defaultCodeLanguages |
string | No | Default code sample languages, comma-separated (e.g. 'curl,javascript,python') |
schemaDisplayNames |
string | No | How schema names render: 'short' (default), 'full', or 'stripPrefix' |
schemaDisplayNamePrefix |
string | No | Prefix to strip when schemaDisplayNames is 'stripPrefix' |
rowVersion |
string | No | Optional rowVersion (Base64) from get_doc_settings for optimistic concurrency |