Skip to main content
Glama
Mipiti
by Mipiti

Edit Assumption

edit_assumption

Modify an assumption in a threat model and create a new model version. Update its description, linked controls, or exclusion criteria using optional parameters.

Instructions

Edit an assumption. Creates a new model version.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_idYesID of the threat model.
descriptionNoNew description (omit to leave unchanged).
assumption_idYesID of the assumption to edit (e.g., "AS1").
linked_co_idsNoNew comma-separated CO IDs; replaces the existing linkage (omit to leave unchanged).
server_versionYes
clear_exclusionNoWhen True, removes the predicate entirely (the assumption becomes prose-only). Mutually exclusive with the exclusion_* params — if both are sent, the exclusion_* params win.
exclusion_co_idsNoComma-separated CO IDs the predicate matches explicitly; when non-empty, overrides the match fields. Supplying any exclusion_* param rewrites the whole predicate (unspecified fields default to "*").
exclusion_asset_idNo"*" or a concrete asset ID.
exclusion_attacker_idNoPredicate match — "*" wildcard or a concrete attacker ID.
exclusion_property_matchNo"C" | "I" | "A" | "U" | "*".
exclusion_attacker_vectorNoOne of "Network" | "Adjacent" | "Local" | "Physical" | "*".
exclusion_asset_component_idNo"*" or a concrete component ID.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv0.66.0
    • changedInput schema / properties / assumption_id / description
      Previous value: -"ID of the assumption (e.g., \"AS1\")."New value: +"ID of the assumption to edit (e.g., \"AS1\")."
    • changedInput schema / properties / clear_exclusion / description
      Previous value: -"When True, clears the predicate. Mutually\nexclusive with the exclusion_* params (those win if both\nare sent)."New value: +"When True, removes the predicate entirely (the\nassumption becomes prose-only). Mutually exclusive with the\nexclusion_* params — if both are sent, the exclusion_* params win."
    • changedInput schema / properties / description / description
      Previous value: -"New description."New value: +"New description (omit to leave unchanged)."
    • addedInput schema / properties / exclusion_asset_component_id / description
      Added value: +"\"*\" or a concrete component ID."
    • addedInput schema / properties / exclusion_asset_id / description
      Added value: +"\"*\" or a concrete asset ID."
    • addedInput schema / properties / exclusion_attacker_id / description
      Added value: +"Predicate match — \"*\" wildcard or a concrete\nattacker ID."
    • addedInput schema / properties / exclusion_attacker_vector / description
      Added value: +"One of \"Network\" | \"Adjacent\" | \"Local\" |\n\"Physical\" | \"*\"."
    • addedInput schema / properties / exclusion_co_ids / description
      Added value: +"Comma-separated CO IDs the predicate matches\nexplicitly; when non-empty, overrides the match fields. Supplying\nany exclusion_* param rewrites the whole predicate (unspecified\nfields default to \"*\")."
    • addedInput schema / properties / exclusion_property_match / description
      Added value: +"\"C\" | \"I\" | \"A\" | \"U\" | \"*\"."
    • changedInput schema / properties / linked_co_ids / description
      Previous value: -"New comma-separated CO IDs (replaces existing linkage)."New value: +"New comma-separated CO IDs; replaces the existing\nlinkage (omit to leave unchanged)."
  2. Addedv0.62.2
  3. Removedv0.62.0
  4. First observedv0.57.0

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It does disclose one meaningful side effect — editing creates a new model version — which is valuable versioning context that the schema does not state. However, it omits other behavioral traits like the predicate-rewriting semantics and the mutual exclusivity between clear_exclusion and exclusion_* params, both of which remain buried in the schema.

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?

Two sentences with zero wasted words; the primary operation is front-loaded and the versioning side effect follows immediately. It is efficiently structured, though for a 12-parameter tool arguably under-specified rather than optimally sized.

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

Completeness3/5

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

The rich 92%-covered schema and the presence of an output schema carry most of the load, so an agent that reads the schema can likely invoke this tool correctly. However, the description alone offers no when-to-use guidance and does not explain the versioned workflow implied by the required server_version param. Adequate but with clear gaps.

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 92%, so the baseline of 3 applies; the schema thoroughly documents the exclusion_* rewrite behavior, defaults, and mutual exclusivity. The description contributes no parameter-level meaning, and notably it does not clarify the one required param without a schema description (server_version), which is a minor missed opportunity.

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

Purpose4/5

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

"Edit an assumption" is a specific verb-plus-resource statement that clearly identifies the operation and, by verb choice alone, distinguishes it from the sibling add_assumption. The second sentence, "Creates a new model version," adds precision about what an edit entails, though the description never explicitly contrasts it with sibling tools.

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?

No guidance is given on when to edit an assumption versus adding one (add_assumption) or converting assumptions to controls (convert_assumption_to_controls). There are no prerequisites, exclusions, or contextual cues beyond the bare operation itself, leaving the agent to infer applicability.

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