AIエージェント向け

エージェントが書き、Shagerが届ける。主導権はあなたに。

Claude、ChatGPT、CursorなどのMCPクライアントはOAuthでログインして接続。ブラウザのないボットはデバイスコードで、それ以外はAPIキーかREST APIで接続できます。エージェントは動画や画像をアップロードし、すべてのアカウント向けに1つの投稿(リール、ショート、ストーリーズ、TikTok動画、通常の投稿)を作成して、各SNSのルールに照らしてチェックします。公開は、人がオンにするまでオフのままです。

MCPサーバー、REST API、OpenAPIドキュメントは全プランで利用できます(ローンチ期間中は無料)。

01動画1本

動画1本で、8つのアカウントへ。

エージェントはupload_media_from_urlで動画をアップロードし、アカウントのグループを指定して1つの投稿を送ります。Shagerはアカウントごとに、そのSNSが対応する形式のバージョンを返します。リール、ショート、TikTok動画、LinkedIn動画。それぞれに個別の送信時刻が付きます。

https://app.shager.ai/api/mcpStreamable HTTP · OAuth or Bearer key

呼び出しtools/call · upload_media_from_url → create_post

// 1 · upload the video once
{
  "name": "upload_media_from_url",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "url": "https://studio-noa.co.il/media/workshop.mp4"
  }
}
// → { "id": "cm2wheelvideo", "kind": "VIDEO",
//     "width": 1080, "height": 1920, "duration_ms": 24000 }  (measured by Shager)

// 2 · one post to every account
{
  "name": "create_post",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "group_ids": ["cm2allaccounts"],
    "caption": "A new evening workshop…",
    "media_ids": ["cm2wheelvideo"],
    "cta_url": "https://studio-noa.co.il/workshop",
    "youtube_made_for_kids": false,
    "per_channel": [{
      "channel_id": "cm2tiktok",
      "tiktok_privacy": "SELF_ONLY"
    }],
    "schedule_at": "2026-10-20T09:00:00+03:00",
    "idempotency_key": "workshop-oct-20"
  }
}

結果status: SCHEDULED

{
  "status": "SCHEDULED",
  "scheduled_at": "2026-10-20T06:00:00.000Z",
  "stagger_seconds": { "min": 30, "max": 90 },
  "issues": [],
  "destinations": [
    { "network": "INSTAGRAM", "format": "REEL",  "state": "PENDING" },
    { "network": "FACEBOOK",  "format": "REEL",  "state": "PENDING" },
    { "network": "YOUTUBE",   "format": "SHORT", "state": "PENDING" },
    { "network": "TIKTOK",    "format": "VIDEO", "state": "PENDING" },
    { "network": "LINKEDIN",  "format": "VIDEO", "state": "PENDING" },
    { "network": "X",         "format": "FEED",  "state": "PENDING" }
    // … 2 more, each with its own dispatch_at
  ],
  "calendar_notes": []
}
  • validate_post は、何かを保存する前に、すべてのアカウントの問題をまとめて返します。
  • calendar_notes は選んだ日の祝日を知らせるので、エージェントはタイミングを見直せます。
  • idempotency_key で再試行も安全です。同じリクエストから2つ目の投稿が作られることはありません。

02安全性

作業はエージェント。決めるのは人。

人が所有権を引き継ぎます。

自ら登録したエージェントにはサンドボックスが与えられます。下書き、メディア、クライアントは扱えますが、予約も公開もできません。人が引き継ぎリンクを開いてログインして初めて、その組織はその人のものになります。

公開はデフォルトでオフ。

キーの権限は読み取り・書き込み・公開の3種類です。公開権限は人だけが別途付与でき、キーはいつでも無効にできます。

APIキー · claude-codeshgr_live_…

  • readアカウント、投稿、統計オン
  • write下書きとメディアオン
  • publish予約と公開オフ

大量の送信や直前の送信は承認待ちに。

10を超えるアカウントへの送信や、60分以内の送信はすぐには出ません。エージェントはあなたに見せる送信プランを受け取り、確認トークンがある場合にだけ再送信します。

{ "error": {
  "code": "needs_confirmation",
  "message": "Nothing was scheduled: …",
  "details": {
    "plan": { "accounts": 40, "by_network": { … } },
    "confirmation_token": "…"
  }
} }

キーごとの上限と、すべての操作の記録。

1投稿あたり最大50アカウント、24時間で最大20件の予約投稿。エージェントの操作は、何を、いつ、どのキーで行ったかまですべて記録されます。

03接続

接続方法は3つ。どんなエージェントにも対応。

  1. OAuth対応のMCPクライアント

    クライアントにサーバーのアドレスを追加します(ClaudeとChatGPTではカスタムコネクタとして)。Shagerに移動したら、ログインして組織を選び、承認します。コピーするキーはなく、チェックを入れない限り公開はオフのままです。

    コードカスタムコネクタ

    # MCP server URL (sign in with OAuth)
    https://app.shager.ai/api/mcp
  2. ブラウザのないボット:デバイスコード

    ブラウザのないボットやエージェントは一度だけ登録し(RFC 7591)、コードを取得してあなたに表示します。スマートフォンでapp.shager.ai/deviceを開き、同じ画面・同じ権限で承認します。

    コードRFC 8628 デバイスコード

    curl -X POST https://app.shager.ai/api/oauth/device_authorization \
      -d client_id=shgr_client_… \
      -d resource=https://app.shager.ai/api/mcp
    # → user_code "BCDF-GHJK", verification_uri
    #   https://app.shager.ai/device · then poll /api/oauth/token
  3. それ以外:APIキー

    エージェントページでキーを作成し、MCPまたはREST APIでBearerヘッダーとして送ります。まだアカウントがない場合は、エージェントが自分でサンドボックスに登録し、あとからあなたが引き継げます(auth.md)。

    コードClaude Code

    claude mcp add --transport http shager \
      https://app.shager.ai/api/mcp \
      --header "Authorization: Bearer shgr_live_…"

04ツール

エージェントにできること。

30個のツール(MCPとRESTで共通)
whoami
自分の情報:組織、キーの権限、上限、サンドボックスの状態
get_structure
アカウント全体の構成:クライアント、各クライアントのアカウントとグループ
get_claim_link
組織の引き継ぎリンク
list_workspaces
クライアント(ワークスペース)の一覧
create_workspace
新しいクライアントを作成
list_channels
接続済みアカウントと各SNSのルール
create_connect_link
クライアントが自分のアカウントを接続するためのリンク
list_groups
アカウントのグループ
create_group
グループを作成(店舗、ブランド、キャンペーン)
upload_media_from_url
URLから画像や動画をアップロード
validate_post
最終コンテンツと予約の準備状況を確認
create_post
複数アカウントへの1つの投稿。SNSごとに調整
update_post
下書きを編集
schedule_post
アカウント間で送信をずらして予約
request_approval
クライアント向けの承認リンク
get_approval
投稿の承認状況
get_post
各アカウントの公開状況(エラーを含む)
list_posts
コンテンツカレンダー
cancel_post
予約を取り消す
delete_post
下書きを削除
list_comments
YouTubeまたはInstagramに公開した投稿のコメント
reply_to_comment
アカウントとしてコメントに返信
hide_comment
コメントを非表示・再表示
delete_comment
コメントを削除
get_analytics
アカウント別・投稿別のクリック数
create_webhook
list_webhooks
delete_webhook
send_test_webhook
get_holidays
投稿日を選ぶための、伝統ごとの祝日や記念日
機械可読ファイル
/llms.txt
エージェント向けのサイトマップ:Shagerとは何か、各ページはどこにあるか。
/llms-full.txt
公開コンテンツのすべてを1つのMarkdownファイルに。
/md/…
全ページのMarkdown版。例:/md/ja/pricing
app.shager.ai/api/v1/openapi.json
REST APIの完全なOpenAPI仕様。
app.shager.ai/.well-known/oauth-authorization-server
OAuthサーバーのメタデータ:動的クライアント登録、PKCE、デバイスコード。

05よくある質問

エージェントを接続する前によくいただく質問

現在Shagerで使えるエージェントは?

OAuthログインに対応したMCPクライアント(ClaudeやChatGPTのカスタムコネクタなど)、APIキーのヘッダーに対応したMCPクライアント(Claude Code、Cursor、Codexなど)、デバイスコードを使うブラウザのないボットやエージェント、そしてREST APIを呼び出すあらゆるコードです。

エージェントが知らないうちに公開することはありますか?

デフォルトではありません。公開には人が付与する別の公開権限が必要で、キーの作成時、サンドボックスの引き継ぎ時、接続の承認時にはオフになっています。さらに、10を超えるアカウントへの送信や60分以内の送信には2回目の確認が必要です。ワークスペース内のすべての投稿にクライアント承認を必須にすることもできます。

エージェントは別料金ですか?

いいえ。APIとMCPサーバーは全プランに含まれ、エージェントが作成した投稿もほかの投稿と同じように数えられます。

エージェントが間違えたら?

予約投稿は公開されるまで取り消せ、下書きは削除できます。すべての操作はログに残り、キーはワンクリックで無効にできます。

エージェントが他人のアカウントに投稿することはありますか?

投稿できるのは、各SNSの公式な許可画面を通じてあなたの組織に接続されたアカウントだけです。エージェントがパスワードを見ることはありません。

エージェントの準備は完了。あなたのアカウントが待っています。

ローンチ期間中は無料でアカウントを作成し、キーを作って、1行でエージェントを接続しましょう。いつ公開するかはあなたが決めます。