Skip to main content
Glama

Create a draft

createDraft
Destructive

Create a draft

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": {
      "kind": "<kind>",
      "body": "<body>"
    },
    "name": "createDraft"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyYesThe exact platform body: x_post or linkedin_post {text, media?: [{media_id, alt}]}; x_thread {posts: [{text, media?}, …]}. The full schema also includes LinkedIn documents, cards, TikTok and slideshows. The API validates the complete body.
kindYes
metaNoDesk notes, never posted or approved: notes and warnings (string arrays) for the reviewer, when (a timing note).
titleNoA title for the desk. Never posted.
optionsNoTwo or three text and media versions for the owner to pick when approving; null removes them. Shared fields stay in body.
post_atNoWhen it posts: RFC 3339 with a UTC offset, like 2026-10-26T09:00:00-07:00, or "next_slot" (new drafts) for the account's next open posting time.
workspaceNoLeave out for the token's workspace (ws_…).
agent_noteNoA short plain-text note from the agent to the owner: why this post, its sources, what you're unsure of. Shown as one paragraph (line breaks fold into spaces) above the preview in the approval sheet, the desk and the in-chat preview, and frozen into the approval snapshot with the draft, so the approval records the note the owner saw. Never posted or sent to any platform. Changing it doesn't void an approval. Blank or null removes it.
connection_idNoThe selected account: an active connection's id from GET …/connections for the kind's platform. Video-platform drafts never infer it, even with one account. Draft-only saves may omit it; checks and posting approval require it. TikTok mode:approve review alone may keep null and creates no upload job.
idempotency_keyNoA new UUID per request; resending the same key and request is a safe retry.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "x_post",
      -  "x_thread",
      -  "linkedin_post",
      -  "bluesky_post",
      -  "bluesky_thread",
      -  "tiktok_photo",
      -  "tiktok_video",
      -  "youtube_video",
      -  "youtube_reply",
      -  "youtube_moderation",
      -  "youtube_playlist",
      -  "youtube_post",
      -  "pinterest_image",
      -  "pinterest_carousel",
      -  "pinterest_video"
      -]New value: +[
      +  "patreon_post",
      +  "x_post",
      +  "x_thread",
      +  "linkedin_post",
      +  "bluesky_post",
      +  "bluesky_thread",
      +  "tiktok_photo",
      +  "tiktok_video",
      +  "youtube_video",
      +  "youtube_reply",
      +  "youtube_moderation",
      +  "youtube_playlist",
      +  "youtube_post",
      +  "pinterest_image",
      +  "pinterest_carousel",
      +  "pinterest_video"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / post_at / description
      Previous value: -"When to post once approved: RFC 3339 with a UTC offset, like 2026-10-26T09:00:00-07:00, or \"next_slot\" (new drafts) for the account's next open posting time."New value: +"When it posts: RFC 3339 with a UTC offset, like 2026-10-26T09:00:00-07:00, or \"next_slot\" (new drafts) for the account's next open posting time."
  3. Changed1 schema field changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "x_post",
      -  "x_thread",
      -  "linkedin_post",
      -  "bluesky_post",
      -  "bluesky_thread",
      -  "tiktok_photo",
      -  "tiktok_video",
      -  "pinterest_image",
      -  "pinterest_carousel",
      -  "pinterest_video"
      -]New value: +[
      +  "x_post",
      +  "x_thread",
      +  "linkedin_post",
      +  "bluesky_post",
      +  "bluesky_thread",
      +  "tiktok_photo",
      +  "tiktok_video",
      +  "youtube_video",
      +  "youtube_reply",
      +  "youtube_moderation",
      +  "youtube_playlist",
      +  "youtube_post",
      +  "pinterest_image",
      +  "pinterest_carousel",
      +  "pinterest_video"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "x_post",
      -  "x_thread",
      -  "linkedin_post",
      -  "bluesky_post",
      -  "bluesky_thread",
      -  "tiktok_photo",
      -  "tiktok_video"
      -]New value: +[
      +  "x_post",
      +  "x_thread",
      +  "linkedin_post",
      +  "bluesky_post",
      +  "bluesky_thread",
      +  "tiktok_photo",
      +  "tiktok_video",
      +  "pinterest_image",
      +  "pinterest_carousel",
      +  "pinterest_video"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "x_post",
      -  "x_thread",
      -  "linkedin_post",
      -  "tiktok_photo",
      -  "tiktok_video"
      -]New value: +[
      +  "x_post",
      +  "x_thread",
      +  "linkedin_post",
      +  "bluesky_post",
      +  "bluesky_thread",
      +  "tiktok_photo",
      +  "tiktok_video"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / connection_id / description
      Previous value: -"The account it posts as: an active connection's id from GET …/connections, for the kind's platform."New value: +"The selected account: an active connection's id from GET …/connections for the kind's platform. Video-platform drafts never infer it, even with one account. Draft-only saves may omit it; checks and posting approval require it. TikTok mode:approve review alone may keep null and creates no upload job."
  7. First observed

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — no mention of what a draft is, that it is not published, or what side effects occur, leaving the mutation behavior unexplained.

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

Conciseness2/5

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

Three words is technically concise but reflects under-specification rather than efficiency. There is no front-loaded explanation of purpose or behavior to anchor the agent.

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

Completeness1/5

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

This is a 10-parameter mutation tool with nested objects, an enum, and no output schema, yet the description says nothing about behavior, return values, or usage. It is completely inadequate for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 90%, so the schema itself documents body, kind, options, post_at, connection_id, and idempotency_key in detail. The description contributes no additional parameter meaning, so the baseline of 3 applies.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives, and no prerequisites. An agent cannot tell from the description whether to create a draft here versus calling createPost or schedulePost directly.

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