Skip to content

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.

A phone on a stabilizer records a podcaster wearing headphones at a desk.
YOUR IDEAS. A LITTLE CREATIVE DIRECTION.

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.

  1. Use your client's remote MCP connection option and enter the URL above.
  2. 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.
  3. 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

  1. Read list_accounts, list_posts and get_plan_status to check available destinations, existing posts and plan usage.
  2. Create a draft with create_draft, then review its caption and selected YouTube destinations.
  3. Attach a video with attach_media_from_url for a public HTTPS file up to 200 MiB, or upload through get_media_upload_link and then call confirm_media_upload. The upload response specifies its file limits.
  4. Request schedule_batch with dry_run: true, explicit available platforms, dates, timezone and posting times. Review every proposed post and any warnings.
  5. Only after approving that preview, apply the same batch with dry_run: false and confirm: true. Inspect returned results and use get_post to 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.

  1. Read list_accounts() and get_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.
  2. Call list_posts({"status":"draft","limit":100}). Choose two returned post IDs with has_media: true. This returns at most 100 records, not necessarily every draft in the workspace.
  3. 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_media means 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.
  4. Preview the two posts using the arguments below. Use your intended future start date and an IANA timezone. Check existing scheduled posts with list_posts for 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.

  1. Show the owner every returned plan entry: post ID, title, destinations, scheduled_at, local_time and any skip reason. Review summary and notes alongside the actual content. Stop if any choice is unexpected.
  2. Only after the owner approves that exact content and calendar, call schedule_batch with the same reviewed IDs and settings, changing dry_run to false and adding confirm: true. Do not send the apply call merely because a preview succeeded.
  3. Inspect results, skipped and the success/failure counts. Call get_post for 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_link with post_id and file_name. An authorized uploader must actually send the file by HTTP PUT to the returned signed URL. The response includes allowed_types, max_bytes (currently 1 GB) and media_path. Then call confirm_media_upload with that same post_id and media_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_now and delete_post refuse to run unless the call includes confirm: true, which the assistant should only send after you approve that exact post.
  • schedule_batch defaults to preview-only mode. Applying requires dry_run: false and confirm: true; review the preview before approving the apply call.
  • schedule_post can cause automatic publishing at the selected time. The assistant is instructed to ask first, but this tool does not have a separate confirm parameter. 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.