---
title: エージェントトークン管理
description: アプリ所有者のWebセッションでエージェントトークンを発行・取得・取り消します。
---

# エージェントトークン管理 {#agent-token-management}

**アプリ情報とSDK → コーディングエージェント接続**で管理できます。この仕様は同じ機能を実装するWebクライアント向けです。

全エンドポイントに**アプリ所有者のWebセッション**が必要です。エージェントトークンでは発行・一覧・取り消しはできません。`Authorization`ヘッダーがあると`401`になります。変更操作には許可されたWeb `Origin`も必要です。

## トークンを発行する {#issue-a-token}

```http
POST /api/v1/apps/:appId/automation/tokens
Content-Type: application/json
```

| フィールド | 必須 | 制約 |
| --- | --- | --- |
| `name` | 必須 | 前後空白除去後1–100文字 |
| `expiresInDays` | 任意 | 整数1–90。既定30日 |
| `scopes` | 任意 | 重複しない対応スコープ1–3個。既定は3つすべて |

対応スコープは`feedback:read`、`work-items:read`、`work-items:write`です。

次はログイン済みサービスと同じオリジンで実行する例です。文書ドメインでは実行しません。ブラウザーがセッションCookieとOriginを送信します。

```js
const appId = "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"; // 実際のアプリID
const response = await fetch(`/api/v1/apps/${appId}/automation/tokens`, {
  method: "POST",
  credentials: "same-origin",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    name: "開発マシンMCP",
    expiresInDays: 30,
    scopes: ["feedback:read", "work-items:read", "work-items:write"],
  }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.message);
// result.tokenはこの応答でのみ返されます。ログやリポジトリに記録しないでください。
```

`201`応答の例です。`token`はプレースホルダーです。

```json
{
  "token": "ot_agent_REDACTED",
  "tokenInfo": {
    "id": "ffffffff-ffff-4fff-8fff-ffffffffffff",
    "name": "開発マシンMCP",
    "scopes": ["feedback:read", "work-items:read", "work-items:write"],
    "expiresAt": "2026-11-27T02:00:00.000Z",
    "createdAt": "2026-10-28T02:00:00.000Z",
    "lastUsedAt": null,
    "revokedAt": null
  }
}
```

サーバーにはハッシュのみ保存し、原文はこの応答でだけ表示します。発行には`clientRequestId`がありません。応答消失後に再送すると別トークンが発行されます。不要なものは一覧から確認して取り消します。

## 一覧を取得する {#list-tokens}

```http
GET /api/v1/apps/:appId/automation/tokens
```

`200`応答は`{ "tokens": [...] }`で、項目は上記`tokenInfo`と同じ構造です。原文もハッシュも返しません。新しい順で、期限切れ・取り消し済みも含み、ページ分割はありません。

| フィールド | 意味 |
| --- | --- |
| `id` | 取り消しに使うUUID |
| `name` | 発行時の名前 |
| `scopes` | 付与されたスコープ |
| `expiresAt` | 有効期限 |
| `createdAt` | 発行日時 |
| `lastUsedAt` | 最後のトークン認証日時。未使用は`null` |
| `revokedAt` | 取り消し日時。未取り消しは`null` |

日時はUTCのISO 8601文字列です。`lastUsedAt`は認証日時であり、個別API操作の成功を示すものではありません。

## トークンを取り消す {#revoke-a-token}

```http
DELETE /api/v1/apps/:appId/automation/tokens/:tokenId
```

成功時の`200`応答です。

```json
{ "ok": true }
```

繰り返し取り消しても成功します。対象アプリにIDがなければ`404`です。取り消したトークンは復元できず、新規発行が必要です。有効期限やスコープの編集APIもありません。

漏えいが疑われる場合は先に取り消し、代わりのトークンを接続します。実行環境への渡し方は[MCP設定](/ja/mcp/)を参照してください。
