Die Suche lädt erst bei Nutzung. Durchsuche unten alle Kategorien.

MCP-Tool

API-Schlüssel erstellen

sosoapi_create_api_key

Erstelle einen persönlichen Zugriffsschlüssel mit gewählten Funktionen (agent:operate, agent:publish, agent:engage), optionaler workspace_ids-Grenze und bis 365 Tagen Laufzeit; das Geheimnis wird einmal zurückgegeben und ist danach nicht lesbar. Ein Agent kann nur eigene Befugnisse für höchstens 30 Tage weitergeben; endet die Autorisierung, stoppt auch der Schlüssel. Erfordert „API-Schlüssel verwalten“; ein PAT kann dies nicht nutzen.

Als Markdown lesen

Profile und Transporte

Profile: full · Transporte: stdio, http

Wähle core oder full für die sichtbaren Tools deines Clients; dies ändert keine Berechtigungen. Lokaler Dateiupload benötigt stdio und ist über HTTP nicht verfügbar. Setze SOSOAPI_OUTPUT_SCHEMAS=1 für Ausgabeschemas in der Erkennung. Tools liefern unabhängig davon strukturierte Ergebnisse.

Berechtigungen und Nebeneffekte

Annotationen helfen Clients, Tools zu beschreiben. Jeder Aufruf prüft weiterhin Authentifizierung, Rolle, Ressourcenzugriff und erteilte Funktionen des Nutzers.

{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}

Eingabefelder

Erforderlich bedeutet innerhalb des übergeordneten Objekts und gewählten Zweigs erforderlich. Ein erforderliches Kind macht kein optionales Elternobjekt erforderlich. Regeln und Feldnamen unten stammen aus dem Vertrag.

Eingabefelder
Feld / VarianteTyp / erforderlichEinschränkungen
$objectIm Elternobjekt erforderlich
  • additionalProperties: false
namestringIm Elternobjekt erforderlich
  • minLength: 1
  • maxLength: 80
lifetime_daysintegerOptional / Element

Tage bis zum Schlüsselablauf (1-365, Standard 365). Ein von einem delegierten Agenten erstellter Schlüssel gilt nie länger als 30 Tage.

  • minimum: 1
  • maximum: 365
capabilitiesarrayOptional / Element

Erlaubte Schlüsselaktionen. Standard für angemeldete Nutzer: operate, publish und engage. Ein delegierter Agent kann nur eigene Berechtigungen weitergeben (niemals Schlüsselverwaltung).

  • minItems: 1
  • maxItems: 3
capabilities[]stringOptional / Element
  • enum: ["agent:operate","agent:publish","agent:engage"]
workspace_idsarrayOptional / Element

Begrenze den Schlüssel auf diese Workspaces. Weglassen für alle zugänglichen Workspaces. Ein begrenzter Schlüssel muss bei Routen mit sonst aktivem Workspace seinen Workspace (workspace_id) nennen und darf keine organisationsweiten Lesezugriffe ausführen.

  • minItems: 1
  • maxItems: 100
workspace_ids[]stringOptional / Element
  • format: "uuid"
scopesarrayOptional / Element

Veralteter Alias von capabilities. Wird exakt beachtet; eine leere Liste wird ignoriert.

  • maxItems: 3
scopes[]stringOptional / Element
  • enum: ["agent:operate","agent:publish","agent:engage"]
idempotency_keystringOptional / Element

Optional. Nutze denselben Schlüssel für sichere Wiederholungen. Das Geheimnis wird einmal angezeigt: Findet eine Wiederholung einen bereits erstellten Schlüssel, antwortet sie mit 409 IDEMPOTENT_REPLAY (details.existing_key benennt ihn), statt es erneut zu zeigen. Widerrufe den Schlüssel und erstelle mit neuem idempotency_key einen neuen.

  • minLength: 8
  • maxLength: 160
  • pattern: "^[!-~]+$"
Vollständiges JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "lifetime_days": {
      "description": "Days until the key expires (1-365, default 365). A key created by a delegated agent never lives longer than 30 days.",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "capabilities": {
      "description": "What the key may do. Defaults to operate, publish and engage for a signed-in user. A delegated agent can only grant what its own authorization holds (never key management).",
      "minItems": 1,
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "agent:operate",
          "agent:publish",
          "agent:engage"
        ]
      }
    },
    "workspace_ids": {
      "description": "Limit the key to these Workspaces. Omit it for every Workspace the user can access. A limited key must name its Workspace (workspace_id) on routes that would otherwise use the active Workspace, and cannot call organization-wide reads.",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "scopes": {
      "description": "Deprecated alias of capabilities. It is honoured exactly; an empty list is ignored.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "agent:operate",
          "agent:publish",
          "agent:engage"
        ]
      }
    },
    "idempotency_key": {
      "description": "Optional. Reuse the same key to retry safely. The secret is shown once: a retry that finds the key already created answers 409 IDEMPOTENT_REPLAY (details.existing_key names it) instead of showing it again. Revoke that key and create a new one with a new idempotency_key.",
      "type": "string",
      "minLength": 8,
      "maxLength": 160,
      "pattern": "^[!-~]+$"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

Strukturierte Ausgabe

Dieses Schema beschreibt structuredContent in einem erfolgreichen Tool-Ergebnis. Die MCP-Antwort enthält auch content und kann bei fehlgeschlagenem Aufruf isError setzen. Lies bei Veröffentlichungen das endgültige Beitragsergebnis, statt eine angenommene Anfrage oder Textantwort als Bestätigung zu werten. Die verknüpfte API-Operation erklärt Berechtigungen und Wiederholungsregeln.

Erforderlich bedeutet innerhalb des übergeordneten Objekts und gewählten Zweigs erforderlich. Ein erforderliches Kind macht kein optionales Elternobjekt erforderlich. Regeln und Feldnamen unten stammen aus dem Vertrag.

Strukturierte Ausgabe
Feld / VarianteTyp / erforderlichEinschränkungen
$objectIm Elternobjekt erforderlich
  • additionalProperties: false
apiKeyobjectIm Elternobjekt erforderlich
  • additionalProperties: false
apiKey.idstringIm Elternobjekt erforderlich
  • format: "uuid"
apiKey.namestringIm Elternobjekt erforderlich—
apiKey.last_4stringIm Elternobjekt erforderlich—
apiKey.scopesarrayIm Elternobjekt erforderlich—
apiKey.scopes[]stringOptional / Element—
apiKey.created_atstringIm Elternobjekt erforderlich
  • 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)))$"
apiKey.expires_atstring | nullIm Elternobjekt erforderlich—
apiKey.expires_atanyOf 1stringIm Elternobjekt erforderlich
  • 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)))$"
apiKey.expires_atanyOf 2nullIm Elternobjekt erforderlich—
apiKey.last_used_atstring | nullIm Elternobjekt erforderlich—
apiKey.last_used_atanyOf 1stringIm Elternobjekt erforderlich
  • 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)))$"
apiKey.last_used_atanyOf 2nullIm Elternobjekt erforderlich—
apiKey.revoked_atstring | nullIm Elternobjekt erforderlich—
apiKey.revoked_atanyOf 1stringIm Elternobjekt erforderlich
  • 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)))$"
apiKey.revoked_atanyOf 2nullIm Elternobjekt erforderlich—
apiKey.statusstringIm Elternobjekt erforderlich
  • enum: ["active","expired","revoked"]
apiKey.replacesobject | nullIm Elternobjekt erforderlich—
apiKey.replacesanyOf 1objectIm Elternobjekt erforderlich
  • additionalProperties: false
apiKey.replaces.idanyOf 1stringIm Elternobjekt erforderlich
  • format: "uuid"
apiKey.replaces.nameanyOf 1stringIm Elternobjekt erforderlich—
apiKey.replaces.last_4anyOf 1stringIm Elternobjekt erforderlich—
apiKey.replaces.statusanyOf 1stringIm Elternobjekt erforderlich
  • enum: ["active","expired","revoked"]
apiKey.replacesanyOf 2nullIm Elternobjekt erforderlich—
apiKey.replaced_byarrayIm Elternobjekt erforderlich—
apiKey.replaced_by[]objectOptional / Element
  • additionalProperties: false
apiKey.replaced_by[].idstringIm Elternobjekt erforderlich
  • format: "uuid"
apiKey.replaced_by[].namestringIm Elternobjekt erforderlich—
apiKey.replaced_by[].last_4stringIm Elternobjekt erforderlich—
apiKey.replaced_by[].statusstringIm Elternobjekt erforderlich
  • enum: ["active","expired","revoked"]
apiKey.capabilitiesarrayOptional / Element—
apiKey.capabilities[]stringOptional / Element
  • enum: ["agent:operate","agent:publish","agent:engage"]
apiKey.workspace_idsarray | nullOptional / Element—
apiKey.workspace_idsanyOf 1arrayOptional / Element—
apiKey.workspace_ids[]anyOf 1stringOptional / Element
  • format: "uuid"
apiKey.workspace_idsanyOf 2nullOptional / Element—
apiKey.created_by_delegated_grant_idstring | nullOptional / Element—
apiKey.created_by_delegated_grant_idanyOf 1stringOptional / Element
  • format: "uuid"
apiKey.created_by_delegated_grant_idanyOf 2nullOptional / Element—
secretstringIm Elternobjekt erforderlich
  • minLength: 1
Vollständiges 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
}

Beispiel eines Tool-Aufrufs

Diese Beispiele nutzen anhand der Schemas geprüfte fiktive Werte. Ersetze IDs durch autorisierte IDs, Medien durch bereite Assets und Daten durch bestätigte Veröffentlichungszeiten. Prüfe Kontoeignung vor Schreibvorgängen. Diese Seite sendet keine API-Anfragen.

{
  "name": "sosoapi_create_api_key",
  "arguments": {
    "name": "example"
  }
}

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"
}
MCP installieren oder verbinden