Skip to main content
Glama

Sapper Fact

sapper_fact

Record confirmed security facts and findings with structured key-value data, optional documents, and intent links to track assessment evidence.

Instructions

Record a confirmed fact (like sapper fact).

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": {
      "description": "<description>"
    },
    "name": "sapper_fact"
  }
}

Input Schema

NameRequiredDescriptionDefault
docNo
dataNostructured key=value fields, e.g. {"ip": "10.0.0.1"}
kindNohost | service | cred | vuln | loot | flag | note
storeNo.sapper
titleNo
creatorNomcp
doc_fileNo
descriptionYesone-sentence gist of the fact
from_intentNoconclude this intent with the new fact

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose that the fact is persisted to the `store` (default '.sapper'), whether writes are additive or deduplicating, whether a fact can be concluded from an intent, or any permission/side-effect details — all material for a write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is short but not front-loaded with useful information; it is under-specified rather than concise. The parenthetical is the only extra content and it adds a CLI analogy instead of behavior.

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?

This is a nine-parameter write tool with no annotations and partial schema documentation; an output schema exists so return values need not be explained. Everything else an agent needs — required-field expectations, kind vocabulary, store semantics, intent linkage — is missing.

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 only 44% and the description supplies no parameter meaning at all. Five of nine parameters (doc, doc_file, title, creator, store, from_intent) are undocumented in both places, and the distinction between `doc` and `doc_file` is left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource: 'Record a confirmed fact'. This identifies the action, but 'confirmed fact' is not distinguished from sibling concepts like sapper_capture, sapper_claim, sapper_doc, or sapper_flag, so an agent cannot tell which recording tool applies from the description alone.

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 word 'confirmed' hints at a precondition, but nothing states when to use this versus siblings such as capture or claim, nor any exclusions. The parenthetical '(like `sapper fact`)' points at a CLI command, not at an alternative MCP tool.

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