For AI agents: the complete documentation index is at https://docs.routebase.dev/llms.txt. Every page is also available as Markdown by appending index.md to its URL or by sending Accept: text/markdown.
MCP Reference

Portal Administration — MCP Tools

Portal branding, custom domains and build management. This page documents the Portal Administration group of the Routebase MCP server, with the scope and the parameters of each tool.

A session that stages its tools advertises this group once the agent calls enable_toolset with the slug portal-admin. Full-access keys, scoped keys and OAuth sessions see every tool they are allowed to call without that step.

delete_branding_asset

Remove a portal branding image from its slot and clear the portal's reference to it. Fails when the slot is already empty. Use this to clear a branding slot; to put a new image into one use upload_branding_asset. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
kind string Yes Which slot to clear: 'logo', 'logoDark', 'favicon', 'ogImage', 'backgroundImage' or 'backgroundImageDark'

delete_custom_font

Remove the portal's custom body or code font and fall back to the configured font family. Fails when no custom font is set. Use this to fall back to the configured family; to install a font use upload_custom_font. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
isCodeFont boolean No (default false) True for the code/monospace font, false (default) for the body font

get_custom_domain_status

Where the custom domain stands: lifecycle status, the DNS records still to publish, and the SSL provisioning timestamps. Set includeHealth to append the last DNS/certificate health check. Use this to follow the domain setup; to start or change it use manage_custom_domain. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
includeHealth boolean No (default false) Also return the last domain health check (default false)

get_portal_agent_readiness

Latest agent-readiness check of the published portal (Agent-Friendly Docs Spec): score, grade, category scores and the checks that did not pass. fixScope 'customer' means the portal content or settings decide the check, 'routebase' that the pipeline covers it. Start a run with manage_portal(action: 'check_agent_readiness'). Requires project context.

Required scope: docs:read

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation

get_portal_analytics

What visitors did with the portal: page views, unique visitors, the daily trend, the most read pages, the top search terms, and the searches that found nothing (content gaps). Set includeFeedback to append the thumbs up/down summary with its best and worst pages. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
daysBack integer No (default 30) How many days back to aggregate (default 30)
includeFeedback boolean No (default false) Also return the page feedback summary (default false)

get_portal_build

One portal build in full, including its build log — the way to find out why a build failed. Get buildId from list_portal_builds. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
buildId string Yes The public Id (Guid) of the build

get_portal_deployments

Which documentation versions are currently live on the portal, and which one the root URL points at. Use this for what is live now; for the builds behind it use list_portal_builds. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation

get_portal_preview

Poll a portal preview queued by manage_portal(action: 'preview'). The time-limited preview URL is filled in once status is 'ready'. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
previewId string Yes The preview Id (Guid) returned by manage_portal(action: 'preview')

get_portal_settings

Read the portal configuration. Section 'settings' (default) returns the feature toggles, SEO fields, scripts, the public URL and the last build; 'appearance' returns theme, colours, fonts and layout; 'all' returns both. These are the keys manage_portal takes in its values object. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
section string No (default "settings") Which part to read: 'settings' (default), 'appearance' or 'all'

list_page_feedback

The individual thumbs up/down entries visitors left, newest first, with their comments. Filter by sentiment or by a single page. Use this for the individual entries; for visitor numbers and trends use get_portal_analytics. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
page integer No (default 1) Page number, 1-based (default 1)
pageSize integer No (default 20) Entries per page (default 20)
isPositive boolean No Filter by sentiment: true for positive only, false for negative only; omit for both
pageId string No Optional page Id (Guid) to restrict the list to one page

list_portal_builds

List the portal builds, most recent first, with status, page count and duration. Read a failing build's log with get_portal_build. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation

manage_custom_domain

Put the portal on a customer-owned domain. Actions in order: 'set' registers the domain and returns the CNAME and TXT records to publish; 'verify' checks those records; 'provision_ssl' starts the managed certificate once verification passed and may return a further DCV TXT record to publish; 'check_health' re-runs DNS and certificate checks on demand; 'remove' detaches the domain again. Poll progress with get_custom_domain_status. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
action string Yes What to do: 'set', 'verify', 'provision_ssl', 'check_health' or 'remove'
domain string No The domain (e.g. 'docs.example.com') — required for 'set'

manage_portal

Operate the public documentation portal. Actions: 'update_settings' (feature toggles, SEO, custom scripts and CSS), 'update_appearance' (theme, colours, fonts, layout) and 'update_branding' (logo, favicon, footer) each take a JSON object in values with only the keys you want to change — read the current keys with get_portal_settings; 'set_subdomain' moves the portal to another {subdomain}.docs address; 'unpublish' disables the portal and deletes its files; 'undeploy_version' removes one version from the deployment; 'set_default_version' makes a deployed version the root URL target; 'set_version_visibility' switches a published version between 'internal' and 'public' (switching a deployed version to internal undeploys it); 'preview' queues a render of any version, including drafts — poll it with get_portal_preview; 'check_agent_readiness' queues an agent-readiness check (afdocs scorecard) of the published portal, limited per day — poll it with get_portal_agent_readiness. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
action string Yes What to do: 'update_settings', 'update_appearance', 'update_branding', 'set_subdomain', 'unpublish', 'undeploy_version', 'set_default_version', 'set_version_visibility', 'preview' or 'check_agent_readiness'
values string No JSON object with the fields to change — for the three update actions. Only the keys you pass are changed; unknown keys are rejected. Example: {"enableSearch": true, "siteTitle": "API Docs"}
subdomain string No Subdomain label — required for 'set_subdomain'
versionId string No The doc version Id (Guid) — required for 'undeploy_version', 'set_default_version', 'set_version_visibility' and 'preview'
visibility string No Visibility for 'set_version_visibility': 'internal' or 'public'
rowVersion string No Optional rowVersion (Base64) from list_documentations for optimistic concurrency on 'set_version_visibility'

upload_branding_asset

Upload a portal branding image into one of its fixed slots and point the portal at it. Send the file base64-encoded in contentBase64 (a data URL prefix is accepted); the MCP server is remote, so a local file path would not reach it. PNG, JPEG, SVG, GIF, WebP and ICO. Destructive: each slot holds one file, so uploading replaces whatever is in it. Size limits differ per slot — 256 KB favicon, 1 MB logos, 5 MB ogImage and backgrounds. Use this to fill a branding slot; to clear one again use delete_branding_asset. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
kind string Yes Which slot to fill: 'logo', 'logoDark', 'favicon', 'ogImage', 'backgroundImage' or 'backgroundImageDark'
contentBase64 string Yes The image file, base64-encoded

upload_custom_font

Upload a WOFF2 font file for the portal and use it for body text or for code. WOFF2 only, max 2 MB; send it base64-encoded in fontBase64 (the MCP server is remote, so a local file path would not reach it). Destructive: the portal holds one body font and one code font, so this replaces the current one. Requires project context.

Required scope: docs:manage-portal

Parameter Type Required Description
documentationId string Yes The public Id (Guid) of the documentation
fileName string Yes File name for the stored font — unsafe characters are replaced and a .woff2 extension is appended if missing. Unlike the other uploads this name is kept: it becomes part of the font URL.
fontBase64 string Yes The WOFF2 file, base64-encoded
isCodeFont boolean No (default false) True to use it as the code/monospace font, false (default) for body text