Skip to main content
Glama
Mipiti
by Mipiti

Get Control Generation Status

get_control_generation_status

Check whether background threat-model control generation has finished and read progress, or identify why it has not completed (e.g., deferred or failed).

Instructions

Poll the async control-generation status for a threat model.

When generate_threat_model / refine_threat_model return a controls_status other than complete, controls are being authored in the background — poll this until a terminal state, then read the controls.

Return shape: {status, mode, target_cos, ready_cos, error_message, elapsed_seconds} (or {status: "none"} when controls were built inline). status is queued | generating | deferred | complete | failed | skipped | none:

  • deferred — today's background-analysis budget is used up; generation resumes automatically at the daily reset (relay this to the user).

  • failederror_message says why (e.g. insufficient credits).

  • ready_cos / target_cos — coverage progress.

  • elapsed_seconds — time since queued; if it stays queued with a large elapsed, generation may not be progressing — surface that instead of polling forever.

Read-only; no side effects (polling does not trigger or alter generation).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_idYesID of the threat model whose control-generation status to poll.
server_versionYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.66.0
    • addedInput schema / properties / model_id / description
      Added value: +"ID of the threat model whose control-generation status to poll."
  2. Addedv0.62.2
  3. Removedv0.62.1
  4. Addedv0.62.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It explicitly states read-only semantics, 'no side effects (polling does not trigger or alter generation)', explains each terminal and non-terminal status, describes error_message content, and gives progress fields ready_cos/target_cos with elapsed_seconds semantics.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then proceeds logically through triggering condition, return shape, status meanings, and polling caveats. Every sentence adds actionable information; there is no filler or repetition of obvious schema details.

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?

The description is impressively complete for a polling tool: it covers when to call, terminal states, error/deferred handling, progress semantics, and the absence of side effects. The one gap is the server_version parameter, whose meaning and required value are left entirely to the schema's bare string definition. Since an output schema exists and return fields are already described, this is a minor completeness gap.

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

Parameters2/5

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

Schema description coverage is only 50%, and the description does not compensate for the undocumented server_version parameter at all. It adds little beyond the schema for model_id, which the schema already describes as the threat model ID. For a required parameter that appears only as a bare string with no description in the schema, the tool description should provide at least some semantic context.

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?

The description opens with a specific verb and resource: 'Poll the async control-generation status for a threat model.' It clearly distinguishes this from sibling tools like generate_threat_model, refine_threat_model, and regenerate_controls by framing it as the polling complement to those background-authoring operations.

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?

The description explicitly states when to use this tool: after generate_threat_model/refine_threat_model return a non-complete controls_status, poll until terminal state, then read the controls. It also gives guidance on non-obvious outcomes such as deferred (budget exhausted, retry at reset) and stuck queued with large elapsed_seconds (surface to user rather than polling forever).

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

Deploy Server

Other Tools