Alat MCP
Perpanjang masa berlaku kunci API
sosoapi_extend_api_keyTetapkan masa berlaku lebih lama (expires_at) untuk kunci API berdasarkan id: paling lama 365 hari dari sekarang, atau 30 untuk kunci buatan agen. Agen hanya dapat memperpanjang kunci yang dibuat dengan izinnya sendiri. 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": true,
"openWorldHint": false
}- /identity-api/api-keys/extend: 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 |
|
expires_at | stringWajib dalam induk | Waktu kedaluwarsa absolut baru yang diminta. Masa berlaku terpanjang adalah 365 hari dari sekarang, atau 30 hari untuk kunci yang dibuat agen terdelegasi. Pengguna yang masuk dan memperpanjang kuncinya sendiri mendapat masa berlaku terpanjang tersebut saat meminta waktu lebih lama (hingga 3,650 hari dari sekarang); dalam semua kasus lain, waktu lebih lama ditolak dengan API_KEY_LIFETIME_EXCEEDS_CAP. Respons memuat masa berlaku yang benar-benar diterapkan.
|
JSON Schema lengkap
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"expires_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)))$",
"description": "Requested new absolute expiry. The longest lifetime is 365 days from now, or 30 days for a key created by a delegated agent. A signed-in person extending their own key is granted that longest lifetime when they ask for a later time (up to 3,650 days from now); in every other case a later time is refused with API_KEY_LIFETIME_EXCEEDS_CAP. The response carries the expiry actually applied."
}
},
"required": [
"id",
"expires_at"
],
"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 | — |
idempotent | booleanWajib 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
},
"idempotent": {
"type": "boolean"
}
},
"required": [
"apiKey",
"idempotent"
],
"$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_extend_api_key",
"arguments": {
"id": "11111111-1111-4111-8111-111111111111",
"expires_at": "2099-01-15T09:00:00Z"
}
}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": []
},
"idempotent": false
}