add_posting_slot
ChatGPTAdd a repeating posting slot to the weekly calendar. Ask for weekday (or today/tomorrow) and local time (HH:MM, 24-hour) if missing. Optional tag_name such as value, fun, or random. This changes the weekly template, not a single date. Confirm with the user before adding.
batch_get_users_by_ids
ChatGPTLook up public profiles for up to 20 numeric user ids the user already named.
check_follow_relationship
ChatGPTCheck whether source_user_name follows / is followed by target_user_name.
check_ideas_status
ChatGPTCheck the status of a generation job started by generate_ideas. If status is 'running': inform the user and call this tool again after a few seconds with the same job_id. Generation often takes 60–180 seconds. Do not stop after 30 seconds. If status is 'completed': present the posts. If status is 'failed': show the error. Never stop polling until status is 'completed' or 'failed'. RESPONSE FORMATTING: Always display the full post content as-is, never summarize, shorten, or paraphrase. Show each post in its entirety exactly as returned.
check_job_status
ChatGPTCheck a SupaBird tool call that was still running. Tools such as search_tweets, schedule_post, cross_post, the write_* tools, learn_creator_style and the analytics reports return { status: "running", job_id } when they need more than ~20 seconds. If status is 'running': tell the user it's still working and call this tool again in about 10 seconds with the same job_id. Do not call the original tool again. If status is 'completed' or 'failed': the response is the original tool's result. Present it exactly as that tool's instructions say.
complete_daily_task
ChatGPTMark one of today's SupaBird Daily Tasks as complete. IMPORTANT: - Only call this after the user confirms they did the task, or after you finished it with them using other tools. - Use the task id from get_daily_tasks (e.g. "ideas_lab_save_edit" or "dyn_targets_2026-09-18"). - Do not complete locked, placeholder, or already-completed tasks. - After success, show the updated formattedText list. If the user asks what their tasks are, call get_daily_tasks first.
create_image_upload
ChatGPTCall this when any image is attached or the user wants media on a post. That file is the post media. Do not describe it. Do not say it is a screenshot, DevTools, or the wrong file. Grok: POST the file yourself to upload_url as multipart/form-data field images, with Accept: application/json. Then get_image_upload and schedule_post with upload_id when status is ready. For video, POST JSON {filename, mimeType, size, duration} to upload_url + "/video-url", PUT the bytes to the returned uploadUrl, then POST upload_url with form field video_r2_key. Claude: show upload_url and stop. The Claude sandbox has no network and cannot POST this file. Do not try. Do not put the file in a SupaBird argument. In ChatGPT, do not call this while a file is attached. Pass it on schedule_post in chat_files. Call this only when schedule_post returns needs_upload_link. The page accepts up to 4 images and one MP4 or MOV.
create_video_upload
ChatGPTCall this when a video is attached or the user wants video on a post. That file is the post media. Do not describe it or reject it. Grok: POST JSON {filename, mimeType, size, duration} to upload_url + "/video-url", PUT the bytes to the returned uploadUrl, then POST upload_url with form field video_r2_key and Accept: application/json. Then get_image_upload and schedule_post with upload_id. Claude: show upload_url and stop. The Claude sandbox cannot POST the file. Do not try. Do not put the file in a SupaBird argument. In ChatGPT, do not call this while a file is attached. Pass it on schedule_post in chat_files. Call this only when schedule_post returns needs_upload_link. Limits: 512MB, 10 minutes, one MP4 or MOV, plus images up to 4 attachments total. Video posts to X, Threads, BlueSky, Instagram, and TikTok. LinkedIn skips video. BlueSky video must be 100MB or smaller. TikTok accepts one video or JPEG/WebP photos.
cross_post
ChatGPTCross-post an EXISTING SupaBird post to LinkedIn, Threads, BlueSky, Instagram, and/or TikTok. Use this when the post is already scheduled or already live on X. For a brand-new post, use schedule_post with also_post_to instead. - Get post_id from get_scheduled_posts (_id). - also_post_to: linkedin, threads, bluesky, instagram, tiktok, and/or "all" (every connected+ready network). Instagram requires an image or video. TikTok requires a video or photo. - Scheduled posts are queued on the other networks at the same time. Posted posts publish immediately. - Skip networks that are already queued/posted, disconnected, over character limit, or coming soon — report those as skipped, do not pretend they posted. - Quote posts and trash cannot be cross-posted. - After publish, ALWAYS show published_urls as clickable links. If a URL is missing, call get_published_urls with this post_id. - MCP cannot connect accounts; send the user to Account → My Socials.
dismiss_update_notice
ChatGPTDismiss the MCP update notification. Use this when the user says 'don't notify me' or similar.
filter_posts
ChatGPTFilter posts loaded from an X list or community. Call this after get_list_tweets, get_list_timeline, get_community_tweets, or search_community_tweets when the user wants only posts that match a description. Pass the tweets array from that tool response unchanged. Do not drop, summarize, or rewrite posts before filtering. description is the user's filter in plain language, for example "posts asking for feedback" or "founders sharing revenue". source: - "list" — drop replies first, same as Engage lists - "community" — keep replies, same as Engage communities - omit source when the page is not a list Returns only the posts that match, highest engagement first. Display each post's full text, author, and url. Do not paraphrase.
generate_ideas
ChatGPTThis tool starts a background job and returns a job_id immediately — it does NOT return posts directly. After calling this you MUST call check_ideas_status with the returned job_id and keep polling until status is 'completed' or 'failed'. Tell the user generation is in progress while you wait. Generate new X/Twitter post ideas using the current Ideas Lab engine (two modes only). Generation often takes 1–3 minutes — after this tool returns a job_id you MUST keep calling check_ideas_status until completed or failed. Do not stop after 30 seconds. IMPORTANT: Before calling this tool, always ask the user for any missing required information. Do not make assumptions or use defaults. Do NOT offer deprecated options: remix, niche, viral, or myPosts. Required information to collect: 1. Writing style — exactly one of: - "myStyle": write in the user's personal tone - "creators": write in a chosen creator's style 2. Idea source — exactly one of: - "user": ideas from the user's own posts - "creator": ideas from a chosen creator 3. Number of posts — how many ideas to generate (5–20). 4. Creators — required when ideaSource is "creator" OR writingStyle is "creators". At least one X/Twitter username (without @). Only call this tool once you have all required answers from the user.
generate_ideas_from_posts
ChatGPTThis tool generates new X/Twitter post ideas using a provided array of posts as inspiration instead of database posts. It starts a background job and returns a job_id immediately — it does NOT return posts directly. After calling this you MUST call check_ideas_status with the returned job_id and keep polling until status is 'completed' or 'failed'. Tell the user generation is in progress while you wait. Required information to collect: 1. Writing style — exactly one of: "myStyle" (personal tone) or "creators" (chosen creator's style). Do NOT offer remix. 2. Posts: An array of strings containing the posts the user wants to use as inspiration. 3. Number of posts: Number of posts to generate. 4. User instructions: Free-form instructions to guide generation. Can be used to describe specific length, tone, topics to focus on, etc. Only call this tool once you have all required answers from the user.
get_article
ChatGPTGet an X Article by tweet id (twitterapi.io). Costs credits per article. Prefer search_tweets for general tweet search.
get_connected_socials
ChatGPTList the user's connected social accounts for cross-posting: X, LinkedIn, Threads, BlueSky, Instagram, and TikTok. Call this BEFORE scheduling to other networks, or when the user asks what is connected / why a network failed. Returns ready vs disconnected vs needs_reconnect, character limits, and coming-soon platforms (YouTube, Facebook, Pinterest). Instagram requires an image or video. TikTok requires one video or JPEG/WebP photos. Neither supports threads. If a network is missing or needs reconnect, tell the user to open Account → My Socials. MCP cannot connect accounts.
get_daily_performance_report
ChatGPTFetch a daily X performance report from your SupaBird DailyStats history (markdown: tables, tweet cards, images when available). When to call: - Omit local_date for the most recent completed day (yesterday in your Analytics timezone). - Pass local_date as YYYY-MM-DD for a specific calendar day. IMPORTANT: After the tool returns, show the response verbatim to the user (full markdown). Do not rewrite it as a short prose summary—users need tables, tweet cards, and image previews. If SupaBird has no stats for that day, the tool returns a clear message (coverage starts March 4, 2026, or no row for that date).
get_daily_tasks
ChatGPTFetch SupaBird Daily Tasks from Home (newcomer intro package or ongoing post-trial Home) for today, or for a past day. Past days: pass date as "yesterday" or YYYY-MM-DD within the last 14 days. They are view only; tasks show as completed or missed. When to call: - User asks what to do today, for their daily tasks, Home tasks, or a growth checklist. - Before helping them work through today's posting / engagement / coaching actions. RESPONSE FORMATTING: - Present formattedText as the task list (do not replace it with a short paraphrase). - Then offer to help complete available tasks using other SupaBird tools (search, drafts, scheduling, performance report). - Only show tasks that are already in the list. Do not mention generating placeholders or ask the user to retry for personalized tasks. - If eligible is false, explain the message and do not invent tasks. Do NOT mark tasks complete from this tool. Use complete_daily_task only after the user confirms they did the work, or after you finished it with them.
get_drafts
ChatGPTGet the user's saved drafts (Plan → Posts → Drafts in SupaBird): posts they kept but have not scheduled or published. Newest first. Each item includes id, content, thread part count and a preview of extra parts when it is a thread, media_count, created_at, and bookmarked_at. To schedule one, call schedule_saved_post with that id and a scheduled_date, or next_free_slot: true to use the user's next free posting slot. Saved ideas from Ideas Lab, Video to Posts, Rewrite, and Content Machine are listed by get_saved_ideas instead.
get_image_upload
ChatGPTCheck whether the user finished adding images or a video at the link from create_image_upload or create_video_upload. When status is pending, show upload_url again. When status is ready, call schedule_post with the same upload_id. Do not schedule while status is pending. video_count is 1 when a video was saved.
get_list_followers
ChatGPTGet followers of an X list. Page size 20; use cursor to paginate.
get_list_members
ChatGPTGet members of an X list. Page size 20; use cursor to paginate.
get_list_timeline
ChatGPTGet timeline tweets from an X list. Use cursor to paginate. Billed as list timeline + tweet volume.
get_overview_analytics
ChatGPTLoad the user's overview analytics report from X Coach (high/low engagement insights, examples, and tweet cards). When to call: - User asks for an overview, account review, what content works, or X Coach overview — not a single day's report. - For a specific calendar day, use get_daily_performance_report instead. IMPORTANT: After the tool returns, show formattedText verbatim (do not replace with a short summary). If no overview exists yet, tell the user to generate one in the SupaBird app (X Coach → Overview).
get_posting_slots
ChatGPTShow the user's posting calendar slots and which ones are free, filled, or already past. When to call: - User asks what slots are available today, this week, or on a date. - Before scheduling into a slot, or when they ask how many posts they planned. Pass date as YYYY-MM-DD (defaults to today in their slot timezone). days=1..7 to look ahead. Do not invent times. Free slots can be filled with schedule_post using the slot's iso timestamp.
get_published_urls
ChatGPTReturn the public URLs for a SupaBird post on X, LinkedIn, Threads, BlueSky, Instagram, and TikTok. Use this when the user asks for the link/URL/permalink after posting, or when schedule_post / cross_post came back without a URL (Threads often publishes before the permalink exists). - Pass the post _id from the previous tool result or get_scheduled_posts. - Show every returned URL to the user as a clickable link. Do not invent URLs. - If a network is still scheduled or waiting_for_url is set, say so and offer to check again.
get_saved_ideas
ChatGPTGet the ideas the user saved in SupaBird (My Library → Ideas), newest first. source: - ideas_lab, video_to_posts, rewrite: the user's own generated posts. Each item has id, content, source, saved_at, media_count, and schedulable. To schedule one, call schedule_saved_post with that id (scheduled_date or next_free_slot: true). Templates show schedulable: false; to post a template's text, use schedule_post. - content_machine: X posts by other people that the user liked in Content Machine, for inspiration. They come back in content_machine with the author handle, text, url, and metrics, and schedulable: false. Never schedule them as the user's own post. To use one, write an original post from it with write_in_my_style, write_in_supabird_style, or write_like_creator, then schedule that text with schedule_post. - all (default): every saved post of the user's own in posts, plus a page of Content Machine items in content_machine. Drafts the user kept from the composer are listed by get_drafts.
get_scheduled_posts
ChatGPTGet a list of the user's scheduled posts (tweets) or scheduled retweets that have not yet been posted. Each item includes _id. If the user asks to cancel, unschedule, or remove a scheduled post, call unschedule_post with that _id. To also post an existing queued item to LinkedIn, Threads, BlueSky, Instagram, or TikTok, call cross_post with that _id. Do not tell them to use the Calendar unless the tool fails. To cancel several posts, call unschedule_post once per _id.
get_space_detail
ChatGPTGet X Spaces detail by space id.
get_trends
ChatGPTGet X trends by WOEID location id. count minimum is 30 (API default 30). WOEID reference: https://gist.github.com/edwinmauger/2c75916359bd245f059fc1fc13348587
get_user_about
ChatGPTGet extended profile 'about' info by screen name.
get_user_followers
ChatGPTGet one page of public follower profiles for a single account the user named. Pass cursor only if the user asks for another page.
get_user_followers_ids
ChatGPTGet one page of public follower ids for a single account the user named. Provide userName or userId. Pass cursor only if the user asks for another page.
get_user_followings
ChatGPTGet one page of public accounts a single user follows. Pass cursor only if the user asks for another page.
get_user_info
ChatGPTGet a user profile by screen name (userName).
get_user_mentions
ChatGPTGet tweets mentioning a user (~20 per page). Use cursor to paginate.
get_user_timeline
ChatGPTGet a user's profile timeline by userId (~20 per page), same order as the X app profile. Requires userId.
get_user_verified_followers
ChatGPTGet verified followers for a user (~20 per page). Requires numeric user_id.
learn_creator_style
ChatGPTAnalyze a specific creator's tweets and generate a writing style rulebook that captures how they write. The rulebook is saved to the creator's profile and can later be used to write posts in that creator's style. IMPORTANT: Before calling this tool, ask the user for the X/Twitter username of the creator they want to learn from. This tool will: 1. Fetch the creator's profile and tweets 2. Analyze their writing patterns, tone, structure, and quirks 3. Generate a comprehensive style rulebook 4. Save it to the creator's profile Note: The creator must have viral tweets stored in the system. If they don't, the tool will return an error.
ping_supabird
ChatGPTA basic tool to check if the Supabird MCP is responding
remove_posting_slot
ChatGPTRemove a repeating posting slot from the weekly calendar. Use weekday + local_time from get_posting_slots. Confirm with the user first. This does not unschedule a post already sitting in that slot — use unschedule_post for that.
schedule_post
ChatGPTSchedule a post on X at a specific date and time. Optionally cross-post to LinkedIn, Threads, BlueSky, Instagram, and/or TikTok. IMAGES AND VIDEO: - This tool cannot accept image bytes. images takes a public https URL only. Do not encode a chat photo into the arguments. - ChatGPT: if the user attached a photo or video, set chat_files and schedule in this call. ChatGPT fills download_url and file_id. Do not call create_image_upload or create_video_upload first. Do not fill a local /mnt path. - chat_files is an array of up to 4 file objects. At most one item may be an MP4 or MOV. - Any attached image or video is the post media. Do not describe the picture or reject it as a screenshot. Grok: POST the file to upload_url, then call this tool with upload_id. Claude: show upload_url and wait. Claude cannot POST from its sandbox. Do not put the file in images, content, or chat_files. - Show upload_url when this tool returns status "needs_upload_link" or "inline_image_rejected". - A public image URL can still go in images[].url. - Video posts to X, Threads, BlueSky, Instagram, and TikTok. LinkedIn skips video. BlueSky video must be 100MB or smaller. TikTok accepts one video or JPEG/WebP photos, not GIFs or PNGs. - If this tool returns status "pending" or "expired", show the link again and do not claim the post was scheduled. CROSS-POSTING: - Default is X only. Do NOT add also_post_to unless the user asked to post on other networks. - Call get_connected_socials first when the user says "everywhere", "all connected", or names a network. - also_post_to accepts: linkedin, threads, bluesky, instagram, tiktok, or "all" (every connected+ready network). - YouTube, Facebook, and Pinterest are coming soon — never claim they posted. - Instagram requires an image or video. TikTok requires one video or JPEG/WebP photos. Do not claim either posted without that media. Neither supports thread posts. - If a network is disconnected or needs reconnect, tell the user to open Account → My Socials. MCP cannot connect accounts. - X community posts still cross-post the same text (without the community) — warn the user. - BlueSky over 300 characters publishes as a thread. LinkedIn max 3000, Threads max 500, Instagram max 2200, TikTok max 2200. - Use platform_texts to send a shorter/adapted caption per network. - After a successful publish, ALWAYS show published_urls to the user as clickable links. If waiting_for_url is set (common on Threads), immediately call get_published_urls with the post _id. - To cancel later, use unschedule_post (cancels X and other networks).
schedule_saved_post
ChatGPTSchedule one of the user's existing drafts or saved ideas on X, by its id from get_drafts or get_saved_ideas. Optionally cross-post to LinkedIn, Threads, BlueSky, Instagram, and/or TikTok. - The same post is scheduled in place, as in the SupaBird app. It keeps its text, images, video, and thread parts, and leaves Drafts / Saved. Do not pass new text; to change the text, use schedule_post with the new text instead. - Pass scheduled_date (ISO 8601, in the future), or next_free_slot: true to use the user's next free posting slot (today plus the next 7 days, skipping slots that already have a post). Confirm the time with the user when they did not give one. - Templates, posts that are already scheduled, published posts, trash, and Content Machine items cannot be scheduled with this tool. For an already scheduled post, unschedule_post first if the user wants a new time. For a Content Machine item, write an original post from it, then use schedule_post. - Cross-posting works like schedule_post: default is X only; only add also_post_to when the user asked. Instagram requires an image or video. TikTok requires a video or photo. - After a successful publish, show published_urls as clickable links. To cancel later, use unschedule_post with the returned post_id.
search_users
ChatGPTSearch X users by keyword. Use cursor to paginate.
unschedule_post
ChatGPTCancel one queued post so it will not publish. Call this only after the user asks to unschedule or cancel that post. post_id is the _id from get_scheduled_posts. This removes the publish time on X and any other scheduled networks. A post that has not gone out is kept as a draft. A scheduled repost is cancelled, and the original published post stays live.
update_posting_slot
ChatGPTMove or retag a posting slot. - To change the weekly template: weekday + local_time + new_local_time and/or tag. - To change one date only: also pass date (YYYY-MM-DD). That stores a date override and leaves other weeks unchanged. Confirm with the user before moving a slot.
write_in_my_style
ChatGPTRewrite the user's text into X/Twitter post drafts using ONLY the user's personal writing style (PSR — Personal Style Rulebook). This tool captures the user's unique tone and voice. IMPORTANT: This tool requires the user to have a Personal Style Rulebook. If they don't have one, the tool will return an error. Before calling this tool, make sure you have collected ALL of the following from the user: 1. The text/topic to rewrite 2. How many drafts (1–5) 3. Post length (short / average / long / very_detailed) 4. Standard or punchy formatting If ANY of these are missing from the user's message, ASK the user before calling this tool. Do NOT assume defaults.
write_in_supabird_style
ChatGPTRewrites the user's text or topic into X post drafts using the Personal Style Rulebook and Quality Post Rulebook stored on their SupaBird account, when those rulebooks exist. Saves the drafts in the account. Does not publish them. Use when the user wants drafts that mix their own voice with their saved creator writing patterns. For personal voice only, use write_in_my_style. For creator patterns only, use write_like_my_creators. Optional inputs default if omitted: number_of_drafts=2, length=average, punchy=false. language uses the account preference, or the input language if unset.
write_like_creator
ChatGPTRewrite the user's text into X/Twitter post drafts in the style of a SPECIFIC creator. This tool writes purely in that creator's voice — no personal style blending. HOW IT WORKS: 1. You provide a creator's X/Twitter username 2. The tool looks up the creator and loads their writing style rulebook 3. If the creator doesn't have a style rulebook yet, this tool will return instructions to run "learn_creator_style" first — follow those instructions, then call this tool again 4. Drafts are generated using the creator's style Before calling this tool, make sure you have collected ALL of the following from the user: 1. The creator's X/Twitter username (without @) 2. The text/topic to rewrite 3. How many drafts (1–5) 4. Post length (short / average / long / very_detailed) 5. Standard or punchy formatting If ANY of these are missing from the user's message, ASK the user before calling this tool. Do NOT assume defaults.
write_like_my_creators
ChatGPTRewrite the user's text into X/Twitter post drafts using ONLY the Quality Post Rulebook (QPR) — the writing patterns from the user's selected creators. This ignores the user's personal style and writes purely in the style of their chosen creator inspirations. IMPORTANT: This tool requires the user to have a Quality Post Rulebook (QPR) from selected creators. If they don't have one, the tool will return an error. Before calling this tool, make sure you have collected ALL of the following from the user: 1. The text/topic to rewrite 2. How many drafts (1–5) 3. Post length (short / average / long / very_detailed) 4. Standard or punchy formatting If ANY of these are missing from the user's message, ASK the user before calling this tool. Do NOT assume defaults.