Skip to main content
A platform is a service Studio publishes to. One OAuth connection per platform per studio covers everything Studio posts there.

Where limits bite

  • Draft time — content is capped at 10,000 characters regardless of platform. This is a storage guard, not a platform rule.
  • Publish and schedule time — the per-platform body limit applies. Over it, the tool fails with content exceeds 3000 characters for linkedin.
  • Attach time — per-kind counts and byte sizes apply (see Assets).
  • Dispatch time — a scheduled post is re-validated when it actually fires, so a connection revoked after scheduling surfaces as a failed post, not a silent no-op.
A 3,000-character draft targeting both LinkedIn and X publishes fine to LinkedIn and is rejected for X. Write per platform, or keep the draft under the tightest limit of its targets.

Connecting

Connections are per studio, not per user, and require owner or admin:
connect_platform returns a URL to open in a browser. After authorizing, list_connections shows the platform with its authorUrn (the account posts are attributed to) and connectedAt. Access tokens are refreshed automatically before publishing when the platform supports refresh. A token that cannot be refreshed surfaces as token_expired — reconnect the platform.

Adding a platform

New platforms land as one file under apps/api/src/platforms/ in the Studio repo. No MCP tool changes: connect_platform, publish_post, and schedule_post all dispatch through the same connector registry, so a new platform id appears in the tool schemas the moment it is registered.