Skip to main content
Glama

Zovo Dependency Audit

Audit dependencies

audit_dependencies
Read-onlyIdempotent

Use this when the user pastes a dependency manifest for npm or PyPI (package.json, requirements.txt, or one name@version / name==version per line) and wants known vulnerabilities with fixed-in versions, licenses and outdated packages, as a Markdown report for a pull request plus CSV and PDF. Reads live OSV.dev and deps.dev records. Up to 150 packages and 400 distinct advisories per call (a larger list is refused with a plan of smaller calls); ranges are checked at their stated minimum version. Does not resolve transitive dependencies, read lockfiles, scan source code or fix code. Do not use for Go, crates.io, Maven or Gradle, container images or operating system packages.

Input Schema

NameRequiredDescriptionDefault
manifestYesThe manifest text exactly as in the file, e.g. the full package.json, or lines like lodash@4.17.15. Up to 60,000 characters and 150 packages.
ecosystemYesPackage ecosystem: npm (package.json or name@version lines) or PyPI (requirements.txt or name==version lines). Go, crates.io and Maven are not supported.
include_devNoInclude development and test dependencies (npm devDependencies), e.g. true. Default true.

Output Schema

NameRequiredDescriptionDefault
notesYes
formatYes
sourceYes
summaryYes
packagesYes
downloadsYes
ecosystemYes
packages_shownYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description adds substantial context beyond them: live OSV.dev/deps.dev data sources, hard caps of 150 packages and 400 advisories, refusal behavior with a plan for splitting into smaller calls, and the caveat that ranges are evaluated at their stated minimum version. It also discloses what the tool does not do (no transitive resolution, no lockfiles, no source scanning, no fixes), which is exactly the kind of scope boundary the annotations cannot express.

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?

Content is front-loaded with the trigger condition and every sentence carries information about inputs, limits, semantics or exclusions. It is a single dense paragraph though, and the limits and exclusions would read faster as separate structured clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described in detail, yet the description still names the report artifacts (Markdown for a PR, plus CSV and PDF). For a three-parameter tool with full schema coverage and rich annotations, everything an agent needs to decide to call it and to call it correctly is present.

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 description coverage is 100%, so the baseline is 3; the description earns an increment by clarifying semantics the schema only hints at, such as the 150-package ceiling interacting with the manifest parameter and the minimum-version range evaluation rule. It does not explain the include_dev default beyond what the schema already states, so it stops short of full coverage.

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 names a specific verb and resource ('audit a dependency manifest') and immediately specifies supported ecosystems (npm, PyPI) and concrete inputs (package.json, requirements.txt, name@version lines). It also states the three deliverables (vulnerabilities with fixed-in versions, licenses, outdated packages) and output formats, so an agent can distinguish it from a single-package check without opening the 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?

The opening clause gives a clear triggering condition ('when the user pastes a dependency manifest ... and wants known vulnerabilities'), and the closing sentence enumerates explicit exclusions (Go, crates.io, Maven, Gradle, container images, OS packages). It does not, however, name the sibling check_package or explain when a single-package lookup should be preferred over a full manifest audit, so alternatives are left implicit.

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