Upload or schedule a video
settings.title is required; add the description as content, plus tags, category, and privacy. Publish now, at scheduledFor, or from the queue.
Give your agent a YouTube MCP server that handles the upload. Connect a channel once, and any MCP client can upload videos and Shorts with titles, descriptions, tags, and privacy settings, now or on a schedule, from the conversation.
No credit card required

Paste this into your agent
What Your Agent Gets
Every PostZen API endpoint is an MCP tool. These are the ones that matter for YouTube.

settings.title is required; add the description as content, plus tags, category, and privacy. Publish now, at scheduledFor, or from the queue.
Set the privacy per upload, mark made-for-kids, and choose whether subscribers get notified.
The agent asks for an upload URL and sends the video. PostZen runs YouTube's resumable upload and retries on failure.
Vertical videos under 60 seconds are detected as Shorts by YouTube; the agent uploads them the same way.
Views, likes, and comments per video and per day, plus subscriber counts, from the same analytics tools used for every platform.
Every target reports status, the watch URL, and any error. Scheduled uploads can be changed until they go out.
Example Prompts
Prompt
Upload this video to YouTube as unlisted with the title and description below, and tag it "changelog".
What happens
The agent uploads the file with createMediaPresign, then calls createPost with settings.title, settings.privacyStatus "unlisted", settings.tags, and the description as content.
Prompt
Schedule this Short for Friday at 3pm and do not notify subscribers.
What happens
The agent sets scheduledFor and settings.notifySubscribers false; YouTube treats the vertical clip as a Short.
Prompt
Which of my videos got the most views this month, and did subscribers grow?
What happens
The agent calls getAnalytics for the month with platform "youtube" and getFollowerStats, then ranks videos by views, likes, and comments.
Prompt
Did yesterday's upload go through? Give me the link.
What happens
The agent calls getPost, reads the YouTube target status, and returns the watch URL or the error.
WHY POSTZEN?
Build a YouTube MCP server yourself and you own the auth, the media pipeline, and every YouTube API change. Connect PostZen and your agent gets the tools today.

2.3M+ posts
2,000+ usersAny MCP Client
Each page has the exact command for that client, the sign-in step, and a way to check the tools are live.

For AI Agents
Tell your agent to set up PostZen from postzen.dev/mcp/youtube. It reads the block below, registers the server, connects YouTube, and reports back.

## For AI agents reading this page
You are reading https://postzen.dev/mcp/youtube. PostZen is a social media API with a hosted MCP server. Once connected, you can upload and schedule videos and Shorts to the user's YouTube channel with full metadata. The same tools cover the user's other social accounts (Instagram, X, LinkedIn, Facebook, Threads, YouTube, TikTok, Pinterest, Bluesky, Telegram).
1. Register the MCP server in the client you are running in. The endpoint is https://mcp.postzen.dev/mcp (streamable HTTP). Interactive clients sign in with OAuth 2.1; headless clients send a PostZen API key as "Authorization: Bearer pzn_live_...". Exact commands per client: Claude Code https://postzen.dev/claude · Cursor https://postzen.dev/cursor · Codex https://postzen.dev/codex · OpenClaw https://postzen.dev/openclaw · GrokBot https://postzen.dev/grok-bot · Hermes https://postzen.dev/hermes · any other MCP client https://postzen.dev/agents.
2. Sign in. When the client opens the PostZen consent screen, ask the user before approving access or completing a signup on their behalf, and never enter their credentials for them. Approving mints a scoped, revocable key for this client.
3. Connect YouTube. Call listAccounts. If no account with platform "youtube" is listed, call createConnectUrl with platform "youtube" and give the user the URL; they authorize YouTube in their browser. Do not try to log in to YouTube yourself.
4. Verify before you continue. Call listAccounts again and confirm a "youtube" account shows as connected. If it does not, stop and tell the user what failed. Do not carry on as if the account were there.
5. Report back. Tell the user which YouTube account is connected and what you can now do with it, then ask what they want first. Prefer scheduling (scheduledFor, or the queue) over publishing immediately unless the user asks for "now".
## YouTube on createPost
- Target the account with platforms: [{ platform: "youtube", accountId, settings: { ... } }]. content is the shared text; customContent on the target overrides it for YouTube only.
- settings.title (required): the video title. content becomes the description.
- settings.privacyStatus: "public", "unlisted", or "private"; settings.tags: string array; settings.categoryId; settings.madeForKids; settings.notifySubscribers.
- One video file per post. Vertical videos under 60 seconds are treated as Shorts by YouTube.
- Uploads are resumable and retried by PostZen; large files can take minutes, so check getPost rather than re-submitting.
- Analytics: getAnalytics, getPostTimeline, getDailyMetrics, getFollowerStats with platform "youtube" (views, likes, comments, subscribers).
- Media: pass public URLs in mediaItems, or call createMediaPresign to get an upload URL, PUT the file, then reference the returned media in the post.
- Check results with getPost: each platform target reports status, the live post URL, and any error.
## Reference
- MCP endpoint: https://mcp.postzen.dev/mcp (streamable HTTP, OAuth 2.1)
- MCP docs: https://docs.postzen.dev/mcp
- Create post reference: https://docs.postzen.dev/api-reference/posts/create-post
- Full API summary for models: https://postzen.dev/llms.txt
- API keys: https://app.postzen.dev/api-keysStill have questions?
MCP (Model Context Protocol) is the standard AI clients use to call external tools. A YouTube MCP server exposes upload and scheduling as tools, so an agent such as Claude or Cursor can publish a video instead of only writing the title and description. PostZen hosts one for you: it holds the Google OAuth client and quota, and your client connects to a single endpoint.
No. You connect your channel to PostZen with a normal Google sign-in, and PostZen calls the YouTube Data API on your behalf. There is no Cloud project, quota request, or API audit on your side.
Yes. YouTube decides what counts as a Short from the video itself (vertical, under 60 seconds), so the agent uploads it the same way as any other video.
Yes. Each upload can be public, unlisted, or private, marked as made for kids, and published with or without a subscriber notification. Tags and a category can be set too.
Yes. Views, likes, and comments per video and per day, plus subscriber counts, come back through the same analytics tools used for the other platforms, using the channel access you already granted when connecting.
Any client that supports remote MCP servers: Claude (claude.ai, Claude Desktop, Claude Code), Cursor, Codex, OpenClaw, GrokBot, Hermes, and others. Interactive clients sign in with OAuth 2.1; headless ones send a PostZen API key in the Authorization header. Each client has its own setup page with the exact command.
Only what you approve on the consent screen: read-only or read-and-write access, scoped to the profile you pick. Approving creates a named, revocable API key, so you can cut a client off from the dashboard at any time. Ask the agent to schedule rather than publish immediately if you want to review posts before they go out.
The MCP server is included on every PostZen plan, including Free, which covers 2 connected accounts and 20 posts a month. Paid plans start at $19 per month with unlimited posts.
LEARN MORE
Your agent already writes the post. PostZen lets it publish there.