コンテンツにスキップ

MCP API キー一覧

メソッド

RESTメソッドを採用しています。

HTTPメソッド

GET: MCP APIキーリスト取得

命名規則

クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。

リクエストとレスポンス

ヘッダー

メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。

リクエストヘッダー

  • Authorization
  • Content-Type
  • Accept
  • Accept-language

レスポンスヘッダー

  • Content-Type

リスト取得

URI

GET /v1/organizations/{organization_id}/projects/{project_id}/mcp_api_key

パスパラメータ

名前 型 必須 説明
organization_id integer 必須 組織ID
project_id integer 必須 プロジェクトID

クエリパラメータ

名前 型 デフォルト 説明
page integer 1 ページ番号(最小: 1)
limit integer 20 ページあたりのアイテム数(最小: 1、最大: 100)
sort string asc ソート順序(asc または desc)
scope string - スコープでフィルタ(user または project)
permission integer - 権限でフィルタ(0: READ、1: WRITE)
includeRevoked boolean false 無効化されたキーを含めるか

レスポンス

レスポンスはJSONです。

{
  "currentPage": 1,
  "totalCount": 50,
  "list": [
    {
      "id": 1,
      "userId": 1,
      "projectId": 2,
      "name": "mcp for project A",
      "keyPrefix": "abc123",
      "permission": 0,
      "expiresAt": 1735689600000,
      "revokedAt": null,
      "lastUsedAt": 1234567890000,
      "createdAt": 1234567890000,
      "updatedAt": 1234567890000,
      "deletedAt": null,
      "createdBy": "user-cognito-sub",
      "updatedBy": "user-cognito-sub",
      "deletedBy": null
    }
  ]
}

注意: apiKey、keyHash、saltはセキュリティ上の理由で返されません。

認証

認証はAmazon Cognitoから発行されるJSON Web Tokens (JWT)を使用して行われます。

例外処理

例外処理のステータスコードは以下の通りです。

説明 ステータスコード ステータス名
認証情報不足 401 Unauthorized
実行権限不足 403 Forbidden
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. パスパラメータから組織IDとプロジェクトIDを抽出
  2. クエリパラメータを抽出
  3. ユーザーがプロジェクトへのアクセス権限を持つことを確認
  4. プロジェクトIDとクエリパラメータに基づいてフィルタリング
  5. ページネーションを適用
  6. ソート順を適用
  7. 結果をフォーマット(日付をエポックミリ秒に変換)
  8. ページネーション情報と共に結果を返す

詳細フローチャート

flowchart TD
    Start([GET Request]) --> Auth[認証・パラメータ取得<br/>page, limit, sort]
    Auth --> Service[Service Layer]
    Service --> AccessCheck[権限チェック]
    AccessCheck --> HasAccess{Read権限?}
    HasAccess -->|なし| Err404[404 Not Found]
    HasAccess -->|あり| Validate{sort検証}
    Validate -->|NG| Err400[400 Bad Request]
    Validate -->|OK| QueryDB[Repository Layer]
    QueryDB --> CountQuery[COUNT取得]
    CountQuery --> ListQuery[レコード取得<br/>LIMIT, OFFSET, ORDER BY]
    ListQuery --> Format[レスポンス整形]
    Format --> Success[200 OK<br/>currentPage, totalCount, list]

フィルタリング

  • デフォルトでは、削除されていない(deletedAtがnull)キーのみを返します
  • includeRevokedがfalseの場合、無効化されていない(revokedAtがnull)キーのみを返します
  • 指定されたproject_idに関連するキーのみを返します
  • scopeパラメータが指定された場合、そのスコープのキーのみを返します
  • ユーザーは自身が所有するキー、またはアクセス権限を持つプロジェクトのキーのみを閲覧できます