mcp
API キーとセキュリティ
MCP 使用時に Clarity がプロジェクトとデータをどのように保護するか。
API キーの仕組み
Settings → MCP / API で API キーを作成すると、Clarity は以下を実行します:
- 1Node.js の
crypto.randomBytesを使用して 32 バイトの暗号学的に安全なランダムバイト を生成 - 2base64url 文字列としてエンコードし、
sk_clarity_プレフィックスを付加 - 3完全なキーの SHA-256 ハッシュ を計算
- 4データベースには ハッシュのみを保存
- 5平文キーを 1 回だけ 返却
認証フロー
すべての MCP API リクエストは以下のパスをたどります:
- 1AI クライアントが
Authorization: Bearerヘッダーで平文キーを送信 - 2Clarity API が受信キーを SHA-256 でハッシュ化
- 3タイミングセーフ比較(
crypto.timingSafeEqual)を使用して、すべての有効なキーハッシュと比較 - 4一致した場合、関連付けられた
user_idを取得して処理を続行
タイミングセーフ比較により、レスポンス時間の計測からキーに関する情報を攻撃者が得ることを防ぎます。
所有権の検証
| エンドポイント | 所有権チェック |
|---|---|
| プロジェクト一覧 | user_id が一致するプロジェクトにフィルタリング |
| ファイル一覧 / 作成 | プロジェクトがユーザーに属することを検証 |
| ファイル読み取り / 書き込み / 削除 | ファイルがユーザーに属することを検証 |
| コンパイル / デバッグ | プロジェクトがユーザーに属することを検証 |
キー管理のベストプラクティス
- わかりやすいラベルを使用 — クライアント名でキーに名前を付けてください
- クライアントごとに 1 つのキー — 複数のマシンで同じキーを再利用しないでください
- 定期的にローテーション — 数か月ごとに新しいキーを生成してください
- キーをコミットしない — MCP 設定を
.gitignoreに追加してください
キーの制限
| 機能 | 制限 |
|---|---|
| ユーザーあたりのキー数 | 5 |
| キーの長さ | 48 文字 |
| 取り消し | 即時 |
MCP でできること・できないこと
MCP でできること:
- すべてのプロジェクトを一覧表示し、ファイルツリーを閲覧
- プロジェクト内のファイルの読み取り、書き込み、作成、削除
- LaTeX および Typst ドキュメントのコンパイル
- コンパイルエラーのデバッグ
- Typst ドキュメントの検索
- TikZ イラストの生成
MCP でできないこと:
- プロジェクト全体の作成や削除
- メインエントリファイルの削除
- 空でないフォルダの削除
- バイナリファイルのアップロード
- 他のユーザーのデータへのアクセス
- アカウント設定の変更
- 課金情報へのアクセス
- 所有権検証のバイパス
監査証跡
API キーが使用されるたびに、Clarity は Settings → MCP / API に表示される 最終使用日時 のタイムスタンプを更新します。
この記事は役に立ちましたか?
