What is MCP?
Model Context Protocol is an open standard created by Anthropic that defines how AI models communicate with external tools. Instead of an agent writing code and executing it, MCP lets the agent call pre-defined tools directly — the protocol handles the transport, schema validation, and response formatting.
Think of it like this: before MCP, giving an AI agent access to your database meant it would write SQL, you'd review it, run it, paste the results back. With MCP, the agent calls a query_database tool directly and gets structured results back in the same context window.
Key distinction: MCP tools are not the same as function calling. MCP servers are persistent processes — the tools are defined by the server, not by the model. Any MCP-compatible client (Claude, Cursor, Windsurf, etc.) can connect to the same server and call the same tools.
Why MCP changes social media publishing
The typical publishing workflow requires context-switching: you write content in one tool, export it, log into a scheduling tool, fill in forms, choose platforms, publish. Every step is manual and disconnected.
With an MCP connection to CodivUpload, publishing becomes a side effect of work you're already doing in your AI context:
Before MCP
Write post → copy text → open dashboard → paste → select platforms → fill overrides → publish
With MCP
"Post this to TikTok and Instagram with Reels format"
Before MCP
Deploy app → open social tools → write announcement → publish manually
With MCP
Deploy script triggers MCP tool → announcement published automatically
Setting up CodivUpload MCP in 30 seconds
Install the codivupload-mcp package via npx. Add it to your MCP client's config with your API key:
{
"mcpServers": {
"codivupload": {
"command": "npx",
"args": ["-y", "codivupload-mcp"],
"env": {
"CODIVUPLOAD_API_KEY": "cdv_your_api_key"
}
}
}
}Get your API key from Dashboard → Settings → API Keys. The same key that works for REST calls works for MCP.
Available MCP tools
The CodivUpload MCP server exposes four tools. The agent sees their schemas and knows which parameters to pass based on natural language context.
publish_post
Publish to 1–12 platforms in one call. Accepts all API parameters including per-platform overrides.
profile_nameplatforms[]post_typemedia_urls[]descriptionscheduled_datelist_profiles
Returns all connected profiles with their platform connections and quota status.
get_post_status
Checks delivery status for a previously submitted post by post ID.
post_idschedule_post
Same as publish_post with a required scheduled_date field. Queues for future delivery.
scheduled_date (UTC ISO 8601)...all publish_post paramsWhat MCP Tools Does CodivUpload Expose?
The CodivUpload MCP server exposes five tools. Each one maps to a specific API capability, but the agent handles parameter formatting, validation, and error recovery automatically. Here is the full reference:
When an MCP client connects, it receives these tool schemas. The agent reads the parameter types, required fields, and descriptions — then maps your natural language instruction to the correct tool call without you writing a single line of JSON.
publish_post
Create and publish content to one or more platforms simultaneously. Supports per-platform caption overrides, privacy settings, media types, and scheduling.
Parameters
profile_namestringrequiredTarget profile nameplatformsstring[]requiredPlatform list: twitter, instagram, tiktok, youtube, linkedin, facebook, threads, bluesky, pinterestpost_typeenumrequiredpost | reel | story | shortdescriptionstringrequiredPost caption / body textmedia_urlsstring[]CDN URLs for images or videotiktok_privacy_levelnumber0 = public, 1 = friends, 2 = privateinstagram_media_typeenumREELS | STORIES | IMAGEschedule_post
Identical to publish_post but queues delivery for a future date/time. Posts sit in the queue until the scheduled moment, then dispatch through the same pipeline.
Parameters
scheduled_dateISO 8601requiredUTC datetime for delivery, e.g. 2026-04-02T14:00:00Z...publish_post paramsrequiredAll publish_post parameters applyget_posts
List recent posts with delivery status, platform breakdown, and timestamps. Filter by status (queued, published, failed) or date range.
Parameters
profile_namestringFilter to a specific profilestatusenumqueued | published | failedlimitnumberNumber of posts to return (default 10)get_profiles
List all connected social profiles with their active platform connections, token health, and posting quota remaining.
Parameters
include_quotabooleanInclude remaining quota per platformupload_media
Upload an image or video file to the CDN and receive a public URL. Use the returned URL in publish_post or schedule_post media_urls.
Parameters
file_pathstringrequiredLocal file path or remote URL to uploadmedia_typeenumimage | video (auto-detected if omitted)Real Agent Workflows
Abstract tool lists only tell half the story. Here are three concrete agent conversations — the exact back-and-forth between you, the agent, and the CodivUpload MCP server. These are not hypothetical; they reflect actual tool calls the MCP server handles.
Publish this video to TikTok and Instagram with different captions. TikTok: 'POV: shipping at 2am again'. Instagram: 'New feature just dropped — link in bio for early access.' Make TikTok friends-only.
I'll publish that video to both platforms with separate captions and TikTok set to friends-only.
publish_post({
profile_name: "codivupload",
platforms: ["tiktok", "instagram"],
post_type: "reel",
media_urls: ["https://cdn.codivupload.com/u/abc/reel.mp4"],
description: "New feature just dropped — link in bio for early access.",
tiktok_description: "POV: shipping at 2am again",
tiktok_privacy_level: 1,
instagram_media_type: "REELS"
})Published to 2/2 platforms. TikTok: friends-only, Instagram: Reels. Post ID: p_8f3a2b.
Schedule my blog post announcement to LinkedIn and X for tomorrow 9am EST. Use this text: 'We just published our guide to MCP automation. Read it here: https://codivupload.com/blog/mcp-social-media'
Scheduling the announcement for April 2, 2026 at 14:00 UTC (9am EST).
schedule_post({
profile_name: "codivupload",
platforms: ["linkedin", "twitter"],
post_type: "post",
description: "We just published our guide to MCP automation. Read it here: https://codivupload.com/blog/mcp-social-media",
scheduled_date: "2026-04-02T14:00:00Z"
})Scheduled for Apr 2, 2026 at 2:00 PM UTC. Queued for LinkedIn and X. Post ID: p_1c7e9d.
Show me the status of my last 5 posts.
Fetching your recent posts now.
get_posts({
limit: 5
})5 posts returned: 1. "POV: shipping at 2am" — TikTok: published, Instagram: published (2 min ago) 2. "MCP automation guide" — LinkedIn: queued, X: queued (scheduled Apr 2) 3. "Q1 recap thread" — X: published, Threads: published (yesterday) 4. "New pricing tiers" — all 4 platforms: published (Mar 28) 5. "Behind the scenes" — TikTok: failed (token expired), Instagram: published (Mar 25)
MCP vs REST API vs Dashboard
CodivUpload offers three ways to publish: the visual dashboard, the REST API, and the MCP server. They all hit the same backend — the difference is how you interact with it. Pick the one that fits how you already work.
| Feature | Dashboard | REST API | MCP |
|---|---|---|---|
| Interface | Visual UI | HTTP calls | Natural language |
| Best for | Manual posting | Automation scripts | AI workflows |
| Setup required | None | API key + code | API key + config file |
| Bulk scheduling | One at a time | Yes (loop/batch) | Yes (single prompt) |
| Per-platform overrides | Yes | Yes | Yes |
| Requires coding | No | Yes | No |
| Chained workflows | No | Manual integration | Native (agent chains tools) |
| Error handling | Visual feedback | HTTP status codes | Agent retries + explains |
Bottom line: If you are already working inside an AI agent (writing code, generating content, running workflows), MCP eliminates the context switch entirely. You never leave your current tool. The dashboard and REST API remain available for teams that prefer visual or programmatic control.
Setting Up MCP in 2 Minutes
Every MCP client stores server configurations in a JSON file. You add CodivUpload once, and the tools become available in every conversation. Here is the setup for the two most popular clients.
Claude Desktop
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:
{
"mcpServers": {
"codivupload": {
"command": "npx",
"args": ["-y", "codivupload-mcp"],
"env": {
"CODIVUPLOAD_API_KEY": "cdv_your_api_key"
}
}
}
}Cursor
Open Cursor Settings (Cmd+,) and navigate to MCP tab, or edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"codivupload": {
"command": "npx",
"args": ["-y", "codivupload-mcp"],
"env": {
"CODIVUPLOAD_API_KEY": "cdv_your_api_key"
}
}
}
}After saving, restart your MCP client. The agent will detect the CodivUpload tools automatically — try asking it to "list my connected profiles" to verify the connection.
What agents can do with these tools
These are real examples of prompts that an MCP-connected agent handles end-to-end:
"Post the video at https://cdn.example.com/reel.mp4 to TikTok and Instagram Reels with this caption: 'Behind the build — new feature just shipped.' Set TikTok to friends-only for now."
Claude calls publish_post with platforms=[tiktok, instagram], tiktok_privacy_level=1, instagram_media_type=REELS automatically.
"After my deploy script runs, publish a release announcement post to LinkedIn and X using this changelog text."
Cursor chains the deploy task to a publish_post call — social media publishing is part of the CI/CD flow.
"Schedule five posts for the next five weekdays at 9am EST, each with a different quote from this list. Spread them across TikTok, Instagram, and YouTube Shorts."
Claude creates five schedule_post calls with staggered scheduled_date values and correct platform mappings.
Why this matters for automation
REST APIs require you to build a client. Webhooks require you to build a listener. MCP requires none of that — you write a prompt and the agent handles parameter mapping, retries, and error handling.
Zero glue code
No wrappers, no SDK setup, no JSON schema management. The agent reads the MCP tool schema automatically.
Works in any MCP client
One server config works in Claude Desktop, Cursor, Windsurf, or any future MCP-compatible host.
Chained workflows
Chain publish_post after a deploy, a PR merge, a design export, or any other agent action.
Agent-native publishing
Social media publishing becomes a first-class action in your AI workflow, not an afterthought.
Further reading
MCP is one piece of the CodivUpload automation story. These guides cover the rest:
MCP Server Documentation
Full tool schemas, authentication details, error codes, and rate limits.
Cross-Post to 12 Platforms in One Click
How the multi-platform publishing pipeline works under the hood.
Whitelabel API Guide
Build your own social media tool on top of the CodivUpload API with custom branding.
TypeScript SDK — npm install codivupload
Prefer programmatic access over natural language? The official TypeScript SDK provides full type safety and auto-retry for all API endpoints.
Python SDK — pip install codivupload
Official Python SDK for CodivUpload. Publish, schedule, and manage posts from any Python script or automation pipeline.