Herramienta MCP
Listar claves API
sosoapi_list_api_keysLista las claves API del usuario (nombre, últimos 4 caracteres, estado, vencimiento, historial); establece include_authority para obtener también las capacidades y el límite de espacios de trabajo de cada clave. Nunca se devuelven secretos. Requiere el permiso para administrar claves API; un PAT no puede usarlo.
Leer en MarkdownPerfiles y transportes
Perfiles: full · Transportes: stdio, http
Elige core o full para controlar qué herramientas ve tu cliente; no cambia sus permisos. La carga de archivos locales requiere stdio y no está disponible por HTTP. Establece SOSOAPI_OUTPUT_SCHEMAS=1 para incluir esquemas de salida en la detección. Las herramientas devuelven resultados estructurados con o sin esa opción.
Permisos y efectos secundarios
Las anotaciones ayudan a los clientes a describir una herramienta. Cada llamada sigue comprobando la autenticación, el rol, el acceso al recurso y los permisos de capacidades del usuario.
{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}- /identity-api/api-keys/list: agent:manage_api_keys · synchronous_http_response
Campos de entrada
Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.
| Campo / rama | Tipo / obligatorio | Restricciones |
|---|---|---|
$ | objectObligatorio en el objeto principal |
|
include_revoked | booleanOpcional / elemento | — |
include_authority | booleanOpcional / elemento | Devuelve también las capacidades de cada clave, el límite de espacios de trabajo (null = todos) y la concesión delegada que la creó. — |
JSON Schema completo
{
"type": "object",
"properties": {
"include_revoked": {
"type": "boolean"
},
"include_authority": {
"description": "Also return each key's capabilities, Workspace limit (null = every Workspace) and the delegated grant that created it.",
"type": "boolean"
}
},
"additionalProperties": false
}Salida estructurada
Este esquema describe structuredContent en un resultado exitoso de herramienta. La respuesta MCP también incluye content y puede establecer isError si falla una llamada. Para publicación, consulta el resultado final de la publicación en vez de considerar una solicitud aceptada o una respuesta de texto como confirmación. La operación API enlazada explica los permisos y las reglas de reintento.
Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.
| Campo / rama | Tipo / obligatorio | Restricciones |
|---|---|---|
$ | objectObligatorio en el objeto principal |
|
apiKeys | arrayObligatorio en el objeto principal | — |
apiKeys[] | objectOpcional / elemento |
|
apiKeys[].id | stringObligatorio en el objeto principal |
|
apiKeys[].name | stringObligatorio en el objeto principal | — |
apiKeys[].last_4 | stringObligatorio en el objeto principal | — |
apiKeys[].scopes | arrayObligatorio en el objeto principal | — |
apiKeys[].scopes[] | stringOpcional / elemento | — |
apiKeys[].created_at | stringObligatorio en el objeto principal |
|
apiKeys[].expires_at | string | nullObligatorio en el objeto principal | — |
apiKeys[].expires_atanyOf 1 | stringObligatorio en el objeto principal |
|
apiKeys[].expires_atanyOf 2 | nullObligatorio en el objeto principal | — |
apiKeys[].last_used_at | string | nullObligatorio en el objeto principal | — |
apiKeys[].last_used_atanyOf 1 | stringObligatorio en el objeto principal |
|
apiKeys[].last_used_atanyOf 2 | nullObligatorio en el objeto principal | — |
apiKeys[].revoked_at | string | nullObligatorio en el objeto principal | — |
apiKeys[].revoked_atanyOf 1 | stringObligatorio en el objeto principal |
|
apiKeys[].revoked_atanyOf 2 | nullObligatorio en el objeto principal | — |
apiKeys[].status | stringObligatorio en el objeto principal |
|
apiKeys[].replaces | object | nullObligatorio en el objeto principal | — |
apiKeys[].replacesanyOf 1 | objectObligatorio en el objeto principal |
|
apiKeys[].replaces.idanyOf 1 | stringObligatorio en el objeto principal |
|
apiKeys[].replaces.nameanyOf 1 | stringObligatorio en el objeto principal | — |
apiKeys[].replaces.last_4anyOf 1 | stringObligatorio en el objeto principal | — |
apiKeys[].replaces.statusanyOf 1 | stringObligatorio en el objeto principal |
|
apiKeys[].replacesanyOf 2 | nullObligatorio en el objeto principal | — |
apiKeys[].replaced_by | arrayObligatorio en el objeto principal | — |
apiKeys[].replaced_by[] | objectOpcional / elemento |
|
apiKeys[].replaced_by[].id | stringObligatorio en el objeto principal |
|
apiKeys[].replaced_by[].name | stringObligatorio en el objeto principal | — |
apiKeys[].replaced_by[].last_4 | stringObligatorio en el objeto principal | — |
apiKeys[].replaced_by[].status | stringObligatorio en el objeto principal |
|
apiKeys[].capabilities | arrayOpcional / elemento | — |
apiKeys[].capabilities[] | stringOpcional / elemento |
|
apiKeys[].workspace_ids | array | nullOpcional / elemento | — |
apiKeys[].workspace_idsanyOf 1 | arrayOpcional / elemento | — |
apiKeys[].workspace_ids[]anyOf 1 | stringOpcional / elemento |
|
apiKeys[].workspace_idsanyOf 2 | nullOpcional / elemento | — |
apiKeys[].created_by_delegated_grant_id | string | nullOpcional / elemento | — |
apiKeys[].created_by_delegated_grant_idanyOf 1 | stringOpcional / elemento |
|
apiKeys[].created_by_delegated_grant_idanyOf 2 | nullOpcional / elemento | — |
JSON Schema completo
{
"type": "object",
"properties": {
"apiKeys": {
"type": "array",
"items": {
"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
}
}
},
"required": [
"apiKeys"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Ejemplo de llamada a herramienta
Estos ejemplos usan valores ficticios comprobados con los esquemas. Sustituye los IDs por otros autorizados, los archivos multimedia por recursos listos y las fechas por tu hora de publicación confirmada. Comprueba la elegibilidad de la cuenta antes de enviar una escritura. Esta página no envía solicitudes API.
{
"name": "sosoapi_list_api_keys",
"arguments": {}
}structuredContent
{
"apiKeys": []
}