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

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

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

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

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

MCP: `https://app.shager.ai/api/mcp`

```json
// 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"
  }
}
```

```json
{
  "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つ目の投稿が作られることはありません。

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

- **人が所有権を引き継ぎます。** 自ら登録したエージェントにはサンドボックスが与えられます。下書き、メディア、クライアントは扱えますが、予約も公開もできません。人が引き継ぎリンクを開いてログインして初めて、その組織はその人のものになります。
- **公開はデフォルトでオフ。** キーの権限は読み取り・書き込み・公開の3種類です。公開権限は人だけが別途付与でき、キーはいつでも無効にできます。
- **大量の送信や直前の送信は承認待ちに。** 10を超えるアカウントへの送信や、60分以内の送信はすぐには出ません。エージェントはあなたに見せる送信プランを受け取り、確認トークンがある場合にだけ再送信します。
- **キーごとの上限と、すべての操作の記録。** 1投稿あたり最大50アカウント、24時間で最大20件の予約投稿。エージェントの操作は、何を、いつ、どのキーで行ったかまですべて記録されます。

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

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

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

```sh
# MCP server URL (sign in with OAuth)
https://app.shager.ai/api/mcp
```

### 2. ブラウザのないボット：デバイスコード

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

```sh
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）。

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

MCP config (Cursor and other clients):

```json
{
  "mcpServers": {
    "shager": {
      "url": "https://app.shager.ai/api/mcp",
      "headers": { "Authorization": "Bearer shgr_live_…" }
    }
  }
}
```

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

- `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
- `https://app.shager.ai/api/v1/openapi.json`: REST APIの完全なOpenAPI仕様。
- `https://app.shager.ai/.well-known/oauth-authorization-server`: OAuthサーバーのメタデータ：動的クライアント登録、PKCE、デバイスコード。

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

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

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

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

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

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

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

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

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

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

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

計測リンクでは、アカウント別・投稿別のクリック数を確認できます。リードや売上の貢献分析には、お使いの分析ツールや CRM が必要です。

---
Source: https://shager.ai/ja/agents
