ChatGPT から Shager で投稿できる? できます。ログインでつなぐか、ほかの3つの方法で

ChatGPTのMCPコネクタはOAuthでログインし、Shagerはこれに対応しています。開発者モードで追加してログイン、承認するだけ。Codex、API、スクリプトの方法も解説します。

できます。ChatGPT のカスタム MCP コネクタは OAuth で認証し、Shager の MCP サーバーは OAuth によるログインに対応しています。開発者モードで https://app.shager.ai/api/mcp をコネクタとして追加し、Shager にログインして承認するだけで、コピーするキーはありません。ほかにも、Codex 経由、OpenAI API 経由、あるいは文章作成は ChatGPT、配信は短いスクリプトという分担で、OpenAI のモデルに Shager の仕事を任せることもできます。

この記事では、コネクタの追加方法を説明し、ほかの方法についても動くコードを紹介します。

Shager を ChatGPT のコネクタとして追加するには

OpenAI の ChatGPT のアプリにおける認証のガイドでは、サポートされる方式が説明されています。認証が必要なサーバーは、MCP の認可仕様に沿った OAuth 2.1 フローを実装します。推奨は Client ID Metadata Documents で、動的クライアント登録にも対応しています。認証なしで動かすことも可能です。同じガイドには、ChatGPT はカスタムの API キーを提示できないとも書かれています。

https://app.shager.ai/api/mcp にある Shager のサーバーはこの仕様に沿っており、Client ID Metadata Documents と動的クライアント登録の両方に対応しています。接続の手順は次のとおりです。

  1. ChatGPT で「Settings」から「Apps & Connectors」を開き、開発者モード(Developer mode)をオンにして「Create」をクリックします。
  2. 名前を Shager にし、https://app.shager.ai/api/mcp を入力して OAuth を選びます。
  3. 「Connect」をクリックします。Shager が開くので、ログインし、組織を選んで承認します。

開発者モードは ChatGPT の有料プランで使えます。この接続でできるのは、読み取りと下書きの作成です。予約と公開は承認画面の別のチェックボックスで、チェックを入れない限りオフのままです。接続は https://app.shager.ai/dashboard/agents からいつでも解除できます。

API キーの前に認証なしのプロキシを挟めばいいのでは?

よく提案されますが、やめておくべきです。今はそもそも必要ありません。認証なしのリクエストを受け付けて Shager のキーを差し込むプロキシは、エージェンシーの公開権限を誰でも使えるエンドポイントに変えてしまいます。URL を見つけた人は誰でもクライアントのワークスペースに投稿の下書きを作れ、キーが publish を持っていれば予約までできてしまいます。絶対にやめてください。

図:AIエージェント(Claude、Codex、Cursor)が MCP サーバーまたは REST API で Shager に接続し、Shager が Facebook、Instagram、YouTube、X、LinkedIn、TikTok に配信します。
接続、チェック、時間差の配信、クリック計測は Shager が担当します。Facebook、Instagram は Meta の承認待ちです。承認されるまでは、テストアカウントのみ接続できます。 TikTok では、アプリの承認が下りるまで、投稿は非公開(「自分のみ」)で投稿されます。

方法1:OpenAI のコーディングエージェント、Codex

「OpenAI のモデルに Shager を操作させたい」のであれば、Codex ですでにすっきり実現できます。Codex は Streamable HTTP の MCP サーバーに対して、環境変数のベアラートークンを使えるので、設定は ~/.codex/config.toml に数行書くだけです。

[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
bearer_token_env_var = "SHAGER_API_KEY"

OpenAI の MCP に関するドキュメントによると、ChatGPT デスクトップアプリ、Codex CLI、IDE 拡張機能はこの設定ファイルを共有します。ツールの許可リストを含む詳しい手順は、Shager を Codex に接続するで解説しています。

方法2:リモート MCP ツールを使う OpenAI Responses API

OpenAI の API で独自のエージェントを作っているなら、Responses API がリモートの MCP サーバーを自分で呼び出してくれます。コネクタと MCP のガイドには、server_url、アクセストークン用の authorization フィールド、allowed_tools、require_approval を持つ mcp ツールが記載されています。また、API は authorization の値を保存しないので、リクエストのたびに送る必要があるとも書かれています。

import os
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model=os.environ["OPENAI_MODEL"],
    input=(
        "In the Shager workspace 'Cedar Clinics', list the channels, then create a "
        "DRAFT post to all active channels announcing Saturday walk-in hours. "
        "Use a different caption per channel that names the clinic's town. "
        "cta_url https://cedarclinics.example/walk-in, campaign 'walk-in-sat'. "
        "Do not pass schedule_at."
    ),
    tools=[{
        "type": "mcp",
        "server_label": "shager",
        "server_url": "https://app.shager.ai/api/mcp",
        "authorization": os.environ["SHAGER_API_KEY"],
        "allowed_tools": [
            "whoami", "list_workspaces", "list_channels",
            "list_groups", "create_post", "get_post",
        ],
        "require_approval": {
            "never": {"tool_names": ["whoami", "list_workspaces", "list_channels", "list_groups", "get_post"]}
        },
    }],
)

print(response.output_text)

この種の構成を実際に動かしてみて気づいた点が3つあります。

1つ目は、何よりも先に whoami で認証をテストすることです。OpenAI のドキュメントでは authorization は OAuth のアクセストークン用フィールドとして説明されていますが、Shager のキーはベアラートークンです。最初の呼び出しで、ヘッダーが Shager の想定どおりに届いているかがすぐにわかります。ツールの出力で 401 が返ってきたら、方法3に切り替えてください。

2つ目は、create_post をあえて never のリストから外していることです。そのため API は実行前に承認リクエストを返します。コード側で引数を確認し、承認のレスポンスで応答します。下書きが書き込まれる前に、人またはルールによるチェックポイントを低コストで挟めます。

3つ目は、このキーには publish を付けないことです。そうすれば、承認された呼び出しでも作れるのは下書きだけになります。

方法3:ChatGPT が書き、スクリプトが配信する

ChatGPT を日常的に使っているエージェンシーで最もよく見かけるパターンです。モデルには得意なこと、つまり40通りのキャプションを書く仕事を任せます。配信は20行ほどのスクリプトが、Shager の REST API(https://app.shager.ai/api/v1)を通して行います。API の全容は OpenAPI ドキュメントに記載されています。

まず ChatGPT に、ファイルに貼り付けられる構造化された出力を頼みます。

For each account below, write a caption for our Saturday walk-in hours post.
Vary the opening line and mention the town. Keep facts identical.
Return only JSON: [{"channel_id": "...", "caption": "..."}]
Accounts: <paste the id and name list from list_channels>

それを下書きとして送ります。

import json, os, requests

API = "https://app.shager.ai/api/v1"
H = {"Authorization": f"Bearer {os.environ['SHAGER_API_KEY']}"}
WS = os.environ["SHAGER_WORKSPACE_ID"]

captions = json.load(open("captions.json"))

r = requests.post(f"{API}/workspaces/{WS}/posts", headers=H, json={
    "caption": captions[0]["caption"],
    "channel_ids": [c["channel_id"] for c in captions],
    "per_channel": captions,
    "cta_url": "https://cedarclinics.example/walk-in",
    "campaign": "walk-in-sat",
    "first_comment": "Hours and directions: https://cedarclinics.example/walk-in",
}, timeout=60)

body = r.json()
if not r.ok:
    raise SystemExit(f"{body['error']['code']}: {body['error']['message']}")
print("draft", body["data"]["id"], body["data"]["status"])

per_channel 配列は channel_id と caption(任意で first_comment と format)を持つオブジェクトを受け付けるので、ChatGPT の JSON をそのまま流し込めます。cta_url にはアカウントごとに別々の短縮リンクと UTM が付き、utm_content にはアカウント名が入ります。これによって、後から成果をアカウント単位で計測できるようになります。

Shager の REST API で投稿を作成する curl リクエスト:キャプション、アカウントグループ、計測リンク、公開日時。
MCP サーバーと同じ操作を、OpenAPI のドキュメント付きで利用できます。

どのチームにどの方法が合うか

状況 方法
ターミナルや IDE で、ツールを使うエージェントを今すぐ動かしたい bearer_token_env_var を使った Codex
OpenAI のモデルで自社のプロダクトやエージェントを作っている mcp ツールを使う Responses API、または素の REST
チームが ChatGPT で文章を書いていて、そこから離れるつもりはない キャプションは ChatGPT、配信はスクリプト
ChatGPT アプリの中で Shager を使いたい 開発者モードのカスタムコネクタで、OAuth でログイン

ログインで接続すると何ができるか

ChatGPT で https://app.shager.ai/api/mcp をカスタム MCP サーバーとして追加し、Shager のアカウントでログインします。認証付きのサーバーについて、OpenAI の ChatGPT からの接続ガイドが説明しているとおりの流れです。キーを共有するのではなく、一人ひとりが自分のアカウントで接続します。監査ログの仕組みは同じで、ツールも同じです。ツールは REST の各操作と1対1で対応しています。

よくある質問

ChatGPT のコネクタ設定で API キーを使う方法はありますか?

OpenAI の ChatGPT のアプリ向け認証ガイドによれば、ありません。ガイドには OAuth と認証なしの方式だけが挙げられ、ChatGPT はカスタムの API キーを提示できないと書かれています。キーは不要で、OAuth を選んでログインすれば済みます。誰でもアクセスできるエンドポイントの裏にキーをさらすような回避策は、解決策ではなくセキュリティ上の問題だと考えてください。

モバイルの ChatGPT でも Shager は使えますか?

それは、ChatGPT がどこでカスタム MCP サーバーを許可しているかによります。これは OpenAI が決めることで、提供開始の過程でも変わってきました。以前の挙動を当てにせず、OpenAI の最新ドキュメントを確認してください。

これらの方法を試すのに、Shager の有料プランは必要ですか?

いいえ。API と MCP のアクセスはすべてのプランに含まれており、ローンチ期間中の Shager は無料で、カードも不要です。課金を始める前には、事前にお知らせします。プランごとのアカウント数の上限は料金ページでご確認ください。

次のステップ

コードで進めるなら、REST API クイックスタートから始めるのが一番の近道です。新しいキーの発行から、計測付きの複数アカウント向け下書きの作成まで、6回の呼び出しでたどり着けます。

ご自身のアカウントでお試しください。

ローンチ期間中は無料、カード登録不要。接続して一度書くだけで、Shagerが公開して計測します。