Alat MCP
Buat kunci API penerus
sosoapi_renew_api_keyBuat penerus untuk kunci API (id) dengan rahasia baru yang dikembalikan sekali serta kemampuan dan batas ruang kerja yang sama; secara opsional gunakan nama atau masa berlaku baru (maksimal 365 hari, 30 untuk kunci buatan agen). Kunci asli tidak dicabut. Memerlukan izin Kelola kunci API.
Baca sebagai MarkdownProfil dan transport
Profil: full · Transport: stdio, http
Pilih core atau full untuk mengatur alat yang terlihat oleh klien; ini tidak mengubah izinnya. Unggahan file lokal memerlukan stdio dan tidak tersedia melalui HTTP. Atur SOSOAPI_OUTPUT_SCHEMAS=1 untuk menyertakan skema output saat penemuan. Alat mengembalikan hasil terstruktur dengan atau tanpa pengaturan itu.
Izin dan efek samping
Anotasi membantu klien menjelaskan alat. Setiap panggilan tetap memeriksa autentikasi pengguna, peran, akses sumber daya, dan izin kemampuan.
{
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false
}- /identity-api/api-keys/renew: agent:manage_api_keys · synchronous_http_response
Kolom input
Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.
| Kolom / cabang | Jenis / wajib | Batasan |
|---|---|---|
$ | objectWajib dalam induk |
|
id | stringWajib dalam induk |
|
name | stringOpsional / item |
|
lifetime_days | integerOpsional / item | Hari sampai penerus kedaluwarsa (1-365, default 365; maksimal 30 untuk kunci buatan agen terdelegasi). Penerus mempertahankan kemampuan dan batas ruang kerja pendahulunya.
|
idempotency_key | stringOpsional / item | Opsional. Gunakan kunci yang sama untuk mencoba ulang dengan aman. Rahasia baru ditampilkan sekali: percobaan ulang yang menemukan penerus sudah dibuat menjawab 409 IDEMPOTENT_REPLAY (details.existing_key menyebutkannya). Cabut dan perbarui lagi dengan idempotency_key baru.
|
JSON Schema lengkap
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"lifetime_days": {
"description": "Days until the successor expires (1-365, default 365; 30 at most for a key created by a delegated agent). The successor keeps the predecessor's capabilities and Workspace limit.",
"type": "integer",
"minimum": 1,
"maximum": 365
},
"idempotency_key": {
"description": "Optional. Reuse the same key to retry safely. The new secret is shown once: a retry that finds the successor already created answers 409 IDEMPOTENT_REPLAY (details.existing_key names it). Revoke it and renew again with a new idempotency_key.",
"type": "string",
"minLength": 8,
"maxLength": 160,
"pattern": "^[!-~]+$"
}
},
"required": [
"id"
],
"additionalProperties": false
}Output terstruktur
Skema ini menjelaskan structuredContent dalam hasil alat yang berhasil. Respons MCP juga menyertakan content dan dapat menetapkan isError saat panggilan gagal. Untuk publikasi, baca hasil akhir postingan alih-alih menganggap permintaan diterima atau respons teks sebagai konfirmasi. Operasi API yang ditautkan menjelaskan izin dan aturan percobaan ulang.
Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.
| Kolom / cabang | Jenis / wajib | Batasan |
|---|---|---|
$ | objectWajib dalam induk |
|
apiKey | objectWajib dalam induk |
|
apiKey.id | stringWajib dalam induk |
|
apiKey.name | stringWajib dalam induk | — |
apiKey.last_4 | stringWajib dalam induk | — |
apiKey.scopes | arrayWajib dalam induk | — |
apiKey.scopes[] | stringOpsional / item | — |
apiKey.created_at | stringWajib dalam induk |
|
apiKey.expires_at | string | nullWajib dalam induk | — |
apiKey.expires_atanyOf 1 | stringWajib dalam induk |
|
apiKey.expires_atanyOf 2 | nullWajib dalam induk | — |
apiKey.last_used_at | string | nullWajib dalam induk | — |
apiKey.last_used_atanyOf 1 | stringWajib dalam induk |
|
apiKey.last_used_atanyOf 2 | nullWajib dalam induk | — |
apiKey.revoked_at | string | nullWajib dalam induk | — |
apiKey.revoked_atanyOf 1 | stringWajib dalam induk |
|
apiKey.revoked_atanyOf 2 | nullWajib dalam induk | — |
apiKey.status | stringWajib dalam induk |
|
apiKey.replaces | object | nullWajib dalam induk | — |
apiKey.replacesanyOf 1 | objectWajib dalam induk |
|
apiKey.replaces.idanyOf 1 | stringWajib dalam induk |
|
apiKey.replaces.nameanyOf 1 | stringWajib dalam induk | — |
apiKey.replaces.last_4anyOf 1 | stringWajib dalam induk | — |
apiKey.replaces.statusanyOf 1 | stringWajib dalam induk |
|
apiKey.replacesanyOf 2 | nullWajib dalam induk | — |
apiKey.replaced_by | arrayWajib dalam induk | — |
apiKey.replaced_by[] | objectOpsional / item |
|
apiKey.replaced_by[].id | stringWajib dalam induk |
|
apiKey.replaced_by[].name | stringWajib dalam induk | — |
apiKey.replaced_by[].last_4 | stringWajib dalam induk | — |
apiKey.replaced_by[].status | stringWajib dalam induk |
|
apiKey.capabilities | arrayOpsional / item | — |
apiKey.capabilities[] | stringOpsional / item |
|
apiKey.workspace_ids | array | nullOpsional / item | — |
apiKey.workspace_idsanyOf 1 | arrayOpsional / item | — |
apiKey.workspace_ids[]anyOf 1 | stringOpsional / item |
|
apiKey.workspace_idsanyOf 2 | nullOpsional / item | — |
apiKey.created_by_delegated_grant_id | string | nullOpsional / item | — |
apiKey.created_by_delegated_grant_idanyOf 1 | stringOpsional / item |
|
apiKey.created_by_delegated_grant_idanyOf 2 | nullOpsional / item | — |
secret | stringWajib dalam induk |
|
JSON Schema lengkap
{
"type": "object",
"properties": {
"apiKey": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"last_4": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"last_used_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"revoked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"active",
"expired",
"revoked"
]
},
"replaces": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"last_4": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"expired",
"revoked"
]
}
},
"required": [
"id",
"name",
"last_4",
"status"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"replaced_by": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"last_4": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"expired",
"revoked"
]
}
},
"required": [
"id",
"name",
"last_4",
"status"
],
"additionalProperties": false
}
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"agent:operate",
"agent:publish",
"agent:engage"
]
}
},
"workspace_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
{
"type": "null"
}
]
},
"created_by_delegated_grant_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"last_4",
"scopes",
"created_at",
"expires_at",
"last_used_at",
"revoked_at",
"status",
"replaces",
"replaced_by"
],
"additionalProperties": false
},
"secret": {
"type": "string",
"minLength": 1
}
},
"required": [
"apiKey",
"secret"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Contoh panggilan alat
Contoh ini menggunakan nilai fiktif yang diperiksa terhadap skema. Ganti ID dengan yang diizinkan bagi Anda, media dengan aset siap, dan tanggal dengan waktu publikasi yang dikonfirmasi. Periksa kelayakan akun sebelum mengirim penulisan. Halaman ini tidak mengirim permintaan API.
{
"name": "sosoapi_renew_api_key",
"arguments": {
"id": "11111111-1111-4111-8111-111111111111"
}
}structuredContent
{
"apiKey": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"last_4": "example",
"scopes": [],
"created_at": "2099-01-15T09:00:00Z",
"expires_at": null,
"last_used_at": null,
"revoked_at": null,
"status": "active",
"replaces": null,
"replaced_by": []
},
"secret": "example"
}