Skip to main content
Glama
Mipiti
by Mipiti

Edit Trust Boundary

edit_trust_boundary

Update a threat model’s trust boundary settings—attack vectors, crossed assets, neighbors, or seal status—and create a new audited model version.

Instructions

Edit a trust boundary. Creates a new model version. Returns {model, entities, ...}: the model's id, version and title, and entities.trust_boundaries the boundary as it now stands.

Attesting the seal is a judgment: a person's edit attests it; a program's only under a workspace rule delegating seal_attested, otherwise the edit lands with the seal unattested and the answer's attestation names the parked escalation_id (never a 403). Any change to passes, crosses, neighbors or sealed voids an attested seal: the attestation is of the content as it stood.

Input Schema

NameRequiredDescriptionDefault
tb_idYesID of the trust boundary (e.g., "TB1").
passesNoNew comma-separated AttackVector values the boundary allows through (subset of "Network,Adjacent,Local,Physical"). Use the empty string to set "blocks all"; omit to leave unchanged. Reach-relevant — narrowing or widening this set can flip CO verdicts.
sealedNoNew isolation flag. True declares NO lateral ingress (the only way in is crossing the perimeter — an air-gap / segmented enclave), which lets reachability decisively rule the boundary unreachable; False assumes a lateral pivot is possible. Reach-relevant — changing it can flip CO verdicts. Setting it attests the seal, as above. Omit to leave unchanged.
crossesNoNew comma-separated asset IDs.
model_idYesID of the threat model.
descriptionNoNew description.
seal_sourceNo"attested" | "unattested". Only an attested seal lets reachability decisively rule an objective unreachable past the boundary; an unattested (default or generated) seal is treated as pivotable. Use "attested" to attest a boundary already marked sealed without re-toggling it; "unattested" retracts. An attested seal implies ``sealed``. Requires ``change_reason``.
change_reasonNoRequired when ``passes``, ``sealed``, or the seal attestation actually changes. Captured in the audit trail; documents why the boundary's vector filter, isolation claim, or attestation changed.
server_versionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.87.0
    • changedInput schema / properties / seal_source / description
      Previous value: -"\"attested\" | \"unattested\". Only an operator-attested seal\nlets reachability decisively rule an objective unreachable past the\nboundary; an unattested (default/model-suggested) seal is treated as\npivotable. Use \"attested\" to attest a boundary already marked sealed\nwithout re-toggling it; \"unattested\" retracts. An attested seal\nimplies ``sealed``. Requires ``change_reason``."New value: +"\"attested\" | \"unattested\". Only an attested seal lets\nreachability decisively rule an objective unreachable past the\nboundary; an unattested (default or generated) seal is treated as\npivotable. Use \"attested\" to attest a boundary already marked sealed\nwithout re-toggling it; \"unattested\" retracts. An attested seal\nimplies ``sealed``. Requires ``change_reason``."
    • changedInput schema / properties / sealed / description
      Previous value: -"New isolation flag. True declares NO lateral ingress (the only\nway in is crossing the perimeter — an air-gap / segmented enclave),\nwhich lets reachability decisively rule the boundary unreachable;\nFalse assumes a lateral pivot is possible. Reach-relevant — changing\nit can flip CO verdicts. Setting it records an operator attestation\nof the seal. Omit to leave unchanged."New value: +"New isolation flag. True declares NO lateral ingress (the only\nway in is crossing the perimeter — an air-gap / segmented enclave),\nwhich lets reachability decisively rule the boundary unreachable;\nFalse assumes a lateral pivot is possible. Reach-relevant — changing\nit can flip CO verdicts. Setting it attests the seal, as above.\nOmit to leave unchanged."
  2. Addedv0.62.2
  3. Removedv0.62.0
  4. Changed3 schema fields changedv0.60.1
    • changedInput schema / properties / change_reason / description
      Previous value: -"Required when ``passes`` or ``sealed`` actually changes.\nCaptured in the audit trail; documents why the boundary's vector\nfilter was tightened/widened or its isolation claim changed."New value: +"Required when ``passes``, ``sealed``, or the seal\nattestation actually changes. Captured in the audit trail; documents\nwhy the boundary's vector filter, isolation claim, or attestation\nchanged."
    • addedInput schema / properties / seal_source
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "\"attested\" | \"unattested\". Only an operator-attested seal\nlets reachability decisively rule an objective unreachable past the\nboundary; an unattested (default/model-suggested) seal is treated as\npivotable. Use \"attested\" to attest a boundary already marked sealed\nwithout re-toggling it; \"unattested\" retracts. An attested seal\nimplies ``sealed``. Requires ``change_reason``."
      +}
    • changedInput schema / properties / sealed / description
      Previous value: -"New isolation flag. True declares NO lateral ingress (the only\nway in is crossing the perimeter — an air-gap / segmented enclave),\nwhich lets reachability decisively rule the boundary unreachable;\nFalse assumes a lateral pivot is possible. Reach-relevant — changing\nit can flip CO verdicts. Omit to leave unchanged."New value: +"New isolation flag. True declares NO lateral ingress (the only\nway in is crossing the perimeter — an air-gap / segmented enclave),\nwhich lets reachability decisively rule the boundary unreachable;\nFalse assumes a lateral pivot is possible. Reach-relevant — changing\nit can flip CO verdicts. Setting it records an operator attestation\nof the seal. Omit to leave unchanged."
  5. First observedv0.57.0

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the mutation side effect (new model version), that the call succeeds even when the seal cannot be attested by returning a parked escalation_id instead of a 403, and that editing passes/crosses/neighbors/sealed voids an attested seal. This is exactly the non-obvious behavior an agent needs before calling.

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?

Front-loaded with purpose, side effect and return shape, then the attestation caveats. The second paragraph is dense and slightly convoluted in phrasing but every sentence conveys a distinct behavioral rule rather than filler.

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?

An output schema exists, yet the description also sketches the return shape, and it covers the mutation, attestation and audit-reason implications well. Minor gaps remain: no mention of permissions needed or concurrent-edit behavior, though 'omit to leave unchanged' in the schema covers partial-update semantics.

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 coverage is 89%, so baseline is 3, but the description adds genuine cross-parameter meaning the schema cannot: setting sealed implicitly attests the seal, seal_source requires change_reason, and change_reason is mandatory when passes/sealed/attestation actually change. It does not address tb_id or model_id, but those are self-evident from their schema descriptions.

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?

States a specific verb and resource ("Edit a trust boundary") and immediately adds that it creates a new model version plus the shape of the response. It is clearly distinguishable from add_trust_boundary by the verb, but it never explicitly contrasts with the add/restore siblings.

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?

The description implies when it applies (editing an existing boundary) but names no alternative and gives no exclusion rules — nothing tells the agent to prefer add_trust_boundary for creation or which sibling to use for other boundary operations. The guidance about "Use 'attested' to attest a boundary already marked sealed" is parameter usage, not tool selection.

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