Odel
qpost mcp

qpost mcp

@arslan2012JavaScriptMITUpdated 2w ago

MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.

Server endpointStreamable HTTPAPI keyProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

qpost-mcp

MCP server for QPost — lets AI agents schedule and publish video/image posts to YouTube, TikTok, and Instagram through QPost's REST API.

Install

Generate an API key from your QPost dashboard (Settings → API Keys), then pick one of the two options below.

Hosted (recommended — nothing to install)

QPost runs the same server at https://qpost.dev/mcp over Streamable HTTP:

claude mcp add --transport http qpost https://qpost.dev/mcp \
  --header "x-api-key: YOUR_API_KEY"

Any MCP client that speaks Streamable HTTP can point at that URL with an x-api-key (or Authorization: Bearer) header. The endpoint is stateless, so there is no session to manage.

Local (stdio) via npx

Use this if you self-host QPost or would rather run the server yourself:

claude mcp add qpost -e QPOST_API_KEY=your_key_here -- npx -y qpost-mcp

Claude Desktop / other MCP clients

{
  "mcpServers": {
    "qpost": {
      "command": "npx",
      "args": ["-y", "qpost-mcp"],
      "env": {
        "QPOST_API_KEY": "your_key_here"
      }
    }
  }
}

Set QPOST_BASE_URL too if you're self-hosting QPost (defaults to https://qpost.dev).

Tools

ToolDescription
list_connected_accountsList connected YouTube/TikTok/Instagram accounts and their status
create_postCreate and publish (or schedule) a post, with video or image media from a URL or local path
list_postsList posts, optionally filtered by status/platform
get_postGet a single post by ID
update_postUpdate a post's caption/schedule/timezone/status
delete_postDelete a post
retry_postRetry a failed post

Media handling differs by transport

The local stdio server can read files from your machine, so create_post accepts mediaPath as well as mediaUrl. The hosted endpoint obviously cannot reach your disk — it takes mediaUrl/imageUrls, or mediaBase64 with an optional mediaFilename to set the MIME type.

Full request/response shapes and per-platform metadata options (YouTube category/privacy, TikTok privacy level, Instagram media type, etc.) are documented at qpost.dev/docs — this server is a thin wrapper over that same REST API.

Local development

npm install
npm run dev   # runs src/index.ts directly via tsx
npm run build # compiles to dist/

License

MIT