get_portal_design
Read a project's portal design: the document members see, the draft being edited, when each last moved, and a ten-minute preview address.
Read the look of a project's portal page as two documents: published, what members see, and draft, what is being edited, or null while nothing is drafted. Every key of the fourteen sections comes back in the stored shape update_portal_design takes, so a design read here can be changed and sent back; preview_url is a signed portal address that shows the draft for ten minutes from this read, the published design without one.
Use it before a change to see what is there, and after one to confirm the draft; has_draft and draft_updated_at tell whether anything waits to be published.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
project_id*stringUUID of the project whose portal design to read.
What it returns
{ "data": { "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "published": { "preset": "classic", "color_mode": "light", "accent": "#f43f5e", "accent_secondary": null, "background": "#e4e4e7", "grid": true, "surface": "#ffffff", "text": "#27272a", "heading": "#18181b", "muted": "#71717a", "tagline": "Weekly research notes and the members lounge", "font_display": "asap-condensed", "font_body": "inter", "plans_title": null, "featured_plan_id": null, "seo_indexable": true, "default_locale": null, "locales": ["en", "fr", "es", "it", "hi", "bn", "de", "pt", "tr", "si"] }, "draft": null, "has_draft": false, "draft_updated_at": null, "published_at": "2026-10-20T09:30:00+00:00", "preview_url": "https://my.subscriby.net/research-premium?preview=7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13&expires=1793030400&signature=4b8f…" }}The documents carry every key of the design, the same object the Portal Design API answers; the example shows a few of them.
How it fails
RESOURCE_NOT_FOUNDproject_id is unknown, or the project belongs to a team outside the token's scope.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project:view.
How is this guide?
Last updated on