publish_portal_design
Make a project's drafted portal design the one members see; the portal, the embed and the social card paint with it on their next render.
The one moment members see a change. The draft becomes the published design, the portal page, the plan embed and the social card paint with it on their next render, and project.design_published is emitted naming the sections that changed against the design published before. Destructive, so look at the draft first, through get_portal_design or its preview_url.
A project with nothing drafted is refused rather than silently republished.
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.
Fires one event
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it.
Arguments
project_id*stringUUID of the project whose drafted portal design to publish.
What it returns
{ "data": { "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "published": { "preset": "midnight", "accent": "#22d3ee", "font_display": "space-grotesk" }, "draft": null, "has_draft": false, "draft_updated_at": null, "published_at": "2026-10-26T16:40:08+00:00", "preview_url": "https://my.subscriby.net/research-premium?preview=7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13&expires=1793032000&signature=9c1d…" }}The design with no draft left, the same object get_portal_design returns; published carries every key, the example shows a few.
How it fails
VALIDATION_FAILEDnothing is drafted.
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:update, or its owner's role on the project's team may not change the project.
How is this guide?
Last updated on