A MORE CONNECTED CREATIVE WORKFLOW.
Connect your AI assistant to your YouTube queue
The SocialRoster MCP connector lets a compatible AI assistant read your posting queue, create video drafts and schedule posts in your own workspace after OAuth sign-in and consent. Available destinations are YouTube, subject to connected-account permissions and platform limits.

YouTube-only for new plans and connections. Existing legacy connections and scheduled posts are preserved. Legacy tool names or account records do not enable new non-YouTube publishing workflows.
ChatGPT, Claude, Grok, Muse and other AI workflows
Use ChatGPT, Claude, Grok, Muse or your preferred AI tools to prepare content, then bring finished videos and reviewed copy to SocialRoster. Direct workspace control requires a compatible remote MCP/OAuth client and authorized permissions.
A supported video export and reviewed text can be brought into the web app without a direct AI integration. Remote tool control requires the client capabilities below; support can vary by product, account plan and administrator settings. No partnership, endorsement or universal native connector is implied. Video generation and third-party AI subscriptions are not included.
Compare a file handoff with an authorized MCP workflow, or review multi-channel scheduling.
What you can ask
- "What's on my posting calendar this week?"
- "Draft a post for YouTube with this caption."
- "Preview my next 10 video drafts for YouTube at 9am and 6pm in my timezone. Do not schedule them until I approve."
- "Move Friday's post to Saturday at noon."
How to connect
Connector URL: https://socialroster.dev/mcp. Your client must support a remote MCP server over Streamable HTTP and OAuth authorization with PKCE (S256). The server supports dynamic client registration. Connector availability and setup controls depend on your assistant, account and administrator settings; no particular app-directory listing is required or promised here.
- Use your client's remote MCP connection option and enter the URL above.
- Follow the authorization redirect to SocialRoster, sign in and review the requested read/write scopes on the consent screen. Do not paste your SocialRoster password or social-network credentials into a chat.
- Start with a read-only request such as listing accounts or posts. Check account status before preparing a schedule.
If your client cannot add a remote OAuth-enabled MCP server, use the SocialRoster workspace instead. Use your client's connection controls to remove access, or contact support if you need help revoking a connection.
A review-first scheduling workflow
- Read
list_accounts,list_postsandget_plan_statusto check available destinations, existing posts and plan usage. - Create a draft with
create_draft, then review its caption and selected YouTube destinations. - Attach a video with
attach_media_from_urlfor a public HTTPS file up to 200 MiB, or upload throughget_media_upload_linkand then callconfirm_media_upload. The upload response specifies its file limits. - Request
schedule_batchwithdry_run: true, explicit available platforms, dates, timezone and posting times. Review every proposed post and any warnings. - Only after approving that preview, apply the same batch with
dry_run: falseandconfirm: true. Inspect returned results and useget_postto verify status; a scheduled post is not proof that publishing has succeeded.
For the browser-based workflow, see the bulk video scheduling guide. For connection problems, see authorization and publishing troubleshooting.
Worked example: review and schedule two existing video drafts
This example uses server-saved drafts, not videos stored only in your browser. Replace both example post IDs, the date and timezone with your reviewed choices. The example date is illustrative, not a suggested publication date. These are tool arguments for a compatible MCP client, not commands to paste into a terminal.
- Read
list_accounts()andget_plan_status(). Confirm the intended YouTube channel and an active plan before preparing the batch. Use its SocialRoster account id as youtube_account_id, not the provider’s channel ID. - Call
list_posts({"status":"draft","limit":100}). Choose two returned post IDs withhas_media: true. This returns at most 100 records, not necessarily every draft in the workspace. - Call
get_post({"post_id":"REPLACE_WITH_FIRST_POST_ID"})and repeat for the second ID. Review each title, caption, hashtags and intended destination.has_mediameans a server media path is attached; it does not prove that the assistant has watched the video or that a platform will accept it. Review the actual video yourself. - Preview the two posts using the arguments below. Use your intended future start date and an IANA timezone. Check existing scheduled posts with
list_postsfor the relevant date window as well.
{
"post_ids": [
"REPLACE_WITH_FIRST_POST_ID",
"REPLACE_WITH_SECOND_POST_ID"
],
"platforms": [
"youtube"
],
"youtube_account_id": "REPLACE_WITH_CONNECTED_ACCOUNT_ID",
"start_date": "2026-11-02",
"timezone": "America/New_York",
"times": [
"09:00",
"18:00"
],
"dry_run": true
}Pass that object to schedule_batch. The explicit youtube_account_id selects one connected YouTube channel for this batch. Omit it only when each draft already has its reviewed destination. Create separate posts for separate channels. The explicit platforms list replaces the destinations for every selected post when applied; it does not append destinations to each draft’s existing list. Avoid all_connected while TikTok is unavailable, because legacy connected records may include it.
- Show the owner every returned
planentry: post ID, title, destinations,scheduled_at,local_timeand anyskipreason. Reviewsummaryandnotesalongside the actual content. Stop if any choice is unexpected. - Only after the owner approves that exact content and calendar, call
schedule_batchwith the same reviewed IDs and settings, changingdry_runtofalseand addingconfirm: true. Do not send the apply call merely because a preview succeeded. - Inspect
results,skippedand the success/failure counts. Callget_postfor each ID to verify its current state. Later, inspect per-platform results and the destination itself; a queued job or completed upload is not a guarantee of public visibility.
A preview is not a reservation. Apply reloads the posts and recomputes time slots. If content, destinations, available drafts or timing changes, preview again and obtain renewed approval. Explicit IDs are preferable here to next_unscheduled, whose selected drafts can change between calls. Neither preview nor apply checks existing-calendar conflicts for you.
A batch is not atomic and retries are not guaranteed safe. Posts are updated individually, so some can succeed while others fail. Repeating an apply call may move already-scheduled posts, and time slots may differ. Before retrying, read the actual state of every affected post; do not repeat the whole batch blindly. Prepare and review a new preview for only the remaining intended work.
Where the assistant can get a video
The connector reads server-saved posts. It cannot automatically see browser-only drafts or your local Content Library. A local file path or a video mentioned in chat is not an uploaded attachment. If a server-saved draft has no media, attach the intended file before scheduling:
attach_media_from_url({"post_id":"REPLACE_WITH_POST_ID","url":"https://example.com/video.mp4"})needs a directly downloadable public HTTPS video response with a supported video MIME type, up to 200 MiB. A webpage, login-protected share page or local file path is not that response. Use only a video you are authorized to publish.- Alternatively, call
get_media_upload_linkwithpost_idandfile_name. An authorized uploader must actually send the file by HTTP PUT to the returned signed URL. The response includesallowed_types,max_bytes(currently 1 GB) andmedia_path. Then callconfirm_media_uploadwith that samepost_idandmedia_path. Requesting the link alone does not upload the file; do not share the signed URL publicly.
Bring finished videos you are authorized to publish, including videos from external AI tools. Video generation and third-party AI subscriptions are not included. Read the YouTube upload and visibility limitations. Choose Public, Unlisted or Private per YouTube post, including the youtube_visibility field in MCP. New posts default to Public; editing or scheduling an existing post without this field preserves its prior choice or legacy channel default. Your explicit choice takes precedence over administrative channel metadata. There is no per-post audience selector; uploads still send a not-made-for-kids declaration. Use YouTube Studio instead for made-for-kids content and review public-release settings there.
Scopes
socialroster.read: view connected accounts (names and status only), your post queue and your plan.socialroster.write: create and edit drafts, attach videos, schedule, reschedule, unschedule, delete and publish posts.
Tools
Read tools never change anything. Write tools change your workspace; editing or rescheduling a queued post can change what publishes later. Sensitive tools lead to public posts or permanent deletion, and assistants are instructed to ask you first.
list_accounts· Read: Connected account handles and status (never tokens). Existing TikTok records may appear, but TikTok connections and publishing are currently unavailable.list_posts· Read: Your post queue, filterable by status, platform and date window.get_post· Read: One post with its per-platform publish results.list_tiktok_reviews· Read: Legacy TikTok review records. TikTok is Coming soon; this tool is not a currently supported publishing workflow.get_plan_status· Read: Your plan, subscription status and monthly post usage.create_draft· Write: Creates a draft with title, caption, hashtags and the platforms for that post. Nothing is published.update_post· Write: Edits title, caption, hashtags, platforms or the AI-content flag of an unpublished post.get_media_upload_link· Write: One-time signed link to upload a video file to a post.confirm_media_upload· Write: Attaches an uploaded video to its post.attach_media_from_url· Write: Imports a video from a public https URL (up to 200 MiB).schedule_post· Sensitive: Schedules one post with an attached video for automatic publishing to its selected available platforms. Ask for approval before scheduling; TikTok is unavailable.schedule_batch· Sensitive: Previews a calendar for selected drafts or the next N video drafts. Choose available platforms explicitly. Applying requires dry_run: false and confirm: true.reschedule_post· Write: Moves a draft or scheduled post to a new time.unschedule_post· Write: Turns a scheduled post back into a draft.delete_post· Sensitive: Permanently deletes an unpublished post and its video. Requires confirm: true.publish_now· Sensitive: Publishes a post immediately to YouTube. Requires confirm: true.
Confirmations and safeguards
publish_nowanddelete_postrefuse to run unless the call includesconfirm: true, which the assistant should only send after you approve that exact post.schedule_batchdefaults to preview-only mode. Applying requiresdry_run: falseandconfirm: true; review the preview before approving the apply call.schedule_postcan cause automatic publishing at the selected time. The assistant is instructed to ask first, but this tool does not have a separateconfirmparameter. Review the exact content, platforms and time before authorizing it.- Choose YouTube explicitly for new workflows. Do not use legacy TikTok review links as a way to enable publishing.
- Posts that are publishing or already posted are locked. New YouTube plans have no monthly scheduling-count cap, within fair use: a 50 GiB scheduled queue safety limit, 1 GiB per file and YouTube channel/API quotas. Legacy subscription limits remain unchanged.
Rate limits
The connector uses a best-effort limit of 120 requests per minute per user. Sign-in and token endpoints are also rate limited per network. Over the limit you get HTTP 429 with a Retry-After header.
Data handling
The connector acts as you, with the same access rules as the web app. It never returns your social platform tokens or passwords. Content you ask the assistant to create is stored in your SocialRoster workspace. What the assistant itself keeps is governed by that assistant's own privacy policy. We record the connecting client's identity and basic milestones such as connecting and first scheduled post, to understand how people use the connector. Details are in the Privacy Policy and Terms of Service.
Help
Questions or problems? Contact support or email aaroncolbry22@gmail.com.