Skip to main content
Glama

Commit — Supply Chain Risk Scoring

audit_dependencies

Batch-score multiple npm, PyPI, Cargo, or Go packages for supply chain risk. Takes a list of package names and returns a risk table sorted by commitment score (lowest = highest risk first).

Risk flags:

  • CRITICAL: single publisher + >10M weekly downloads (publish-access concentration risk)

  • HIGH: new package (<1yr) + high downloads (unproven, rapid adoption = supply chain risk)

  • WARN: no release in 12+ months (potential abandonware)

  • WARN: dormant publishers with current scope access — contributors who stopped publishing but retain npm tokens (Mastra-incident vector, June 2026)

Perfect for auditing a full package.json, requirements.txt, Cargo.toml, or go.mod — paste your dependency list and get a prioritized risk report.

For Go: pass full module paths (e.g., "github.com/gin-gonic/gin", "golang.org/x/net") and set ecosystem="golang". The "maintainers" column shows GitHub contributor count since Go has no centralized publisher concept.

Examples: score all deps in a project, compare two similar packages, identify abandonware before it becomes a CVE.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
packagesYesList of package names to score. Up to 20 at once. Examples: ["langchain", "litellm", "openai", "axios"] or ["@anthropic-ai/sdk", "zod", "express"] or ["github.com/gin-gonic/gin", "golang.org/x/net"] for Go modules.
ecosystemNoPackage ecosystem. "auto" detects by naming convention (Python-style = pypi, otherwise npm). Force "npm", "pypi", "cargo", or "golang" to override. Go modules require full path (host/owner/repo) — use "golang".auto

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / ecosystem / description
      Previous value: -"Package ecosystem. \"auto\" detects by naming convention (Python-style = pypi, otherwise npm). Force \"npm\", \"pypi\", or \"cargo\" to override."New value: +"Package ecosystem. \"auto\" detects by naming convention (Python-style = pypi, otherwise npm). Force \"npm\", \"pypi\", \"cargo\", or \"golang\" to override. Go modules require full path (host/owner/repo) — use \"golang\"."
    • changedInput schema / properties / ecosystem / enum
      Previous value: -[
      -  "npm",
      -  "pypi",
      -  "cargo",
      -  "auto"
      -]New value: +[
      +  "npm",
      +  "pypi",
      +  "cargo",
      +  "golang",
      +  "auto"
      +]
    • changedInput schema / properties / packages / description
      Previous value: -"List of package names to score. Up to 20 at once. Examples: [\"langchain\", \"litellm\", \"openai\", \"axios\"] or [\"@anthropic-ai/sdk\", \"zod\", \"express\"]"New value: +"List of package names to score. Up to 20 at once. Examples: [\"langchain\", \"litellm\", \"openai\", \"axios\"] or [\"@anthropic-ai/sdk\", \"zod\", \"express\"] or [\"github.com/gin-gonic/gin\", \"golang.org/x/net\"] for Go modules."
  2. Changed2 schema fields changed
    • changedInput schema / properties / ecosystem / description
      Previous value: -"Package ecosystem. \"auto\" detects by naming convention (Python-style = pypi, otherwise npm). Force \"npm\" or \"pypi\" to override."New value: +"Package ecosystem. \"auto\" detects by naming convention (Python-style = pypi, otherwise npm). Force \"npm\", \"pypi\", or \"cargo\" to override."
    • changedInput schema / properties / ecosystem / enum
      Previous value: -[
      -  "npm",
      -  "pypi",
      -  "auto"
      -]New value: +[
      +  "npm",
      +  "pypi",
      +  "cargo",
      +  "auto"
      +]
  3. First observed

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 carries the full burden of behavioral disclosure. It explains the risk flag logic (CRITICAL, HIGH, WARN), the output sorting by commitment score, and the Go-specific maintainers-column nuance. This adds substantial context beyond the schema, although it does not cover aspects like rate limits or error 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 well-structured with a clear lead sentence, a bulleted list of risk flags, and a use-case paragraph. It is somewhat long, but every section is informative and necessary for a tool covering four ecosystems with subtle behavioral rules.

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?

For a two-parameter tool with no output schema, the description is remarkably complete. It covers the output format, risk scoring criteria, ecosystem-specific behavior, and actionable examples, leaving users with enough understanding to invoke the tool correctly for their dependency file.

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, but the description adds meaningful elaboration. It reiterates the Go full-module-path requirement, clarifies the auto-detection behavior, and provides concrete examples for all ecosystems. This goes beyond the schema by tying parameters to real-world usage patterns.

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 opens with the specific verb phrase 'Batch-score multiple npm, PyPI, Cargo, or Go packages for supply chain risk,' immediately stating the tool's function and scope. This clearly distinguishes it from sibling single-package lookup tools and audit_github_repo, which focus on a single package or repository.

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 description provides clear context for when to use the tool: 'Perfect for auditing a full package.json, requirements.txt, Cargo.toml, or go.mod' and includes example use cases (score all deps, compare packages, identify abandonware). It does not explicitly state when not to use it or name alternative tools, but the batch-oriented framing implies the distinction.

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.