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

Postmcp MCP Server

by postmcpversion 1.0.1i★ –iRuns on your computer
Registry nameio.github.postmcp/postmcp-mcp-server

Install

Overview

Description from the maker (original English)

Publish and schedule posts to LinkedIn, X, Facebook, Instagram, Threads, Bluesky and YouTube Shorts.

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: Runs on your computer
  • Transport: stdio
  • Category: Marketing & social media
  • You need to fill in: POSTMCPAI_API_KEY

Install

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

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: POSTMCPAI_API_KEY, POSTMCPAI_PROJECT_ID

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

You need

  • 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 …”.

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

{
  "mcpServers": {
    "postmcp": {
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add postmcp --env POSTMCPAI_API_KEY=your-value --env POSTMCPAI_PROJECT_ID=your-value -- npx -y @postmcpai/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": {
    "postmcp": {
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "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": {
    "postmcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "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.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

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

Values you fill in

  • POSTMCPAI_API_KEY secret required env
    Secret API key from the PostMCP AI dashboard (Settings → API keys)
  • POSTMCPAI_PROJECT_ID env
    Optional workspace id to act on; defaults to the workspace the key was issued from

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

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

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 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account postmcp, 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 applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Marketing & social mediai

  • More stars than 0% of the other 2969 servers in this category
  • Published to the registry more recently than 31% of the other 2969 servers in this category
  • Basic checks equal to or better than 100% of the other 2969 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 Postmcp MCP Server 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: POSTMCPAI_API_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.0.1) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

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 9 days ago
Install

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

Runs on your computer★ 244MITUpdated 9 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.

PostMCP AI Model Context Protocol (MCP) Server

Official PostMCP AI Model Context Protocol (MCP) Server. Connect your social media publishing pipelines directly into AI assistants, desktop applications, IDE workflows, and web environments like Claude Desktop, Claude.ai, Cursor, and ChatGPT Custom GPTs.

Supported platforms include LinkedIn, X (Twitter), Facebook, Instagram, Threads, Bluesky, and YouTube Shorts.


🚀 Features & Capabilities

  • 🤖 20 Built-in Tools: Workspaces, connected accounts and their token health, the post queue, pre-flight checks, create/schedule/reschedule/publish/retry/delete, per-post and per-profile analytics, media uploads, image generation, and batching.
  • 🖼️ Carousels & galleries: Pass mediaUrls to publish a carousel on Instagram and Threads, a multi-photo post on Facebook and LinkedIn, or a four-image gallery on X and Bluesky - one call, every network's ceiling checked up front.
  • ⚡ Dual Transport Modes: Native Stdio mode (for local desktop apps & IDEs) and Streamable HTTP mode (for web services, Claude.ai, and remote connectors).
  • 🔑 Flexible Authentication: Auto-detects API key from environment variables (POSTMCPAI_API_KEY), URL query parameters (?apikey=YOUR_KEY), or HTTP authorization headers (x-api-key, Bearer token).
  • 🗂️ Multi-Workspace Aware: The API key carries its own workspace, so a bare key is enough. To act on another one, every tool takes an optional workspaceId, also settable per connection (?projectId=..., x-project-id) or per process (POSTMCPAI_PROJECT_ID).
  • 🤖 ChatGPT Actions Compatible: Includes built-in OpenAPI 3.0 specification generator (/openapi.json) and REST endpoints (/api/tools/:name) for ChatGPT Custom GPT integration.
  • 🔒 OAuth with PKCE and RFC 9728: Per-user consent, persistent encrypted grants, rotating tokens and DCR for ChatGPT/Codex. Requires the production settings in OAUTH.md; API-key clients remain supported.
  • 🧩 Installable plugin: Account onboarding, publishing, scheduling and analytics workflows. See PLUGIN.md and run npm run package:plugin.

📁 Repository Architecture

mcp-server/

├── bin/ │ └── cli.js # Executable CLI entry point (Stdio / HTTP mode runner) ├── src/ │ ├── config.js # Centralized configuration & environment loader │ ├── client.js # Backend API client, API key & workspace extraction │ ├── platforms.js # Platform limits, credit pricing & post cost helper │ ├── tools/ │ │ ├── definitions.js# MCP tool JSON schemas & parameter specifications │ │ ├── handlers.js # MCP tool execution handlers │ │ └── index.js # Tool definitions aggregator │ ├── server.js # MCP Server instance factory │ ├── routes/ │ │ ├── oauth.js # OAuth 2.0 & RFC 9728 discovery endpoints │ │ ├── openapi.js # OpenAPI 3.0 schema & ChatGPT REST endpoints │ │ ├── mcpHttp.js # MCP Streamable HTTP transport (/mcp) │ │ └── health.js # Health check & system metadata endpoints │ ├── app.js # Express application factory │ └── index.js # Main library entry point ├── index.js # Executable wrapper script ├── package.json └── README.md


⚙️ Environment Configuration

Environment VariableDescriptionDefault Value
POSTMCPAI_API_KEYRequired. Your secret API key from the PostMCP AI dashboard.None
POSTMCPAI_API_URLBackend API root. Only set for a self-hosted or local backend.https://api.postmcpai.com
POSTMCPAI_PROJECT_IDOptional. Overrides the workspace the API key is bound to. Overridden in turn by a call's workspaceId.The workspace the API key was issued from
PORTSetting this launches the server in Remote Streamable HTTP Mode.None (Defaults to Stdio Mode)

🛠️ MCP Tools Reference

Every tool below also accepts an optional workspaceId (from list_workspaces) to act on a specific workspace.

Reading
Tool NameDescriptionRequiredOptional
get_user_infoAuthenticated user: plan, credit balance, active workspace and role.—workspaceId
list_workspacesEvery workspace the user belongs to, with ids, roles, and connected platforms.——
get_connected_accountsConnected social profiles with the profileId needed to target them.—workspaceId
get_account_healthConnections whose token expired or is close to it and need reconnecting.—workspaceId
get_profile_analyticsA connected profile's followers, following, post count and views from its network. Stored reading is free; refresh reads the network now for 1 credit.platform, profileIdrefresh
list_postsPost queue, newest first, with per-profile delivery status, pagination and counts.—status, page, limit, all
get_postOne post in full: which profiles received it, live URLs, and per-profile errors.id—
get_post_analyticsViews, likes, comments, shares, saves and clicks per profile, plus the raw platform metrics. Stored reading is free; refresh reads the networks now for 1 credit.idrefresh
Writing
Tool NameDescriptionRequiredOptional
preflight_postDry run: character limits, unconnected profiles, missing media, carousel ceilings, credit cost. Publishes nothing.contenttargetAccounts, platforms, mediaUrl, mediaUrls
create_postDraft, schedule, or immediately publish a post to named profiles. Each profile becomes its own post with its own id. Several mediaUrls publish as a carousel.contenttargetAccounts, variants, platforms, publishImmediately, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube
publish_post_nowPublish an existing post immediately; also retries a failed post, skipping delivered profiles.id—
update_postUpdate content, target profiles, schedule, media, or status. mediaUrls replaces the whole attachment set.idcontent, targetAccounts, platforms, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube, status
reschedule_postMove a post to a new slot, keeping copy and targets. Re-arms failed and draft posts.id, scheduleDate, scheduleTimetimezone
reset_stuck_postRelease a post stuck mid-publish so it can be retried. Delivered profiles keep their state.idforce
delete_postCancel and delete a scheduled or failed post.id—
generate_imageGenerate a post image and return its hosted URL for mediaUrl. Costs 20 credits; paid plans only.promptstyleImageUrl
create_media_upload_urlAuthorize a direct image/video upload; returns a signed PUT URL and the future public URL.fileName, contentType, fileSizeworkspaceId
complete_media_uploadRegister a successfully uploaded file in the media library and return mediaUrl.url, key, fileName, contentType, fileSizeworkspaceId
import_media_from_urlCopy a public image/video into storage and the media library; returns mediaUrl.urlworkspaceId
Media uploads

For a local file, the MCP client needs an HTTP upload capability:

  1. Call create_media_upload_url with fileName, contentType (MIME type), and fileSize (bytes). For example: { "fileName": "launch.png", "contentType": "image/png", "fileSize": 245760 }.
  2. PUT the raw file bytes to the returned uploadUrl with the returned headers. Do not send your PostMCP API key to storage. The URL expires after expiresIn seconds (normally 900); request another if it expires. The file is not uploaded merely by creating the URL.
  3. After the PUT succeeds, call complete_media_upload with the returned publicUrl as url, the returned key, and the same file metadata. Use the same workspaceId on both tools. This registers the file; it does not transfer or verify the bytes.
  4. Use the returned mediaUrl in create_post or update_post, or collect several URLs in mediaUrls for a carousel.

For an existing public file, call import_media_from_url with { "url": "https://example.com/launch.png" }. The backend downloads it and returns the stored mediaUrl in one call. The URL must serve the file directly without authentication; private-network URLs are rejected by the backend.

Storage supports PNG, JPEG, GIF, WebP, AVIF, HEIC, MP4, MOV, WebM and M4V, with a 25 MiB image ceiling and a 512 MiB video ceiling. Individual social platforms have stricter publishing requirements; use preflight_post before publishing. File bytes and base64 never travel through the MCP JSON request. If library registration fails after storage succeeds, the result includes librarySaved: false and a warning while preserving the usable mediaUrl.

Batching
Tool NameDescriptionRequiredOptional
multicallRun up to 20 of the tools above in one request, in order. Tool names are validated before anything executes, so a typo cannot leave half a batch written. Cannot nest.callsstopOnError, workspaceId
{

"calls": [ { "id": "img", "tool": "generate_image", "arguments": { "prompt": "launch banner" } }, { "tool": "create_post", "arguments": { "content": "We shipped it 🚀", "targetAccounts": [ { "platform": "linkedin", "profileId": "lin_7741903" }, { "platform": "twitter", "profileId": "tw_1293847", "content": "We shipped it 🚀" } ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" } } ], "stopOnError": true }

The reply carries one entry per call — { id, tool, ok, result } or { id, tool, ok: false, error } — plus counts and, when a failure stopped the batch, the calls that were skipped.

Carousels

mediaUrls is the ordered attachment set. One URL is an ordinary media post; two or more publish as a multi-media post on every network but YouTube, with the first URL as the cover:

PlatformItems per postVideo in a set of several?Lands as
Instagram2–10yesCarousel
Threads2–20yesCarousel
Facebookup to 10noMulti-photo post
LinkedInup to 20noMulti-image post
X / Twitterup to 4noGallery on one tweet
Blueskyup to 4noGallery on one post
YouTube1—One video per upload
{

"content": "Five things we learned shipping v2 👉", "targetAccounts": [ { "platform": "instagram", "profileId": "17841400000000" }, { "platform": "threads", "profileId": "9988776655" }, { "platform": "twitter", "profileId": "tw_1293847", "mediaUrls": ["https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png"] } ], "mediaUrls": [ "https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png", "https://cdn.example.com/v2/5.png" ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" }

  • Only Instagram and Threads mix video into a carousel; everywhere else

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

Ask PopNx