Skip to main content
Glama

check_stack

Check exact package versions against cve.now's synced vulnerability catalog. Pass a lockfile, a package list, or the stack_id of a lockfile uploaded to cve.now. For a large lockfile, upload it instead of passing its contents: curl --data-binary @ -H 'X-Lockfile-Name: ' https://cve.now/api/stack returns its id. A flake.lock is checked by the git commit each input pins, through OSV, and its nixpkgs package CVEs are not checked. No matches means none found, not a guarantee of safety.

Input Schema

NameRequiredDescriptionDefault
packagesNo
stack_idNoThe id returned by POST https://cve.now/api/stack for an uploaded lockfile.
lockfile_nameNoOptional. The file type is detected from the content; the name only breaks ties (e.g. poetry.lock vs Cargo.lock). Supported: package-lock.json, npm-shrinkwrap.json, bun.lock, pnpm-lock.yaml, yarn.lock, poetry.lock, requirements.txt, Cargo.lock, go.sum, Gemfile.lock, mix.lock, flake.lock.
lockfile_contentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/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 and does well: it discloses that flake.lock inputs are checked by pinned git commit via OSV and that nixpkgs package CVEs are skipped, and it warns that no matches does not guarantee safety. Missing are the response shape and any rate-limit or auth expectations, which keeps it below 5.

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?

Four dense sentences, each doing distinct work: purpose, input modes, large-file escape hatch, and coverage caveat. The key scoping statement is front-loaded and the safety caveat closes it with no filler.

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?

For a 4-param, zero-annotation, no-output-schema tool this covers inputs, the upload workaround, and coverage limits well. The one remaining hole is that the result of a check (vulnerability entries and their fields) is never characterized, so an agent must discover the return shape empirically.

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 coverage is 50%: stack_id and lockfile_name are documented in-schema, but lockfile_content is bare and the packages array is undocumented. The description explains the three input modes and the upload path, which helps, but it never explains the free-form 'ecosystem' string (no enum exists), a real gap for the packages mode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checking exact package versions against cve.now's synced vulnerability catalog. That cleanly separates it from get_vulnerability (single-CVE lookup), search, list_feed, and get_leaderboard. It stops short of explicitly naming a sibling it is not, so a 4 rather than a 5.

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?

Gives clear operational context: pass a lockfile, a package list, or a stack_id, and for a large lockfile upload it instead of inlining contents, with the exact curl invocation. It also carves out the flake.lock case. It never states when to prefer a sibling tool instead, so no explicit 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.

Resources