MCP-verktyg
Uppdatera arbetsyteutkast
sosoapi_update_content_draftErsätt hela det redigerbara delade innehållet med id, senast lästa expected_revision, ett nytt mutation_id och content. Kräver rollen editor eller högre och operate-behörighet. Innehåll från medredigerare är inte betrott och är begränsat: behåll hela originalindatan eller använd Web-redigeraren; skicka aldrig tillbaka text med [truncated]. En 409-konflikt bevarar den sparade versionen: behåll lokala ändringar och granska den senaste revisionen i stället för att skriva över en annan redigerare. Att spara publicerar aldrig och kan inte ersätta ett fryst eller inskickat utkast.
Läs som MarkdownProfiler och transporter
Profiler: core, 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": true
}- /studio-api/content-drafts/update: agent:operate · beständigt lagrat redaktionellt arbetsyteinnehåll; inga bieffekter på publicering
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 |
|
expected_revision | integerObligatoriskt i överordnat objekt |
|
mutation_id | stringObligatoriskt i överordnat objekt |
|
content | objectObligatoriskt i överordnat objekt |
|
content.schemaVersion | numberValfritt / objekt |
|
content.accountIds | arrayValfritt / objekt |
|
content.accountIds[] | stringValfritt / objekt |
|
content.caption | stringValfritt / objekt |
|
content.hashtags | stringValfritt / objekt |
|
content.assetIds | arrayValfritt / objekt |
|
content.assetIds[] | stringValfritt / objekt |
|
content.threadsTextOnly | booleanValfritt / objekt | — |
content.instagramMode | stringValfritt / objekt |
|
content.youtubeTitle | stringValfritt / objekt |
|
content.youtubePrivacy | stringValfritt / objekt |
|
content.youtubeSynthetic | booleanValfritt / objekt | — |
content.youtubeCategoryId | stringValfritt / objekt |
|
content.youtubeShort | booleanValfritt / objekt | — |
content.linkUrl | stringValfritt / objekt |
|
content.scheduledAt | stringValfritt / objekt |
|
content.displayTimezone | stringValfritt / objekt |
|
content.publishNow | booleanValfritt / objekt | — |
content.destinationOverrides | objectValfritt / objekt |
|
content.destinationOverrides.* | objectValfritt / objekt |
|
content.destinationOverrides.*.caption | stringValfritt / objekt |
|
content.destinationOverrides.*.scheduledAt | stringValfritt / objekt |
|
content.expiresAt | stringValfritt / objekt |
|
Fullständigt 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
}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 |
|
draft | objectObligatoriskt i överordnat objekt |
|
draft.id | stringObligatoriskt i överordnat objekt |
|
draft.workspace_id | stringObligatoriskt i överordnat objekt |
|
draft.revision | integerObligatoriskt i överordnat objekt |
|
draft.state | stringObligatoriskt i överordnat objekt |
|
draft.content | objectObligatoriskt i överordnat objekt |
|
draft.content.schemaVersion | numberObligatoriskt i överordnat objekt |
|
draft.content.accountIds | arrayObligatoriskt i överordnat objekt |
|
draft.content.accountIds[] | stringValfritt / objekt |
|
draft.content.caption | stringObligatoriskt i överordnat objekt |
|
draft.content.hashtags | stringObligatoriskt i överordnat objekt |
|
draft.content.assetIds | arrayObligatoriskt i överordnat objekt |
|
draft.content.assetIds[] | stringValfritt / objekt |
|
draft.content.threadsTextOnly | booleanObligatoriskt i överordnat objekt |
|
draft.content.instagramMode | stringObligatoriskt i överordnat objekt |
|
draft.content.youtubeTitle | stringObligatoriskt i överordnat objekt |
|
draft.content.youtubePrivacy | stringObligatoriskt i överordnat objekt |
|
draft.content.youtubeSynthetic | booleanObligatoriskt i överordnat objekt |
|
draft.content.youtubeCategoryId | stringObligatoriskt i överordnat objekt |
|
draft.content.youtubeShort | booleanObligatoriskt i överordnat objekt |
|
draft.content.linkUrl | stringObligatoriskt i överordnat objekt |
|
draft.content.scheduledAt | stringObligatoriskt i överordnat objekt |
|
draft.content.displayTimezone | stringObligatoriskt i överordnat objekt |
|
draft.content.publishNow | booleanObligatoriskt i överordnat objekt |
|
draft.content.destinationOverrides | objectObligatoriskt i överordnat objekt |
|
draft.content.destinationOverrides.* | objectValfritt / objekt |
|
draft.content.destinationOverrides.*.caption | stringValfritt / objekt |
|
draft.content.destinationOverrides.*.scheduledAt | stringValfritt / objekt |
|
draft.content.expiresAt | stringObligatoriskt i överordnat objekt |
|
draft.created_by | string | nullObligatoriskt i överordnat objekt | — |
draft.created_byanyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.created_byanyOf 2 | nullObligatoriskt i överordnat objekt | — |
draft.updated_by | string | nullObligatoriskt i överordnat objekt | — |
draft.updated_byanyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.updated_byanyOf 2 | nullObligatoriskt i överordnat objekt | — |
draft.created_at | stringObligatoriskt i överordnat objekt |
|
draft.updated_at | stringObligatoriskt i överordnat objekt |
|
draft.submission | object | nullObligatoriskt i överordnat objekt | — |
draft.submissionanyOf 1 | objectObligatoriskt i överordnat objekt |
|
draft.submission.idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.expected_revisionanyOf 1 | integerObligatoriskt i överordnat objekt |
|
draft.submission.started_atanyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receiptanyOf 1 | object | nullObligatoriskt i överordnat objekt | — |
draft.submission.receiptanyOf 1 / anyOf 1 | objectObligatoriskt i överordnat objekt |
|
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 | string | nullObligatoriskt i överordnat objekt | — |
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 2 | nullObligatoriskt i överordnat objekt | — |
draft.submission.receipt.successesanyOf 1 / anyOf 1 | arrayObligatoriskt i överordnat objekt |
|
draft.submission.receipt.successes[]anyOf 1 / anyOf 1 | objectValfritt / objekt |
|
draft.submission.receipt.successes[].social_account_idanyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receipt.successes[].post_idanyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receipt.failuresanyOf 1 / anyOf 1 | arrayObligatoriskt i överordnat objekt |
|
draft.submission.receipt.failures[]anyOf 1 / anyOf 1 | objectValfritt / objekt |
|
draft.submission.receipt.failures[].social_account_idanyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receipt.failures[].codeanyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receipt.failures[].messageanyOf 1 / anyOf 1 | stringObligatoriskt i överordnat objekt |
|
draft.submission.receiptanyOf 1 / anyOf 2 | nullObligatoriskt i överordnat objekt | — |
draft.submissionanyOf 2 | nullObligatoriskt i överordnat objekt | — |
replayed | booleanObligatoriskt i överordnat objekt | — |
Fullständigt 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
}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_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
}