Skip to main content
Glama

Commit — Supply Chain Risk Scoring

lookup_npm_package

Get a behavioral commitment profile for any npm package. Returns real signals that prove genuine investment: package age, download volume and trend (growing/stable/declining), release consistency, npm publisher count, GitHub contributor count, and linked GitHub activity.

Also returns publisherLifecycle — cross-referencing current maintainers against per-version publish history to flag dormant publishers who still hold npm scope access. The Mastra incident (June 2026) exploited exactly this: a contributor dormant since 2024 with never-revoked scope access.

Why behavioral signals matter: download counts, stars, and READMEs can be gamed. Download trend consistency and publisher depth over years are harder to fake. Supply chain attacks often target packages with low publisher depth (few people with npm publish access).

Useful for: vetting dependencies before installation, due diligence on open-source packages, identifying abandonware, checking if a package is actively maintained.

Examples: "langchain", "@anthropic-ai/sdk", "express", "litellm"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
packageYesnpm package name. Examples: "langchain", "@anthropic-ai/sdk", "express". Scoped packages need the @ prefix.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description fully carries the transparency burden. It explains the tool's non-obvious behavior, such as returning a publisherLifecycle metric and the rationale for behavioral signals, including a security incident example. It does not disclose potential rate limits or data sources, but the description gives a robust picture of what the tool does and why.

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 longer than average but well-organized into distinct sections: main functionality, additional metric, rationale, and use cases. Each section adds value; the Mastra incident example is vivid but slightly extraneous. Overall it is efficiently structured for the complexity.

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 that there is no output schema, the description compensates by enumerating the returned signals (age, downloads, trend, contributors, etc.) and explaining the publisherLifecycle concept. The single parameter is simple, and the use cases are clear. Complete enough for an agent to invoke correctly, though a note on return format would make it fully exhaustive.

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?

The input schema already provides 100% coverage for the single parameter, including examples and a scoping note. The description repeats the examples and adds broader context about the tool's purpose, but it does not add new parameter-specific details beyond the schema. Baseline of 3 is appropriate.

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 'Get a behavioral commitment profile for any npm package,' which is a specific verb+resource statement. It clearly distinguishes from sibling tools like lookup_github_repo and lookup_pypi_package by targeting npm packages and focusing on behavioral signals. The list of returned signals further clarifies the scope.

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 includes a 'Useful for' section listing concrete scenarios (vetting dependencies, due diligence, identifying abandonware) and provides examples. However, it does not mention alternative tools explicitly or state when not to use this tool, so it falls short of the highest bar.

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 are clearly distinct by ecosystem and action, but the pair audit_github_repo and lookup_github_repo could be confused since both operate on GitHub repos (one audits dependencies, the other profiles the repo itself). The descriptions help, but the naming is similar enough to cause occasional misselection.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: 'audit_' for dependency auditing, 'lookup_' for single-entity profiles, plus 'get_api_key' and 'query_commitment'. The 'lookup_business_by_org' variant is a clear sub-pattern, not a deviation.

Tool Count5/5

12 tools is well-scoped for a multi-ecosystem supply chain risk scoring server. Each tool covers a distinct ecosystem or operational function (auditing, lookup, API key management, domain commitment), and none feel redundant.

Completeness4/5

Coverage is strong: flat audits for npm/PyPI/Cargo/Go, npm dependency tree traversal, GitHub repo audits, and single-package lookups across all major ecosystems. Minor gaps include no explicit tool for managing the monitoring/alerts feature mentioned in get_api_key, and no dependency tree traversal for non-npm ecosystems, but these are acceptable workarounds.