Recommended workflow
To create and publish a post end-to-end:list-social-accounts-tool— discover connected accountslist-content-types-tool— discover validcontent_typeper platform with limitscreate-post-tool— create the draft with content + chosen platformsattach-media-from-url-tool(optional) — attach images or videos from public URLsrequest-media-upload-tool+attach-media-from-upload-tool(optional) — upload a local file when no public URL existspreview-post-tool(optional) — see how each platform will render before publishingpublish-post-tool— publish immediately or schedule for a future timeget-post-metrics-tool(after published) — fetch engagement metrics
Posts
| Tool | Description |
|---|---|
| list-posts-tool | List posts for the current workspace, ordered by scheduled date (newest first). Supports filters: status (draft | scheduled | published | failed), search (case-insensitive substring on content), limit (1–100, default 50). |
| get-post-tool | Get a specific post by ID with all its platform entries, media, and labels. |
| create-post-tool | Create a draft post. Accepts content, scheduled_at (ISO 8601), label_ids[], and platforms[] — each entry has social_account_id + content_type. Cross-validates that the content_type matches the account’s platform. |
| update-post-tool | Update a draft: content, scheduled_at, status (draft | scheduled), labels, and which platforms are enabled. Cannot edit a published post. |
| publish-post-tool | Publish a draft — immediately or scheduled for a future time. Requires at least one enabled platform. Marked IsDestructive so the AI confirms with you first. |
| preview-post-tool | Preview how the post will render on each enabled platform — applies platform-specific sanitization (length truncation, etc.) without publishing. |
| attach-media-from-url-tool | Download images or videos from public URLs and attach them to a post. Up to 10 URLs per call. Per-file size caps: 10 MB for images, 1 GB for videos. Allowed types are intersected with the enabled platforms (e.g. video rejected if no enabled platform supports it). |
| request-media-upload-tool | Issue a one-shot signed POST URL so the user can upload a local file to their workspace. No input — workspace is resolved from the MCP session. Returns upload_url, upload_token, expires_at (ISO 8601, 15-minute TTL by default), max_bytes (50 MB default), and field_name. The agent hands the URL to the user (e.g. as a curl -F media=@path/to/file '{upload_url}' command) or to its client. Use when no public URL exists — otherwise prefer attach-media-from-url-tool. |
| attach-media-from-upload-tool | Attach a Media uploaded via request-media-upload-tool to a post. Takes post_id + upload_token. The Media is resolved by the token within the current workspace, then appended to the post. Rejects if the media type isn’t accepted by any enabled platform. |
| delete-post-tool | Delete a post permanently. Marked IsDestructive. |
| get-post-metrics-tool | Fetch engagement metrics (likes, comments, shares, etc.) for a published post across every platform. Returns unsupported entries for platforms that don’t expose post-level metrics. |
Platforms (read-only)
| Tool | Description |
|---|---|
| list-content-types-tool | List valid content_type values per social platform plus their constraints — max_content_length, recommended_content_length, max_media_count, requires_media, default_content_type, allowed_media_types. Use this before create-post-tool / update-post-tool so the AI doesn’t guess. |
Signatures
| Tool | Description |
|---|---|
| list-signatures-tool | List all signatures for the current workspace. Signatures are reusable text blocks (hashtags, links, custom text) that can be appended to posts. |
| create-signature-tool | Create a new signature with a name and content (hashtags, links, custom text — anything you want to append to posts). |
| update-signature-tool | Update a signature’s name or content. |
| delete-signature-tool | Delete a signature. Marked IsDestructive. |
Labels
| Tool | Description |
|---|---|
| list-labels-tool | List all labels for the current workspace. Each label has a name and hex color. |
| create-label-tool | Create a new label with a name and hex color (e.g. #FF5733). |
| update-label-tool | Update a label’s name or color. |
| delete-label-tool | Delete a label. Detaches it from all posts that referenced it. Marked IsDestructive. |
Social accounts
| Tool | Description |
|---|---|
| list-social-accounts-tool | List all connected social accounts for the current workspace (LinkedIn, X, Instagram, etc.). Returns id, platform, display_name, username, is_active, status. |
| toggle-social-account-tool | Toggle a social account active/inactive. When inactive, the account is skipped during publishing. |
Workspace
| Tool | Description |
|---|---|
| get-workspace-tool | Get the current workspace details (id, name, timestamps). |
API keys
| Tool | Description |
|---|---|
| list-api-keys-tool | List Personal Access Tokens for the current workspace. Returns metadata only — the secret token value is shown only once at creation. OAuth-flow tokens (e.g. ChatGPT MCP sessions) are excluded. |
| create-api-key-tool | Create a new Personal Access Token. The plain token is returned once — store it immediately, it cannot be retrieved later. |
| delete-api-key-tool | Revoke a Personal Access Token. The current OAuth session token cannot be revoked through this tool. Marked IsDestructive. |
Notes
- Workspace scoping — every tool operates on the user’s currently-selected workspace. To act on a different workspace, switch it in the TryPost UI (or, for personal API tokens, create a new key in that workspace).
- Cross validation —
create-post-toolandupdate-post-toolreject mismatched combos (e.g.content_type=x_poston a LinkedIn account). Inactive social accounts are also rejected at validation time. - Destructive tools — operations that delete data or publish to the world (
publish-post-tool,delete-*) are markedIsDestructive, which lets the AI client (ChatGPT, Claude Desktop, etc.) prompt you for confirmation before executing. - Local-file uploads —
request-media-upload-toolreturns a single-use signed URL valid for 15 minutes, capped at 50 MB. The underlying endpoint is documented atPOST /uploads/{token}. After upload, callattach-media-from-upload-toolwith the sameupload_tokento attach the resulting Media to a post.

