@bulkpublish/mcp-server

MCPcommunitylive
v1.42.0io.github.azeemkafridiMITUpdated 4d agonpmGitHub

Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.

Endpoint healthlive
checked 1 day ago · 413ms · auth required
100% of the last 1 check reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (stdio, streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
254Downloads/wk
3GitHub stars
4d agoLast update
Needs 1 credential before it runs
  • BULKPUBLISH_API_KEYAPI keyrequired

    Your BulkPublish API key (starts with bp_). Create one at https://app.bulkpublish.com/developer

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
Authorio.github.azeemkafridi
LicenseMIT
Version1.42.0
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/20
→ Publisher: run `forge publish` from the package repo to claim ownership
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
—npm Trusted Publishing (Sigstore)+0/5
→ Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
—npm maintainer match+0/5
→ Earned once your identity is verified above and that login is an npm maintainer of this package
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · 7 privileged
Security scan✓ Cleanv1.42.0 · 1d agoHow well does this scan work?
EvalsNone
IndexedOct 10, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · 7 privileged
Statically extracted from the published packagev1.42.0 · 1d ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

bulkpublishModel Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.

Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.

No input schema was published for this tool.

list_channelsList all connected social media channels (X/Twitter, Instagram, LinkedIn, Facebook, TikTok, etc.). Returns channel ID, platform, account name, and token status, plus a `capabilities` object saying whether the caller may create, publish or approve posts. Check that before attempting a write rather t…

List all connected social media channels (X/Twitter, Instagram, LinkedIn, Facebook, TikTok, etc.). Returns channel ID, platform, account name, and token status, plus a `capabilities` object saying whether the caller may create, publish or approve posts. Check that before attempting a write rather t…

No input schema was published for this tool.

list_platformsList every social platform BulkPublish supports and whether it is currently available.

List every social platform BulkPublish supports and whether it is currently available.

No input schema was published for this tool.

create_postCreate a new social media post. Can be saved as a draft or scheduled for a specific time. Supports platform-specific content overrides, media attachments, labels, and thread format.

Create a new social media post. Can be saved as a draft or scheduled for a specific time. Supports platform-specific content overrides, media attachments, labels, and thread format.

No input schema was published for this tool.

list_postsList posts with optional filters for status, search text, date range, channel, and label. Returns paginated results with platform statuses and metrics, ordered newest-first by publishedAt if the post is live, else scheduledAt, else createdAt.

List posts with optional filters for status, search text, date range, channel, and label. Returns paginated results with platform statuses and metrics, ordered newest-first by publishedAt if the post is live, else scheduledAt, else createdAt.

No input schema was published for this tool.

get_postGet a single post by ID with full details including platform statuses, labels, media files, recurring schedule info, and metrics. For a thread post, `threadParts` holds the parts and `threadMediaFiles` resolves the media they reference: that media is NOT in `mediaFiles`, which carries only the medi…

Get a single post by ID with full details including platform statuses, labels, media files, recurring schedule info, and metrics. For a thread post, `threadParts` holds the parts and `threadMediaFiles` resolves the media they reference: that media is NOT in `mediaFiles`, which carries only the medi…

No input schema was published for this tool.

publish_postPublish a draft or scheduled post immediately. The post will be queued for publishing to all its target channels.

Publish a draft or scheduled post immediately. The post will be queued for publishing to all its target channels.

No input schema was published for this tool.

retry_postRetry publishing a failed or partially failed post. Only retries the platforms that failed, not the ones that already succeeded.

Retry publishing a failed or partially failed post. Only retries the platforms that failed, not the ones that already succeeded.

No input schema was published for this tool.

approve_postApprove a post awaiting team approval. Requires a role with post:approve (owner, admin, approver).

Approve a post awaiting team approval. Requires a role with post:approve (owner, admin, approver).

No input schema was published for this tool.

reject_postReject a post awaiting team approval. Requires a role with post:approve.

Reject a post awaiting team approval. Requires a role with post:approve.

No input schema was published for this tool.

upload_mediaprivilegedUpload a media file (image or video) from a URL or local file path. The file is stored in BulkPublish for use in posts. Supported formats: JPEG, PNG, WebP, GIF, MP4, MOV, WebM. Max 100MB. Provide either url OR filePath, not both.

Upload a media file (image or video) from a URL or local file path. The file is stored in BulkPublish for use in posts. Supported formats: JPEG, PNG, WebP, GIF, MP4, MOV, WebM. Max 100MB. Provide either url OR filePath, not both.

No input schema was published for this tool.

list_mediaList uploaded media files with optional search and pagination. Returns file metadata including URLs, dimensions, and labels.

List uploaded media files with optional search and pagination. Returns file metadata including URLs, dimensions, and labels.

No input schema was published for this tool.

get_analyticsGet an analytics summary for a date range. Returns total posts, status breakdown (published, failed, scheduled), per-platform stats, and daily post counts. Optional filters narrow every figure to matching posts; `compare` adds the equal-length previous window under `previous` (available for windows…

Get an analytics summary for a date range. Returns total posts, status breakdown (published, failed, scheduled), per-platform stats, and daily post counts. Optional filters narrow every figure to matching posts; `compare` adds the equal-length previous window under `previous` (available for windows…

No input schema was published for this tool.

list_labelsList all labels available for tagging posts and media.

List all labels available for tagging posts and media.

No input schema was published for this tool.

create_labelCreate a new label for organizing posts or media files.

Create a new label for organizing posts or media files.

No input schema was published for this tool.

list_hashtag_groupsList the organization's saved hashtag groups — named sets of hashtags to drop into a post.

List the organization's saved hashtag groups — named sets of hashtags to drop into a post.

No input schema was published for this tool.

create_hashtag_groupSave a named set of hashtags (1-30) for reuse in posts. Hashtags may be given with or without the leading '#'; letters, digits and underscores only. Up to 100 groups per organization.

Save a named set of hashtags (1-30) for reuse in posts. Hashtags may be given with or without the leading '#'; letters, digits and underscores only. Up to 100 groups per organization.

No input schema was published for this tool.

update_hashtag_groupRename a hashtag group and/or replace its hashtags (partial update — at least one field is required).

Rename a hashtag group and/or replace its hashtags (partial update — at least one field is required).

No input schema was published for this tool.

delete_hashtag_groupprivilegedDelete a saved hashtag group. Posts that already contain its hashtags are untouched.

Delete a saved hashtag group. Posts that already contain its hashtags are untouched.

No input schema was published for this tool.

list_templatesList the organization's saved post templates — reusable text to start a new post from. Filter by kind to get saved first-comment snippets instead of captions.

List the organization's saved post templates — reusable text to start a new post from. Filter by kind to get saved first-comment snippets instead of captions.

No input schema was published for this tool.

create_templateSave post text as a named template for reuse (text only; media and channels belong to the post). Up to 200 per organization per kind (captions and first-comment snippets each have their own 200); names are unique per kind, so a caption and a first-comment snippet can share a name.

Save post text as a named template for reuse (text only; media and channels belong to the post). Up to 200 per organization per kind (captions and first-comment snippets each have their own 200); names are unique per kind, so a caption and a first-comment snippet can share a name.

No input schema was published for this tool.

update_templateRename a template and/or replace its text (partial update — at least one field is required).

Rename a template and/or replace its text (partial update — at least one field is required).

No input schema was published for this tool.

delete_templateprivilegedDelete a saved post template.

Delete a saved post template.

No input schema was published for this tool.

list_calendar_notesList calendar notes (free text pinned to a day — campaigns, holidays, 'no posts this week'; they never publish) in a date range of at most a year.

List calendar notes (free text pinned to a day — campaigns, holidays, 'no posts this week'; they never publish) in a date range of at most a year.

No input schema was published for this tool.

create_calendar_notePin a note to a day on the content calendar. Not a post: nothing is published.

Pin a note to a day on the content calendar. Not a post: nothing is published.

No input schema was published for this tool.

update_calendar_noteChange a calendar note's day, text and/or colour (partial update — at least one field is required).

Change a calendar note's day, text and/or colour (partial update — at least one field is required).

No input schema was published for this tool.

delete_calendar_noteprivilegedDelete a calendar note.

Delete a calendar note.

No input schema was published for this tool.

share_postCreate (or fetch) a post's read-only review link that anyone can open without signing in — for client approval outside the app. Returns { shareToken, url, created }. regenerate=true mints a new link and kills the old one. Pro and Business only: on the single-seat Free and Lifetime plans this answer…

Create (or fetch) a post's read-only review link that anyone can open without signing in — for client approval outside the app. Returns { shareToken, url, created }. regenerate=true mints a new link and kills the old one. Pro and Business only: on the single-seat Free and Lifetime plans this answer…

No input schema was published for this tool.

unshare_postRevoke a post's review link so the URL stops working. Idempotent. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

Revoke a post's review link so the URL stops working. Idempotent. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

No input schema was published for this tool.

list_review_linksList the organization's client review links (batch review links), newest first, with how many posts each one covers. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

List the organization's client review links (batch review links), newest first, with how many posts each one covers. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

No input schema was published for this tool.

create_review_linkCreate a read-only review link covering several posts at once — the multi-post counterpart of share_post. Anyone with the link can open it without signing in. Every postId must belong to the organization. Unlike share_post this is never regenerated in place: each call mints a new link and a new tok…

Create a read-only review link covering several posts at once — the multi-post counterpart of share_post. Anyone with the link can open it without signing in. Every postId must belong to the organization. Unlike share_post this is never regenerated in place: each call mints a new link and a new tok…

No input schema was published for this tool.

delete_review_linkprivilegedRevoke a client review link. The posts it covered are untouched. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

Revoke a client review link. The posts it covered are untouched. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

No input schema was published for this tool.

list_client_connect_linksList the organization's client-connect links, newest first — one-time links a client can open, with no BulkPublish account, to connect their own platform account. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

List the organization's client-connect links, newest first — one-time links a client can open, with no BulkPublish account, to connect their own platform account. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

No input schema was published for this tool.

create_client_connect_linkNo description published

This tool published no description. Forge does not invent one.

delete_client_connect_linkprivilegedRevoke a client-connect link before it has been used. Idempotent; an account it already connected is untouched. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

Revoke a client-connect link before it has been used. Idempotent; an account it already connected is untouched. Pro and Business only: on the single-seat Free and Lifetime plans this answers 403 FEATURE_DISABLED with the plan and an upgrade hint.

No input schema was published for this tool.

update_mediaSet a media file's alt text (accessibility description). It belongs to the file, so one value covers every post that reuses it, and is sent to Instagram, LinkedIn, X, Bluesky, Tumblr and Discord. Pass an empty string to clear.

Set a media file's alt text (accessibility description). It belongs to the file, so one value covers every post that reuses it, and is sent to Instagram, LinkedIn, X, Bluesky, Tumblr and Discord. Pass an empty string to clear.

No input schema was published for this tool.

get_quota_usageCheck current account usage. Returns daily/monthly post counts, scheduled post counts, channel counts, and media storage usage.

Check current account usage. Returns daily/monthly post counts, scheduled post counts, channel counts, and media storage usage.

No input schema was published for this tool.

update_postNo description published

This tool published no description. Forge does not invent one.

delete_postprivilegedDelete a post by ID. Only draft and failed posts can be deleted.

Delete a post by ID. Only draft and failed posts can be deleted.

No input schema was published for this tool.

get_post_metricsNo description published

This tool published no description. Forge does not invent one.

37 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.

Keywords
mcpbulkpublishsocial-mediaaiclaudemodel-context-protocol
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-11 — observed resolution, not a publisher declaration.

60 packages resolved · 5 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

75 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+63 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.