MCP-verktyg
Förläng API-nyckel
sosoapi_extend_api_keyAnge en senare giltighetstid (expires_at) för en API-nyckel identifierad med id: högst 365 dagar från nu, eller 30 för en nyckel skapad av en agent. En agent får bara förlänga nycklar som dess egen behörighet har skapat. Kräver behörigheten Hantera API-nycklar.
Läs som MarkdownProfiler och transporter
Profiler: full · Transporter: stdio, http
Välj core eller full för att styra vilka verktyg klienten ser; detta ändrar inte dess behörigheter. Lokal filuppladdning kräver stdio och är inte tillgänglig via HTTP. Ange SOSOAPI_OUTPUT_SCHEMAS=1 för att inkludera utdatascheman vid identifiering. Verktygen returnerar strukturerade resultat med eller utan inställningen.
Behörigheter och sidoeffekter
Annoteringar hjälper klienter att beskriva ett verktyg. Varje anrop kontrollerar fortfarande användarens autentisering, roll, resursåtkomst och tilldelade funktionsbehörigheter.
{
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}- /identity-api/api-keys/extend: agent:manage_api_keys · synchronous_http_response
Indatafält
Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.
| Fält / gren | Typ / obligatoriskt | Begränsningar |
|---|---|---|
$ | objectObligatoriskt i överordnat objekt |
|
id | stringObligatoriskt i överordnat objekt |
|
expires_at | stringObligatoriskt i överordnat objekt | Begärd ny absolut giltighetstid. Den längsta livslängden är 365 dagar från nu, eller 30 dagar för en nyckel skapad av en delegerad agent. En inloggad person som förlänger sin egen nyckel får den längsta livslängden när en senare tid begärs (upp till 3,650 dagar från nu); i alla andra fall avvisas en senare tid med API_KEY_LIFETIME_EXCEEDS_CAP. Svaret innehåller den giltighetstid som faktiskt tillämpades.
|
Fullständigt JSON Schema
{
"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
}Strukturerat resultat
Detta schema beskriver structuredContent i ett lyckat verktygsresultat. MCP-svaret innehåller även content och kan ange isError när ett anrop misslyckas. För publicering ska du läsa inläggets slutresultat i stället för att tolka en accepterad begäran eller ett textsvar som bekräftelse. Den länkade API-åtgärden förklarar behörigheter och regler för nya försök.
Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.
| Fält / gren | Typ / obligatoriskt | Begränsningar |
|---|---|---|
$ | objectObligatoriskt i överordnat objekt |
|
apiKey | objectObligatoriskt i överordnat objekt |
|
apiKey.id | stringObligatoriskt i överordnat objekt |
|
apiKey.name | stringObligatoriskt i överordnat objekt | — |
apiKey.last_4 | stringObligatoriskt i överordnat objekt | — |
apiKey.scopes | arrayObligatoriskt i överordnat objekt | — |
apiKey.scopes[] | stringValfritt / objekt | — |
apiKey.created_at | stringObligatoriskt i överordnat objekt |
|
apiKey.expires_at | string | nullObligatoriskt i överordnat objekt | — |
apiKey.expires_atanyOf 1 | stringObligatoriskt i överordnat objekt |
|
apiKey.expires_atanyOf 2 | nullObligatoriskt i överordnat objekt | — |
apiKey.last_used_at | string | nullObligatoriskt i överordnat objekt | — |
apiKey.last_used_atanyOf 1 | stringObligatoriskt i överordnat objekt |
|
apiKey.last_used_atanyOf 2 | nullObligatoriskt i överordnat objekt | — |
apiKey.revoked_at | string | nullObligatoriskt i överordnat objekt | — |
apiKey.revoked_atanyOf 1 | stringObligatoriskt i överordnat objekt |
|
apiKey.revoked_atanyOf 2 | nullObligatoriskt i överordnat objekt | — |
apiKey.status | stringObligatoriskt i överordnat objekt |
|
apiKey.replaces | object | nullObligatoriskt i överordnat objekt | — |
apiKey.replacesanyOf 1 | objectObligatoriskt i överordnat objekt |
|
apiKey.replaces.idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
apiKey.replaces.nameanyOf 1 | stringObligatoriskt i överordnat objekt | — |
apiKey.replaces.last_4anyOf 1 | stringObligatoriskt i överordnat objekt | — |
apiKey.replaces.statusanyOf 1 | stringObligatoriskt i överordnat objekt |
|
apiKey.replacesanyOf 2 | nullObligatoriskt i överordnat objekt | — |
apiKey.replaced_by | arrayObligatoriskt i överordnat objekt | — |
apiKey.replaced_by[] | objectValfritt / objekt |
|
apiKey.replaced_by[].id | stringObligatoriskt i överordnat objekt |
|
apiKey.replaced_by[].name | stringObligatoriskt i överordnat objekt | — |
apiKey.replaced_by[].last_4 | stringObligatoriskt i överordnat objekt | — |
apiKey.replaced_by[].status | stringObligatoriskt i överordnat objekt |
|
apiKey.capabilities | arrayValfritt / objekt | — |
apiKey.capabilities[] | stringValfritt / objekt |
|
apiKey.workspace_ids | array | nullValfritt / objekt | — |
apiKey.workspace_idsanyOf 1 | arrayValfritt / objekt | — |
apiKey.workspace_ids[]anyOf 1 | stringValfritt / objekt |
|
apiKey.workspace_idsanyOf 2 | nullValfritt / objekt | — |
apiKey.created_by_delegated_grant_id | string | nullValfritt / objekt | — |
apiKey.created_by_delegated_grant_idanyOf 1 | stringValfritt / objekt |
|
apiKey.created_by_delegated_grant_idanyOf 2 | nullValfritt / objekt | — |
idempotent | booleanObligatoriskt i överordnat objekt | — |
Fullständigt 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
},
"idempotent": {
"type": "boolean"
}
},
"required": [
"apiKey",
"idempotent"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Exempel på verktygsanrop
Exemplen använder fiktiva värden som kontrollerats mot schemana. Ersätt ID:n med sådana du får använda, medier med färdiga mediefiler och datum med din bekräftade publiceringstid. Kontrollera kontots behörighet före en skrivning. Denna sida skickar inga API-anrop.
{
"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
}