Skip to main content
Glama

Search DISA STIG rules

search_stig
Read-onlyIdempotent

Search DISA STIG hardening rules across RHEL 8, RHEL 9, Windows 11, Windows Server 2022, and Cisco IOS Router NDM benchmarks - by keyword (matched against rule IDs and titles first, then descriptions), filterable by product, severity (high/medium/low, mapping to CAT I/II/III), category, and automation level. Call this when the user asks how to harden one of these platforms, what a STIG requires, or which rules cover a topic like SSH, passwords, or auditing. Returns summaries; use get_stig_rule for full check and fix text.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results per page (default 20)
queryYesKeyword or rule id fragment, e.g. "ssh banner" or "SV-257777"
formatNo"summary" (default) returns each rule inline as JSON. "links" returns MCP resource links, which hosts can render as pickable items the user opens on demand. Not smaller - the title and severity you need in order to choose are the bulk of either shape - so choose on how the client presents results, not to save tokens.
offsetNoSkip this many matches. Pass the next_offset from a previous response to reach results beyond the first page.
productNoLimit to one benchmark
severityNohigh=CAT I, medium=CAT II, low=CAT III
automationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / format / description
      Previous value: -"\"summary\" (default) returns each rule inline as JSON. \"links\" returns MCP resource links, which hosts can render as pickable items the user opens on demand. Not smaller — the title and severity you need in order to choose are the bulk of either shape — so choose on how the client presents results, not to save tokens."New value: +"\"summary\" (default) returns each rule inline as JSON. \"links\" returns MCP resource links, which hosts can render as pickable items the user opens on demand. Not smaller - the title and severity you need in order to choose are the bulk of either shape - so choose on how the client presents results, not to save tokens."
  2. Changed1 schema field changed
    • addedInput schema / properties / format
      Added value: +{
      +  "description": "\"summary\" (default) returns each rule inline as JSON. \"links\" returns MCP resource links, which hosts can render as pickable items the user opens on demand. Not smaller — the title and severity you need in order to choose are the bulk of either shape — so choose on how the client presents results, not to save tokens.",
      +  "enum": [
      +    "summary",
      +    "links"
      +  ],
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / product / enum
      Previous value: -[
      -  "cisco_ios_router_ndm",
      -  "cisco_ios_router_rtr",
      -  "cisco_ios_switch_l2s",
      -  "cisco_ios_switch_ndm",
      -  "cisco_ios_switch_rtr",
      -  "ubuntu2204",
      -  "rhel8",
      -  "rhel9",
      -  "windows11",
      -  "windows2022"
      -]New value: +[
      +  "cisco_ios_router_ndm",
      +  "cisco_ios_router_rtr",
      +  "cisco_ios_switch_l2s",
      +  "cisco_ios_switch_ndm",
      +  "cisco_ios_switch_rtr",
      +  "cisco_ise_nac",
      +  "cisco_ise_ndm",
      +  "cisco_nxos_switch_l2s",
      +  "cisco_nxos_switch_ndm",
      +  "cisco_nxos_switch_rtr",
      +  "ubuntu2204",
      +  "rhel8",
      +  "rhel9",
      +  "windows11",
      +  "windows2022"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / product / enum
      Previous value: -[
      -  "cisco_ios_router_ndm",
      -  "rhel8",
      -  "rhel9",
      -  "windows11",
      -  "windows2022"
      -]New value: +[
      +  "cisco_ios_router_ndm",
      +  "cisco_ios_router_rtr",
      +  "cisco_ios_switch_l2s",
      +  "cisco_ios_switch_ndm",
      +  "cisco_ios_switch_rtr",
      +  "ubuntu2204",
      +  "rhel8",
      +  "rhel9",
      +  "windows11",
      +  "windows2022"
      +]
  5. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (default 20)"New value: +"Max results per page (default 20)"
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Skip this many matches. Pass the next_offset from a previous response to reach results beyond the first page.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  6. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnly/destructive safety, so the description need not restate those. It does add useful search behavior (match order, summary-only returns), but it also claims the tool is 'filterable by ... category' even though no category parameter exists in the schema, which undermines transparency.

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 compact and front-loaded, with the main action in the first sentence. It packs platform list, filters, use cases, and an alternative into two sentences without obvious filler, though the platform enumeration makes it a bit dense.

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?

For a 7-parameter search tool with no output schema, it covers use cases and the summary-vs-full distinction well. However, it does not describe what fields a 'summary' contains, and the category mention adds confusion rather than completeness.

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 coverage is high (86%), so baseline is 3, but the description adds little beyond the schema's existing parameter descriptions and introduces a misleading 'category' filter that is not a supported parameter. The only added nuance is keyword matching order, which is minor.

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?

The description opens with a specific verb and resource: 'Search DISA STIG hardening rules across [five named benchmarks]', clearly stating the tool's scope. It also distinguishes itself from the get_stig_rule sibling by noting it 'Returns summaries; use get_stig_rule for full check and fix text.'

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance: 'Call this when the user asks how to harden one of these platforms, what a STIG requires, or which rules cover a topic...'. It also names the alternative get_stig_rule for full details, satisfying the when/when-not/alternatives test.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources