Skip to main content
Glama

Audit a repository's dependencies

security_audit_dependencies
Read-only

Audit repository dependencies against the GitHub Advisory Database for known vulnerabilities and malware without cloning; automatically detects supported manifests or checks a specified path.

Instructions

Checks every dependency a repository declares against the GitHub Advisory Database for known vulnerabilities and malware, without cloning it. Finds manifests at the repository root automatically (package.json, requirements.txt, pyproject.toml, go.mod, Cargo.toml, pom.xml, composer.json), or pass path. Part of the security toolkit: also call security_supply_chain_risk for how the project is run, and security_advisories for details on one package. Uses about 2 API requests per manifest plus 2 per ecosystem.

Input Schema

NameRequiredDescriptionDefault
refNoBranch, tag or commit SHA (default: the default branch)
pathNoPath to one manifest, e.g. 'backend/requirements.txt' (default: every supported manifest at the root)
repoYesRepository name, e.g. 'spring-boot'
ownerYesRepository owner (user or organization), e.g. 'spring-projects'
include_devNoAlso check dev, test and optional dependencies (default true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.2

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds genuinely non-obvious traits: no cloning required, automatic manifest discovery at the root, and a cost estimate of ~2 API requests per manifest plus 2 per ecosystem. It stops short of describing failure modes for unsupported manifests or whether partial results are returned.

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?

Front-loaded with the action and its data source, then defaults, then sibling routing, then cost. Three dense sentences with no filler or repetition of the title.

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?

Covers inputs, defaults, sibling relationships, and cost for a five-parameter read-only tool. With no output schema, a brief note on what comes back (e.g. per-manifest vulnerability counts) would have closed the last gap.

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, but the description adds value the schema doesn't: it enumerates the recognized manifest filenames (package.json, requirements.txt, pyproject.toml, go.mod, Cargo.toml, pom.xml, composer.json) and clarifies the default 'every supported manifest at the root' contrast with an explicit path.

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 ('Checks every dependency a repository declares against the GitHub Advisory Database') plus the scope of the check (known vulnerabilities and malware). The 'without cloning it' clause and the manifest list make it unmistakable versus sibling tools like get_file_contents or get_repo_tree.

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?

Explicitly routes the agent: 'also call security_supply_chain_risk for how the project is run, and security_advisories for details on one package.' That names both alternatives and the condition that selects each, so no inference is needed. The default auto-discovery behavior vs passing 'path' is also spelled out as a usage decision.

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