Skip to main content
Glama

Explain a control

sbd_explain_control
Read-onlyIdempotent

Explains a selected security control by detailing its requirements, how the plugin implements it, and which rules verify it.

Instructions

Explain one control: what it requires, how the plugin implements it, and which rules check it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "regime": "<regime>",
      "control": "<control>"
    },
    "name": "sbd_explain_control"
  }
}

Input Schema

NameRequiredDescriptionDefault
regimeYes
controlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description does add useful value by previewing the response content (requirements, implementation explanation, checking rules), which no output schema provides. It says nothing about behavior when the control or regime is unknown, or about lookup cost.

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?

A single front-loaded sentence with a clear colon-delimited enumeration of what is explained. Every clause carries information; there is no boilerplate or repetition.

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

Completeness2/5

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

For a tool whose two required parameters are entirely unconstrained free strings, the description should say what a regime identifier is and how control names are formed. It explains the return content but leaves the agent unable to construct a correct call without guessing at valid inputs.

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 0% for both required parameters, and neither has an enum or format hint. The description implies that 'control' names a single control but gives no guidance on what a 'regime' value looks like or where an agent would discover valid values, so it fails to compensate for the schema gap.

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 pairs the verb 'explain' with a specific resource ('one control') and even enumerates the three things it explains: requirements, plugin implementation, and checking rules. That distinguishes it informally from sbd_list_controls, but it never names the sibling or explicitly contrasts the two.

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

Usage Guidelines3/5

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

Usage is only implied: 'explain one control' suggests looking up details for a single control, likely after listing. There is no explicit when-to-use, no stated prerequisite of calling sbd_list_controls first, and no exclusion against sbd_check or sbd_validate_manifest, which could plausibly overlap.

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