Skip to main content
Glama

sast_scan

Read-onlyIdempotent

Static analysis of source code or an https git repo for security flaws (Semgrep): injection, unsafe deserialization, path traversal, crypto misuse. Python, JS/TS, Java, Go, Ruby, PHP, C/C++. For code LOGIC flaws — use secret_scan for hardcoded credentials and dependency_audit for vulnerable packages. Costs $5 per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYes
previous_scan_idNoOptional. A prior scan_id (from agent_history) to record as this call's parent — builds a traversable chained-workflow lineage retrievable via agent_scan_get. Must be one of your own scans; ignored otherwise. Does not change this tool's analysis.
severity_thresholdNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent behavior, and the description adds valuable context: it uses Semgrep, supports specific languages, lists vulnerability categories, and discloses a cost of $5 per call. This goes beyond the annotations without contradicting them, though it does not describe the output format or scan result behavior.

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 core purpose, using roughly two sentences. The second sentence about alternatives is somewhat grammatically awkward and could mislead, but all content serves a purpose—including the cost warning—so it remains efficient.

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?

Given the moderate complexity of a nested source object, three parameters, and no output schema, the description covers most necessary context: purpose, supported inputs, languages, vulnerability classes, alternatives, and cost. It omits explicit detail on return values and severity_threshold effects, but the annotations and sibling tools (e.g., agent_scan_get) help fill those gaps.

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 description coverage is low (33%), and the description partially compensates by clarifying that 'source' accepts either an HTTPS git repo or code snippet, matching the source.type enum. However, it does not explain the severity_threshold behavior or the code/url property specifics, leaving the main input only partially elaborated.

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 clearly identifies the tool as static analysis for security flaws in source code or git repos, listing specific vulnerability types (injection, unsafe deserialization, etc.) and supported languages. It also distinguishes itself from siblings by explicitly naming secret_scan and dependency_audit for different concerns, making its purpose unambiguous.

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 clear when-to-use guidance: static security analysis for a set of weakness classes. It attempts to direct users to alternatives for hardcoded credentials and vulnerable packages, though the phrasing 'For code LOGIC flaws' is confusing since those examples are not logic flaws, slightly weakening the exclusion guidance.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have clearly distinct purposes with detailed descriptions that disambiguate overlaps (e.g., dns_security_check vs email_security_audit, ssl_tls_audit vs vet_endpoint). A few compliance lifecycle tools (compliance_framework_check, control_gap_analysis, audit_report_generate) could be confused, but descriptions clarify their sequencing.

Naming Consistency4/5

All tool names use lowercase snake_case, but the verb/noun order varies (e.g., access_review vs agent_history vs cve_lookup). The pattern is readable and predictable enough, with minor inconsistency in whether the resource or action comes first.

Tool Count3/5

28 tools is on the heavy side, exceeding the 25-tool threshold for 'too many' in the calibration. However, the broad security/compliance domain justifies the count, and each tool covers a distinct aspect, though some consolidation (e.g., email_security_audit vs dns_security_check) could reduce redundancy.

Completeness5/5

The toolset covers the full security assessment lifecycle: identity/access review, vulnerability discovery and prioritization, compliance frameworks and gap analysis, evidence collection, policy generation, incident triage, and specialized scans (code, secrets, network, web app, MCP/skill supply chain). No obvious critical gaps for the stated purpose.