Skip to main content
Glama

Guardar publicación (video, imagen, historia o carrusel)

create_post
Idempotent

Guarda en la marca una publicación sin publicarla: un video, una imagen sola, una historia o un carrusel, con los media_id de upload_media o import_video_from_url. Elige destinos de list_accounts. Si el usuario no da el texto, escríbelo tú en su idioma: título corto y descripción con gancho, beneficio, llamada a la acción y pocos hashtags. Para publicar o programar en el mismo pedido usa create_and_publish_post. Conserva operation_id al reintentar. Instagram acepta videos de hasta 300 MB (historias en video hasta 100 MB): es una condición de Instagram para cualquier app o API, no de PilotControl. Si un destino de Instagram falla por el peso, díselo así al usuario, sin presentarlo como error de la app ni prometer otra vía de subida; las demás redes salen con el original y para Instagram hace falta una versión más liviana.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation_id": "<operation_id>",
      "media_ids": "<media_ids>",
      "title": "<title>",
      "targets": "<targets>"
    },
    "name": "create_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleYes
formatNopost: un video o una imagen. story: historia de Instagram/Facebook (un video o varias imágenes, una historia por imagen). carousel: de 2 a 10 imágenes o videos MP4/MOV en orden; si incluye videos, solo Instagram.post
tiktokNo
targetsYes
youtubeNo
brand_idNoID de la marca (de list_brands). Usa solo la marca que el usuario nombró; si no la nombró y hay varias, pregúntale cuál.
media_idsYesDe upload_media o import_video_from_url, en orden
descriptionNo
operation_idYesIdentificador único de este pedido (por ejemplo un UUID). Repite el mismo al reintentar el mismo pedido; uno nuevo para un pedido nuevo.
scheduled_forNoISO 8601 con zona horaria, solo si el usuario pidió programar
cover_media_idNoImagen de portada para un video (opcional)
instagram_trial_reelNoReel de prueba de Instagram (solo lo ven quienes no te siguen). MANUAL: lo pasas al perfil a mano; SS_PERFORMANCE: Instagram lo comparte si rinde.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing retry semantics ('Conserva operation_id al reintentar'), which reinforces idempotentHint=true with an actual procedure. It also explains a real failure mode — Instagram's 300 MB (100 MB for video stories) limit — states it is a platform condition rather than an app fault, and prescribes how to report the failure to the user without promising another upload path. That is unusually rich behavioral context for a write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and the sibling routing are front-loaded in the first two sentences, and each later sentence carries operational value. The closing passage is dense and restates the size-limit point twice (the 300 MB condition and the 'versión más liviana' remedy), which could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, nested-object, no-output-schema write tool, the description covers the full workflow: sourcing media and accounts, authoring text, choosing the publish alternative, and handling per-platform failure. The main omission is what happens after saving — whether the draft is retrievable via get_post/list_posts and whether it stays as a draft until publish_post is called.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 58%, so the schema already documents several parameters, but the description adds real meaning for the undocumented ones: where media_ids come from, where targets come from, and how to author title and description when the user supplies none (short title, hook, benefit, CTA, few hashtags). It does not touch format, youtube, tiktok, cover_media_id or instagram_trial_reel, so it is helpful but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb and outcome: 'Guarda en la marca una publicación sin publicarla', then enumerates the four supported shapes (video, single image, story, carousel). It explicitly names create_and_publish_post as the contrasting sibling, so an agent can tell the draft-only tool from the publish tool without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete sourcing rules (media_ids from upload_media or import_video_from_url, destinos from list_accounts) and an explicit alternative for publishing/scheduling in one call. It leaves gaps around other close siblings such as create_and_publish_carousel and create_carousel_draft, and the statement 'para publicar o programar ... usa create_and_publish_post' sits awkwardly beside this tool's own scheduled_for parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources