@seameet/mcp CLI の接続
第 18 章: @seameet/mcp CLI の接続
@seameet/mcp CLI は、他のツール(Claude Desktop、IDE、エージェント)があなたの SeaMeet アカウントを読み書きできるようにするヘッドレスな Model Context Protocol サーバーです。ヘッドレスであるため、デバイス認可フロー(RFC 8628)で承認します — CLI が短いコードを表示し、あなたが URL にアクセスしてコードを確認する、これで完了です。
この章では Web アプリ側を扱います: /link ページ、承認アクション、そしてガードレール。
エンドツーエンドのフロー
- CLI を実行(例:
npx @seameet/mcp、またはそれを起動するクライアント)。 - CLI が短いコードと URL を出力 します — 通常は
app.seameet.ai/linkと、ABCD-EFGHのようなコード。 - ブラウザで URL を開きます。
/linkページでコードを入力します(または、CLI がクエリ文字列経由で事前入力する場合もあります)。- Approve をクリックします。
- CLI があなたの代理として読み書き可能な API キーを受け取り、動作できるようになります。
以上です。フロー全体は通常 30 秒以内で完了します。
「あなたの代理として」の意味
/link で発行される API キーは、あなたの SeaMeet アカウントにスコープされた実際のユーザーごとのトークンです。CLI がそれを使って行うすべての動作は、あなたの動作としてライブラリに表 示されます。具体的には:
- 読み取り — CLI はあなたの録音を一覧表示し、文字起こしと要約を取得し、アーカイブ全体に対する Meeting Memory をクエリできます。
- 書き込み — CLI は録音を作成し(アップロード経由)、タイトルや説明を更新し、共有を作成でき、通常のセッションでできることを一通り行えます。
トークンはアカウントに紐付いているため、セッションを取り消す(すべての場所からサインアウトする)ことでは CLI のトークンは取り消せません — トークンは別個の資格情報です。以下の「CLI 承認の取り消し」を参照してください。
サインインが必要
/link ページは 実際のサインイン済み、検証済みのアカウントが必要 です。つまり:
- サインアウト状態。 ページは
returnToパラメータにコードを乗せて/signinにリダイレクトします。そのため、サインイン後は/linkに戻り、コードは保持された状態でフローが再開されます。 - 匿名ゲストセッション。 サインアウト状態と同じです — CLI が紐付くための実際の ID を必要とするため、ゲストセッションは CLI を承認できません。セッションを実アカウントに昇格するため、
/signinに送られます。 - サインイン済みかつ検証済み。 承認アクションが有効になります。
これは意図的なガードレールです。これがなければ、CLI は「人間が意図して開いていない」使い捨ての匿名セッションの「代理として」動作できてしまいます。
明示的なクリックによる承認
/link ページは 決して 自動承認しません。?code=<value> でコードが事前入力されている場合でも、明示的に Approve をクリックする必要があります。これは防御的な設計です: ロード時の自動承認はフィッシングのベクターになり得ます — 悪意あるページがブラウザで /link?code=<attacker's-code> を開き、あなたが気付く前に攻撃者用のトークンを鋳造してしまうかもしれません。
Approve をクリックする前に、常に ページ上に表示されるコードが CLI に表示されているコードと一致することを確認してください。一致しない場合は、ページを閉じてください。
承認アクション
Approve をクリックすると:
- Web アプリは SeaMeet のサーバーでコードを検証します。
- サーバーはコードが有効で、期限切れでなく、実(非匿名)アカウントに紐付いていることを確認します。
- 有効な場合、API キーを鋳造し、コードに関連付けて、成功を返します。
- トークンエンドポイントをポーリングしていた CLI がキーを受け取り、成功メッセージを出力します。
- Web アプリの
/linkページには「Approved」と表示されます — タブを閉じて構いません。
コードが期限切れの場合(RFC 8628 コードは短寿命 — 通常 15 分)、CLI は新しいコードを生成して最初からやり直す必要があります。
CLI 承認の取り消し
2 つの方法があります:
- CLI 側から。 CLI のローカルストレージ内のトークンを削除する(または提供されている場合は CLI の
logoutコマンドを実行する)。サーバー側でも取り消すまで、トークンはサーバー側で有効なままです。 - アカウント側から。 アカウント → 接続されたアプリ → 最終利用タイムスタンプで CLI 承認を特定 → Revoke。これによりトークンがサーバー側で即座に無効化されます。
慎重派向け: サーバー側で取り消してください。CLI 側での削除は、現在の CLI プロセスがトークンを使用するのを止めるだけで、他の場所でトークンのコピーが使用されるのを防ぎません。
複数の CLI 承認
CLI は複数回承認できます(例: 使用するマシンごとに 1 回)。各承認で別々の API キーが鋳造されます。アカウント → 接続されたアプリでは、キーごとのメタデータ(最終利用、初回承認)と共に一覧表示されます。
1 つの CLI 承認を取り消しても、他のものには影響しません。
トークンのセキュリティ
- トークンは CLI のローカル設定ディレクトリに、既定では非暗号化で保存されます。
- マシンが侵害されると、トークンも侵害されます。 サーバー側で取り消してから再承認してください。
- トークンには既定で有効期限がありません(長寿命)。短寿命のトークンが必要な場合は、ローテーションスケジュールに従って取り消して再承認してください。
- トークンは HTTPS 経由で送信されます(HSTS 保護 — 第 17 章 を参照)。
権限の引き継ぎ
CLI は あなた として動作します — したがってあなたの権限ティアを持ちます。Free ティアの場合、CLI は文字起こしを読むときに Free ティアの開示制限を受けます。Sync Pro の場合、CLI はフル読み取り可能です。
録音作成のような書き込みアクションは、通常のセッションと同様にあなたのクオータを消費します。
よくある問題
「コードが期限切れです。」 コードは短寿命(通常 15 分)です。CLI を再起動して新しいコードを取得してください。
「コードは承認されたが、CLI が気付かない。」 CLI はトークンエンドポイントを数秒おきにポーリングします。10〜15 秒待ってください。それでも何もない場合は CLI を再起動してください — ポーリングループがクラッシュしている可能性があります。
「サインインしたらコードを失った。」 /link ページはコードを returnTo に乗せています — サインインするとコードが保持された状態で戻ります。何らかの理由で失われた場合は、CLI を再起動して新しいコードを取得してください。
「Approve が 'not_entitled' エラーを返す。」 アカウントの権限に CLI 承認が含まれていません — 現在、CLI 承認には Sync Pro が必要です。アップグレードして再試行してください。
「承認したのに CLI がまだ 'authorization required' と言う。」 CLI の設定ディレクトリに保存されたトークンを確認してください(パスは CLI のバージョンによって異なります)。空の場合、CLI はトークンを取り逃した可能性があります — 再起動して再承認してください。
クイックリファレンス
| タスク | 方法 |
|---|---|
| CLI コードを承認する | app.seameet.ai/link → コードを入力/確認 → Approve |
| CLI トークンを取り消す(サーバー側) | アカウント → 接続されたアプリ → Revoke |
| CLI トークンを取り消す(クライアント側) | CLI の logout コマンド、または CLI 設定ファイルを削除 |
| すべての承認を見る | アカウント → 接続されたアプリ |
| 複数のマシンで承認する | マシンごとに一度承認する — それぞれ別のトークンが鋳造される |
Last updated: 2026-08-28
公開日: