Skip to main content
Glama
Mipiti
by Mipiti

Get Behavioural Attackers

get_behavioural_attackers

Read a threat model's attacker closure to identify attackers missing from the inventory, proposed additions or splits, and held credentials, zones, and objectives without writing data.

Instructions

Read the attacker closure of a model: the attackers its behavioural model says are missing from the inventory, and what its attackers hold. Read-only: no model is called and nothing is written.

Returns {applies, credential_classes, proposals, dismissed, dismissed_zones, reported, splits, dismissed_splits, questions}. applies is false where the closure is not offered (a model with no inventory, or whose behavioural model decides nothing yet); computing while what the threats reach is still being analysed, when nothing is proposed. Each of proposals is an attacker no attacker of the inventory stands for: its kind (own: a class proposed on its own; grouped: a part of the zones nobody stands at, the zones of one capability, with an entries row per zone), credential_classes, privileges_required, capability, objectives and zones; add it with add_proposed_attacker or dismiss it, or some zones of a part, with dismiss_proposed_attacker. Two parts may hold the same classes: name one by a zone of it. Each of splits is an attacker standing for zones of several capabilities, offered split into its parts (each listed as a proposal is), with objectives_added, objectives_removed and ratings: split it with split_grouped_attacker or keep it whole with keep_attacker_whole. dismissed, dismissed_zones and dismissed_splits carry reason, dismissed_by and dismissed_at. reported lists narrower holders beside an attacker that stands for them. questions ask what an attacker holds: answer each with answer_attacker_credentials. Relay the proposals and splits to the person before acting on them.

Input Schema

NameRequiredDescriptionDefault
model_idYesID of the threat model.
server_versionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.90.0

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so well: it declares the tool read-only, states that no model is called and nothing is written, and explains edge cases like applies=false and computing states. This is exactly the kind of safety and operational context an agent needs.

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?

The description is long and dense, but it is front-loaded with the purpose and read-only guarantee before diving into return fields. Most sentences earn their place by defining output semantics and next actions, though bullet-style formatting would improve scanability.

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?

Because an output schema already exists, the description need not detail return values, yet it does so thoroughly. It is complete enough for an agent to call the tool correctly and understand the response, with only minor redundancy against the schema.

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 coverage is only 50%: model_id is documented, but server_version is not. The description implies a model is targeted ('of a model') but adds no explicit parameter semantics, so it neither compensates for the gap nor repeats the schema. A baseline 3 reflects adequate but thin parameter guidance.

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?

The description opens with a specific verb and resource: 'Read the attacker closure of a model,' and explains exactly what that closure contains (missing attackers and what attackers hold). It clearly separates itself from the action-oriented siblings by being read-only, but it never explicitly contrasts itself with other read siblings like get_behavioural_threats or get_behavioural_model.

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?

It gives strong follow-up routing: proposals go to add_proposed_attacker or dismiss_proposed_attacker, splits to split_grouped_attacker or keep_attacker_whole, and questions to answer_attacker_credentials, plus the instruction to relay proposals to a person before acting. It does not explicitly state when to choose this tool over other read tools, but the context is clear.

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