新規登録でプレミアムプランが割引に割引を受け取る

ブログ/developers·2026年9月24日·2分·執筆:eroqチーム

eroqのMCPサーバーがログインに対応:OAuthでキーの貼り付け不要

Claude、ChatGPT、Cursorなどでの「eroqを接続」の仕組み。PKCE付きOAuth 2.1、動的クライアント登録、アプリごとのキー、ツールの変更点。


今月まで、eroqをAIアプリに接続するには、設定ファイルにAPIキーを貼り付ける必要がありました。ヘッダーを送れないアプリなら、URLにキーを入れるしかありませんでした。それでも動きはしましたが、形としては間違っていました。チャットアプリの設定に置かれたキーは、間違った場所にある秘密情報で、誰もローテーションしません。https://eroq.ai/mcpのリモートMCPサーバーは、ちゃんとしたログインに対応しました。Connectをクリックし、eroq.aiでログインして、Allowをクリックすれば完了です。この記事では、その仕組み、アプリが受け取るもの、そしてこの機会に変わったツールの変更点を紹介します。

アプリが受け取るもの

Allowをクリックすると、eroqはそのアプリ用に普通のeroq_sk_…キーを発行し、Claude (connected)やCursor on studio-mac (connected)のように、アプリにちなんだ名前を付けて、アクセストークンとしてアプリに渡します。このキーは、ほかのキーと同じく「開発者 → APIキー」に表示されます。そこで無効化すれば接続はすぐに止まり、再接続すれば新しいキーが発行されます。同じアプリ名で再接続すると以前のキーが置き換えられるので、ノートパソコンをなくしても、キーを1つ無効化するだけできれいに片づきます。

セッションテーブルも、リフレッシュトークンも、2つ目のIDもありません。アプリはキーを使って/mcpと/v1を呼び出すので、課金、ワークスペースのロール、レート制限、利用停止、無効化は、手動で作ったキーとまったく同じように機能します。MCPページには、アプリごとのボタンがあります。

興味がある人のための、フローの詳細

標準的なOAuth 2.1なので、MCPの認証仕様に対応するクライアントなら、こちらでクライアントごとのコードを書かなくても動きます。

  1. アプリがトークンなしでPOST /mcpを呼び出すと、401と、/.well-known/oauth-protected-resourceを指すWWW-Authenticateヘッダーが返ります。そこから、さらに/.well-known/oauth-authorization-serverが示されます。
  2. アプリが自分自身を登録します。名前とリダイレクトURIを付けてPOST /oauth/register(RFC 7591の動的登録)を呼び出し、client_idを受け取ります。ChatGPTの登録方法は違い、そのclient_idはChatGPTがホストするメタデータ文書のURLで、eroqがそれを取得して検証します。
  3. PKCEチャレンジ(S256、必須)付きで、ブラウザでGET /oauth/authorizeを開きます。必要ならログインし、「App wants to use your eroq account」(〇〇があなたのeroqアカウントの利用を求めています)と表示されたら、Allowをクリックします。
  4. PKCEのベリファイアを付けてPOST /oauth/tokenでコードを交換し、キーを受け取ります。コードの有効期限は2分で、クライアント、リダイレクトURI、チャレンジに紐づけられています。
  5. アプリ側から接続を解除するときは、キーを付けてPOST /oauth/revokeを呼び出します。

client_idは、登録内容に署名したデータです。インターネット上の誰でも登録できるので、テーブルに保存してもスパムがたまるだけだからです。そして認可コードは、キーそのものを封印し、紐づけ、短命にしたものです。新たに用意するものはなく、存在しないデータベースから漏れるものもありません。

キーも引き続き使えます。OAuthのフローがないスクリプトやクライアントはAuthorization: Bearer eroq_sk_…を送り、ヘッダーを送れないクライアントはhttps://eroq.ai/mcp/<key>を使います。その場合、このURL自体が秘密情報になります。Codex CLIは、eroq CLIを、環境変数にキーを入れたローカルのstdioサーバーとして使います。

アプリごとの設定

  • Claude(Webとデスクトップ):Claudeのページでワンクリックすると、eroqのURLが入力済みの「Add custom connector」(カスタムコネクタを追加)が開きます。Add、Connect、Allowの順に進めます。
  • ChatGPT:Developer mode(開発者モード。Plus、Pro、Business、Enterprise、Edu)で、URLを指定してアプリを作成し、OAuthを選びます。手順はChatGPTガイドで解説しています。
  • Claude Code:claude mcp add --transport http eroq https://eroq.ai/mcpを実行し、/mcp → eroq → Authenticateと進みます。またはプラグインを使います。
  • CursorとVS Code:それぞれのページにワンクリックのインストールリンクがあり、初回の使用時にログインが実行されます。どちらもエディターガイドで解説しています。

ツールの変更点

ツールは変わらず10個です(generate_image、get_image_status、generate_video、get_video_status、generate_speech、enhance_prompt、list_models、list_voices、list_characters、get_account)。これらを使って何かを作っているなら、知っておくべき変更が3つあります。

画像は画像として返ってくる。generate_imageはレンダリングをキューに入れ(/v1では画像も非同期になり、動画と同じく1テイクにつき1ジョブです)、呼び出しの中でポーリングします。リクエストの上限時間には十分収まります。そして画像をインラインで返し、30分有効な署名付きリンクも添えます。レンダリングはライブラリにも残ります。チャットアプリはツールが返した画像を表示しますが、URLを取得しにいくことはめったにないので、会話に表示されるのはインラインの画像です。コールドスタートで時間がかかった場合は、get_image_status用のジョブIDが返ります(無料)。新しいaspectパラメーターは1:1、3:4、4:3、9:16、16:9に対応し、どれも同じ料金です。

動画はラインナップを把握している。generate_videoは、16種類のエンジンから選ぶmodel(デフォルトはSeedance 2.0 Mini)、そのエンジンが対応するresolution、サウンドトラックのあるエンジンではaudioスイッチ、画像から動画に対応するエンジンでは最初のフレームとなるreference_image_urlを受け取ります。list_modelsの料金は課金処理の関数から取得され、手入力の数字ではありません。5秒のクリップは、デフォルトのエンジンで45クレジット、Kling 3.0で170クレジット、Veo 3.1 Fastで135クレジットです。プランが必要なエンジンもあり、どれがそうかは一覧に書かれています。

ChatGPTが認証を認識する。ツールは一覧の中でOAuthのセキュリティスキームを宣言しています。ChatGPTが「connect」のUIを表示するのはこのためで、ほかのクライアントはこのフィールドを無視します。

よくある質問

アクセストークンは本物のAPIキーですか?

はい。アプリ名が付いた普通のキーで、あなたのワークスペースにあります。そこがポイントです。認証情報は1種類、無効化する場所も1か所、課金とロールもどこでも同じです。

手動で作ったキーも、まだ使えますか?

はい。Bearerヘッダーとして、またはヘッダーを送れないクライアントならURLに入れて使えます。OAuthは対応アプリでのデフォルトであって、必須ではありません。

アプリからは、アカウントの何が見えますか?

そのキーで呼び出せるものだけです。生成ツール、無料の照会、そして残高。パスワードが見えることはありません。ログインはeroq.aiで行われます。

接続に費用はかかりますか?

いいえ。呼び出しにはスタジオと同じ料金がかかります。Krea 2の画像なら10クレジット、Seedance 2.0 Miniの5秒クリップなら45クレジットで、失敗したレンダリングは自動で返金されます。

eroq.ai/mcpで、お使いのアプリを選びましょう。ヘッダーやCLIを使う方法は、MCPドキュメントにあります。

タグmcpoauthclaudechatgptconnectors

この記事で使ったモデルで作ってみましょう。無料の50クレジットで始めるか、全エンジンと料金をご覧ください。