
自分のSaaSを、ChatGPTとClaudeからログインだけで使えるようにした。MCP対応で分かった、チャット画面への入口
この記事のポイント
- ✓自分のSaaS「Pinateca」を
- ✓ChatGPTとClaudeのチャット画面から
- ✓ログインして許可するだけで使えるようにしました
AIに話しかけるだけで、ほかの道具が動く。 そういう使い方が、当たり前になりつつあります。
「今週締切のカードを出して」と頼めば、タスク管理の中身を読んで答える。 「議事録から決まったことをカードにして」と頼めば、カードが並ぶ。 画面を開いてボタンを押す手間が、会話1往復に縮みます。
これを支えているのが MCP(Model Context Protocol)です。 AIと外の道具をつなぐ共通の決まりで、一度この口を作れば、決まりに対応した AI ならどれからでも呼べます。 よくできた仕組みだと思います。
私自身は、仕事をできるだけ Claude Code から動かしています。 メールの下書き、予定の登録、サーバーへのデプロイ、管理画面の確認まで、会話で頼んで済ませています。 自分が作っているタスク管理の Pinateca にも、APIトークンで繋ぐ MCP の口を作ってあり、前から Claude Code で操作していました。
これからは、人間が画面を触って道具を使う時代ではなくなると考えています。 使う人は AI に頼み、AI が道具を動かす。 そうなったとき、AI から使えない道具は選ばれません。
だから今回は、自分のためではなく、一般の利用者のために、ChatGPT や Claude のチャット画面から Pinateca を使えるようにしました。
最初の口は、Claude Code からしか使えなかった
最初に作ったのは、APIトークンで繋ぐ口でした。 ワークスペースの設定でトークンを発行して、AI の設定に貼る。 開発者にはおなじみの形です。
Claude Code からは、1行のコマンドで動きます。 ボードの一覧も、カードの作成も、会話の中で終わります。 自分で使うには、これで足りていました。
ところが、一般の利用者と同じように ChatGPT から繋ごうとして、手が止まりました。
ChatGPT の画面には、トークンを貼る欄がありません。 claude.ai にも、ふつうはありません。 claude.ai でトークンを貼れるのは、一部の組織に試験提供されている機能だけでした。
つまり、私が作った口は、ターミナルで Claude Code を使う人にしか届いていませんでした。 タスク管理を使う人の大半は、ターミナルを開きません。
チャット画面は「ログインして許可する」形でしか繋がらない
調べると、理由ははっきりしていました。
OpenAI の開発者向け資料には、ChatGPT は独自の API キーを提示できないと書いてあります。 ChatGPT に自前の MCP を足すときに選べる認証は、OAuth か、認証なしか、その2つの組み合わせです。 claude.ai のカスタムコネクタも、基本は OAuth です。
OAuth は、「Google でログイン」のボタンと同じ仕組みです。 AI の画面で道具を足すと、その道具のログイン画面が開く。 利用者はいつものアカウントでログインして、「許可する」を押す。 それで AI が、その人として道具を使えるようになります。
チャット画面を使う普通の人に、トークンを発行して貼る作業はさせられません。 だから入口はログインになっている。 考えてみれば当然でした。
もう1つ、恥ずかしい発見がありました。 自分の使い方ガイドに「ChatGPT と Gemini は、仕様書の URL を読ませるだけで繋がります」と書いていたのです。 確かめずに書いた一文でした。 しかも、公開していた API の仕様書は、接続先が開発機の住所のままでした。 読ませても、呼び出しは必ず失敗します。
作ったもの
Pinateca の MCP の口に、ログインして許可する形を足しました。 利用者から見ると、手順は3つです。
- AI の設定で、Pinateca の住所を足す
- Pinateca のログイン画面が開くので、ログインしてワークスペースを選ぶ
- 「許可する」を押す
作る側で決めたことは、5つあります。
- AI に渡す鍵は、許可した本人として動く
- 契約とトークンの発行には触らせない
- 鍵は1時間で切れ、AI が自動で取り替える
- 繋いだ AI は、ワークスペース設定の「APIトークン」に名前付きで並ぶ
- AI の操作も、画面の操作と同じ入口を通す
1つ目は、いちばん迷わなかったところです。 管理者の権限で動く鍵にすると、一般のメンバーが許可した鍵で、管理者にしかできない操作ができてしまいます。 本人が見られないボードは、AI からも見えないようにしました。
2つ目は、お金と鍵は本人が画面から扱う、という線引きです。
3つ目の取り替えでは、そのたびに鍵も札も新しくします。 本人がワークスペースを抜けたら、その時点で使えなくなります。
4つ目は、止めたいときの置き場所です。 一覧から失効させれば、その AI はもう入れません。
5つ目のおかげで、AI が動かしたカードも、操作ログと外部への通知に、人が動かしたときと同じように残ります。
許可の画面は、こういう形にしました。
!AI から繋いだときに開く、Pinateca の許可の画面
途中で1つ、はまったところがあります。
AI の画面は、最初に鍵なしで MCP の口を叩きます。 そこで「鍵が要ります。鍵はここでもらってください」と返すと、ログインの手順に進みます。 ところが私のサーバーは、その最初の呼び出しを CSRF 対策の関門で止めていました。 返していたのは「鍵が要ります」ではなく「その呼び出しは受け付けません」だったので、AI はログインへ進めません。 MCP の口とログインの口を、関門より前に置いて解決しました。
本番で、実物の ChatGPT と Claude に繋いだ
手元のテストだけでは、実物のチャット画面で通るかは分かりません。 本番に出してから、自分のアカウントで両方に繋ぎました。
claude.ai では、カスタムコネクタに住所を入れて進むと、Pinateca の許可の画面が開きました。 許可すると、Claude の画面に Pinateca の12個の道具が並びました。
ChatGPT は、手順が多くなります。 調べた時点での流れは、次のとおりでした。
- 有料のプランに入っている
- 設定の「セキュリティとログイン」で、開発者モードをオンにする
- プラグインの画面で「アプリを作成」を押し、住所を入れる
- 「理解したうえで、続行します」にチェックを入れて作成する
- Pinateca にログインして許可する
開発者モードの切り替えには、「リスクが上昇」という注意書きが付いていました。 住所を入れると、認証は OAuth が自動で選ばれました。
これで ChatGPT のプラグイン一覧に、Pinateca のアイコンが並びました。 サーバーの記録にも、ChatGPT から道具の一覧を取りに来た跡が残っていました。
1つ、実物に合わせて先回りしたことがあります。
ChatGPT は、ログインの案内に offline_access が載っていないと、鍵を取り替えるための札を求めません。
その場合、鍵が切れるたびに利用者がログインし直すことになります。
OpenAI のヘルプにそう書いてあったので、案内に載せておきました。
一般の人に届くのは、一覧に載ってから
繋がりはしました。 ただ、上の5手順を普通の利用者に頼むのは無理があります。
開発者モードの説明には、「未検証のコネクター」を追加できるようにする設定だと書かれています。 審査を通って ChatGPT のアプリ一覧に載っていれば、未検証ではなくなります。 一覧にある道具は、プラグインの画面で「インストール」を押して、ログインすれば使えます。
一覧には、勝手には載りません。 申請して、OpenAI の審査を通る必要があります。 調べた時点で、求められていたのは次のものでした。
- 開発者として、個人か会社の本人確認を済ませておく
- 審査員が入れる、サンプル入りのアカウントを渡す
- 集める情報、使う目的、渡す先、保存期間、利用者が選べることを書いたプライバシーポリシー
- 道具ごとに、読むだけか、書き換えるか、元に戻せないかの印(annotations)を付ける
審査員用のアカウントは、新規登録や二段階認証が要るものだと断られます。 最後の印は、付け忘れや付け間違いがよくある却下の理由として名指しされていました。
Pinateca の12個の道具には、この印を全部付けました。 道具の説明も、審査員が読める英語にしました。 プライバシーポリシーには、利用者が AI を繋いだときに情報がどこへ渡るかを書き足しました。
いまは、会社としての本人確認を出して、審査を待っているところです。
ほかの AI はどうか
ChatGPT と Claude 以外も調べました。 これも調べた時点での話で、Pinateca で実際に繋いだのは ChatGPT と Claude だけです。
- Gemini の Web の画面で自前の MCP を足せるのは、Gemini Spark の中だけ
- Microsoft の Copilot Studio は、自動で登録してログインする方式を選べる
- GitHub Copilot は、VS Code で住所を足してログインする形に対応している
Gemini Spark で自前の MCP を足せるのは、米国在住で18歳以上、個人の Google アカウントを英語表示で使っている人でした。
どれも、ログインして許可する形が共通の入口になっています。 一度この形を作っておけば、同じ口がそのまま使えます。
誰に向いている話か
自分の SaaS に API を持っていて、AI から使えるようにしたい人には、そのまま役に立つはずです。 トークンで繋ぐ口だけでは、開発者にしか届きません。 チャット画面の利用者に届けるなら、ログインして許可する形が要ります。 そして、一般の人にまで届けるなら、一覧への申請までが一続きの作業です。
逆に、使う人が全員エンジニアで、ターミナルから使う前提なら、トークンで繋ぐ口で足ります。
Pinateca は、ChatGPT と Claude から、話しかけるだけでボードとカードを動かせるようになりました。 繋ぎ方と、できることはこちらにまとめています。




