mcpField
P
pendpost

pendpost

ローカル
pendpost.comソーシャルメディア15今日更新

pendpost について

pendpostは、開発者や代理店、技術系の個人事業者向けのローカル優先型ソーシャルメディアプランナーです。エージェントが投稿を作成・検査・予約し、人が承認するまで公開されません。

主な機能

  1. 01複数SNS向けの作成と予約
  2. 02公開前の人による承認
  3. 03ブランドルールと文面の検査
  4. 04公開サーキットブレーカーと停止
  5. 05ローカル実行とウェブダッシュボード

活用シーン

  1. 01複数SNSにまたがるキャンペーンの計画
  2. 02エージェントの投稿案を人が確認
  3. 03ブランドルールに沿った文面の確認

MCP 対応

pendpostはstdioとstreamable HTTPでMCPサーバーを提供し、対応クライアントから利用できます。計画、検査、承認、予約、公開のツールがあり、書き込み操作には人の承認が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pendpost-pendpost": {
"command": "npx",
"args": [
"-y",
"pendpost"
]
}
}
}
起動コマンドnpx -y pendpost

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmpendpost2.9.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

pendpost

エージェントが操作するソーシャルメディアと、人間による承認ゲート。

CI License: MIT Node MCP native PRs welcome

AI エージェントが投稿を作成して予約し、人間による承認ゲートが公開する内容を決定します

pendpost は、無料でオープンソース(MIT)のローカルファーストなソーシャルメディアプランナーです。AI エージェントが、Instagram、Facebook、LinkedIn、YouTube、X、Telegram、Discord、Mastodon、Nostr に投稿を作成して予約できるほか、WordPress や Ghost に長文ブログを投稿できます。Reddit、Pinterest、TikTok、Google Business Profile はベータ版です。すべての投稿は、ユーザーが管理する人間による承認ゲートを通ります。MCP ネイティブで、AI エージェントは投稿の作成、チェック、予約、キューへの登録を行えますが、人間が承認するまで公開されることはありません。アカウントの認証情報をエージェントに渡さず、アカウントにフラグが立てられることもなく、エージェントに作業を任せたい開発者、代理店、技術系の個人事業主向けに構築されています。

pendpost が他のスケジューラーと異なる点

多くの「AI ソーシャル」ツールは、エージェントを後付けしたスケジューラーです。pendpost はその逆です。エージェントと人間が連携するワークフローを中心に設計された運用レイヤーであり、スケジューラーにはない機能を備えています。

承認ゲート:エージェントが投稿を作成し、通常はユーザーが承認してから公開されます

  • 人間による承認ゲート。 すべての投稿に承認状態(draft、approved、rejected)があり、フェイルクローズ方式です。承認されていない投稿は公開されません。plan_create_post は必ず下書きを作成し、状態を変更できるのは approve_post または reject_post だけです。承認されるまで何も公開されません。デフォルトではユーザーが承認し、自動承認を設定できるのはオーナーだけで、いつでも取り消せます。
  • アカウント停止を防ぐサーキットブレーカー。 Meta のエラー 368(アクションブロック)が発生すると、ブレーカーが作動して Meta のレーンを停止し、自動では再開しません。エラー 368 には機械判読可能な解除時刻が含まれないためです。ブロック中のヘルスプローブは、Graph へのトラフィックを一切送信しません。投稿頻度の上限に達した場合は、連続投稿を破棄せず延期します。また、レーンを停止するキルスイッチも常に利用できます。
  • ヒューマナイザーによるブランドチェック。 公開前に、編集可能な rules.json のルールに基づいてキャプションをチェックします。ヒューマナイザー層は、英語のAI生成文にありがちな特徴を検出します。エラーがある場合は公開をブロックし、警告は参考情報として表示します。
  • プラットフォーム標準の予約投稿を忠実に活用。 プラットフォームが対応している場合(YouTube の publishAt、Mastodon、WordPress、Ghost)、pendpost は投稿をプラットフォーム自身のスケジューラーに渡すため、パソコンの電源がオフでも公開されます。Instagram、Facebook、LinkedIn、X への投稿は、pendpost 自体から予約時刻に公開されます。オプションの 24 時間稼働クラウドサービスを有効にした場合はそのサービスから、有効にしない場合は pendpost の実行中にパソコンから、または常時稼働ホストから公開されます。また、カバー画像やサムネイルの仕組みがプラットフォームごとに実際にどう適用されるかを、正確に示します。
  • 2 つのインターフェース。 ウェブダッシュボードと任意の MCP クライアントが、同じ仕様を利用します。パリティテストにより、すべての機能が両方のインターフェースで提供されることを保証します。
  • ドイツ語とスイス向けローカライズ。 ダッシュボード、ダイジェスト、通知は、英語または正式なスイスドイツ語(de-CH。ウムラウトとスイス式の 24 時間表記に対応)で利用できます。言語は Settings で設定できます。詳しくはローカライズのドキュメントをご覧ください。

クイックスタート

セットアップ不要のワンライナーです。

npx pendpost
# then open http://127.0.0.1:8090

アカウント登録は不要です。pendpost はローカルで動作し、すぐに起動します。すぐにキャンペーン全体の下書き作成、承認、スケジュール設定ができます。初回起動時には、data/plans にサンプルの「Acme Launch」キャンペーンが作成されるため、すぐに実際のコンテンツを確認できます。公開の準備ができたら、Setup でプラットフォームに接続してください。それまでは、レーンは稼働中ですが未認証の状態です。公開は接続を偽装するのではなく、接続されるまで待機します。

git または docker を使いますか?

# git
git clone https://github.com/pendpost/pendpost pendpost
cd pendpost
npm start            # or: node bin/pendpost.mjs (builds the dashboard on first run)
# then open http://127.0.0.1:8090
# docker
docker compose up
# then open http://127.0.0.1:8090

ダッシュボード

プランナーと承認キューが、主に使用する2つの画面です。左側で下書き作成とスケジュール設定を行い、右側で承認または却下します。右側で自動的に承認されることはありません。

プランナー承認キュー
pendpost のプランナー:下書きとスケジュール設定済みの投稿を表示するカレンダーpendpost の承認キュー:人による判断を待つ投稿

MCP クライアント

最も簡単な方法では、自動的に起動します。pendpost はネイティブの stdio 経由で MCP を使用するため、クライアントがサーバーを起動します。事前に起動しておく必要はありません。

Claude Desktop(ワンクリック):各 GitHub リリースに添付されている pendpost の .mcpb バンドルをインストールします。自動的に npx -y pendpost --stdio を起動し、同じプロセス内で承認ダッシュボードを開きます。

任意の stdio MCP クライアント:

{
  "mcpServers": {
    "pendpost": { "command": "npx", "args": ["-y", "pendpost", "--stdio"] }
  }
}

上級者向け/開発用(HTTP トランスポート):pendpost は /mcp でストリーミング可能な HTTP 経由でも MCP を提供します。この場合、npx pendpost でサーバーを事前に起動しておく必要があります。

claude mcp add --transport http pendpost http://127.0.0.1:8090/mcp
AI を活用したセットアップ(Claude for Chrome)

実際のプラットフォームで公開するには、各ベンダーのポータルで開発者アプリを作成し、OAuth の認証フローを1回実行する必要があります。pendpost では、エージェントがこの手順を進められます。ダッシュボードの Setup ページにある未完了のカードにはそれぞれ Copy AI prompt ボタンがあり、対象プラットフォームのポータルを操作する、すぐに貼り付けて使える安全なプロンプトを Claude for Chrome 用にコピーします。ログインや同意が必要な画面では、ご自身で認証してください。認証情報は CLI によってローカルで生成され、エージェントやチャットを経由することはありません。同じセットアップ手順は、AGENTS.md で任意のエージェント向けに説明されています。

MCP ツールの機能

すべての機能は MCP ツールとして提供され、ダッシュボードにも反映されます。読み取り専用ツールから公開されることはありません。書き込みツールは下書きを作成し、上記の承認ルールが適用されます。機能別の一覧は次のとおりです。

  • 読み取りと確認: plan_list、plan_get、account_status、assets_list、activity_log、validate_media、platform_validate、pendpost_health、publish_preview、brand_lint、generate_digest、config_get、clients_overview。
  • 作成: plan_create_post、plan_update_post、plan_delete_post、campaign_create、campaign_set_active。
  • 承認(人による確認): approve_post、reject_post。承認されるまで公開されません。デフォルトでは、ご自身が承認者です。
  • スケジュール設定と公開: scheduler_set、publish_due_run、reschedule、unschedule、mark_posted、verify_post。
  • カバー画像とアセット: set_cover、clear_cover、asset_upload、rename_asset、delete_asset。
  • インサイトと安全性: fetch_insights、token_refresh、pendpost_record_block、health_recheck、meta_lane_set。
  • 設定とクライアント: config_set、client_create、client_update、client_archive、client_list、client_set_active。

ツールの正式な数と読み取り/書き込みの分類は lib/mcp.mjs から取得され、test/parity-check.mjs で検証されています(MCP ドキュメントを参照)。また、各ツールには tools/list 内に readOnlyHint/destructiveHint/title のアノテーションが付いています。

公開を開始する

公開の準備ができたら、Setup で各プラットフォームに接続します(または .env.example を .env にコピーし、使用するプラットフォームの項目だけを入力します)。認証情報が設定されると、そのプラットフォームで公開が開始されます。それまでは稼働中ですが未認証の状態となり、接続が完了するまで公開は待機します。(PENDPOST_MODE=mock はテスト/デモ用のフィクスチャであり、すべてのレーンを認証情報不要のモックドライバー経由で処理します。)

各プラットフォームには、.env に設定を書き込む対話型のセットアップ手順があります。

# Meta (Facebook + Instagram). A System User token is preferred for automation.
node scripts/meta-social.mjs setup-system-user \
  --system-user-token <T> --page-id <ID> --app-id <ID> --app-secret <S>
# (or `node scripts/meta-social.mjs setup` for a long-lived Page token)

# LinkedIn (after creating an OAuth app)
node scripts/linkedin-social.mjs auth

# YouTube (after creating an OAuth client)
node scripts/yt-social.mjs auth

# X (Twitter), OAuth 2.0 PKCE (browser). OAuth 1.0a needs no command - see below.
node scripts/x-social.mjs auth

# Static-credential lanes (no browser): paste the credential into .env (or use
# the dashboard Setup form), then validate with the engine's auth command.
node scripts/telegram-social.mjs auth   # TELEGRAM_BOT_TOKEN + TELEGRAM_CHANNEL_ID
node scripts/discord-social.mjs auth    # DISCORD_WEBHOOK_URL
node scripts/mastodon-social.mjs auth   # MASTODON_INSTANCE_URL + MASTODON_ACCESS_TOKEN
node scripts/wordpress-social.mjs auth  # WORDPRESS_SITE_URL + _USERNAME + _APP_PASSWORD
node scripts/ghost-social.mjs auth      # GHOST_SITE_URL + GHOST_ADMIN_API_KEY
node scripts/nostr-social.mjs keygen --save && node scripts/nostr-social.mjs auth  # + NOSTR_RELAYS

複数のクライアントを実行していますか?上記のコマンドに --client <client-id> を追加すると、認証情報がそのクライアントの .env に保存されます(シングルクライアント構成では不要です。また、pendpost_health の connectAction ではこのフラグが自動的に追加されます)。

X(Twitter) は2つの認証方法に対応しています。ブラウザーが不要で、一部のアプリが X の OAuth 2.0 同意画面で遭遇する ERR_TOO_MANY_REDIRECTS を回避できるため、OAuth 1.0a を推奨します。

  • OAuth 1.0a(推奨、ブラウザー不要)。 X の開発者ポータルで、(1)アプリの User authentication settings を最初に Read and Write に設定します。(2)次に Keys and tokens で、API Key/Secret と Access Token/Secret の両方を生成または再生成します。(3)4つすべてを .env に X_API_KEY、X_API_SECRET、X_ACCESS_TOKEN、X_ACCESS_TOKEN_SECRET として貼り付けます。X_ACCESS_TOKEN_SECRET が設定された時点でレーンが稼働し、auth コマンドは不要です。node scripts/x-social.mjs probe を実行して確認します(connected as @handle と表示されます)。注意点は次のとおりです。
    • 4つすべての値を同じアプリから、同じ生成時に取得する必要があります。
    • API Key/Secret を再生成すると、Access Token/Secret は無効になります。そのため、Access Token/Secret は必ず API Key/Secret の後に再生成してください。先に再生成してはいけません。
    • 文字が1つでも間違っていると、401 "Could not authenticate you"(コード 32)が返されます。これはアクセストークンの問題のように見えることがあります。ポータルから値をコピーしてください。手入力はしないでください。
  • OAuth 2.0 PKCE(ブラウザーを使用)。 コールバック http://localhost:8087/callback とスコープ tweet.read tweet.write users.read media.write offline.access を指定した OAuth 2.0 confidential client を作成し、node scripts/x-social.mjs auth を実行します。アクセストークンの有効期間は約2時間で、リフレッシュトークンはローテーションされます。pendpost は各実行の前に両方を自動的に更新します。

プラットフォームごとの環境変数の全一覧は .env.example を参照してください。

ブランドチェック+ヒューマナイザー

キャプションは公開前にブランドチェックを受けます。ルールセットは rules.json にあり、直接編集できます。各ルールは、id、severity(error は公開をブロックし、warn は注意を促します)、matcher(正規表現、または captionLength、hashtagCount、allCaps、brokenLink などのプラットフォーム対応ビルトイン)、および hint を持つオブジェクトです。標準設定には、英語の AI 文章によく見られる特徴(AI 特有の語彙、エムダッシュ、否定的な並列構文、反射的な三項列挙による水増し、つなぎ言葉や曖昧な表現、過剰な宣伝文句)を検出するヒューマナイザーのルールも含まれています。ルールを無効にするにはそのオブジェクトを削除し、追加するにはオブジェクトを追記します。ワークスペースのルートにある rules.json は、同梱の標準設定を上書きします。brand_lint は MCP ツールであり、ダッシュボードのコンポーザーにあるリンターパネルでもあります。

アーキテクチャ

pendpost は、依存関係のない単一の Node プロセス(server.mjs)で、4つのインターフェイスを提供します。/api の REST API、/mcp の MCP サーバー(streamable-HTTP、JSON-RPC 2.0、134個のツール)、data/ 内のローカルファイルを範囲指定でストリーミングする /media、そして app/dist からビルド済み React ダッシュボードを配信する / です。バックエンドのロジックは lib/*.mjs にあります。scripts/ には14個の公開エンジンがあり、プラットフォームごとに1つずつ用意されています(meta-social.mjs は Facebook と Instagram を処理します)。各エンジンはスケジューラーのティック時または要求に応じてサブプロセスとして起動され、JSON エンベロープを出力します。計画と状態はローカルの JSON に保存されます。.env、config.json、state.json、data/ を格納するワークスペースのルートは、PENDPOST_ROOT で変更できます(デフォルト:インストールディレクトリ)。

プラットフォーム

Instagram、Facebook、LinkedIn、YouTube、X、Telegram、Discord、Mastodon、Nostr、WordPress、Ghost は利用可能です。Reddit、Pinterest、TikTok、Google Business Profile はベータ版です。各エンジンが認証、投稿、ネイティブの予約投稿、カバー画像やサムネイルの処理、読み取り専用のインサイトをそれぞれ担当します。YouTube、Mastodon、WordPress、Ghost はネイティブで予約投稿するため、pendpost がオフでも投稿が公開されます。Instagram、Facebook、LinkedIn、X、Telegram、Discord、Nostr には、予約時刻に pendpost 自身が投稿します。投稿を実行するのは、お使いのコンピューター上のスケジューラー、またはオプションの 24 時間稼働するクラウドサービスです。

セキュリティ

pendpost はデフォルトで 127.0.0.1(ループバック)にバインドされ、外部に通信することはなく、シークレットはお使いの .env(gitignore 対象)にのみ保存します。セキュリティ対策の全容と脆弱性の報告方法については、SECURITY.md をご覧ください。

プライバシーポリシー

pendpost はお使いのコンピューター上で動作し、当社(Nomadik GmbH)にデータを送信しません。

  • **収集する情報:**お客様が提供した情報のみです。プラン、下書き、メディア、アクティビティ履歴はローカルの data/ フォルダーに保存され、プラットフォームの認証情報はお客様自身の .env に保存されます。
  • **データの利用と保存方法:**すべてのデータはお使いのコンピューター上にとどまります。コンテンツは、承認した投稿を公開するために、接続したソーシャルプラットフォームにのみ送信されます。
  • **第三者:**接続する MCP クライアント(たとえば Claude Desktop や Cursor)と、その AI モデルプロバイダーは、お客様のアカウントと各社の規約に基づき、エージェントが pendpost のツールを通じて読み取る情報を参照できます。Radar は、有効にしたソースから公開投稿を読み取ります。
  • **保持期間:**お客様がフォルダーを削除するまで、データはお使いのコンピューター上に保存されます。当社はコピーを保持しません。オプションの 24 時間稼働するクラウドサービスでは、購読期間中、プラン、暗号化されたトークン、監査記録を保持し、利用を終了した後、安全確保のための短い猶予期間を経て、管理対象のコピーを削除します。
  • **お問い合わせ先:**[email protected]

ポリシーの全文は pendpost.com/privacy でご覧いただけます。

pendpost を形作る

pendpost はオープンに開発されており、皆様からのフィードバックをお待ちしています。参加方法は 3 つあり、いずれもアプリから外部へ通信することはありません。

  • **簡単なフィードバックやアイデア:**ダッシュボードの Share feedback リンクを使う(ブラウザーで入力済みの GitHub ページが開き、.env やシークレットが送信されることはありません)、Discussions に投稿する、またはフィードバック用の issue フォームを使ってください。
  • **バグや機能リクエスト:**issue を作成し、該当するフォームを選んでください。
  • より踏み込んだ提案(新しい統合ポイントや、コアの仕組みの変更など):RFC を作成してください。詳細は docs/rfcs/README.md をご覧ください。

アカウントをお持ちでない場合は、pendpost.com の簡単なフィードバックフォームから GitHub に転送できます。サポートの受け方については SUPPORT.md を、フィードバックの全プロセスについては docs/specs/feedback-pipeline.md をご覧ください。

ステータス

pendpost は少人数のチームがパートタイムでメンテナンスしており、まだ開発初期段階です。未完成な部分があることを想定し、それに応じた応答時間を見込んでください。

ドキュメント

詳細なリファレンスは docs.pendpost.com にあります(ソースは site-docs/)。製品紹介、価格、すべてのダウンロードオプションは pendpost.com にあります。

ライセンス

MIT、Copyright 2026 Nomadik GmbH。LICENSE をご覧ください。また、責任ある利用に関する方針については DISCLAIMER.md を、プルリクエストを作成する前に CONTRIBUTING.md もお読みください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。