MCP Server (Claude / Cursor)
Upload-Post ships an official Model Context Protocol (MCP) server. Connect it to Claude Desktop, Claude Code, Cursor, or any other MCP-compatible AI agent and your assistant can publish, schedule, analyze and manage social media on your behalf — without writing any code.
The server exposes 40 tools that map 1:1 to the public Upload-Post REST API.
- Hosted endpoint:
https://mcp.upload-post.com/mcp - Source: github.com/Upload-Post/upload-post-mcp (MIT)
How authentication works
The server is multi-tenant and stateless. Each MCP client sends its own Upload-Post API key in the Authorization header of every request. The server uses that key for the duration of the session and stores nothing.
Authorization: ApiKey YOUR_UPLOAD_POST_API_KEY
Authorization: Bearer YOUR_UPLOAD_POST_API_KEY is also accepted, for clients that only allow Bearer tokens.
Get your API key
- Sign in to app.upload-post.com.
- Open the API Keys section.
- Generate a new key and copy it.
Connect Claude Desktop / Claude Code / Cursor
Add the following entry to your MCP config (~/.claude/mcp.json, ~/.cursor/mcp.json, or your IDE's equivalent):
{
"mcpServers": {
"upload-post": {
"url": "https://mcp.upload-post.com/mcp",
"headers": {
"Authorization": "ApiKey YOUR_UPLOAD_POST_API_KEY"
}
}
}
}
Restart your client. You should see 40 upload-post tools become available.
What the agent can do
| Group | Tools |
|---|---|
| Upload | upload_video, upload_photos, upload_text, upload_document |
| Status | get_status, get_job_status, get_history, get_media |
| Schedule | list_scheduled, cancel_scheduled, edit_scheduled |
| Analytics | get_analytics, get_total_impressions, get_post_analytics, get_platform_metrics |
| Users | get_account_info, list_users, create_user, delete_user, generate_jwt, validate_jwt |
| Pages / boards | get_facebook_pages, get_linkedin_pages, get_pinterest_boards, get_google_business_locations, select_google_business_location, get_reddit_detailed_posts |
| Comments | get_post_comments, reply_to_comment, public_reply_to_comment |
| DMs | send_dm, list_dm_conversations, manage_autodms |
| FFmpeg | submit_ffmpeg_job, get_ffmpeg_job, download_ffmpeg_result, get_ffmpeg_consumption |
| Queue | get_queue_settings, update_queue_settings, preview_queue |
Async uploads return a request_id; the agent polls get_status until success: true.
Example prompts
Once connected, try these in your AI client:
- "List the users in my Upload-Post account."
- "Publish this video URL to TikTok and Instagram under the profile
marketingwith the caption 'Spring launch'." - "Schedule a text post on LinkedIn for next Monday at 10:00 Madrid time."
- "Show me the analytics for my profile
marketingover the last month." - "Reply privately to the latest comment on my Instagram post."
The model decides which tools to call based on the request; you don't have to name them.
Self-hosting (optional)
If you prefer to run the server yourself — for an isolated network, custom auth proxy, or stricter compliance requirements — the source repository ships with a multi-stage Dockerfile and a one-click Coolify configuration. See the project README for instructions.
Local-only stdio mode
For single-user setups (no hosted server), you can run the MCP locally via npx. Once published to npm, the configuration becomes:
{
"mcpServers": {
"upload-post": {
"command": "npx",
"args": ["-y", "@upload-post/mcp"],
"env": { "UPLOAD_POST_API_KEY": "YOUR_UPLOAD_POST_API_KEY" }
}
}
}
Both modes expose the same 40 tools.
Need assistance?
Open an issue at github.com/Upload-Post/upload-post-mcp/issues or contact our support team.