Skip to main content
Glama
guardvibe

guardvibe

by goklab

scan_file

Detect security vulnerabilities in a single on-disk file by passing its path; use for file-based scans instead of inline code snippets.

Instructions

Scan a single file on disk by path for security vulnerabilities. Pass a file path — the tool reads the file itself. For inline code snippets, use check_code instead. The 'agent' format returns the structured guardvibe.agent.v1 contract (finding + exact edit + confidence + verify step). Example: scan_file({file_path: 'src/api/route.ts', format: 'agent'})

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": {
      "file_path": "<file_path>"
    },
    "name": "scan_file"
  }
}

Input Schema

NameRequiredDescriptionDefault
formatNoOutput format. 'agent' = machine-actionable guardvibe.agent.v1 (exact edits + confidence + verify)json
file_pathYesAbsolute or relative path to the file to scan

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.66.0
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed2 schema fields changedv3.21.0
    • changedInput schema / properties / format / description
      Previous value: -"Output format"New value: +"Output format. 'agent' = machine-actionable guardvibe.agent.v1 (exact edits + confidence + verify)"
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "markdown",
      -  "json"
      -]New value: +[
      +  "markdown",
      +  "json",
      +  "agent"
      +]
  3. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations the description must carry the behavioral load, and it does disclose that the tool reads the file itself and what the 'agent' format contract contains (finding, exact edit, confidence, verify step). It omits any mention of output for the other formats and of side effects, but for a read-only-looking scan tool this is solid disclosure.

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?

Three tight sentences plus an example; the core action and scope come first, the alternative second, and the format payoff last. Nothing is redundant.

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?

No output schema exists, and the description covers the most consequential return case ('agent' format) with enough detail to call correctly. It leaves markdown/json outputs undescribed, a minor gap for a two-parameter tool.

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 100%, so the baseline is 3; the description goes further by explaining the semantic value of the 'agent' enum value (machine-actionable contract with exact edits and confidence) beyond the schema's own wording, plus a concrete usage example.

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 ('Scan a single file on disk by path for security vulnerabilities') and makes the scope explicit ('single file', 'by path'), which cleanly separates it from scan_directory and full_audit without opening any 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?

Explicitly routes inline snippets to check_code and clarifies that the caller passes a path rather than code. That is a clear when/when-not split, though it does not distinguish against the many other scan_* siblings (scan_staged, scan_secrets, deep_scan).

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