La recherche se charge uniquement lorsque vous l’utilisez. Parcourez toutes les catégories ci-dessous.

Outil MCP

Téléverser une image ou une vidéo locale

sosoapi_upload_asset

Téléverser un fichier image ou vidéo local dans la bibliothèque de ressources d’un espace de travail et l’enregistrer comme ressource. Seuls de véritables fichiers PNG/JPEG/GIF/WebP/MP4/MOV/WebM/MKV/MPEG de 500 MiB maximum, issus du répertoire de travail, du dossier temporaire, de Pictures/Movies/Videos ou de SOSOAPI_UPLOAD_ROOTS sont acceptés ; les fichiers et dossiers cachés commençant par un point sont refusés. Renvoie l’identifiant de ressource et l’URL pour les médias de Scheduled Post.

Lire en Markdown

Profils et transports

Profils : core, full · Transports : stdio

Choisissez core ou full pour définir les outils visibles du client ; cela ne change pas ses autorisations. Le téléversement local nécessite stdio et n’est pas disponible sur HTTP. Définissez SOSOAPI_OUTPUT_SCHEMAS=1 pour inclure les schémas de sortie à la découverte. Les outils renvoient des résultats structurés avec ou sans ce réglage.

Autorisations et effets de bord

Les annotations aident les clients à décrire un outil. Chaque appel vérifie toujours l’authentification, le rôle, l’accès aux ressources et les capacités accordées de l’utilisateur.

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

Champs d’entrée

Requis signifie requis dans l’objet parent et la branche sélectionnée. Un enfant requis ne rend pas obligatoire un parent facultatif. Les règles et noms de champs ci-dessous proviennent du contrat.

Champs d’entrée
Champ / brancheType / requisContraintes
$objectRequis dans le parent—
workspace_idstringRequis dans le parent
  • format: "uuid"
file_pathstringRequis dans le parent
  • minLength: 1
idempotency_keystringRequis dans le parent
  • minLength: 8
  • maxLength: 160
content_typestringFacultatif / élément
  • minLength: 1
titlestringFacultatif / élément
  • maxLength: 200
descriptionstringFacultatif / élément
  • maxLength: 2000
tagsarrayFacultatif / élément
  • maxItems: 50
tags[]stringFacultatif / élément
  • maxLength: 64
metadataobjectFacultatif / élément
  • additionalProperties: {}
metadata.*any JSON valueFacultatif / élément—
JSON Schema complet
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "file_path": {
      "type": "string",
      "minLength": 1
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 160
    },
    "content_type": {
      "type": "string",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "tags": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 64
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "workspace_id",
    "file_path",
    "idempotency_key"
  ]
}

Sortie structurée

Ce schéma décrit structuredContent dans un résultat d’outil réussi. La réponse MCP contient aussi content et peut définir isError en cas d’échec. Pour publier, lisez le résultat final de la publication plutôt que de considérer une requête acceptée ou une réponse texte comme une confirmation. L’opération API liée explique les autorisations et règles de nouvelle tentative.

Requis signifie requis dans l’objet parent et la branche sélectionnée. Un enfant requis ne rend pas obligatoire un parent facultatif. Les règles et noms de champs ci-dessous proviennent du contrat.

Sortie structurée
Champ / brancheType / requisContraintes
$objectRequis dans le parent
  • additionalProperties: false
assetobjectRequis dans le parent
  • additionalProperties: false
asset.idinteger | stringRequis dans le parent—
asset.idanyOf 1integerRequis dans le parent
  • minimum: -9007199254740991
  • maximum: 9007199254740991
asset.idanyOf 2stringRequis dans le parent—
asset.workspace_idstringRequis dans le parent
  • format: "uuid"
asset.user_idstringRequis dans le parent
  • format: "uuid"
asset.asset_typestringRequis dans le parent
  • enum: ["text","image","video","audio"]
asset.asset_urlstring | nullRequis dans le parent—
asset.asset_urlanyOf 1stringRequis dans le parent—
asset.asset_urlanyOf 2nullRequis dans le parent—
asset.preview_urlstring | nullFacultatif / élément

URL temporaire de lecture autorisée pour l’espace de travail. Actualisez-la via la lecture/liste des ressources après preview_expires_at ; conservez asset_url comme identité persistante du média.

—
asset.preview_urlanyOf 1stringFacultatif / élément
  • format: "uri"
asset.preview_urlanyOf 2nullFacultatif / élément—
asset.preview_expires_atstring | nullFacultatif / élément—
asset.preview_expires_atanyOf 1stringFacultatif / élément
  • 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))$"
asset.preview_expires_atanyOf 2nullFacultatif / élément—
asset.titlestring | nullRequis dans le parent—
asset.titleanyOf 1stringRequis dans le parent—
asset.titleanyOf 2nullRequis dans le parent—
asset.descriptionstring | nullRequis dans le parent—
asset.descriptionanyOf 1stringRequis dans le parent—
asset.descriptionanyOf 2nullRequis dans le parent—
asset.tagsarray | nullRequis dans le parent—
asset.tagsanyOf 1arrayRequis dans le parent—
asset.tags[]anyOf 1stringFacultatif / élément—
asset.tagsanyOf 2nullRequis dans le parent—
asset.metadataobject | nullRequis dans le parent—
asset.metadataanyOf 1objectRequis dans le parent
  • additionalProperties: {}
asset.metadata.*anyOf 1any JSON valueFacultatif / élément—
asset.metadataanyOf 2nullRequis dans le parent—
asset.sourcestring | nullFacultatif / élément—
asset.sourceanyOf 1stringFacultatif / élément—
asset.sourceanyOf 2nullFacultatif / élément—
asset.source_metadataobject | nullFacultatif / élément—
asset.source_metadataanyOf 1objectFacultatif / élément
  • additionalProperties: {}
asset.source_metadata.*anyOf 1any JSON valueFacultatif / élément—
asset.source_metadataanyOf 2nullFacultatif / élément—
asset.created_atstringRequis dans le parent—
asset.versionintegerFacultatif / élément
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dedupedbooleanRequis dans le parent—
JSON Schema complet
{
  "type": "object",
  "properties": {
    "asset": {
      "type": "object",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "string"
            }
          ]
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "user_id": {
          "type": "string",
          "format": "uuid"
        },
        "asset_type": {
          "type": "string",
          "enum": [
            "text",
            "image",
            "video",
            "audio"
          ]
        },
        "asset_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "preview_url": {
          "description": "Workspace-authorized temporary read URL. Refresh through Asset read/list after preview_expires_at; keep asset_url as persisted media identity.",
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "preview_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))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "metadata": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "source_metadata": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "id",
        "workspace_id",
        "user_id",
        "asset_type",
        "asset_url",
        "title",
        "description",
        "tags",
        "metadata",
        "created_at"
      ],
      "additionalProperties": false
    },
    "deduped": {
      "type": "boolean"
    }
  },
  "required": [
    "asset",
    "deduped"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Exemple d’appel d’outil

Ces exemples utilisent des valeurs fictives vérifiées contre les schémas. Remplacez les identifiants par ceux que vous êtes autorisé à utiliser, les médias par des ressources prêtes et les dates par l’heure confirmée. Vérifiez l’éligibilité du compte avant toute écriture. Cette page n’envoie aucune requête API.

{
  "name": "sosoapi_upload_asset",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "file_path": "./example.png",
    "idempotency_key": "example-upload-001"
  }
}

structuredContent

{
  "asset": {
    "id": 0,
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "user_id": "11111111-1111-4111-8111-111111111111",
    "asset_type": "text",
    "asset_url": null,
    "title": null,
    "description": null,
    "tags": null,
    "metadata": null,
    "created_at": "example"
  },
  "deduped": false
}
Installer ou connecter MCP