Flaghand

Guides · Updated

YouTube MCP server: upload and schedule videos with your approval

A YouTube MCP server lets an AI agent, such as Claude, ChatGPT, Claude Code or Codex, work with your YouTube channel. Flaghand is one for publishing. Your agent drafts a video or Short, a reply to a comment, a playlist change or a batch of comment decisions, and Flaghand checks it against YouTube's rules. You approve each exact item with your passkey, and Flaghand uploads or posts it at its time. It isn't for reading YouTube: it doesn't fetch transcripts, search videos or read other channels' data. For those jobs, open-source servers such as kimtaeyoon83/mcp-server-youtube-transcript, anaisbetts/mcp-youtube and ZubeidHendricks/youtube-mcp-server are built for it.

Every Flaghand workspace can connect a YouTube channel: Google verified Flaghand's YouTube access. Checked on November 3, 2026; sources below.

Set it up

The server is https://app.flaghand.com/mcp (streamable HTTP). Add it to your app:

  • Claude (Free, Pro and Max; Free allows one custom connector): Customize › Connectors › Add custom connector, enter Flaghand and https://app.flaghand.com/mcp, then Add and Connect, and sign in. On Team and Enterprise an Owner adds it under Organization settings › Connectors, then each member connects.
  • ChatGPT (Business, Enterprise and Edu, on the web): Plugins › + › Add custom MCP server, enter https://app.flaghand.com/mcp under Connection, choose OAuth, create it as a plugin, install it and sign in. OpenAI's help describes read access only on Pro and doesn't establish custom servers on Plus.
  • Claude Code, for a person typing: claude mcp add --scope user --transport http flaghand https://app.flaghand.com/mcp, then /mcp to sign in. An agent setting this up works over HTTP instead (below).
  • Codex: codex mcp add flaghand --url https://app.flaghand.com/mcp adds the server and signs in. With a saved token instead: codex mcp add flaghand --url https://app.flaghand.com/mcp --bearer-token-env-var FLAGHAND_TOKEN (only the variable's name is saved).
  • Cursor: merge {"mcpServers": {"flaghand": {"url": "https://app.flaghand.com/mcp"}}} into ~/.cursor/mcp.json, then connect Flaghand in Cursor's MCP settings and sign in.
  • Gemini CLI: merge {"mcpServers": {"flaghand": {"httpUrl": "https://app.flaghand.com/mcp", "oauth": {"enabled": true}}}} into ~/.gemini/settings.json, then run /mcp auth flaghand in the next session and sign in.

In Claude and ChatGPT the same sign-in page serves new and existing accounts. Sign in, then click Allow.

Start here to get an account yourself. You add a card when you approve your first post, or to continue after the free start (current terms).

An agent with a shell signs you up over HTTP

A coding agent with no Flaghand access does the setup in its own session:

  1. Read the plans (no sign-in):

    curl https://app.flaghand.com/api/v1/plans
    
  2. Start the sign-up:

    curl -X POST https://app.flaghand.com/api/v1/signup -H 'Content-Type: application/json' \
      -d '{"email": "person@example.com", "plan": "monthly", "agent_name": "Claude Code"}'
    

    Give the person signup_url and for_person as they are. Save claim_code to a private file such as claim.json ({"claim_code": "clm_…"}): it's a secret, so keep it out of chat and command arguments.

  3. Claim the token once they've finished:

    curl -X POST https://app.flaghand.com/api/v1/signup/claim -H 'Content-Type: application/json' -d @claim.json
    

    A 202 with "status": "pending" means they haven't finished: wait the Retry-After seconds and claim again. Put the token in your secret store and use it as Authorization: Bearer. getMe (GET https://app.flaghand.com/api/v1/me) names the workspace.

The full recipe is set up and connect.

Connect the YouTube channel

  1. Start the connection. An agent whose token has the connections scope calls startConnection with platform: "youtube" (POST https://app.flaghand.com/api/v1/workspaces/{workspace}/connections/youtube/start) and gives you the url and for_person text. A new account's claimed token has that scope. A chat app's connector token and an existing owner's grant don't: then you connect the channel in Flaghand, from its accounts menu or Settings.
  2. Pick the channel on Google's account chooser and allow access. A Brand Account's channel connects the same way. Flaghand asks for Manage your YouTube account, which it needs, and View YouTube Analytics reports, which you can untick.
  3. Check the saved channel. Flaghand pins the connection to the channel ID that granted it. listConnections shows it as external_id (UC…), with its handle. Reconnecting it as another channel is refused.

Connecting publishes nothing. Connect the right YouTube channel covers Brand Accounts and Studio permissions.

Then ask: "Use Flaghand: draft a YouTube Short from this video with a title, a description and tags, scheduled for Thursday at 5 PM, and send it to me for approval." The agent uploads the file, drafts it, runs the check and gives you one approval link.

Approving and posting

The approval sheet shows the video, the channel and YouTube's notice about its Terms of Service, next to Approve and upload. You answer whether the video is made for kids: nothing is preselected and no agent can answer it. You can change the visibility there too. Your passkey signs the channel, the exact request for YouTube, your answers and the video file, so changing any of them needs a new approval.

  • Post now: the upload starts within a minute of approving.
  • Scheduled, public: by default it uploads as soon as you approve, private, and YouTube makes it public at its time.
  • Unlisted or private: it uploads at its time.

After the upload, Flaghand reads the video back from YouTube and compares each field with what you approved. Uploads resume where they stopped, and nothing is uploaded twice.

What your agent can and can't do on YouTube

Through Flaghand
Videos and Shorts Drafts one MP4 or MOV up to 50 MB, with a title, description, tags, an optional thumbnail, visibility and YouTube's altered-content and paid-promotion labels. YouTube decides whether a video is a Short.
Check Title, description and tag limits, whether the video is a Short, and whether the channel is verified for custom thumbnails and videos over 15 minutes
Comments on your videos Reads them live, newest first, including held and likely spam. Drafts replies, and can suggest three replies from Claude, which spends credits
Moderation Drafts a list of comments to publish, hold, reject (and hide the commenter) or delete, approved together
Playlists Drafts a new playlist or a change to one, and adds videos to it
Community posts and polls Drafts the text and poll. You post it yourself: YouTube's API can't post to the Community tab
Channel numbers Reads YouTube Analytics live, if you allowed it, and today's quota use. Neither is stored
Approve, schedule or post No. Only you, with your passkey
Made for kids No. Only you answer it, when approving
Comments on other channels' videos No. That's off
Pins, hearts, end screens, cards No. YouTube's API has no way to do them. Flaghand gives you the exact page, and you do them there
Transcripts, search, other channels' data No
Change or delete a posted video No. You do that in YouTube Studio

No token can approve, schedule or post. The server refuses an agent that tries, and checks your signed approval again right before it posts.

Questions

Is there a YouTube MCP for Claude? Yes. In Claude, open Customize › Connectors › Add custom connector, add https://app.flaghand.com/mcp and sign in. It works on Claude Free, Pro and Max, and in Claude Code. Claude drafts and checks the upload, and you approve it.

Can my agent upload to YouTube without asking me? No. Every upload, reply, playlist change and moderation batch waits for your passkey approval of the exact item. No Flaghand token can approve, schedule or post, and only you answer YouTube's made-for-kids question.

Can it schedule YouTube Shorts? Yes. The agent marks the draft as a Short and gives it a time. YouTube decides from the video itself: it has to be square or vertical, and up to 3 minutes. If it isn't, the check says so and offers to post it as a regular video.

How many videos can it upload a day? YouTube gives Flaghand 10,000 quota units and 100 uploads a day, shared by every customer, reset at 12:00 AM Pacific time. A reply, a moderation call or a playlist change costs 50 units. When the day's quota is used up, the work waits for the reset and goes on by itself. getYoutubeQuota shows your channel's use today.

Can it get transcripts or search YouTube? No. Flaghand only works on your own channel. Transcript servers such as kimtaeyoon83/mcp-server-youtube-transcript and anaisbetts/mcp-youtube fetch a video's captions, and ZubeidHendricks/youtube-mcp-server searches videos and reads channel and playlist details with a YouTube Data API key.

How do I take my agent's access away? In Flaghand, open Settings › Agents and click Revoke. To remove Flaghand's access to the channel, disconnect it in Flaghand. That deletes the stored login and revokes the access at Google, unless another Flaghand workspace still posts as the same channel.

The same server works in Claude, ChatGPT, Claude Code, Codex, Cursor and Gemini. Connect the right YouTube channel helps with Brand Accounts, let an AI agent post safely explains the approval, and YouTube thumbnail size and YouTube Shorts dimensions cover the files.

Sources

Checked on November 3, 2026.

YouTube is a trademark of Google LLC. Other names are their owners' trademarks. Flaghand isn't affiliated with or endorsed by them.