MCP Server BulkPublish

MCP Server for scheduling and publishing social posts

One address connects any MCP-compatible agent to BulkPublish. Sign in once and the agent can post, schedule and report back, with no key stored on your machine.

MCP Server integration for BulkPublish

MCP Server operations

MCP Server can use 20 operations, sorted below into 5 areas. The list is read from the code MCP Server talks to, so everything on it works today.

AreaOperations
Analytics get_analytics
Channels list_channels
Media create_media_upload,finalize_media_upload,list_media,upload_media
Posts create_post,delete_post,get_post,get_post_metrics,get_queue_slot,list_posts,publish_post,retry_post,update_post
Interactive panels compose_post,view_analytics,view_channels,view_media,view_posts

Where the posts go

Whatever MCP Server schedules can go to any of these 15 networks, to one account or to all of them at once. Each one links to its own page with its limits and post types.

MCP Server setup

Most people should add the hosted address to their client and sign in. If you want the server running on your own machine instead, the package runs it locally with an API key and a larger set of tools.

  1. Create a BulkPublish account and connect the channels you want to publish to. The free plan connects three channels and does not ask for a card.
  2. Add the server to your MCP client using the configuration below. The address is https://mcp.bulkpublish.com/mcp and the transport is Streamable HTTP. There is no key to paste.
  3. Sign in when the client asks. That sign-in is OAuth 2.1 with PKCE, so the token belongs to that client alone and you can revoke it from your account whenever you like.
  4. To run it yourself instead, use the self-hosted block below. It starts @bulkpublish/mcp-server with an API key from Settings then Developer.
  5. Ask your assistant to post something. The 20 operations listed above are everything it can reach.

Configuration for MCP Server

Most clients read this shape. Pick your client below for the exact spelling it wants:
{
  "mcpServers": {
    "bulkpublish": {
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Claude

Run this:
claude mcp add --transport http bulkpublish https://mcp.bulkpublish.com/mcp
Or add this to .mcp.json by hand:
{
  "mcpServers": {
    "bulkpublish": {
      "type": "http",
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Claude guide

ChatGPT

In ChatGPT, open Settings → MCP servers → Add server → Streamable HTTP and enter this address:
https://mcp.bulkpublish.com/mcp

Full ChatGPT guide

Grok

In Grok, open grok.com/connectors → New connector → Custom and enter this address:
https://mcp.bulkpublish.com/mcp

Full Grok guide

Grok Bot

Point Grok Bot at this address and choose Streamable HTTP:
https://mcp.bulkpublish.com/mcp

Full Grok Bot guide

Muse

Point Muse at this address and choose Streamable HTTP:
https://mcp.bulkpublish.com/mcp

Full Muse guide

Manus

In Manus, open Settings → Integrations → Custom MCP Servers → Add Server and enter this address:
https://mcp.bulkpublish.com/mcp

Full Manus guide

Cue

Point Cue at this address and choose Streamable HTTP:
https://mcp.bulkpublish.com/mcp

Full Cue guide

Cursor

Add this to .cursor/mcp.json:
{
  "mcpServers": {
    "bulkpublish": {
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Cursor guide

Antigravity

Add this to ~/.gemini/config/mcp_config.json:
{
  "mcpServers": {
    "bulkpublish": {
      "serverUrl": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Antigravity guide

Codex CLI

Add this to ~/.codex/config.toml:
[mcp_servers.bulkpublish]
url = "https://mcp.bulkpublish.com/mcp"
Or run the server yourself, with an API key instead of signing in:
[mcp_servers.bulkpublish]
command = "npx"
args = ["-y", "@bulkpublish/mcp-server"]
env = { BULKPUBLISH_API_KEY = "bp_your_api_key" }

Full Codex CLI guide

Gemini CLI

Run this:
gemini mcp add --transport http bulkpublish https://mcp.bulkpublish.com/mcp
Or add this to ~/.gemini/settings.json by hand:
{
  "mcpServers": {
    "bulkpublish": {
      "httpUrl": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Gemini CLI guide

Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:
{
  "mcpServers": {
    "bulkpublish": {
      "serverUrl": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Windsurf guide

VS Code

Add this to .vscode/mcp.json:
{
  "servers": {
    "bulkpublish": {
      "type": "http",
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "servers": {
    "bulkpublish": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full VS Code guide

Cline

Add this to cline_mcp_settings.json:
{
  "mcpServers": {
    "bulkpublish": {
      "type": "streamableHttp",
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "mcpServers": {
    "bulkpublish": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key"
      }
    }
  }
}

Full Cline guide

Warp

In Warp, open MCP servers → + Add and paste this:
{
  "bulkpublish": {
    "url": "https://mcp.bulkpublish.com/mcp"
  }
}
Or run the server yourself, with an API key instead of signing in:
{
  "bulkpublish": {
    "command": "npx",
    "args": [
      "-y",
      "@bulkpublish/mcp-server"
    ],
    "env": {
      "BULKPUBLISH_API_KEY": "bp_your_api_key"
    }
  }
}

Full Warp guide

OpenClaw

Point OpenClaw at this address and choose Streamable HTTP:
https://mcp.bulkpublish.com/mcp

Full OpenClaw guide

Hermes

Point Hermes at this address and choose Streamable HTTP:
https://mcp.bulkpublish.com/mcp

Full Hermes guide

Prompts to start with

Once MCP Server is connected, paste one of these to get going. Swap anything in square brackets for your own details.

See what is connected
Show me my BulkPublish channels, then list everything scheduled on them for the next seven days. Tell me which channels have nothing queued.
Draft one post and queue it
Write a LinkedIn post about [your topic]. Keep to my usual voice: [describe it in a line]. Show me the draft first, and once I say yes, schedule it in BulkPublish to the next free slot in my queue.
Turn a link into posts
Read [paste a URL] and turn it into one post for each of my connected BulkPublish channels, adapted to what works on each network rather than the same text everywhere. Schedule them for next Tuesday morning. Show me all of them before you schedule anything.
Plan a week in one pass
Here are five things I want to post about this week: [list them]. Create a BulkPublish post for each, spread across the free slots in my queue so nothing goes out back to back, and show me the finished week when you are done.
Post an image with caption options
Upload [file path, or attach the image] to my BulkPublish media library, then write three caption options for Instagram, each with a different angle. Once I pick one, schedule it with that image.
Check the next two weeks
List everything scheduled in BulkPublish for the next fourteen days, grouped by day. Flag anything duplicated, anything going out at an odd hour for its network, and any day with nothing at all.
Fix what failed
Find any BulkPublish posts that failed in the last seven days. For each one, tell me in plain language what went wrong, then retry only the ones that look like a temporary problem and tell me which ones need me to fix something first.
Read the numbers back
Pull my BulkPublish analytics for the last thirty days. Tell me the three posts that did best, what they have in common, and one thing I should do more of next month. Use my numbers, not general advice.

Ways teams use this

The starting point if your agent is not listed here yet, or if you want to compare how different clients spell the same configuration.

  • Bulk upload a month of posts in one pass, then let the queue send them out at the times you set.
  • Write once and cross-post everywhere. One post, adapted per network, goes to every connected channel together.
  • Turn a blog or podcast RSS feed into automatic posts the moment a new item appears.
  • Read the numbers back. Impressions, engagement and link clicks come back the same way the posts went out.

Details

The practical facts about MCP Server in one place, for setting it up now or checking something later.

DetailValue
Address https://mcp.bulkpublish.com/mcp
Authentication OAuth 2.1. Sign in once, nothing to copy, revoke whenever you like
Install npm install @bulkpublish/mcp-server
Operations 20 operations
Networks 15 networks

Open MCP Server · Read the API docs

Frequently asked questions

What people usually want to know before they connect MCP Server.

Which parts of BulkPublish does it reach?

20 operations, listed above. Posts, media, labels, channel sets, recurring schedules, RSS autopost and analytics are all covered, which is everything the app itself calls.

How does authentication work?

An API key, sent as a bearer token. Make one under Settings then Developer. A key belongs to one organisation, and you can revoke it on its own without disturbing anything else.

Which networks can I publish to?

All 15 of them, in one call. Send the same text everywhere or override it per network, and the post is checked against each network limit before it is queued rather than after it fails.

Can I upload images and video?

Yes. Upload in one request for small files, or take a direct upload URL and send large video straight to storage in parts. Both give you a media id you attach to a post.

Can I read analytics back?

Yes. Per-post metrics and account summaries come back for every network that publishes them, and link clicks are measured by BulkPublish itself, so those are there even where a network reports nothing.

Is it free to use?

Yes, on every plan including the free one. There is no separate API charge. What you schedule counts against the same monthly post allowance as anything written in the app.

Still stuck? The Help Center walks through it step by step.

Guides and tutorials

Walkthroughs from our blog that use MCP Server.

Read the blog

BulkPublish also works with 28 other tools. Pick one to see how it connects.

Start publishing

Create an account, connect your channels, and your first post can be scheduled a couple of minutes later. Free plan, no card, cancel whenever you like.