GitHunt
CH

chen-friedman/upload-post-mcp

MCP server for UploadPost API — upload, schedule & manage social media content across 10+ platforms (TikTok, Instagram, YouTube, LinkedIn, Facebook, X, Threads, Pinterest, Reddit, Bluesky) from any AI assistant.

Upload-Post MCP Server

npm version
npm downloads
License: MIT
smithery badge

A Model Context Protocol (MCP) server that lets AI assistants upload, schedule, and manage social media content across 10+ platforms through the UploadPost API.

One MCP server. Every social network. Zero tab-switching.

Ask your AI: "Upload this video to TikTok, Instagram, and YouTube with the title 'Product Launch'" — and it just works.

Supported Platforms

Platform Video Photo Text
TikTok
Instagram
YouTube
LinkedIn
Facebook
X (Twitter)
Threads
Pinterest
Reddit
Bluesky
Google Business

Quick Start

Prerequisites

  1. Node.js 18+Download
  2. UploadPost API KeyGet one free (no credit card required)

Run with npx (no install needed)

npx -y upload-post-mcp

Installation

Choose your AI client below and follow the setup instructions.

Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "upload-post": {
      "command": "npx",
      "args": ["-y", "upload-post-mcp"],
      "env": {
        "UPLOAD_POST_API_KEY": "your-api-key-here"
      }
    }
  }
}

Restart Claude Desktop after saving.

Cursor

Add to your Cursor MCP config (~/.cursor/mcp.json for global, or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "upload-post": {
      "command": "npx",
      "args": ["-y", "upload-post-mcp"],
      "env": {
        "UPLOAD_POST_API_KEY": "your-api-key-here"
      }
    }
  }
}
Windsurf

Add to your Windsurf MCP config file (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "upload-post": {
      "command": "npx",
      "args": ["-y", "upload-post-mcp"],
      "env": {
        "UPLOAD_POST_API_KEY": "your-api-key-here"
      }
    }
  }
}
Claude Code (CLI)
claude mcp add --scope user upload-post -- npx -y upload-post-mcp

# Then set the environment variable:
export UPLOAD_POST_API_KEY=your-api-key-here

Or add it with the environment variable inline:

claude mcp add --scope user -e UPLOAD_POST_API_KEY=your-api-key-here upload-post -- npx -y upload-post-mcp
VS Code / GitHub Copilot

Add to your VS Code settings.json or .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "upload-post": {
        "command": "npx",
        "args": ["-y", "upload-post-mcp"],
        "env": {
          "UPLOAD_POST_API_KEY": "your-api-key-here"
        }
      }
    }
  }
}
Opencode

Add to your Opencode configuration file:

{
  "mcp": {
    "upload-post": {
      "type": "local",
      "command": ["npx", "-y", "upload-post-mcp"],
      "env": {
        "UPLOAD_POST_API_KEY": "your-api-key-here"
      },
      "enabled": true
    }
  }
}
Cline

Add via Cline MCP settings in VS Code:

  1. Open the Cline extension settings
  2. Navigate to MCP Servers
  3. Add a new server with this config:
{
  "mcpServers": {
    "upload-post": {
      "command": "npx",
      "args": ["-y", "upload-post-mcp"],
      "env": {
        "UPLOAD_POST_API_KEY": "your-api-key-here"
      }
    }
  }
}
Zed

Add to your Zed settings (~/.config/zed/settings.json):

{
  "context_servers": {
    "upload-post": {
      "command": {
        "path": "npx",
        "args": ["-y", "upload-post-mcp"],
        "env": {
          "UPLOAD_POST_API_KEY": "your-api-key-here"
        }
      }
    }
  }
}
Smithery (One-Click Install)
npx -y @smithery/cli install @chen-friedman/upload-post-mcp --client claude
Docker
docker run -i --rm \
  -e UPLOAD_POST_API_KEY=your-api-key-here \
  node:22-slim \
  npx -y upload-post-mcp

Available Tools

This MCP server exposes 12 tools that AI assistants can use:

Content Publishing

Tool Description
upload_video Upload a video to one or more platforms. Accepts a local file path or public URL.
upload_photos Upload photos or carousels (including mixed photo+video for Instagram/Threads).
upload_text Post text-only content to X, LinkedIn, Facebook, Threads, Reddit, and Bluesky.

Status & History

Tool Description
get_upload_status Check the status of an async upload or scheduled post.
get_upload_history Retrieve paginated history of all past uploads with filtering.

Analytics

Tool Description
get_analytics Get profile-level analytics (followers, impressions, reach, engagement).
get_post_analytics Get per-post metrics (views, likes, comments, shares).

Account Management

Tool Description
get_current_user Validate API key and check account info and plan limits.
get_facebook_pages List accessible Facebook Pages (needed for facebook_page_id).
get_linkedin_pages List LinkedIn company pages (needed for target_linkedin_page_id).
get_pinterest_boards List Pinterest boards (needed for pinterest_board_id).
get_queue_preview Preview upcoming queue slots and availability for a profile.

Usage Examples

Once connected, just ask your AI assistant naturally:

Upload a Video

"Upload the video at C:/videos/launch.mp4 to TikTok and Instagram with the caption 'New product launch! 🚀'"

Schedule a Post

"Schedule this video for tomorrow at 9 AM EST on YouTube, LinkedIn, and Facebook"

Check Analytics

"Show me the analytics for my account on Instagram and TikTok"

Cross-Post Text

"Post 'Just shipped v2.0! Check it out at example.com' to X, LinkedIn, Threads, and Bluesky"

"Upload these 5 product photos as a carousel to Instagram and Facebook with the caption 'New collection'"

Check Upload Status

"What's the status of my last upload?"


Configuration

Environment Variables

Variable Required Description
UPLOAD_POST_API_KEY Yes Your UploadPost API key. Get one here

Getting Your API Key

  1. Create a free account at app.upload-post.com
  2. Connect your social media accounts
  3. Go to API Keys and generate a key
  4. Add the key to your MCP client configuration

Troubleshooting

"UPLOAD_POST_API_KEY is not set"

Make sure your API key is set in the env section of your MCP client configuration. The key should not have quotes around the value in environment variables.

Connection Issues

  1. Verify your API key is valid by visiting app.upload-post.com/api-keys
  2. Ensure Node.js 18+ is installed: node --version
  3. Try running the server directly to check for errors:
    UPLOAD_POST_API_KEY=your-key npx -y upload-post-mcp

Upload Failures

  • Check that your social media accounts are connected in the UploadPost dashboard
  • For Facebook, you need to use get_facebook_pages first to get the page ID
  • For Pinterest, you need to use get_pinterest_boards first to get the board ID
  • Ensure your file paths are absolute when uploading local files

MCP Inspector (Debugging)

You can use the official MCP Inspector to test tools interactively:

npx @modelcontextprotocol/inspector npx -y upload-post-mcp

Development

# Clone the repo
git clone https://github.com/chen-friedman/upload-post-mcp.git
cd upload-post-mcp

# Install dependencies
npm install

# Build
npm run build

# Run locally
UPLOAD_POST_API_KEY=your-key npm start

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT — see LICENSE for details.


Built with ❤️ by Upload-Post — One API, every social network.
chen-friedman/upload-post-mcp | GitHunt