MCP-tool
Werkruimteconcept bijwerken
sosoapi_update_content_draftVervang de volledige bewerkbare gedeelde inhoud met id, de laatst gelezen expected_revision, een nieuwe mutation_id en content. Vereist de rol editor of hoger en toegang tot operate. Inhoud van mede-editors is onbetrouwbaar en begrensd: bewaar de volledige oorspronkelijke invoer of gebruik de Web-editor; stuur tekst met [truncated] nooit terug. Een 409-conflict behoudt de opgeslagen versie: bewaar lokale wijzigingen en bekijk de nieuwste revisie in plaats van een andere editor te overschrijven. Opslaan publiceert nooit en kan een bevroren of ingediend concept niet vervangen.
Lezen als MarkdownProfielen en transporten
Profielen: core, 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": true,
"openWorldHint": true
}- /studio-api/content-drafts/update: agent:operate · duurzaam opgeslagen redactionele werkruimte-inhoud; geen neveneffecten voor publicatie
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 |
|
expected_revision | integerVerplicht in bovenliggend object |
|
mutation_id | stringVerplicht in bovenliggend object |
|
content | objectVerplicht in bovenliggend object |
|
content.schemaVersion | numberOptioneel / item |
|
content.accountIds | arrayOptioneel / item |
|
content.accountIds[] | stringOptioneel / item |
|
content.caption | stringOptioneel / item |
|
content.hashtags | stringOptioneel / item |
|
content.assetIds | arrayOptioneel / item |
|
content.assetIds[] | stringOptioneel / item |
|
content.threadsTextOnly | booleanOptioneel / item | — |
content.instagramMode | stringOptioneel / item |
|
content.youtubeTitle | stringOptioneel / item |
|
content.youtubePrivacy | stringOptioneel / item |
|
content.youtubeSynthetic | booleanOptioneel / item | — |
content.youtubeCategoryId | stringOptioneel / item |
|
content.youtubeShort | booleanOptioneel / item | — |
content.linkUrl | stringOptioneel / item |
|
content.scheduledAt | stringOptioneel / item |
|
content.displayTimezone | stringOptioneel / item |
|
content.publishNow | booleanOptioneel / item | — |
content.destinationOverrides | objectOptioneel / item |
|
content.destinationOverrides.* | objectOptioneel / item |
|
content.destinationOverrides.*.caption | stringOptioneel / item |
|
content.destinationOverrides.*.scheduledAt | stringOptioneel / item |
|
content.expiresAt | stringOptioneel / item |
|
Volledig JSON Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"expected_revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"mutation_id": {
"type": "string",
"format": "uuid"
},
"content": {
"type": "object",
"properties": {
"schemaVersion": {
"type": "number",
"enum": [
1
]
},
"accountIds": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"caption": {
"type": "string",
"maxLength": 5000
},
"hashtags": {
"type": "string",
"maxLength": 5000
},
"assetIds": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 16,
"pattern": "^[1-9][0-9]*$"
}
},
"threadsTextOnly": {
"type": "boolean"
},
"instagramMode": {
"type": "string",
"enum": [
"IMAGE",
"REELS",
"CAROUSEL",
"STORY_IMAGE",
"STORY_VIDEO"
]
},
"youtubeTitle": {
"type": "string",
"maxLength": 100
},
"youtubePrivacy": {
"type": "string",
"enum": [
"private",
"unlisted",
"public"
]
},
"youtubeSynthetic": {
"type": "boolean"
},
"youtubeCategoryId": {
"type": "string",
"maxLength": 32
},
"youtubeShort": {
"type": "boolean"
},
"linkUrl": {
"type": "string",
"maxLength": 2048
},
"scheduledAt": {
"type": "string",
"maxLength": 64
},
"displayTimezone": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"publishNow": {
"type": "boolean"
},
"destinationOverrides": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"caption": {
"type": "string",
"maxLength": 5000
},
"scheduledAt": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}
},
"expiresAt": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}
},
"required": [
"id",
"expected_revision",
"mutation_id",
"content"
],
"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 |
|
draft | objectVerplicht in bovenliggend object |
|
draft.id | stringVerplicht in bovenliggend object |
|
draft.workspace_id | stringVerplicht in bovenliggend object |
|
draft.revision | integerVerplicht in bovenliggend object |
|
draft.state | stringVerplicht in bovenliggend object |
|
draft.content | objectVerplicht in bovenliggend object |
|
draft.content.schemaVersion | numberVerplicht in bovenliggend object |
|
draft.content.accountIds | arrayVerplicht in bovenliggend object |
|
draft.content.accountIds[] | stringOptioneel / item |
|
draft.content.caption | stringVerplicht in bovenliggend object |
|
draft.content.hashtags | stringVerplicht in bovenliggend object |
|
draft.content.assetIds | arrayVerplicht in bovenliggend object |
|
draft.content.assetIds[] | stringOptioneel / item |
|
draft.content.threadsTextOnly | booleanVerplicht in bovenliggend object |
|
draft.content.instagramMode | stringVerplicht in bovenliggend object |
|
draft.content.youtubeTitle | stringVerplicht in bovenliggend object |
|
draft.content.youtubePrivacy | stringVerplicht in bovenliggend object |
|
draft.content.youtubeSynthetic | booleanVerplicht in bovenliggend object |
|
draft.content.youtubeCategoryId | stringVerplicht in bovenliggend object |
|
draft.content.youtubeShort | booleanVerplicht in bovenliggend object |
|
draft.content.linkUrl | stringVerplicht in bovenliggend object |
|
draft.content.scheduledAt | stringVerplicht in bovenliggend object |
|
draft.content.displayTimezone | stringVerplicht in bovenliggend object |
|
draft.content.publishNow | booleanVerplicht in bovenliggend object |
|
draft.content.destinationOverrides | objectVerplicht in bovenliggend object |
|
draft.content.destinationOverrides.* | objectOptioneel / item |
|
draft.content.destinationOverrides.*.caption | stringOptioneel / item |
|
draft.content.destinationOverrides.*.scheduledAt | stringOptioneel / item |
|
draft.content.expiresAt | stringVerplicht in bovenliggend object |
|
draft.created_by | string | nullVerplicht in bovenliggend object | — |
draft.created_byanyOf 1 | stringVerplicht in bovenliggend object |
|
draft.created_byanyOf 2 | nullVerplicht in bovenliggend object | — |
draft.updated_by | string | nullVerplicht in bovenliggend object | — |
draft.updated_byanyOf 1 | stringVerplicht in bovenliggend object |
|
draft.updated_byanyOf 2 | nullVerplicht in bovenliggend object | — |
draft.created_at | stringVerplicht in bovenliggend object |
|
draft.updated_at | stringVerplicht in bovenliggend object |
|
draft.submission | object | nullVerplicht in bovenliggend object | — |
draft.submissionanyOf 1 | objectVerplicht in bovenliggend object |
|
draft.submission.idanyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.expected_revisionanyOf 1 | integerVerplicht in bovenliggend object |
|
draft.submission.started_atanyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receiptanyOf 1 | object | nullVerplicht in bovenliggend object | — |
draft.submission.receiptanyOf 1 / anyOf 1 | objectVerplicht in bovenliggend object |
|
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 | string | nullVerplicht in bovenliggend object | — |
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 2 | nullVerplicht in bovenliggend object | — |
draft.submission.receipt.successesanyOf 1 / anyOf 1 | arrayVerplicht in bovenliggend object |
|
draft.submission.receipt.successes[]anyOf 1 / anyOf 1 | objectOptioneel / item |
|
draft.submission.receipt.successes[].social_account_idanyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receipt.successes[].post_idanyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receipt.failuresanyOf 1 / anyOf 1 | arrayVerplicht in bovenliggend object |
|
draft.submission.receipt.failures[]anyOf 1 / anyOf 1 | objectOptioneel / item |
|
draft.submission.receipt.failures[].social_account_idanyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receipt.failures[].codeanyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receipt.failures[].messageanyOf 1 / anyOf 1 | stringVerplicht in bovenliggend object |
|
draft.submission.receiptanyOf 1 / anyOf 2 | nullVerplicht in bovenliggend object | — |
draft.submissionanyOf 2 | nullVerplicht in bovenliggend object | — |
replayed | booleanVerplicht in bovenliggend object | — |
Volledig JSON Schema
{
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"workspace_id": {
"type": "string",
"format": "uuid"
},
"revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"state": {
"type": "string",
"enum": [
"draft",
"submitting",
"submitted"
]
},
"content": {
"type": "object",
"properties": {
"schemaVersion": {
"default": 1,
"type": "number",
"const": 1
},
"accountIds": {
"default": [],
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"caption": {
"default": "",
"type": "string",
"maxLength": 5000
},
"hashtags": {
"default": "",
"type": "string",
"maxLength": 5000
},
"assetIds": {
"default": [],
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 16,
"pattern": "^[1-9][0-9]*$"
}
},
"threadsTextOnly": {
"default": false,
"type": "boolean"
},
"instagramMode": {
"default": "REELS",
"type": "string",
"enum": [
"IMAGE",
"REELS",
"CAROUSEL",
"STORY_IMAGE",
"STORY_VIDEO"
]
},
"youtubeTitle": {
"default": "",
"type": "string",
"maxLength": 100
},
"youtubePrivacy": {
"default": "private",
"type": "string",
"enum": [
"private",
"unlisted",
"public"
]
},
"youtubeSynthetic": {
"default": false,
"type": "boolean"
},
"youtubeCategoryId": {
"default": "",
"type": "string",
"maxLength": 32
},
"youtubeShort": {
"default": false,
"type": "boolean"
},
"linkUrl": {
"default": "",
"type": "string",
"maxLength": 2048
},
"scheduledAt": {
"default": "",
"type": "string",
"maxLength": 64
},
"displayTimezone": {
"default": "UTC",
"type": "string",
"minLength": 1,
"maxLength": 128
},
"publishNow": {
"default": false,
"type": "boolean"
},
"destinationOverrides": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string",
"format": "uuid"
},
"additionalProperties": {
"type": "object",
"properties": {
"caption": {
"type": "string",
"maxLength": 5000
},
"scheduledAt": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}
},
"expiresAt": {
"default": "",
"type": "string",
"maxLength": 64
}
},
"required": [
"schemaVersion",
"accountIds",
"caption",
"hashtags",
"assetIds",
"threadsTextOnly",
"instagramMode",
"youtubeTitle",
"youtubePrivacy",
"youtubeSynthetic",
"youtubeCategoryId",
"youtubeShort",
"linkUrl",
"scheduledAt",
"displayTimezone",
"publishNow",
"destinationOverrides",
"expiresAt"
],
"additionalProperties": false
},
"created_by": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
},
"updated_by": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
},
"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)))$"
},
"updated_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)))$"
},
"submission": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"expected_revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"started_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)))$"
},
"receipt": {
"anyOf": [
{
"type": "object",
"properties": {
"batch_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
},
"successes": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"social_account_id": {
"type": "string",
"format": "uuid"
},
"post_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"social_account_id",
"post_id"
],
"additionalProperties": false
}
},
"failures": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"social_account_id": {
"type": "string",
"format": "uuid"
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"message": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"social_account_id",
"code",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"batch_id",
"successes",
"failures"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"expected_revision",
"started_at",
"receipt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"workspace_id",
"revision",
"state",
"content",
"created_by",
"updated_by",
"created_at",
"updated_at",
"submission"
],
"additionalProperties": false
},
"replayed": {
"type": "boolean"
}
},
"required": [
"draft",
"replayed"
],
"$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_update_content_draft",
"arguments": {
"id": "44444444-4444-4444-8444-444444444444",
"expected_revision": 1,
"mutation_id": "66666666-6666-4666-8666-666666666666",
"content": {
"schemaVersion": 1,
"accountIds": [],
"caption": "Revised editorial content, still not scheduled.",
"hashtags": "",
"assetIds": [],
"threadsTextOnly": false,
"instagramMode": "REELS",
"youtubeTitle": "",
"youtubePrivacy": "private",
"youtubeSynthetic": false,
"youtubeCategoryId": "",
"youtubeShort": false,
"linkUrl": "",
"scheduledAt": "",
"displayTimezone": "UTC",
"publishNow": false,
"destinationOverrides": {},
"expiresAt": ""
}
}
}structuredContent
{
"draft": {
"id": "44444444-4444-4444-8444-444444444444",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"revision": 2,
"state": "draft",
"content": {
"schemaVersion": 1,
"accountIds": [],
"caption": "Revised editorial content, still not scheduled.",
"hashtags": "",
"assetIds": [],
"threadsTextOnly": false,
"instagramMode": "REELS",
"youtubeTitle": "",
"youtubePrivacy": "private",
"youtubeSynthetic": false,
"youtubeCategoryId": "",
"youtubeShort": false,
"linkUrl": "",
"scheduledAt": "",
"displayTimezone": "UTC",
"publishNow": false,
"destinationOverrides": {},
"expiresAt": ""
},
"created_by": null,
"updated_by": null,
"created_at": "2099-01-15T08:00:00Z",
"updated_at": "2099-01-15T08:30:00Z",
"submission": null
},
"replayed": false
}