Skip to main content
Glama
Mipiti MCP Server
by Mipiti

Get Behavioural Model

get_behavioural_model

Read a model's behavioural model: what the system does, as elements, actions and zones taken from its description. Read-only.

Instructions

Read a model's behavioural model: what the system does, as elements, actions and zones taken from its description. Read-only.

status: none (extract_behavioural_model gives it one), needs_answers, extracted, confirmed, stale (the description changed since) or extracting. questions are the open ones, answered with answer_behavioural_questions; one carrying structured takes a structured answer, one with awaiting_fix was answered. pending_answers: collected, not extracted. ir_hash is what confirm_behavioural_model names. waiting_on: extraction, acceptance, answers, generation or nothing. extraction.job: the extraction running in the background (null when none), its progress (pass, calls done and expected, estimated finish); extraction.dropped_elements: what it could not keep, with the sentence to answer. generation_ready: call generate_from_behavioural_model.

view="status" serves no IR and no questions: use it to follow an extraction. view="questions": that and the open questions from offset, limit of them (default 50, at most 200), with total and next_offset. wait_seconds (0 to 50) waits for the job's state, pass or calls completed to change, sending progress ("call 3 of 5: actions") meanwhile; at once when no job runs. Read again after poll_after_seconds.

Input Schema

NameRequiredDescriptionDefault
viewNo``full`` (default), ``status`` or ``questions``.full
limitNo``questions`` view only.
offsetNo``questions`` view only.
model_idYesID of the threat model.
wait_secondsNo0 (default) answers at once.
server_versionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.90.0
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 50,
      +  "description": "``questions`` view only.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "``questions`` view only.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / view
      Added value: +{
      +  "default": "full",
      +  "description": "``full`` (default), ``status`` or ``questions``.",
      +  "enum": [
      +    "full",
      +    "status",
      +    "questions"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / wait_seconds
      Added value: +{
      +  "default": 0,
      +  "description": "0 (default) answers at once.",
      +  "type": "integer"
      +}
  2. Addedv0.87.0

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full load and does so: it declares the operation read-only, enumerates the full status state machine (none/needs_answers/extracted/confirmed/stale/extracting), explains waiting_on, and discloses long-poll semantics for wait_seconds (waits on job state/pass/calls, sends progress like 'call 3 of 5: actions', returns at once when no job runs). The extraction.job/dropped_elements behaviour and the stale-on-description-change condition are exactly the kind of side context annotations could not convey.

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 opening sentence is well front-loaded, but the body becomes a dense backtick-heavy enumeration of status fields (ir_hash, pending_answers, waiting_on, extraction.job, extraction.dropped_elements, generation_ready) in a single undifferentiated block. Since an output schema exists, much of that is duplicated structured data; the genuinely additive parts (cross-tool routing, polling behaviour) are buried mid-paragraph.

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?

For a read tool with an output schema, the description supplies what the schema cannot: state semantics, sibling handoffs, and polling/pacing guidance. The one gap is the dangling reference to poll_after_seconds, which the schema does not define as an input, leaving the re-read cadence slightly ambiguous.

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 83%, so the baseline is 3; the description earns an extra point by adding meaning the schema lacks — view enum semantics are explained functionally (status serves no IR/questions), limit is bounded ('at most 200') and defaulted, and wait_seconds gains behavioural meaning beyond its terse schema line ('0 (default) answers at once'). Minor deduction: it references poll_after_seconds, which is not an input parameter in the schema, leaving the reader unsure whether that is an input or an output field.

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?

States a specific verb and resource ('Read a model's behavioural model') and immediately scopes it ('as elements, actions and zones taken from its description'), which separates it from the write-side siblings it names (extract_behavioural_model, confirm_behavioural_model, answer_behavioural_questions). An agent can distinguish it from every neighbour without opening a schema.

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

Usage Guidelines4/5

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

Gives explicit per-view routing: 'view="status" serves no IR and no questions: use it to follow an extraction', and view="questions" for the question list. It also states the downstream trigger ('generation_ready: call generate_from_behavioural_model'), so the next step is unambiguous. There is no explicit statement of when NOT to use it (e.g. versus get_threat_model or query_threat_model), which keeps it off a 5.

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