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:// (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://, then Add and Connect, and sign in. On Team and Enterprise an Owner adds it under Organization settings › Connectors, then each member connects.app .flaghand .com/ mcp - ChatGPT (Business, Enterprise and Edu, on the web): Plugins › + › Add custom MCP server, enter
https://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.app .flaghand .com/ mcp - Claude Code, for a person typing:
claude mcp add --scope user --transport http flaghand https://, thenapp .flaghand .com/ mcp /to sign in. An agent setting this up works over HTTP instead (below).mcp - Codex:
codex mcp add flaghand --url https://adds the server and signs in. With a saved token instead:app .flaghand .com/ mcp codex mcp add flaghand --url https://(only the variable's name is saved).app .flaghand .com/ mcp --bearer-token-env-var FLAGHAND_TOKEN - Cursor: merge
{"mcpServers": {"flaghand": {"url": "https://intoapp .flaghand .com/ mcp"}}} ~/, then connect Flaghand in Cursor's MCP settings and sign in..cursor/ mcp .json - Gemini CLI: merge
{"mcpServers": {"flaghand": {"httpUrl": "https://intoapp .flaghand .com/ mcp", "oauth": {"enabled": true}}}} ~/, then run.gemini/ settings .json /in the next session and sign in.mcp auth flaghand
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:
Read the plans (no sign-in):
curl https://app.flaghand.com/api/v1/plansStart 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_urlandfor_personas they are. Saveclaim_codeto a private file such asclaim(.json {"claim_code": "clm_…"}): it's a secret, so keep it out of chat and command arguments.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.jsonA
202with"status": "pending"means they haven't finished: wait theRetry-Afterseconds and claim again. Put the token in your secret store and use it asAuthorization: Bearer.getMe(GET https://) names the workspace.app .flaghand .com/ api/ v1/ me
The full recipe is set up and connect.
Connect the YouTube channel
- Start the connection. An agent whose token has the
connectionsscope callsstartConnectionwithplatform: "youtube"(POST https://) and gives you theapp .flaghand .com/ api/ v1/ workspaces/ {workspace}/ connections/ youtube/ start urlandfor_persontext. 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. - 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.
- Check the saved channel. Flaghand pins the connection to the channel ID that granted it.
listConnectionsshows it asexternal_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.
Other guides
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.
- Flaghand: YouTube, set up and connect, set up in a chat app
- kimtaeyoon83/mcp-server-youtube-transcript: downloads a video's transcript, no API key needed
- anaisbetts/mcp-youtube: fetches subtitles with
yt-dlp, which you install yourself - ZubeidHendricks/youtube-mcp-server: reads videos, transcripts, channels and playlists with a YouTube Data API key; its documented tools only read
- YouTube: Terms of Service
YouTube is a trademark of Google LLC. Other names are their owners' trademarks. Flaghand isn't affiliated with or endorsed by them.