PostPulse について
PostPulseは、PostPulseプラットフォームを通じてソーシャルアカウントや投稿を管理するMCPサーバーです。10のソーシャルプラットフォームへの投稿予約、メディアのアップロード、アカウント接続、投稿状況と指標の取得に対応します。
主な機能
- 0110プラットフォームへの投稿予約
- 02URLまたはデータによる画像・動画のアップロード
- 03ソーシャルアカウントの一覧表示と接続
- 04投稿状況、リンク、指標の取得
- 05OAuth 2.0認証
活用シーン
- 01接続済みアカウントへの投稿予約
- 02予定投稿用メディアのアップロード
- 03再認証が必要なアカウントの再接続
- 04公開結果と投稿指標の確認
MCP 対応
ホスト型またはセルフホスト型サーバーを介してMCPクライアントをPostPulseに接続します。アカウント管理、メディアアップロード、投稿予約、投稿取得のツールとアカウントリソースを公開し、OAuth 2.0で認証します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.post-pulse.comclaude mcp add --transport http postpulse https://mcp.post-pulse.com{"mcpServers":{"postpulse":{"type":"http","url":"https://mcp.post-pulse.com"}}}Cursor で開く{"servers":{"postpulse":{"type":"http","url":"https://mcp.post-pulse.com"}}}VS Code で開く{"mcpServers":{"postpulse":{"type":"http","url":"https://mcp.post-pulse.com"}}}{"mcpServers":{"postpulse":{"serverUrl":"https://mcp.post-pulse.com"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
PostPulse MCP サーバー
AI アシスタントをソーシャルメディア管理プラットフォームの PostPulse に接続する MCP(Model Context Protocol)サーバーです。Instagram、Facebook、YouTube、TikTok、Threads、LinkedIn、Pinterest、X(Twitter)、Bluesky、Telegram で、自然言語を使って投稿の予約、メディアのアップロード、アカウントの管理ができます。
機能
- 複数プラットフォームへの投稿 — 1 つのインターフェースから、10 のソーシャルメディアプラットフォームへの投稿を予約できます
- メディア管理 — URL またはバイナリデータで画像や動画をアップロードし、投稿に利用できます
- アカウント管理 — 接続済みのソーシャルメディアアカウントをすべて一覧表示して管理できます
- 投稿の確認 — 期間を指定して投稿を一覧表示し、各投稿のプラットフォームごとのステータス、公開リンク、エラー、指標を確認できます
- チャットからソーシャルアカウントを接続 — PostPulse アプリを開かずに、アカウントの接続や再接続に使える安全なリンクを取得できます
- OAuth 2.0 認証 — Auth0 ベースのトークン検証による安全なアクセス
- ストリーミング可能な HTTP トランスポート — 信頼性の高い通信を実現する最新の MCP トランスポートプロトコル
対応プラットフォーム
| プラットフォーム | 掲載先 | コンテンツタイプ | 要件 |
|---|---|---|---|
| フィード、リール、ストーリーズ | 画像、動画 | ビジネスアカウント | |
| フィード、リール、ストーリーズ | 画像、動画 | ページ | |
| YouTube | 動画、ショート | 動画 | チャンネル |
| TikTok | 動画、カルーセル | 画像、動画 | アカウント |
| Threads | 投稿 | 画像、動画 | アカウント |
| 投稿 | 画像、動画 | 個人アカウント | |
| ピン | 画像、動画、カルーセル(2~5 枚の画像) | ボード | |
| X (Twitter) | 投稿 | 画像、動画 | アカウント |
| Bluesky | 投稿 | 画像 | アカウント |
| Telegram | メッセージ | テキスト、画像、動画 | チャンネル/チャット |
クイックスタート
ホステッドサーバー(推奨)
PostPulse はホステッド MCP サーバー https://mcp.post-pulse.com を運用しているため、セットアップは不要です。MCP クライアントの接続先にこの URL を指定し、OAuth で認証してください。
MCP クライアントの設定例:
{
"mcpServers": {
"postpulse": {
"url": "https://mcp.post-pulse.com"
}
}
}
Smithery 経由でインストール
Smithery 経由でもインストールできます。
npx -y @smithery/cli install post-pulse/mcp-server --client claude
セルフホスト
サーバーを自分で実行する場合:
- リポジトリをクローンします:
git clone https://github.com/PostPulse/mcp-server-postpulse.git
cd mcp-server-postpulse
- 依存関係をインストールしてビルドします:
npm install
npm run build
- サーバーを起動します:
npm start
または、Docker を使います:
docker build -t mcp-server-postpulse .
docker run -p 3000:3000 mcp-server-postpulse
環境変数
| 変数 | デフォルト値 | 説明 |
|---|---|---|
HOST | 0.0.0.0 | サーバーのバインドアドレス |
PORT | 3000 | サーバーのポート |
PUBLIC_URL | — | 外部公開 URL(OAuth メタデータの検出用) |
POSTPULSE_AUTH_ISSUER | https://auth.post-pulse.com/ | Auth0 発行者 URL |
POSTPULSE_AUTH_US_JWKS_URI | https://dev-yb150m5gz2ss41sl.us.auth0.com/.well-known/jwks.json | 米国 Auth0 テナントの JWKS。空にすると米国のキーセットが無効になります |
POSTPULSE_AUTH_US_ISSUERS | POSTPULSE_AUTH_ISSUER の値 | 米国のキーで信頼する発行者(カンマ区切り) |
POSTPULSE_AUTH_EU_JWKS_URI | — | EU Auth0 テナントの JWKS。空にすると EU のキーセットが無効になります |
POSTPULSE_AUTH_EU_ISSUERS | — | EU のキーで信頼する発行者(カンマ区切り) |
POSTPULSE_AUDIENCE | https://api.post-pulse.com | API オーディエンス |
POSTPULSE_API_URL | https://api.post-pulse.com | PostPulse API のベース URL |
REDIS_URL | — | セッション/イベントの永続化に使う Redis 接続 URL(必須) |
ツール
list_accounts
接続済みのすべてのソーシャルメディアアカウントについて、ID、プラットフォーム、ユーザー名、表示名を一覧表示します。投稿のスケジュール設定やチャットへのアクセスを行う前に、利用可能なアカウントを確認するための最初のステップとして使用してください。
パラメーター: なし
戻り値: アカウントオブジェクトの JSON 配列(id、platform、username、name、needsReauthorization)。新規ユーザーにはアカウントがまだありません。結果は [] と、connect_account を使うよう案内するヒントです。needsReauthorization: true のアカウントは、投稿の前に connect_account で再接続する必要があります。該当するアカウントは、結果の2つ目のテキストブロックに表示されます。
connect_account
チャットから直接、ソーシャルメディアアカウントを PostPulse に接続(または再接続)するための安全なリンクを取得します。ユーザーがリンクを任意のブラウザーで開くと、接続先となる PostPulse アカウント(メールアドレスは一部マスキング表示)を示す PostPulse のページが表示されます。Continue をクリックしてプラットフォームでアクセスを許可すると、ページに「アカウントが接続されました — チャットに戻ってください」と表示されます。このツールは完了を待ちません。ユーザーが完了したと伝えたら、list_accounts を呼び出してアカウントを確認してください。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
platform | string | 2つのうちいずれか | INSTAGRAM、FACEBOOK、YOUTUBE、TIKTOK、THREADS、LINKEDIN、X_TWITTER、BLUE_SKY、TELEGRAM、PINTEREST |
accountId | number | 2つのうちいずれか | 既存のアカウントを再接続します(list_accounts で取得。通常は needsReauthorization: true のアカウント)。プラットフォームはアカウントから取得されます |
動作:
- 新規接続の場合、ツールはまずユーザーがアカウントを追加できるか(プランまたはクレジット)を確認します。追加できない場合は、その理由と請求ページへのリンクを返します。
- リンクは1回のみ使用でき、ユーザーの PostPulse アカウントに紐付けられ、24時間有効です。プラットフォームでの同意手続きが始まるのは、ユーザーがページで Continue をクリックしたときです。リンクを共有してはいけません。手続きを完了した人のソーシャルメディアアカウントが、この PostPulse アカウントに紐付けられます。
- 短時間にリンクが多くリクエストされると、数分待ってから再試行するよう求められます。
- Telegram はリンクで接続できません。代わりに https://post-pulse.com/app/accounts で接続する手順を返します。
- 新しい Facebook 接続では、選択した Page ごとに
FACEBOOK_PAGEアカウントが1つ作成されます。このアカウントにはlist_chatsを使わず、直接投稿してください。TELEGRAMと再接続したFACEBOOKアカウントでは、その後list_chatsを呼び出してチャンネルまたは Page を選択してください。 - URL モードの入力要求に対応したクライアントでは、ネイティブの「このリンクを開く」ダイアログも表示されます。リンクは常にテキストの結果にも含まれます。
- ブラウザー内で発生するエラー(アカウント上限、別の PostPulse ユーザーがすでに使用しているアカウント、リンクの有効期限切れ)はツールから返されず、ページに表示されます。
list_chats
サブ宛先があるアカウントの投稿先を一覧表示します。Facebook アカウントの投稿先は Pages、Telegram アカウントの投稿先は チャンネルまたはチャット、Pinterest アカウントの投稿先は ボードです。これらのプラットフォームへの投稿をスケジュール設定する前に呼び出してください。返された id は、schedule_post の facebookPageId、telegramChannelId、または pinterestBoardId として使用します。
対応するアカウントは、プラットフォームが FACEBOOK、TELEGRAM、または PINTEREST のものに限られます。FACEBOOK_PAGE(1つの Page を表すアカウント)を含むその他のプラットフォームにはサブ宛先がないため、直接投稿してください。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
accountId | number | はい | list_accounts から取得したアカウント ID |
戻り値: 宛先オブジェクトの JSON 配列(id、title、type、platform)。
upload_media
予約投稿で使用するメディアファイル(画像、動画)をアップロードします。公開 URL からインポートする(自動処理あり)方法と、バイナリデータを base64 として直接アップロードする方法の 2 つに対応しています。schedule_post で参照するメディアキーを返します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
mediaUrl | string | いいえ | インポートするメディアファイルの公開 URL |
mediaData | string | いいえ | base64 でエンコードされたメディアファイルの内容 |
mediaType | string | いいえ | MIME タイプ(例:image/jpeg、video/mp4)。mediaData を使用する場合は必須です |
mediaName | string | いいえ | アップロードするメディアのファイル名 |
mediaUrl、または mediaData と mediaType の両方を指定する必要があります。
schedule_post
接続済みの 1 つ以上のアカウントにソーシャルメディア投稿を予約します。投稿タイプ(フィード、リール、ストーリー)、動画タイトル、トピックタグなど、プラットフォーム固有のオプションに対応しています。投稿は ISO-8601 タイムスタンプで指定した未来の時刻に予約されます。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
accountId | number | はい | list_accounts で取得したアカウント ID |
platform | string | はい | 対象プラットフォーム:INSTAGRAM、FACEBOOK、TELEGRAM、YOUTUBE、TIKTOK、THREADS、LINKEDIN、PINTEREST、X_TWITTER、BLUE_SKY |
content | string | いいえ | 投稿テキスト/キャプション |
mediaPaths | string[] | いいえ | upload_media が返すメディアキー |
scheduledTime | string | はい | ISO-8601 タイムスタンプ(例:2025-01-15T10:00:00Z) |
facebookPageId | string | はい(Facebook) | list_chats で取得した Facebook ページ ID。プラットフォームが FACEBOOK の場合は必須です |
telegramChannelId | string | はい(Telegram) | list_chats で取得した Telegram チャンネル/チャット ID。プラットフォームが TELEGRAM の場合は必須です |
pinterestBoardId | string | はい(Pinterest) | list_chats で取得した Pinterest ボード ID。プラットフォームが PINTEREST の場合は必須です |
publicationType | string | いいえ | FEED、REELS、または STORY(Instagram/Facebook。デフォルトは FEED) |
title | string | いいえ | 動画タイトル(YouTube、TikTok)または Pin のタイトル(Pinterest、最大 100 文字) |
topicTag | string | いいえ | トピックタグ(Threads) |
link | string | いいえ | Pin をクリックしたときに開くリンク先 URL(Pinterest) |
altText | string | いいえ | Pin 画像の代替テキスト(Pinterest) |
boardSectionId | string | いいえ | ボード内のセクション(Pinterest) |
list_posts
指定した期間内に予約または公開された投稿を、予約時刻の古い順に一覧表示します。表示内容は、ID、全体のステータス、予約時刻、プラットフォーム、テキストです。この API はページネーションに対応していないため、1 回の呼び出しで対象にできる期間は最大 93 日です。それより長い期間は複数回に分けて呼び出してください。予約時刻が設定されていない下書きは一覧に表示されません。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
fromDate | string | はい | ISO-8601 の日付(2026-10-01、その UTC 日の開始時点)またはタイムスタンプ |
toDate | string | はい | ISO-8601 の日付(2026-10-31、その UTC 日の終了時点)またはタイムスタンプ |
platform | string | いいえ | このプラットフォームへの投稿のみを対象にします。プラットフォーム名は list_accounts が返す値を指定します |
status | string | いいえ | DRAFT、SCHEDULED、AWAITING_MEDIA、MEDIA_IMPORT_FAILED、IN_PROGRESS、COMPLETED、FAILED、または PARTIALLY_COMPLETED |
get_post
各アカウントにおける1件の投稿の結果を取得します。内容は、プラットフォーム、ステータス、公開済み投稿への公開リンク(url)、プラットフォームの投稿 ID、エラーメッセージ、テキスト、添付メディア(ファイル名と種類)、および PostPulse が取得している最新の指標です。
- すべてのプラットフォームに共通する
impressions、engagements、likes、shares、comments、profileClicks。プラットフォームが報告しない指標はnullです。 lastUpdatedTime。platformAnalytics:プラットフォーム独自の投稿分析データです。view_count(TikTok)やviews、quotes(Threads)のように、プラットフォームのフィールド名で返されます。フィールドはプラットフォームと投稿の種類によって異なるため、固定の項目があるとは限りません。プラットフォームから報告されない場合はnullです。
公開済み投稿の指標は、呼び出しごとにプラットフォームから更新されます。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
postId | number | はい | list_posts または schedule_post で取得した投稿 ID |
リソース
postpulse://accounts
接続済みのすべてのソーシャルメディアアカウントの一覧を提供する MCP リソースです。needsReauthorization を含む、list_accounts ツールと同じデータを JSON 形式で返します。
認証
このサーバーは Auth0 を使用した OAuth 2.0 を採用しています。OAuth メタデータは /.well-known/oauth-protected-resource および /.well-known/oauth-authorization-server から取得できます。
既存の PostPulse アカウントは必要ありません。MCP クライアントからサインインすると(Google またはパスワードレスのメールコードを使用)、初回利用時に PostPulse アカウントが作成されます。その後、ユーザーは connect_account でソーシャルアカウントを接続します。
動的クライアント登録(DCR)
OAuth に対応した MCP クライアントは、動的クライアント登録(RFC 7591)を使って自動的に登録できます。サーバーは OAuth メタデータで registration_endpoint を公開するため、準拠しているクライアント(Claude Desktop、Cursor など)は、ユーザーが手動で設定しなくても、登録、認証、トークン交換を含む OAuth フロー全体を処理します。
登録済みクライアントの認証情報
PostPulse Developer Portal から作成したクライアント認証情報をすでにお持ちの場合は、DCR を使わず、それらを直接使用するように MCP クライアントを設定できます。PostPulse 認可サーバーに対する OAuth 認可コードフローで、client_id と client_secret を渡してください。
HTTP エンドポイント
| パス | 用途 |
|---|---|
POST /、POST /sse | MCP Streamable HTTP トランスポート(初期化とメッセージ)。Bearer トークンが必要です |
Mcp-Session-Id を指定した GET /、GET /sse | 既存セッションの SSE ストリーム |
Accept: text/html を指定した GET /、GET /sse | ブラウザーとクローラー向けの簡易ランディングページ(セットアップガイドと API ドキュメントへのリンク)。セッションがない状態でそれ以外の Accept を指定した場合は、400 が返されます |
GET /health | ヘルスチェック(ok) |
GET /robots.txt | User-agent: * / Disallow: / — このホストはウェブサイトではありません |
GET /.well-known/* | OAuth メタデータと Smithery サーバーカード |
| その他すべて | 404({"error":"Not found"} または HTML クライアント向けのプレーンテキスト) |
すべてのレスポンスには X-Robots-Tag: noindex, nofollow が含まれるため、検索エンジンにこのホストがインデックスされることはありません。
ワークフローの例
PostPulse MCP サーバーでの一般的なやり取り:
- 接続済みのソーシャルメディアプロフィールを探すため、アカウントを一覧表示します
- プラットフォームが見つからない場合は、
connect_accountでアカウントを接続します - 画像や動画を準備するため、(任意で)メディアをアップロードします
- コンテンツ、メディア、将来の公開時刻を指定して、投稿を予約します
User: "Schedule an Instagram reel for tomorrow at 9am with the video at https://example.com/video.mp4 and caption 'Check this out!'"
初回実行(新規ユーザー)
User: "Post 'Hello LinkedIn!' to my LinkedIn tomorrow at 10:00 UTC"
Assistant: list_accounts → [] ("No social accounts are connected yet")
connect_account(platform: LINKEDIN) → link
"Open this link, check the PostPulse account on the page, approve access on LinkedIn, then tell me when you are done."
User: "Done"
Assistant: list_accounts → [{ id: 123, platform: LINKEDIN, ... }]
schedule_post(accountId: 123, platform: LINKEDIN, content: "Hello LinkedIn!", scheduledTime: ...)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。