Skip to main content
Glama

devtune_start_action_draft

Start a content-draft run for an action, for accounts with content drafts: the Page Drafter for a create action, the Section Editor for a refresh action. The same checks as Generate draft in the app apply, and a refusal carries its reason: not_content_action, read_only (live or archived), brief_not_ready, brief_outdated (the brief predates the current format; regenerate it), no_target_page, page_locked, draft_kind_changed (the action now takes the other kind than the draftKind passed), evidence_unavailable (the evidence of an Agent Picks Action cannot be read; run a new Agent Picks test to refresh it), forbidden (needs the manage permission) or unavailable (content drafts are off). The caller must be a member of the project. Retrying with the same requestIdempotencyKey returns the same run as it stands, even if the action has since changed, with status failed if that run failed; reusing it for a different request, including another modelId (omitted means the account default), is a conflict. The run uses agent credits; read the estimate from devtune_get_action_draft first. Returns the run id; follow it with devtune_get_action_draft, whose run is this one while it is in flight and whose current version is the draft once it finishes. An account with content drafts can also read the run metadata with devtune_get_agent_run, whose draftOutput stays null for content drafts; an account that drafts only Agent Picks Actions cannot read that run. Retrieve the actual draft with devtune_get_action_draft using actions.read under its existing action-specific checks. A draft is never published: a person reviews it.

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": {
      "actionId": "<actionId>",
      "requestIdempotencyKey": "<requestIdempotencyKey>"
    },
    "name": "devtune_start_action_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
modelIdNoOptional model id from devtune_get_action_draft models; the default model when absent.
actionIdYesUUID of the action.
draftKindNoThe draft you expect from devtune_get_action_draft; the start refuses with draft_kind_changed if the action now takes the other kind.
requestIdempotencyKeyYesRequired caller-generated UUID for idempotent retries.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: enumerates the full refusal taxonomy (not_content_action, read_only, brief_not_ready, brief_outdated, page_locked, draft_kind_changed, evidence_unavailable, forbidden, unavailable) with meanings, states the manage permission requirement and membership requirement, discloses credit consumption, and clarifies that a draft is never published. The only nuance is that idempotentHint=false coexists with a same-key-returns-same-run statement, which is reconcilable because idempotency is keyed on the caller-supplied requestIdempotencyKey rather than on identical arguments.

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

Conciseness3/5

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

The purpose is front-loaded, but the body is a single dense paragraph with long parenthetical asides and repeated references to devtune_get_action_draft, which hurts scannability. Nearly every clause carries information, yet the refusal-reason list and the run-following guidance could be structured as bullets.

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

Completeness5/5

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

There is no output schema, and the description does explain what comes back (the run id) and how to resolve it into a draft. For a mutating, credit-consuming, permission-gated start operation, the prerequisites, error surface, idempotency contract, and post-call path are all covered.

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 covers 100% of the four parameters, so the baseline would be 3, but the description adds semantics the schema does not: reusing requestIdempotencyKey for a different request (including a different modelId) is a conflict, and an omitted modelId means the account default. It also explains draftKind's failure mode (draft_kind_changed) beyond the schema's own note.

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 specific verb+resource ("Start a content-draft run for an action") and immediately distinguishes the two draft flavors (Page Drafter for create, Section Editor for refresh). It clearly separates itself from the read-side siblings (devtune_get_action_draft, devtune_get_agent_run) that merely follow it.

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

Usage Guidelines5/5

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

Explicitly says to read the credit estimate from devtune_get_action_draft first, to follow the returned run id with devtune_get_action_draft, and that run metadata goes through devtune_get_agent_run. It also states eligibility (member of project, account with content drafts) and the retry contract, so an agent knows when and how to invoke it versus alternatives.

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