Skip to main content

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.

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

  1. Sign in to app.upload-post.com.
  2. Open the API Keys section.
  3. 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

GroupTools
Uploadupload_video, upload_photos, upload_text, upload_document
Statusget_status, get_job_status, get_history, get_media
Schedulelist_scheduled, cancel_scheduled, edit_scheduled
Analyticsget_analytics, get_total_impressions, get_post_analytics, get_platform_metrics
Usersget_account_info, list_users, create_user, delete_user, generate_jwt, validate_jwt
Pages / boardsget_facebook_pages, get_linkedin_pages, get_pinterest_boards, get_google_business_locations, select_google_business_location, get_reddit_detailed_posts
Commentsget_post_comments, reply_to_comment, public_reply_to_comment
DMssend_dm, list_dm_conversations, manage_autodms
FFmpegsubmit_ffmpeg_job, get_ffmpeg_job, download_ffmpeg_result, get_ffmpeg_consumption
Queueget_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 marketing with 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 marketing over 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.