Help us improve
Share bugs, ideas, or general feedback.
From Ayrshare - Unified Social Media API for AI Agents
Drafts social posts by learning a brand's voice from their past posts, then writes platform-appropriate copy and validates it. For when a user wants on-brand content rather than generic copy.
npx claudepluginhub ayrshare/ayrshare-social-media-api-claude-plugin --plugin ayrshareHow this skill is triggered — by the user, by Claude, or both
Slash command
/ayrshare:draft-in-brand-voiceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A workflow skill, not a single tool. It turns "write me a post" into "write me a post that sounds like **this** brand" by grounding the draft in the profile's actual posting history before a word is written. The wedge: an agent that learns voice from real past posts beats one that guesses a tone from the topic alone.
Rewrites social content to match the authentic voice of each platform — LinkedIn, X, TikTok, Instagram, Threads — avoiding cross-post tone mismatches.
Creates platform-native content for X, LinkedIn, TikTok, YouTube, newsletters, and multi-platform campaigns. Use when writing social posts, threads, scripts, or content calendars from source material.
Guides creation of engaging social media content across platforms with audience analysis, brand voice, and posting strategies.
Share bugs, ideas, or general feedback.
A workflow skill, not a single tool. It turns "write me a post" into "write me a post that sounds like this brand" by grounding the draft in the profile's actual posting history before a word is written. The wedge: an agent that learns voice from real past posts beats one that guesses a tone from the topic alone.
This skill drafts only. It never publishes. The output is copy for the user to review; publishing is the separate, explicit validate_post → confirm → create_post step documented in ../post/SKILL.md.
mcp__ayrshare__get_platform_history — native posts on a platform, including ones not made through Ayrshare. This is the broadest, most honest sample of how the brand actually writes. Start here for voice. (See ../history/SKILL.md.)mcp__ayrshare__get_post_history — posts sent via Ayrshare (with status/notes). Useful for recent voice plus any internal notes already attached.mcp__ayrshare__get_post_analytics / mcp__ayrshare__get_post_analytics_by_social_id — optional, but this is the "optimize on history" half: pull metrics on past posts to see which voice/format actually performed, and bias the draft toward that. (See ../analytics/SKILL.md.)mcp__ayrshare__generate_post — optional AI drafting from a topic/brief. Brief it with the voice you observed; it returns draft text only and never publishes. (See ../generate/SKILL.md.)mcp__ayrshare__validate_post — dry-run the finished draft against each target platform's rules before you hand it back as "ready to post."These are profile-scoped: choose the profile with the optional profileKey argument on each call or the connection's Profile-Key header (the argument wins when both are set). (generate_post is the exception: it takes no profileKey argument; see ../generate/SKILL.md.) The voice you match is the voice of whichever profile you target, so settle that first and use it consistently across the calls.
profileKey argument on each call, or set the Profile-Key connection header (see ../getting-started/SKILL.md); if the user has several profiles and none is given, ask which client this is for rather than guessing.mcp__ayrshare__get_platform_history for each target platform (and/or mcp__ayrshare__get_post_history for recent Ayrshare-sent posts). Aim for a representative recent set, not one post.mcp__ayrshare__get_post_analytics for the Ayrshare Post IDs from get_post_history, and mcp__ayrshare__get_post_analytics_by_social_id for the native Social Post IDs surfaced by get_platform_history (native posts have no Ayrshare Post ID). Weight the draft toward the formats/voice that engaged best. This is the "train on voice + optimize on history" pairing — say so to the user when you use it.mcp__ayrshare__generate_post with an explicit voice description (tone, length, emoji/hashtag rules) and refine its output. Produce a platform-appropriate variant for each network rather than one string posted everywhere.mcp__ayrshare__validate_post on each variant to catch platform-rule issues (length, media, format) before calling it ready. Present the drafts for review. To publish, continue with the post pipeline in ../post/SKILL.md (validate_post → confirm → create_post) — this skill stops at the validated draft.get_platform_history is the better voice sample because it includes native posts not made through Ayrshare. get_post_history is narrower (Ayrshare-sent only) but carries status and notes. Use both when you can.generate_post is a drafting aid, not a voice oracle. It generates from the brief you give it. The brand-voice matching is your analysis of the history shaping that brief (and your edits afterward) — feeding it only the topic produces generic copy. It returns text only; it never publishes.validate_post is a dry run; running it on the final variants catches over-limit text or unsupported media before the user tries to post.create_post from here. Drafting and publishing are deliberately separate so the user reviews on-brand copy before anything goes live.profileKey argument (per call) or the Profile-Key header. Drafting for the wrong client is an auth-layer mistake, not a content one, so settle the profile first and use it consistently. (generate_post takes no profileKey argument; the history/analytics/validate tools do.)generate_post output is not pre-validated against platform rules. Run validate_post before treating it as postable.mcp__ayrshare__explain_error, then surface it — don't loop. A missing TikTok link (for recommend_hashtags), unreachable media, or an empty history won't fix itself on retry. (Mirrors the global retry-safety rule in ../getting-started/SKILL.md.)