TryPost

Schedules and publishes social media posts through TryPost's hosted MCP server. Use when the user wants to draft, schedule, publish, preview, or analyze posts across Instagram, Fac…

TryPost

@trypost

Install

$ openclaw skills install @trypost/trypost

TryPost

TryPost schedules and publishes to 12 networks from one workspace. This plugin registers the hosted MCP server https://app.trypost.it/mcp/trypost. On first tool call the client opens a browser for OAuth (mcp:use). Do not put a Personal Access Token on the MCP URL — API keys are REST-only and return 403. Cloud MCP requires an active plan (402 if missing).

Docs: https://docs.trypost.it/ai/tools-reference App: https://app.trypost.it Site: https://trypost.it

Hard rules

1 — Use MCP tools, never invent IDs. Discover social_account_id, content_type, Pinterest board_id, and Discord channel_id from tools.

2 — create-post-tool always creates a draft. scheduled_at on create is stored on the draft and does not queue publishing. Call publish-post-tool to publish now or schedule.

3 — No media[] on create/update. Attach after create with attach-media-from-url-tool, attach-existing-asset-tool, or request-media-upload-tool + attach-media-from-upload-tool. There is no detach/remove-media tool.

4 — Required meta before publish (validated by publish-post-tool; missing values fail):

PlatformRequired platforms[].metaHow to resolve
TikTokprivacy_level"PUBLIC_TO_EVERYONE", "MUTUAL_FOLLOW_FRIENDS", "FOLLOWER_OF_CREATOR", "SELF_ONLY"
Pinterestboard_idlist-pinterest-boards-tool
Discordchannel_idlist-discord-channels-tool

5 — Call list-content-types-tool before choosing content_type. Honor requires_media, min_media_count, max_media_count, accept_*, accepts_gif / accepts_mov, forbids_mixed_media, and duration/size caps. There are 20 content types. There is no instagram_carousel / linkedin_carousel — carousels are instagram_feed / linkedin_post with multiple images or a LinkedIn PDF.

6 — Confirm destructive tools (publish-post-tool, delete-*, rotate-webhook-secret-tool) with the user before calling.

Core workflow

1. get-workspace-tool
2. list-social-accounts-tool
3. list-content-types-tool
4. list-pinterest-boards-tool / list-discord-channels-tool if needed
5. create-post-tool                   # draft + platforms + meta
6. attach media (URL / library / signed upload)
7. preview-post-tool
8. publish-post-tool                  # omit scheduled_at = now; ISO 8601 future = queue
9. get-post-metrics-tool              # after published

Prefer public URLs or the Asset Library. Use signed upload only for a local file with no public URL.

Authentication and roles

OAuth 2.1 + Dynamic Client Registration. First tool call opens the browser. Re-auth on 401. 403 with "MCP OAuth authorization required" means an API key was sent — remove it. 402 means the Cloud account has no active plan.

Workspace is bound to the OAuth grant. Switch workspace in the TryPost UI (Settings → MCP) and reconnect.

RoleCan
ViewerRead posts/accounts/workspace. Cannot create/update/publish, list assets, list boards/channels, or manage repurpose/webhooks/keys.
MemberPosts, media, labels, signatures, repurpose. Cannot toggle accounts, webhooks, or API keys.
Owner / AdminEverything, including toggle-social-account-tool, webhooks, and API keys.

Connect or disconnect networks in the TryPost app (Accounts). MCP can only list and toggle active/inactive.

Not in MCP

Do not invent tools for: connecting accounts, detaching media, duplicating a post, post templates, brand profile, Unsplash/Giphy, team invites, billing, in-app AI generation, or account-level analytics. Metrics are per published post via get-post-metrics-tool only. Signatures have no signature_id on create/update — append the text to content yourself.

Networks

list-social-accounts-tool returns connected accounts (id, platform, display_name, username, is_active, status). status is connected | disconnected | token_expired. Skip expired/disconnected accounts and tell the user to reconnect in the app (Accounts). Platform slugs:

SlugNetwork
instagramInstagram personal
instagram-facebookInstagram Business via Facebook Page (same content types as Instagram)
facebookFacebook Page (not a personal profile)
linkedinLinkedIn profile → linkedin_post
linkedin-pageLinkedIn Page → linkedin_page_post
xX
threadsThreads
tiktokTikTok
youtubeYouTube Shorts only
pinterestPinterest
blueskyBluesky
mastodonMastodon
telegramTelegram channel or group
discordDiscord server
NetworkContent typesMedia requiredNotes
Instagraminstagram_feed, instagram_reel, instagram_storyyesStories have no viewer-facing caption. Reels are video-only. Feed carousel = multiple images on instagram_feed.
Facebookfacebook_post, facebook_reel, facebook_storyreel/story yes; post noReels/stories are video-only.
LinkedInlinkedin_postnoImages XOR one video XOR one PDF. document_title for PDFs.
LinkedIn Pagelinkedin_page_postnoSame media rules as LinkedIn.
Xx_postnoMax 4 media. Links are defused at publish/preview.
Threadsthreads_postno
TikToktiktok_video, tiktok_photoyesprivacy_level required to publish. Video is video-only; photo is images (min 1).
YouTubeyoutube_shortyesVideo-only, max ~3 min. content is required. Title = first line of content (hard cap ~100).
Pinterestpinterest_pin, pinterest_video_pin, pinterest_carouselyesboard_id required. Pin description = post content. Carousel needs ≥2 images.
Blueskybluesky_postnoNo mixed image+video. Max 4 media.
Mastodonmastodon_postnoMax 4 media.
Telegramtelegram_postnoHTML sanitization at preview/publish.
Discorddiscord_messagenochannel_id required. Channels are text/announcement the bot can post to.

Always confirm live limits with list-content-types-tool. Hard caps vary a lot (X 280, Bluesky 300, Threads/Mastodon 500, YouTube ~100, LinkedIn 3000) — preview-post-tool is the check. GIFs stay GIFs only on X, Bluesky, Mastodon, Discord, and Telegram.

Posts

ToolNotes
list-posts-toolNewest scheduled_at first. Filters: status (draft | scheduled | published | failed), search (content substring), limit (1–100, default 50). published includes partially_published. No filter for publishing. No page.
get-post-toolFull post: platforms (with meta and post_platform.id), media, labels. Status may be draft, scheduled, publishing, published, partially_published, or failed.
create-post-toolOptional content (max 10 000), optional scheduled_at, label_ids[], platforms[] (social_account_id + content_type + optional meta). Platforms may be omitted (empty draft). Inactive accounts and mismatched types are rejected.
update-post-toolpost_id plus fields to change. Platform entries use id (the post_platform UUID). Platforms not listed are disabled. meta is merged; send null to clear a key. label_ids[] replaces all labels. status may be draft (unschedule) or scheduled only. Setting scheduled validates media vs every enabled type. Cannot edit a finalized / publishing post.
publish-post-toolNeeds ≥1 enabled platform. Validates required meta and media vs each content type.
preview-post-toolSame sanitization as publish (LinkedIn Unicode bold, Telegram HTML, X link defusing). Nothing is truncated — compare sanitized_length vs max_content_length.
delete-post-toolPermanent.
get-post-metrics-toolEngagement on a published post. Platforms without post-level metrics return unsupported.

Media

Attach only to draft or scheduled posts. Published / partially published / failed / publishing are rejected.

ToolWhen
attach-media-from-url-toolPublic HTTP(S) URLs. urls: [{url, alt?}], max 10. JPEG/PNG/GIF/WebP, MP4/MOV, PDF. Returns attached_count and failed_urls.
list-assets-toolWorkspace library (not logos/avatars). Filters: search (filename), type (image | video | document), limit (1–100, default 50). Returns has_more. No page.
get-asset-toolOne library item by asset_id.
attach-existing-asset-toolReuse a library item (post_id, asset_id, optional alt). Does not copy bytes. Same pair again does not duplicate.
request-media-upload-toolSigned one-shot POST URL (~15 min). Returns upload_token, upload_url, field_name (media), max_bytes, max_bytes_by_type.
attach-media-from-upload-toolAfter the file is POSTed: post_id + upload_token + optional alt.

Image alt lives on media[].meta.alt_text, set via the attach tools' alt field (ignored for video/PDF). There is no MCP tool to remove an attached file.

Local upload: curl -F media=@./clip.mp4 "$UPLOAD_URL" then attach-media-from-upload-tool.

Per-platform meta

Unknown keys are dropped. Enums are exact JSON strings.

PlatformOptionalRequired on publish
Instagram / Facebookaspect_ratio: "1:1" | "4:5" | "16:9" | "original"—
LinkedIn / LinkedIn Pagedocument_title (PDF, max 300)—
TikTokallow_comments, allow_duet, allow_stitch, auto_add_music, is_aigc, disclose, brand_content_toggle, brand_organic_toggleprivacy_level
Pinteresttitle (max 100), link (http/https). Description = post content.board_id
Discordchannel_name, mentions ([{token,label}]), embeds (max 10: {title,description,url,image,color})channel_id

X, Threads, YouTube, Bluesky, Mastodon, and Telegram have no meta keys.

Accounts, workspace, labels, signatures

ToolNotes
list-social-accounts-toolConnected accounts for this workspace.
toggle-social-account-toolActive/inactive. Owner/Admin. Inactive accounts are skipped at publish and rejected on create/update.
list-pinterest-boards-toolaccount_id → { boards: [{ id, name }], truncated }. Use id as meta.board_id. Member+.
list-discord-channels-toolaccount_id → { channels: [{ id, name }] }. Use id as meta.channel_id. Member+.
list-content-types-toolLive catalog: 20 types, lengths, default type, media caps per platform.
get-workspace-toolCurrent workspace (id, name, timestamps).
list-labels-toolColor tags.
create-label-toolname, color (#RRGGBB).
update-label-toollabel_id, name, color.
delete-label-toolDetaches the label from posts.
list-signatures-toolReusable hashtag/CTA blocks.
create-signature-toolname, content.
update-signature-toolsignature_id, name, content.
delete-signature-toolPermanent.

To apply a signature: list-signatures-tool, then put that content at the end of the post content on create or update.

Repurpose

Watches Instagram or Facebook videos posted outside TryPost and replicates them. Create as draft → destinations (video content_type + required destination meta) → activate-repurpose-tool. Only videos published after activate are copied. Videos already published through TryPost are skipped. Owner/Admin/Member.

ToolNotes
list-repurpose-source-formats-toolWatchable formats: reel, video, story.
list-repurposes-toolNewest first. Optional page. 25 per page.
get-repurpose-toolOne row: source, destinations, status, last poll error.
create-repurpose-toolsource_social_account_id (Instagram/Facebook), optional source_format (default reel), publish_mode (publish | draft), destinations[]. One source+format per workspace.
update-repurpose-toolChanging source or format resets the watermark.
list-repurpose-items-toolActivity for one row. Look here when a video was not replicated.
activate-repurpose-toolDraft or disabled only. Needs a usable source, one destination, and required dest meta. Stamps watermark to now.
pause-repurpose-toolKeeps watermark.
resume-repurpose-toolUser pause keeps watermark; system pause (paused_reason set) starts from now.
disable-repurpose-toolClears watermark.
delete-repurpose-toolStops polling. Calendar posts it already created stay.

Webhooks

Outgoing workspace webhooks. Owner/Admin. Events: post.created, post.scheduled, post.unscheduled, post.published, post.partially_published, post.failed, post.deleted. No wildcard, no publishing event. HMAC-SHA256 of the raw body in X-Webhook-Signature. Pauses after 5 consecutive failures. Status is enabled | disabled | paused (paused is set by TryPost, not by update).

ToolNotes
list-webhooks-toolNo signing secrets.
get-webhook-toolIncludes signing_secret.
create-webhook-toolendpoint (public http/https) + events[]. Created enabled. Secret returned once. Does not ping.
update-webhook-toolendpoint, events, and/or status (enabled | disabled — not paused). Re-enabling a paused webhook resets failure count.
send-webhook-test-toolSigned webhook.test ping. No delivery log. Works even if paused/disabled.
rotate-webhook-secret-toolPrevious secret stops immediately.
list-webhook-logs-toolNewest first. Optional limit (1–100, default 50).
replay-webhook-log-toolQueues a new signed delivery (replayed: true = queued, not delivered). Does not re-enable a paused webhook.
delete-webhook-toolDeletes the webhook and its logs.

API keys

These MCP tools manage Personal Access Tokens for the REST API. Never send that token to /mcp/trypost. Owner/Admin.

ToolNotes
list-api-keys-toolMetadata only. OAuth session tokens are excluded.
create-api-key-toolname, optional expires_at. Returns token once (REST calls this plain_token).
delete-api-key-toolImmediate. Cannot revoke the current MCP OAuth session.

Patterns

Draft for LinkedIn + X

  1. list-social-accounts-tool → LinkedIn and X ids
  2. create-post-tool with content and both platforms
  3. Optional media attach
  4. preview-post-tool — if X is over max_content_length, shorten via update-post-tool
  5. publish-post-tool with scheduled_at, or omit for now

TikTok video

  1. Account + tiktok_video
  2. Create with meta.privacy_level: "PUBLIC_TO_EVERYONE" unless the user asked otherwise
  3. Attach video → preview → publish

Pinterest / Discord

Resolve board_id or channel_id first, set it on create, then attach required media (Pinterest) and publish.

Signature

list-signatures-tool → append the chosen block to post content → preview (length may overflow X / Threads / YouTube).

Unschedule

update-post-tool with status: "draft".

Local file

  1. Create draft
  2. request-media-upload-tool → user runs curl -F media=@file "$upload_url"
  3. attach-media-from-upload-tool → preview → publish

Gotchas

  1. API key on MCP → 403. OAuth only.
  2. Create does not publish. Always publish-post-tool.
  3. scheduled_at on create ≠ scheduled. Still a draft until publish.
  4. Update platforms: omit an entry and it is disabled. Resend every platform you want enabled.
  5. update-post-tool uses post_platform.id, not social_account_id.
  6. TikTok / Pinterest / Discord fail publish without required meta.
  7. Type must match the account (no x_post on LinkedIn; LinkedIn Page is linkedin_page_post).
  8. Inactive (is_active=false) or token_expired / disconnected accounts fail publish — reconnect in the app.
  9. Media type must be accepted by every enabled platform.
  10. Bluesky and LinkedIn forbid mixed image+video (or PDF) on one post.
  11. Stories have no viewer-facing caption.
  12. Preview does not truncate — you must shorten over-limit text.
  13. Cloud MCP needs an active plan (402).
  14. YouTube in TryPost is Shorts only (youtube_short). Title is the first line of content.
  15. Facebook is a Page. Instagram Business is instagram-facebook, not a separate content-type family.
  16. No MCP tool removes media or connects a new account.
  17. Members cannot manage webhooks, API keys, or toggle accounts.

Top skills in this category

Playwright MCP

@spiceman161

Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.

16047k

YouTube

@byungkyu

YouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a YouTube connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a YouTube action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with YouTube examples; they add no YouTube capability - YouTube is not an event source, a trigger cannot read YouTube data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).

14529k

Peekaboo

@steipete

Capture and automate macOS UI with the Peekaboo CLI.

8532k

google-slides

@byungkyu

Google Slides API integration with managed OAuth. Create presentations, add slides, insert content, and manage slide formatting. Use this skill when users want to interact with Google Slides. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a Google Slides connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a Google Slides action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with Google Slides examples; they add no Google Slides capability - Google Slides is not an event source, a trigger cannot read Google Slides data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).

3420k

百度网盘

@wscats

百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除(高风险,需用户确认)。 同时支持 Agent 记忆备份/恢复(kimiclaw/maxclaw/qclaw/openclaw)。 TRIGGER: 用户消息明确提及"百...

1923k