1Socialを使ったInstagram投稿
1Socialは、ユーザー自身のInstagramアカウントに公開し、実際に届いたものを報告します。
セットアップ(初回のみ)
以下の手順で1Social MCPサーバーを駆動します。list_accountsなどのツールが利用できない場合は、まず接続してください。サインインはブラウザでのOAuthです。保存するAPIキーはありません。これらのコマンドを実行する前にユーザーに確認を取ってください。ログイン手順では、ユーザー自身が1Socialにサインインするページが開きます。
- OpenClaw:
openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}'を実行し、続けてopenclaw mcp login 1socialを実行します。openclaw mcp doctor 1social --probeで確認します。 - Hermes:
~/.hermes/config.yamlに以下を追加します。その後、mcp_servers: 1social: url: "https://mcp.1social.dev/mcp" auth: oauthhermes mcp login 1socialを実行します(ヘッドレスホストの場合はhermes mcp login 1social --flow device)。 - Claude Code:
claude mcp add --transport http 1social https://mcp.1social.dev/mcpを実行します。 - その他のクライアント: https://1social.dev/mcp に各クライアントのセットアップ方法が記載されています。
ユーザーには1Socialアカウントが必要です。新規アカウントは無料トライアルから始まります。トライアル終了後の公開には有料プラン(https://1social.dev/pricing)が必要です。
ワークフロー
- アカウントを見つける。
list_accountsを呼び出します。接続されているチャンネルとそのID、各ネットワークのライブ制限、プラン、残りの月次クォータが返されます。Instagramアカウントが接続されていない場合は、https://1social.dev/app で接続するようユーザーに伝えます。接続にはブラウザが必要であり、チャットからは実行できません。list_accountsがこのスキルと異なる制限を報告した場合は、list_accountsを信頼してください。 - ネットワーク向けに下書きを作成する。 以下のルールに従って投稿を作成します。投稿は
segmentsのリストです。各セグメントは{ text, mediaIds? }です。 - メディアを添付する。
- ユーザーがチャットでファイルを添付した場合 →
mediaに配置します。 - 公開されたhttpsリンクがある場合 →
mediaUrlsに配置します。 - ディスク上のファイルのみがある場合(OpenClaw、Hermes、Claude Code、Codex、またはその他のCLIエージェント) →
upload_mediaを呼び出し、その説明に従ってアップロード手順を実行し、返されたpublicUrlをmediaUrlsに配置します。ローカルホストのURLは機能しません。その前に、アップロードするファイルを正確にユーザーに表示し、同意を待ちます。アップロードするとすぐに公開リンクが取得され、後で投稿を拒否してもファイルは削除されません。
- ユーザーがチャットでファイルを添付した場合 →
- プレビュー。 チャンネルIDと下書きを指定して
preview_postを呼び出します。これは無料で、何も公開しません。報告されたすべての問題を修正し、再度プレビューします。 - ユーザーに確認する。 最終テキスト、投稿先アカウント、メディア、公開日時を表示します。公開は公開であり、一部のネットワークは投稿を削除できないため、明確な同意を待ちます。
- 公開またはスケジュール設定する。
publish_postを呼び出します。scheduledAt: nullは今すぐ公開します。UTC ISO-8601タイムスタンプ(例:2026-11-03T07:00:00Z)でスケジュール設定します(将来の日時、最大30日先)。ユーザーの現地時間を自分でUTCに変換し、タイムゾーンなしで時刻が指定された場合は、タイムゾーンを尋ねてください。idempotencyKey(この下書き用の8~128文字の安定した文字列)を設定して、呼び出しが重複しても2回公開されないようにします。 - 正直に報告する。 結果はネットワークごとのレシートです。各ネットワークを返されたまま正確に報告します。
unknownは、1Socialが投稿が公開されたかどうかを本当に確認できなかったことを意味します。そのように伝え、成功とも失敗とも呼ばないでください。
Instagramのルール
- すべての投稿には画像または動画が必要です。キャプションのみでは拒否されます。下書きを作成する前に、ユーザーにメディアを尋ねてください。
- キャプションの制限:2,200文字。最大30個のハッシュタグ。3~5個の関連するハッシュタグが、大量のタグよりも通常は効果的です。
- 画像のアスペクト比は4:5(ポートレート)から1.91:1(ランドスケープ)の間である必要があります。正方形の1:1は安全です。ワイドバナーはInstagramによって「アスペクト比」エラーで拒否されます。
- PNGとJPEGの両方が使用できます。
- スレッドは不可:下書きに複数のセグメントがある場合、1Socialはそれらを1つのキャプションに結合します。代わりに1つのキャプションを作成してください。
- キャプション内のリンクはInstagramではクリックできません。ユーザーがトラフィックを求めている場合は、生のURLの代わりに「link in bio」という文言を提案してください。
- 公開されたInstagramの投稿は、1Socialを通じて削除できません。Instagramにはそれを削除するAPIがありません。公開する前にユーザーがキャプションに満足していることを確認してください。
ライティングのヒント
- 最初の125文字でフックを提示します。それが「もっと見る」の前に表示される部分です。
- ハッシュタグはキャプションの最後、改行の後に配置します。
他のネットワークにも同時投稿する
同じ1Socialアカウントで、1つの投稿をInstagram、TikTok、LinkedIn、X、Threads、Facebook Pages、YouTube Shorts、Blueskyに同時に公開できます。list_accounts から複数のチャンネルIDをリストアップします。preview_post は選択されたすべてのネットワークに対して下書きをチェックします。
公開後
- ステータス確認:
list_posts(1つの投稿の場合はpostIdを指定)。ネットワークが報告する場合、保存されたエンゲージメントメトリクスが含まれます。 - スケジュール済み投稿の変更:
update_post。投稿が公開される前にのみ機能します。 - スケジュール解除:
cancel_post。まだ公開されていない投稿には、delete_postではなくこれを使用します。 - 公開済み投稿の削除:
delete_post。ユーザーが確認した後にのみ実行します。実際に削除されたものをネットワークごとに報告します。Instagram、TikTok、Threads、YouTubeの投稿は公開されたまま残り、ユーザーだけが削除できます。 - 配信に失敗した場合:
retry_deliveryは1つのネットワークを再試行し、クォータを再度消費します。接続が取り消されたなどの永続的な障害の場合は拒否されます。その場合、ユーザーは https://1social.dev/app で再接続する必要があります。 - 配信が
unknownの場合: ユーザーにネットワークを確認するよう依頼します。ユーザーから投稿が公開されているかどうかを聞いた場合のみ、その回答でconfirm_deliveryを呼び出します。決して推測せず、また尋ねずにforce付きでretry_deliveryを実行しないでください。2回目のコピーが公開される可能性があります。