Postmcp MCP Server
概要
作者による説明(英語の原文)
Publish and schedule posts to LinkedIn, X, Facebook, Instagram, Threads, Bluesky and YouTube Shorts.
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 42/週 · ★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: マーケティング・SNS
- 入力が必要なもの:POSTMCPAI_API_KEY
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
POSTMCPAI_API_KEY,POSTMCPAI_PROJECT_ID
「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
- npmNode.jsのインストール(npxコマンドに必要)
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"postmcp": {
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add postmcp --env POSTMCPAI_API_KEY=your-value --env POSTMCPAI_PROJECT_ID=your-value -- npx -y @postmcpai/server動かす前に、空欄の値を入力してください。
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"postmcp": {
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"postmcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
自分で入力する値
- Secret API key from the PostMCP AI dashboard (Settings → API keys)
POSTMCPAI_PROJECT_IDenvOptional workspace id to act on; defaults to the workspace the key was issued from
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント postmcp で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
マーケティング・SNSのほかのサーバーとの比較i
- このカテゴリのほかの3609件のうち0%よりスターが多い
- このカテゴリのほかの3609件のうち30%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの3609件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Postmcp MCP Serverは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:POSTMCPAI_API_KEY
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは2 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
代わりに使えるものは?
同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Google Analytics MCP
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
BibiGPT YouTube Video Summarizer
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
mediaUrlsto 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 Variable | Description | Default Value |
|---|---|---|
POSTMCPAI_API_KEY | Required. Your secret API key from the PostMCP AI dashboard. | None |
POSTMCPAI_API_URL | Backend API root. Only set for a self-hosted or local backend. | https://api.postmcpai.com |
POSTMCPAI_PROJECT_ID | Optional. 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 |
PORT | Setting 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 Name | Description | Required | Optional |
|---|---|---|---|
get_user_info | Authenticated user: plan, credit balance, active workspace and role. | — | workspaceId |
list_workspaces | Every workspace the user belongs to, with ids, roles, and connected platforms. | — | — |
get_connected_accounts | Connected social profiles with the profileId needed to target them. | — | workspaceId |
get_account_health | Connections whose token expired or is close to it and need reconnecting. | — | workspaceId |
get_profile_analytics | A 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, profileId | refresh |
list_posts | Post queue, newest first, with per-profile delivery status, pagination and counts. | — | status, page, limit, all |
get_post | One post in full: which profiles received it, live URLs, and per-profile errors. | id | — |
get_post_analytics | Views, 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. | id | refresh |
Writing
| Tool Name | Description | Required | Optional |
|---|---|---|---|
preflight_post | Dry run: character limits, unconnected profiles, missing media, carousel ceilings, credit cost. Publishes nothing. | content | targetAccounts, platforms, mediaUrl, mediaUrls |
create_post | Draft, 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. | content | targetAccounts, variants, platforms, publishImmediately, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube |
publish_post_now | Publish an existing post immediately; also retries a failed post, skipping delivered profiles. | id | — |
update_post | Update content, target profiles, schedule, media, or status. mediaUrls replaces the whole attachment set. | id | content, targetAccounts, platforms, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube, status |
reschedule_post | Move a post to a new slot, keeping copy and targets. Re-arms failed and draft posts. | id, scheduleDate, scheduleTime | timezone |
reset_stuck_post | Release a post stuck mid-publish so it can be retried. Delivered profiles keep their state. | id | force |
delete_post | Cancel and delete a scheduled or failed post. | id | — |
generate_image | Generate a post image and return its hosted URL for mediaUrl. Costs 20 credits; paid plans only. | prompt | styleImageUrl |
create_media_upload_url | Authorize a direct image/video upload; returns a signed PUT URL and the future public URL. | fileName, contentType, fileSize | workspaceId |
complete_media_upload | Register a successfully uploaded file in the media library and return mediaUrl. | url, key, fileName, contentType, fileSize | workspaceId |
import_media_from_url | Copy a public image/video into storage and the media library; returns mediaUrl. | url | workspaceId |
Media uploads
For a local file, the MCP client needs an HTTP upload capability:
- Call
create_media_upload_urlwithfileName,contentType(MIME type), andfileSize(bytes). For example:{ "fileName": "launch.png", "contentType": "image/png", "fileSize": 245760 }. - PUT the raw file bytes to the returned
uploadUrlwith the returnedheaders. Do not send your PostMCP API key to storage. The URL expires afterexpiresInseconds (normally 900); request another if it expires. The file is not uploaded merely by creating the URL. - After the PUT succeeds, call
complete_media_uploadwith the returnedpublicUrlasurl, the returnedkey, and the same file metadata. Use the sameworkspaceIdon both tools. This registers the file; it does not transfer or verify the bytes. - Use the returned
mediaUrlincreate_postorupdate_post, or collect several URLs inmediaUrlsfor 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 Name | Description | Required | Optional |
|---|---|---|---|
multicall | Run 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. | calls | stopOnError, 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:
| Platform | Items per post | Video in a set of several? | Lands as |
|---|---|---|---|
| 2–10 | yes | Carousel | |
| Threads | 2–20 | yes | Carousel |
| up to 10 | no | Multi-photo post | |
| up to 20 | no | Multi-image post | |
| X / Twitter | up to 4 | no | Gallery on one tweet |
| Bluesky | up to 4 | no | Gallery on one post |
| YouTube | 1 | — | 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
冒頭だけを表示しています。続きはリポジトリで読めます