Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

BulkPublish

by azeemkafridiversion 1.42.0i★ –iComputer or cloud
Registry nameio.github.azeemkafridi/bulkpublish

Install

Overview

Description from the maker (original English)

Schedule, cross-post, and analyze social media posts across 15 platforms from AI agents.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Marketing & social media
  • You need to fill in: BULKPUBLISH_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: BULKPUBLISH_API_KEY, BULKPUBLISH_TOOL_PROFILE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://mcp.bulkpublish.com/mcp

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "your-value",
        "BULKPUBLISH_TOOL_PROFILE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http bulkpublish https://mcp.bulkpublish.com/mcp

Or run it on your computer

claude mcp add bulkpublish --env BULKPUBLISH_API_KEY=your-value --env BULKPUBLISH_TOOL_PROFILE=your-value -- npx -y @bulkpublish/mcp-server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "bulkpublish": {
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "your-value",
        "BULKPUBLISH_TOOL_PROFILE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "bulkpublish": {
      "type": "http",
      "url": "https://mcp.bulkpublish.com/mcp"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "bulkpublish": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bulkpublish/mcp-server"
      ],
      "env": {
        "BULKPUBLISH_API_KEY": "your-value",
        "BULKPUBLISH_TOOL_PROFILE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://mcp.bulkpublish.com/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • BULKPUBLISH_API_KEY secret required env
    Your BulkPublish API key (starts with bp_). Create one at https://app.bulkpublish.com/developer
  • BULKPUBLISH_TOOL_PROFILE env
    Tool set to expose: core, inbox, or full (default full)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account azeemkafridi, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Marketing & social mediai

  • More stars than 0% of the other 3560 servers in this category
  • Published to the registry more recently than 50% of the other 3560 servers in this category
  • Basic checks equal to or better than 100% of the other 3560 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is BulkPublish safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: BULKPUBLISH_API_KEY

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.42.0) reached the registry 30 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

An MCP server retrieving transcripts of YouTube videos

Runs on your computer★ 495MITUpdated 10 days ago
Install

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

Runs on your computer★ 244MITUpdated 10 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

BulkPublish MCP Server

A Model Context Protocol server that lets Claude and other AI assistants interact with the BulkPublish social media publishing API.

What it does

This MCP server exposes BulkPublish API operations as tools that AI assistants can call directly. You can ask Claude to schedule posts, check analytics, upload media, manage labels, and more — all through natural conversation.

Installation

Option 1: npx (recommended)
npx @bulkpublish/mcp-server
Option 2: Global install
npm install -g @bulkpublish/mcp-server

bulkpublish-mcp

Option 3: From source
git clone https://github.com/azeemkafridi/bulkpublish-api.git

cd bulkpublish-api/mcp-server npm install npm run build node dist/index.js

Requires Node ≥ 20.19. npm run build bundles the composer UI with Vite (build:ui), then compiles the server with tsc.

Configuration

Set your API key as an environment variable:

export BULKPUBLISH_API_KEY=bp_your_api_key_here

Get your API key at app.bulkpublish.com/developer.

Claude Desktop

Add this to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{

"mcpServers": { "bulkpublish": { "command": "npx", "args": ["-y", "@bulkpublish/mcp-server"], "env": { "BULKPUBLISH_API_KEY": "bp_your_api_key_here" } } } }

If you installed from source:

{

"mcpServers": { "bulkpublish": { "command": "node", "args": ["/absolute/path/to/bulkpublish-api/mcp-server/dist/index.js"], "env": { "BULKPUBLISH_API_KEY": "bp_your_api_key_here" } } } }

Claude Code

Add the MCP server to your Claude Code configuration:

claude mcp add bulkpublish -- npx -y @bulkpublish/mcp-server

Set the environment variable in your shell profile or .env file:

export BULKPUBLISH_API_KEY=bp_your_api_key_here

Remote / hosted server (HTTP)

The npx/stdio setup above runs the server locally. Web clients that cannot spawn a local process — claude.ai custom connectors and Smithery's gateway — connect to a hosted HTTP endpoint instead. Alongside the stdio bin, the server ships a Streamable HTTP transport (dist/http.js, run with npm run start:http):

EndpointPurpose
POST /mcpMCP Streamable HTTP (stateless)
GET /.well-known/mcp/server-card.jsonStatic metadata so registries can skip scanning
GET /healthLiveness check

It is multi-tenant — the process holds no API key. Each caller supplies their own bp_… key per request via the connection URL (?key=bp_…), a Smithery ?config= blob, or an Authorization: Bearer bp_… / X-BulkPublish-Key header. initialize, tools/list, and resources/* need no key (so scans and tool discovery work); a tools/call without one returns 401.

A Dockerfile is included:

docker build -t bulkpublish-mcp . && docker run -p 8080:8080 bulkpublish-mcp

Once deployed, add it to claude.ai → Settings → Connectors → Add custom connector as https:// /mcp?key=bp_…, or publish the https:// /mcp URL to Smithery.

Auto-connect for organizations

The hosted server at https://mcp.bulkpublish.com/mcp supports enterprise-managed authorization (the MCP io.modelcontextprotocol/enterprise-managed-authorization extension). An organization on Claude Team or Enterprise can connect every member to BulkPublish at once, with no sign-in screen and no pasted API key: the workspace owner trusts the organization's issuer (its Claude organization, or its identity provider) under API → MCP Auto-connect in BulkPublish, and members are matched to the workspace by their verified email address. In Claude, an organization Owner sets it up under Organization settings → Connectors → Set up auto-connect.

For client developers: the token endpoint accepts grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer with an identity assertion, from a public client identified by a Client ID Metadata Document (an https client_id). Access tokens from this grant last up to an hour and carry no refresh token. Dynamic client registration and the authorization-code flow are unchanged.

Tool profiles

The server ships three tool profiles, chosen with BULKPUBLISH_TOOL_PROFILE:

ProfileToolsDefault for
core26 — channels, posts, media, analytics, labels, approvals, post comments, channel sync settings, and the interactive panelsThe hosted HTTP server (dist/http.js), which is what the Claude and ChatGPT directories list
inbox32 — everything in core, plus the Inbox and comment-reply tools: list_conversations, get_conversation, reply_to_conversation, update_conversation, reply_to_comment, moderate_commentOpt-in on a hosted deployment (BULKPUBLISH_TOOL_PROFILE=inbox). The core tools in it are identical to the core profile's
fullEvery tool (including the Inbox and comment tools; label management, hashtag groups, templates, calendar notes, review links, client-connect links, recurring schedules, channel sets, RSS feeds, chunked uploads, quota)The local stdio server (npx @bulkpublish/mcp-server)

Set BULKPUBLISH_TOOL_PROFILE=full on a hosted deployment to expose everything, or core locally to keep a small tool list. The panels' buttons call back into create_post, publish_post, retry_post, update_post, delete_post, list_channels, list_media, get_post, create_media_upload and finalize_media_upload, so all of those are in core.

Every tool carries a title and explicit readOnlyHint, destructiveHint, idempotentHint and openWorldHint booleans; npm run check:annotations verifies that for every profile (add --table to print the per-tool justification table used in directory submissions).

Available Tools

Tools marked ★ are in the core profile (see Tool profiles); tools marked ✉ are in inbox (with every ★ tool); the rest need full.

ToolDescription
Posts
create_post ★Create and optionally schedule a post (supports reels, stories, carousels, threads via postTypeOverrides)
compose_post ★Open an interactive composer UI (MCP Apps) to draft/schedule a post; submits via create_post
update_post ★Update a draft or scheduled post: content, timing, media, labels, the full channel list (add or drop channels), per-platform text, thread parts, assignee and recurring schedule
get_post ★Get a single post with full details
list_posts ★List posts with filters (status, search, date range, labels, recurring)
delete_post ★Delete a post
publish_post ★Publish a draft post immediately
retry_post ★Retry a failed post
approve_post ★Approve a post awaiting team approval (roles with post:approve)
reject_post ★Reject a pending post back to draft, with an optional reason
get_post_metrics ★Get engagement metrics (impressions, likes, comments, shares). Each platform entry carries supportedMetrics — a key not in that list is a stored 0, not a measurement
publish_storyPublish as a story to Facebook or Instagram
bulk_postsBulk delete, retry or reschedule up to 100 posts
get_queue_slot ★Get the next optimal time slot for a channel
Channels
list_channels ★List all connected social media channels
get_channel_healthCheck channel token health
get_channel_options ★Get platform-specific options (boards, playlists)
update_channel ★Turn an X channel's analytics sync or DM/reply reading on or off
search_mentionsSearch users for @mention (X, Bluesky, Mastodon, LinkedIn Pages — LinkedIn results carry the vanityName slug they matched on)
Channel Sets
list_channel_setsList saved channel groups for one-click multi-channel targeting
create_channel_setSave a named group of channels (max 50 per org, names unique per org)
update_channel_setRename a set or change its channels
delete_channel_setDelete a channel set
RSS Autopost
list_rss_feedsList RSS/Atom feeds polled every 15 minutes (new items become posts)
create_rss_feedAdd a feed (max 20 per org); mode = draft (default, items become drafts) or publish (auto-published); optional fieldMapping controls how items render (caption template, media pick, truncation, per-channel overrides)
update_rss_feedChange, pause, or re-point a feed (changing feedUrl re-baselines it — the backlog is not flooded)
delete_rss_feedStop and remove a feed
Media
upload_media ★Upload a media file from a URL (or local path on the stdio server)
get_mediaGet a media file by ID
list_media ★List uploaded media files
delete_mediaDelete a media file
create_media_upload ★Reserve a presigned R2 URL for a direct browser upload (used by the composer)
finalize_media_upload ★Record an uploaded object as a media file after the browser PUT (used by the composer)
create_multipart_uploadStart a chunked upload for large media (videos up to 1GB) — presigned URLs for fixed 10MB parts
complete_multipart_uploadAssemble the uploaded parts (partNumber + ETag each) and record the media file
abort_multipart_uploadCancel an in-progress chunked upload and free its stored parts
Labels
create_labelCreate a new label
list_labels ★List all labels
update_labelUpdate a label name or color
delete_labelDelete a label
Analytics
get_analytics ★Get analytics summary for a date range
Schedules
list_schedulesList recurring schedules
create_scheduleCreate a recurring schedule
update_scheduleUpdate a schedule
delete_scheduleDelete a schedule
Inbox and comments
list_conversations ✉List direct messages, reviews and comment threads, newest activity first, with filters and paging (Pro and Business plans)
get_conversation ✉Read one conversation's messages, oldest first; does not mark it read
reply_to_conversation ✉Send a reply to the person on the platform right away; it cannot be unsent
update_conversation ✉Mark read or unread, archive or reopen, snooze, or assign a conversation; nothing is sent
list_post_comments ★List the comments and reactions on a published post, per channel, with the ids the reply and moderate tools take
reply_to_comment ✉Post a public reply to a comment right away, as the channel the post went out on

Interactive UI (MCP Apps)

In hosts that support MCP Apps — Claude, ChatGPT, VS Code, Goose, Postman, and the Smithery playground — the `compose_post` tool opens an interactive composer rendered inline in the conversation: pick channels, write content, optionally schedule, then submit. On

Only the beginning is shown; read the rest in the repo

Ask PopNx