MCP-tool
API-sleutel vernieuwen
sosoapi_renew_api_keyMaak een opvolger voor een API-sleutel (id) met een nieuw geheim dat één keer wordt teruggegeven en dezelfde bevoegdheden en werkruimtebeperking, eventueel met een nieuwe naam of geldigheidsduur (maximaal 365 dagen, 30 voor een door een agent gemaakte sleutel). De oorspronkelijke sleutel wordt niet ingetrokken. Vereist de machtiging Manage API keys.
Lezen als MarkdownProfielen en transporten
Profielen: full · Transporten: stdio, http
Kies core of full om te bepalen welke tools je client ziet; dit verandert geen machtigingen. Lokale bestandsupload vereist stdio en is niet beschikbaar via HTTP. Stel SOSOAPI_OUTPUT_SCHEMAS=1 in om uitvoerschema's bij detectie op te nemen. Tools geven met en zonder die instelling gestructureerde resultaten terug.
Machtigingen en neveneffecten
Annotaties helpen clients een tool te beschrijven. Elke aanroep controleert nog steeds gebruikersauthenticatie, rol, resourcetoegang en verleende bevoegdheden.
{
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false
}- /identity-api/api-keys/renew: agent:manage_api_keys · synchronous_http_response
Invoervelden
Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.
| Veld / variant | Type / verplicht | Beperkingen |
|---|---|---|
$ | objectVerplicht in bovenliggend object |
|
id | stringVerplicht in bovenliggend object |
|
name | stringOptioneel / item |
|
lifetime_days | integerOptioneel / item | Dagen tot de opvolger vervalt (1-365, standaard 365; maximaal 30 voor een sleutel van een gedelegeerde agent). De opvolger behoudt de bevoegdheden en werkruimtebeperking van de voorganger.
|
idempotency_key | stringOptioneel / item | Optioneel. Hergebruik dezelfde sleutel om veilig opnieuw te proberen. Het nieuwe geheim wordt één keer getoond: als de opvolger bij een herhaling al bestaat, volgt 409 IDEMPOTENT_REPLAY (details.existing_key noemt de sleutel). Trek deze in en vernieuw opnieuw met een nieuwe idempotency_key.
|
Volledig JSON Schema
{
"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
}Gestructureerde uitvoer
Dit schema beschrijft structuredContent in een geslaagd toolresultaat. Het MCP-antwoord bevat ook content en kan isError instellen wanneer een aanroep mislukt. Lees bij publiceren het definitieve berichtresultaat; beschouw een geaccepteerd verzoek of tekstantwoord niet als bevestiging. De gekoppelde API-bewerking beschrijft machtigingen en regels voor opnieuw proberen.
Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.
| Veld / variant | Type / verplicht | Beperkingen |
|---|---|---|
$ | objectVerplicht in bovenliggend object |
|
apiKey | objectVerplicht in bovenliggend object |
|
apiKey.id | stringVerplicht in bovenliggend object |
|
apiKey.name | stringVerplicht in bovenliggend object | — |
apiKey.last_4 | stringVerplicht in bovenliggend object | — |
apiKey.scopes | arrayVerplicht in bovenliggend object | — |
apiKey.scopes[] | stringOptioneel / item | — |
apiKey.created_at | stringVerplicht in bovenliggend object |
|
apiKey.expires_at | string | nullVerplicht in bovenliggend object | — |
apiKey.expires_atanyOf 1 | stringVerplicht in bovenliggend object |
|
apiKey.expires_atanyOf 2 | nullVerplicht in bovenliggend object | — |
apiKey.last_used_at | string | nullVerplicht in bovenliggend object | — |
apiKey.last_used_atanyOf 1 | stringVerplicht in bovenliggend object |
|
apiKey.last_used_atanyOf 2 | nullVerplicht in bovenliggend object | — |
apiKey.revoked_at | string | nullVerplicht in bovenliggend object | — |
apiKey.revoked_atanyOf 1 | stringVerplicht in bovenliggend object |
|
apiKey.revoked_atanyOf 2 | nullVerplicht in bovenliggend object | — |
apiKey.status | stringVerplicht in bovenliggend object |
|
apiKey.replaces | object | nullVerplicht in bovenliggend object | — |
apiKey.replacesanyOf 1 | objectVerplicht in bovenliggend object |
|
apiKey.replaces.idanyOf 1 | stringVerplicht in bovenliggend object |
|
apiKey.replaces.nameanyOf 1 | stringVerplicht in bovenliggend object | — |
apiKey.replaces.last_4anyOf 1 | stringVerplicht in bovenliggend object | — |
apiKey.replaces.statusanyOf 1 | stringVerplicht in bovenliggend object |
|
apiKey.replacesanyOf 2 | nullVerplicht in bovenliggend object | — |
apiKey.replaced_by | arrayVerplicht in bovenliggend object | — |
apiKey.replaced_by[] | objectOptioneel / item |
|
apiKey.replaced_by[].id | stringVerplicht in bovenliggend object |
|
apiKey.replaced_by[].name | stringVerplicht in bovenliggend object | — |
apiKey.replaced_by[].last_4 | stringVerplicht in bovenliggend object | — |
apiKey.replaced_by[].status | stringVerplicht in bovenliggend object |
|
apiKey.capabilities | arrayOptioneel / item | — |
apiKey.capabilities[] | stringOptioneel / item |
|
apiKey.workspace_ids | array | nullOptioneel / item | — |
apiKey.workspace_idsanyOf 1 | arrayOptioneel / item | — |
apiKey.workspace_ids[]anyOf 1 | stringOptioneel / item |
|
apiKey.workspace_idsanyOf 2 | nullOptioneel / item | — |
apiKey.created_by_delegated_grant_id | string | nullOptioneel / item | — |
apiKey.created_by_delegated_grant_idanyOf 1 | stringOptioneel / item |
|
apiKey.created_by_delegated_grant_idanyOf 2 | nullOptioneel / item | — |
secret | stringVerplicht in bovenliggend object |
|
Volledig JSON Schema
{
"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
}Voorbeeld van een toolaanroep
Deze voorbeelden gebruiken fictieve waarden die tegen de schema's zijn gecontroleerd. Vervang IDs door toegestane IDs, media door gereedstaande bestanden en datums door je bevestigde publicatietijd. Controleer accountgeschiktheid vóór een schrijfhandeling. Deze pagina verstuurt geen API-verzoeken.
{
"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"
}