mcpField
P
postey

postey

github.com/posteyaiマーケティング・グロース641 回インストール3 日前に更新
リポジトリ

postey について

posteyスキルは、複数のプラットフォームでソーシャルメディア投稿を作成、予約、公開する手順を案内します。MCPでアカウントや投稿を管理するワークフロー向けで、サーバーの最新マニフェストに基づいてMCPとローカルCLIの役割を分けます。

主な機能

  1. 01投稿の作成・更新・公開
  2. 02投稿の予約
  3. 03アカウント、チーム、投稿内容の読み取り
  4. 04公開前の内容検証と拡散レビュー
  5. 05ローカルメディア処理でのCLI利用

活用シーン

  1. 01複数プラットフォーム向け投稿の作成と公開
  2. 02公開済み・予約済み投稿の確認
  3. 03投稿の検証と拡散レビュー
  4. 04ローカル動画の文字起こしとキャプション作成

MCP 対応

`https://mcp.postey.ai/mcp`に接続します。状態の読み取りにはMCPリソース、検証・レビュー・すべての書き込みにはMCPツールを使い、CLIはローカルファイルが関わる処理に限られます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/posteyai/skills --skill postey

インストール後、Claude Code で/posteyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.mcp.json
bootstrap-prompt.md
capability-snapshot.json
CHANGELOG.md
command-reference.md
pack.json
prompts.md
README.md
routing-guide.md
video-workflow.md
.claude-plugin/
plugin.json
references/
brand-profile-template.md
caption-playbook.md
hook-formulas.md
mcp-authentication.md
mcp-workflows.md
platform-archetypes.md
post-structures.md
thread-and-video-formats.md
x-algorithm.md
scripts/
mediaValidator.js
postey.js
videoUtils.js

詳細

Postey スキル

Postey を使って、複数のプラットフォームでソーシャルメディアのコンテンツを作成、予約、公開します。

機能はこのファイルではなくサーバーから提供されます

postey://skill-manifest には、サーバーが実際に提供しているすべてのツール、リソース、プロンプト、プラットフォームが記載されています。必要な情報が明らかでない場合は、このドキュメントから推測せず、マニフェストを読んでください。 各ツールのエントリーには、適切なルーティングを判断できる次の3つのフィールドがあります。

フィールド意味
capabilityツールの用途を noun.verb 形式で示します(post.create、account.list)
canonicaltrue = その機能を利用するための標準的な方法です
superseded_by標準ではないツールの場合、代わりに呼び出すべき URI またはツールを示します

ルール:機能には、その標準的な提供元を通じてアクセスしてください。 superseded_by が設定されている場合は、その指示に従ってください。このフィールドがあるため、説明から [FALLBACK ONLY — READ … INSTEAD] を読み取る必要はありません。リソースとツールの両方が同じ機能を提供する場合は、リソースが標準の提供元です。

唯一の例外は、MCP リソースを読み取れないクライアントです。その場合、標準の提供元にアクセスできないからこそ、置き換え対象のツールが適切です。フォールバックはこのためにあります。

このディレクトリにある capability-snapshot.json は、CLI と CI 用にオフラインで保存された同じデータです。可能であればライブリソースを読み取ってください。スナップショットはミラーであり、ミラーはデプロイが1回分古い場合があります。

ツールのルーティング — ツールを呼び出す前に読んでください

MCP のツール/リソースと CLI(postey.js)の2つのインターフェースがあります。これらは代替手段ではなく、それぞれ異なる層を担います。すべての読み取りとすべての書き込みは MCP が担当します。CLI が担当するのはユーザーのマシンを必要とする処理だけで、書き込みコマンドはありません。ローカルファイルを扱うコマンドはファイルをアップロードし、MCP での書き込みに必要なフィールドを返します。ワークフローでは各手順を担当するインターフェースを使います。

スキルがインストールされていても、環境が使えるとは限りません。このファイルはサーバーに接続できるかどうかにかかわらずディスクから読み込まれます。セッションに Postey のツールがない場合は、そこで作業を止め、その旨を伝えてください。Postey の状態を参照するコマンドはここにはないため、探してもユーザーの時間を無駄にするだけです。

行き詰まっていることだけでなく、次に何をすべきかも伝えてください。サーバーのアドレスは https://mcp.postey.ai/mcp で、ローカルブリッジを経由せず、利用者自身のクライアントにネイティブ登録します。ブラウザーを開けるクライアントは OAuth を完了できます。ブラウザーを使えない環境(CI、コンテナ、cron)では完了できません。client_credentials グラントはないため、X-API-Key として送信する MCP キー(mk_…)が必要ですが、このキーを自分で作成することはできません。クライアントごとの登録コマンドと設定ファイルのパスについては、https://raw.githubusercontent.com/posteyai/skills/main/setup.md を参照してください。キーの手順については、references/mcp-authentication.md を参照してください。

判断ツリー
  1. ローカルファイルパスが含まれていますか(~/video.mp4、./cover.jpg)? → CLI のみ — MCP はローカルファイルシステムにアクセスできません。

  2. 動画の文字起こしですか(yt-dlp + Whisper)? → node ${CLAUDE_SKILL_DIR}/scripts/postey.js video transcribe <url> — CLI を実行できる環境では、こちらを優先してください。 CLI を使わないクライアント(CLI なし)では、代わりに transcribe_video MCP ツールを使用してください。

  3. 読み取り専用の状態(アカウント、チーム、投稿コンテンツ)ですか? → MCP リソース — 高速でキャッシュされ、サブプロセスも不要です:

    • アカウント → postey://accounts
    • チーム → postey://teams
    • 投稿コンテンツ → postey://posts/{id}/content/{platform}
    • クライアントが MCP リソースを読み取れる場合は、同等の読み取りツールよりリソース URI を優先してください(例:get_accounts より postey://accounts)。 リソースを認識しないクライアント(多くのホステッドコネクターなど)では、ツールを使用してください。リソースに相当するものがない読み取り(投稿一覧 → get_posts)には、常にツールを使用してください。
  4. 公開前にコンテンツの検証またはバイラル性のレビューが必要ですか? → MCP ツール — validate_post_content、review_post — CLI に相当する機能はありません。MCP を利用できるセッションでは、これらを省略しないでください。review_post は job_id を返し、実行に 60~120 秒かかります。get_review_status で結果を取得してください(job_id、またはハンドルを紛失した場合は post_id を指定)。status が running の間は、繰り返し実行してください。

  5. その他すべての書き込み(作成、更新、公開、スケジュール設定、削除、タグ付け、URL によるアップロード)ですか? → すべての環境で MCP ツール — create_post、update_post、publish_draft、schedule_post、delete_draft。 → 別の方法はありません。MCP サーバーに接続できない場合、書き込みは一切できません。その旨を伝えて終了してください。存在しない CLI コマンドを使わないでください。

ルーティング表
条件ツール理由
--file <local-path> または --video <local-path>CLI のみ(video post)MCP はファイルシステムにアクセスできません
動画の文字起こしワークフローCLI を優先。コネクターのみのクライアントでは transcribe_video MCP ツールローカルパイプラインには yt-dlp、ffmpeg、Whisper が必要です
アカウント/チーム/投稿コンテンツの取得MCP リソースキャッシュされ、サブプロセスのオーバーヘッドがありません
投稿前のコンテンツ検証MCP ツールCLI に相当する機能はありません
バイラル性のレビューMCP ツールCLI に相当する機能はありません
作成/更新/公開/スケジュール設定/削除MCP ツールcreate_post、update_post、publish_draft、schedule_post、delete_draft
単一の下書きコンテンツの取得MCPpostey://posts/{id}/content/{platform}、または get_post_content
Cursor、SDK エージェント、CI/CD 環境上記と同じ — 変更なしCLI が利用可能かどうかは環境によって決まります。操作の実行主体が変わるわけではありません
アンチパターン
  • クライアントが MCP リソースを読み取れる場合、get_accounts を呼び出さないでください。代わりに postey://accounts を読み取ってください。リソースを認識しないクライアント(多くのホステッドコネクターなど)では、ツールを使用できます。
  • ローカルファイルに対して upload_media を呼び出さないでください。受け付けるのは URL のみです。
  • MCP を利用できるセッションでは、validate_post_content/review_post を省略しないでください。
  • CLI の drafts:create/drafts:publish/drafts:schedule を使用しないでください。これらのコマンドは削除されています。MCP ツールを使用してください。CI/CD、Cursor、Windsurf、SDK エージェントでも同様です。MCP サーバーがなければ、書き込み方法はありません。CLI を使う方法もありません。
  • REST エンドポイント(例:GET /accounts)を直接呼び出さないでください。常に MCP リソースまたはツールを使用してください。
  • account_id を推測したり、作り出したりしないでください。必ずアカウントを読み取り(postey://accounts、またはリソースを認識しないクライアントでは get_accounts)、ユーザーに確認してください。
  • postey.js accounts:list を実行しないでください。このコマンドは存在しません。postey://accounts を読み取るか、get_accounts を呼び出してください。

セットアップ

  1. MCP キー — ユーザーに https://app.postey.ai?settings=agents&section=advanced でキーを作成するよう案内してください。これは AI & Agents → Advanced です。 発行されたキーに有効期限はなく、すべてのプランで使用できます。一方、?settings=api を開くと Integrations が表示されます。 こちらにはプランによる制限がある汎用キーがあります。その後:

    ${CLAUDE_SKILL_DIR}/scripts/postey.js setup
    

    または、環境変数を設定します:export POSTEY_API_KEY=your_key

  2. 要件 — Node.js 18 以上。コア CLI に他の依存関係はありません。

設定の優先順位(高い順):

  1. POSTEY_API_KEY 環境変数
  2. POSTEY_AUTH_TOKEN 環境変数 — OAuth 認証済みの呼び出し元に対して MCP サーバーがこの CLI を実行するときに設定するベアラートークンです。手動で設定するものではありません。
  3. postey.js auth:login の OAuth セッション
  4. postey.js auth:link でリンクした認証情報 — この接続がすでに持っているアクセス権を CLI にコピーします。これは setup.md の手順 5 で設定します。
  5. ./.postey/config.json(プロジェクトローカル)— 作成されたディレクトリでのみ有効です。 クローンまたはコピーで持ち込まれた設定は無視されます。リポジトリにこのファイルがコミットされていると、認証情報とデフォルトのアカウントが意図せず提供されるためです。その場所で setup --key <key> --location local を再実行するか、POSTEY_TRUST_LOCAL_CONFIG=1 を設定してください。
  6. ~/.config/postey/config.json(ユーザー全体)
「API key not found」と表示された場合

クライアントがすでに MCP サーバーに接続されている場合は、postey.js auth:link --begin を実行し、表示されたコードを使って link_cli ツールを呼び出してください。これにより、この接続のアクセス権が CLI にコピーされ、再度サインインする必要はありません。それ以外の場合は、ユーザーにセットアップコマンドを対話形式で実行するよう伝えてください。ユーザーに代わって実行することはできないため、停止して待機してください。対話なしで setup を実行しないでください。標準入力での入力を求められます。キーチェーン、.env ファイル、設定ディレクトリから認証情報を探さないでください。

アカウントの選択

書き込み操作を行う前に、Claude は対象のアカウントを必ず把握している必要があります。毎回、次の手順に従ってください。

  1. postey://accounts を読み取る — クライアントが MCP リソースを読み取れない場合に限り、get_accounts ツールを呼び出してください(ホスト型コネクターの多くは読み取れません)。
  2. アカウントが 1 つ → ユーザーに確認せず、そのアカウントを使用します。
  3. 複数のアカウントがある → アカウントを表示し、どれを使うかユーザーに尋ねます。
  4. create_post、schedule_post、publish_draft などに account_id を渡す。

postey://accounts が返すアカウントのフィールド:

フィールド型説明
account_idintすべての書き込みツールで必須
account_namestr | null人間が読めるラベル
teamslist[int] | nullこのアカウントが所属するチーム ID
プラットフォームごとに 1 つのキーobject | nullnull 以外の場合、そのプラットフォームに接続済み

プラットフォームごとのキーは小文字のスラッグです(X は twitter、それ以外は各プラットフォームの名前です)。 **ペイロードから読み取ってください。キーの一覧を推測してはいけません。**この表には 7 つと記載されていましたが、サーバーは 9 つを返していました。そのため、接続済みのプラットフォームが 2 つ、スキルから見えない状態でした。

表示用ハンドルの特定(ユーザーへの表示用):接続済みの各プラットフォームオブジェクトには、それぞれ識別子フィールドがあります。通常は username ですが、プラットフォーム固有のフィールドが使われることもあります(LinkedIn の vanity_name、Bluesky の handle など)。フィールド名を決めつけずにオブジェクトを読み取り、存在する値を使用してください。キーがない場合、そのプラットフォームには接続されていません。ハンドルが空という意味ではありません。

厳守事項:

  • ✗ クライアントが MCP リソースを読み取れる場合、get_accounts を呼び出さないでください。代わりに postey://accounts を読み取ってください。リソースを読み取れないクライアントはツールを使用できます。
  • ✗ account_id を作り出したり、推測したりしないでください。必ずアカウントを(リソースまたはツールで)読み取り、確認してください。
  • ✗ GET /accounts やその他の REST エンドポイントを直接呼び出さないでください。MCP のみを使用してください。
  • ✗ postey.js accounts:list を実行しないでください。その CLI コマンドは存在しません。

アカウントとデフォルト

  • アカウントに対して動作する CLI コマンドでは、位置引数として account_id を指定します(例:video post 123 --video ...)。引数の一覧はcommand-reference.mdを参照してください。

よく使う操作

ユーザーの発言…操作
「Xについてツイートの下書きを作成して」MCP create_post
「これをLinkedInに投稿して」platform=LINKEDIN を指定して MCP create_post
「XとLinkedInに投稿して」(同じ内容)複数のプラットフォームを指定して MCP create_post
「Xのスレッド+LinkedInの投稿」(異なる内容)MCP create_post → 追加のプラットフォームごとに MCP update_post
「予定されている投稿は?」status=SCHEDULED を指定して MCP get_posts
「最近の投稿を表示して」status=PUBLISHED を指定して MCP get_posts
「これを明日投稿するように予約して」MCP create_post の後に MCP schedule_post
「これを今すぐ投稿して」MCP create_post の後に MCP publish_draft
「このリールからキャプションを作成して:<url>」postey.js video transcribe <url> → キャプション生成ガイドを適用 → MCP create_post
「動画をInstagram/TikTok/YouTubeにアップロードして」postey.js video post(ローカルファイル)または postey.js video transcribe <url>(リモートURL)
ユーザーが動画を提供したが、キャプションがないまず video transcribe を実行 → suggested_captions を調整 → video post --text または create_post

ワークフロー

  1. 設定を確認:${CLAUDE_SKILL_DIR}/scripts/postey.js config:show
  2. アカウントを確認:MCP リソース postey://accounts
  3. 下書きを作成:MCP create_post
  4. 予約または公開:MCP schedule_post または publish_draft

作成/検証/タグ付け/公開、下書きの部分更新、再利用、メディアと動画のパス選択、タグ付け、および推測せずユーザーに確認すべき項目を含む一連の手順については、references/mcp-workflows.md を参照してください。以前はこのガイダンスがリクエストごとに毎回 MCP サーバーから送られていましたが、現在はこちらにあり、必要に応じて読み込まれます。

タグの使用

MCP create_post の tags フィールドにタグ ID を渡します。作成済みの投稿にタグを追加するには、MCP add_tag を使用します。

複数のプラットフォームへの投稿

トピックごとに post_id は1つです。同じ内容について、プラットフォームごとに別々の下書きを作成しないでください。

複数のプラットフォームで同じ内容
mcp create_post account_id=<id> platform=X additional_platforms=[LINKEDIN] contents=[{text: "..."}]
プラットフォームごとに異なる内容
# Step 1 — Create initial draft
mcp create_post account_id=<id> platform=INSTAGRAM contents=[{text: "<instagram_caption>"}]
# Returns post_id, e.g. 1234

# Steps 2–N — Attach each additional platform (same post_id)
mcp update_post post_id=1234 platform=LINKEDIN contents=[{text: "<linkedin_caption>"}]
mcp update_post post_id=1234 platform=X contents=[{text: "<twitter_caption>"}]

プラットフォーム名

--platform にはサーバーの大文字表記のスラッグを指定します。このファイル内のリストを参照しないでください。以前ここにあった表は、サーバーが9件を提供している間に気付かれないまま7件にずれてしまい、その結果、このスキルはFacebookとPinterestは存在しないとユーザーに伝えていました。

代わりに、次の方法で確認してください。

  • 存在するプラットフォーム — postey://platform-limits、またはこのスキルディレクトリ内の capability-snapshot.json(サーバーから生成され、CLIも同じファイルを読み込みます)。
  • プラットフォームごとのルール — 文字数制限、カウント方法、スレッド、禁止語については postey://platforms/{platform}/rules を参照してください。制限をハードコードしないでください。プラットフォームごとに変更されるためです。
  • このアカウントから実際に投稿できるプラットフォーム — postey://accounts を読み込み、接続状況を確認してください。サーバーにプラットフォームが存在していても、ここで接続されているとは限りません。

動画の直接投稿

キャプションの準備ができており、動画(およびカバー)を1つのコマンドでアップロードする場合は、文字起こしをせずに video post を使用してください。このコマンドは MCP create_post に渡す media_urls、cover_url、その他のフィールドを返します。下書き自体は作成せず、公開と予約はMCPの機能であるため、--publish-now/--schedule は受け付けません。

まだキャプションがありませんか? まず video transcribe を実行してください。文字起こしとプラットフォームごとの suggested_captions が返されます。キャプションを調整して(prompts.md を参照)、その結果を video post --text または create_post に渡してください。文字起こしをそのままキャプションとして貼り付けないでください。

必要条件: Instagramのカバーサムネイル抽出には、PATH上に ffmpeg が必要です。

${CLAUDE_SKILL_DIR}/scripts/postey.js video post <account_id> \
  --video <local_path_or_https_url> \
  --text "<caption>" \
  --platforms INSTAGRAM,LINKEDIN,X \
  [--cover-time <seconds>]   # default: 3
  [--title "Draft title"]
プラットフォーム動画を添付カバーサムネイル
INSTAGRAMはい(リール)はい — ffmpegによるフレーム抽出
その他すべていいえいいえ

動画 → 字幕 → クロスポスト

文字起こしは postey-video の機能です。利用するには、そのパックをインストールしてください。ローカルディスクからの動画や画像のアップロードは、このスキルの機能です。video-workflow.md を参照してください。 プラットフォーム固有のキャプションルールについては、prompts.md を参照してください。

コンテンツのワークフロー

このスキルには、ガイド付きのコンテンツワークフローが4つ含まれています。ユーザーが初めて接続したとき、できることを尋ねたとき、または自由形式でコンテンツを依頼したときに、これらを案内してください。ユーザーが選択した場合にのみ、そのワークフローの参照ファイルを読み込みます。最初にすべてをインストールしたり、読み込んだりしてはいけません。

すべてのワークフローで守るルール(必須):

  1. セッションごとに、まずアカウントを確認します。postey://accounts を読み込むか、クライアントが MCP リソースを読み込めない場合は get_accounts を呼び出してください。接続済みのプラットフォームを読み込み、推測してはいけません。
  2. 作成するものはすべて下書きにします。公開にはユーザーの明示的な指示が必要です。スケジュール設定も公開に含まれます(予約投稿は自動的に公開されます)。投稿時間を提案し、ユーザーがコンテンツと時間の両方を承認した後にのみ schedule_post を呼び出してください。時間は UTC ISO-8601 形式で、少なくとも10分後に設定します。
  3. プラットフォームごとに、個別に練り上げたキャプションを作成します。アイデアはひとつ、語り口は複数です。上記の「複数のプラットフォームへの公開」で説明されている、プラットフォームごとの手順に従います。メインのプラットフォームではそのキャプションを使って create_post を呼び出し、残りのプラットフォームでは、それぞれのキャプションを使って1つずつ update_post を呼び出します。いずれも同じ post_id を使用してください。
  4. 作成後、プラットフォームごとに内容を確認します。postey://posts/{id}/content/{platform} を読み込むか、クライアントがリソースを読み込めない場合は get_post_content を呼び出してください。次にプラットフォームごとに validate_post_content を実行し、ユーザーに提示する前に修正します。
  5. すべてのワークフローの最後に、下書きの共有リンクをユーザーに伝えます。
  6. エージェントが作成した投稿にはタグを付けます。エージェントタグ(デフォルトは Agent。別の名前を希望するか、一度だけユーザーに尋ねてください)に加えて、トピックタグを2つまたは3つ付けます。add_tag はタグ名が完全一致するものを取得するか作成するため、同じ表記を再利用しても重複は作成されません。セッション間でタグ名を統一し、類似した別名を新たに作るのではなく、最近の投稿に表示されているタグ名(get_posts は各投稿のタグを返します)を再利用してください。誤ったタグは remove_tag で取り消します。

**「含まれるパック」**には、各ワークフローを提供するスキル名が記載されています。パックがインストールされていないワークフローは利用できません。記憶を頼りに即興でワークフローを実行するのではなく、その旨を伝え、利用可能なワークフローを案内してください。CI(scripts/check-pack-discovery.js)では、存在しないパックをこの表に記載するとエラーになります。

ワークフローユーザーの依頼例含まれるパック読み込むファイル
ブランドの語り口「私の語り口を学んで」「私らしく書いて」、ハンドル名やウェブサイトpostey-voiceそのパック独自のワークフローファイル
あらゆる場所に動画を投稿動画の URL、「この動画をあらゆる場所に投稿して」postey-videoそのパック独自のワークフローファイル
トレンド「今日は何を投稿すればいい?」「トレンドになっているものを探して」postey-ideasそのパック独自のワークフローファイル
アイデアから投稿を作成大まかなアイデアをひとつ、「これを投稿にして」postey-ideasそのパック独自のワークフローファイル

**制作の基盤レイヤーは、このハブに常に含まれています。**すべてのワークフローがこれを参照するためです。ワークフロー本体の場所に関係なく、references/caption-playbook.md(共通ルールとアップロード前チェックリスト)、references/platform-archetypes.md、references/post-structures.md(18種類の構成。それぞれに、選択条件と失敗する原因が記載されています。構成を選ぶ際は、下書きを作成する前にこちらを読んでください)、references/hook-formulas.md、references/x-algorithm.md、references/thread-and-video-formats.md、および references/brand-profile-template.md(各ワークフローが下書きの前に読み込む、ブランドごとのプロフィールのスキーマ)を参照してください。

初回の挨拶:アカウントを確認した後、このインストール環境で実際に利用できるワークフローを短いリストで案内し、ユーザーが選んだものを実行します。目標は、2分で共有リンクまでたどり着くことです。

自動化のガイドライン

  • 複数のアカウントで同じ内容を重複して投稿しないでください
  • 求められていない自動返信をしないでください
  • トレンド操作や偽のエンゲージメントを行わないでください
  • API のレート制限を遵守してください
  • 現在のターンでユーザーから明示的な承認を得るまで、公開または予約投稿をしないでください。 予約投稿も公開に該当します。予約した投稿は自動的に公開されるためです。「今すぐ投稿して」という依頼は、下書きを作成してユーザーに見せるよう求めるものであり、意図への承認を意味するだけで、ユーザーがまだ確認していない文章への承認ではありません。プラットフォームごとの正確な投稿文を提示し、承認を待ってください。公開は取り消せず、誰でも見られます。下書きは非公開です。

ヒント

  • スレッドの作成:単独行の --- で複数の投稿に分割します
  • 予約投稿:MCP の schedule_post では ISO 8601 形式の UTC 文字列を使用します。CLI に予約投稿用のフラグはありません
  • 下書きのタイトル:video post の --title は内部整理用であり、公開投稿には表示されません

リファレンス

コメント