Skip to main content
Glama

DepScout

Server Details

Scan packages and lockfiles (npm, PyPI, Go, Maven, Cargo, NuGet) for vulnerabilities and malware.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation4/5

check_dependencies (batch of exact versions), check_lockfile (whole file with transitive deps), and check_package (single package) all target dependency auditing, so boundaries overlap somewhat. However, the descriptions explicitly differentiate inputs ('Prefer this over check_dependencies when the user has the file itself') and get_vulnerability is clearly distinct as an ID lookup, so an agent can pick correctly.

Naming Consistency5/5

All four tools follow a clean verb_noun pattern: check_dependencies, check_lockfile, check_package, get_vulnerability. Consistent snake_case with predictable prefixes throughout.

Tool Count4/5

Four tools is a lean but sensible surface for a focused dependency-auditing server, with each tool covering a distinct input shape (batch, lockfile, single package, advisory ID). It is slightly on the thin side but nothing feels redundant.

Completeness4/5

The surface covers the core lifecycle: single-package safety/freshness, batch checks, full lockfile/transitive audits, and advisory lookups. Minor gaps exist, such as no ecosystem-wide advisory search or license-focused bulk query, but the primary audit workflows are well covered.

Available Tools

4 tools
check_dependenciesCheck a dependency listA
Read-onlyIdempotent
Inspect

Check up to 50 packages at exact versions (for example from package.json, package-lock.json, requirements.txt, go.mod, pom.xml, Cargo.toml or a .csproj) against OSV.dev in one batch. Returns a summary count and only the packages with problems: malicious-package flags first, then vulnerabilities by severity with the version that fixes each and the minimum upgrade target. Use when the user pastes a dependency file or list, or asks to "audit my dependencies" or "check my package.json / requirements.txt", or which dependencies are vulnerable or outdated. Entries without an exact version are skipped and listed; transitive dependencies are only checked if included in the list.

ParametersJSON Schema
NameRequiredDescriptionDefault
packagesYesPackages to check, each with name and exact version
ecosystemNoDefault ecosystem for all entries. Package ecosystem: npm, PyPI, Go, Maven, crates.io or NuGet (aliases like pip, python, cargo, rust, golang, java, dotnet also work)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavior beyond them: return shape (summary count plus only problem packages, malicious flags first, then severity-ordered vulns with fix versions and minimum upgrade targets), the 50-entry batch limit, and that version-less entries are skipped and listed while transitive deps are checked only if listed.

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?

A single dense paragraph that front-loads the verb, scope, and batch limit before usage triggers and edge-case behavior. Every sentence carries information, though it is packed enough that the usage guidance and ordering rules could be separated for faster scanning.

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?

With no output schema, the description compensates by describing the return format in detail, and it covers ecosystem defaults, entry limits, and skip behavior. An agent has everything needed to invoke and interpret this tool.

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 semantics not present in the schema: the exact-version requirement and the explicit skip-and-list behavior for entries lacking an exact version, plus reinforcement of the 50-item cap.

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 (check), resource (packages at exact versions), scope (up to 50 in one batch), and the external authority (OSV.dev). The batch framing implicitly distinguishes it from single-package siblings like check_package, so an agent can tell which tool to reach for.

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 concrete triggers — pasted dependency file/list, 'audit my dependencies', 'check my package.json/requirements.txt', or vulnerable/outdated questions — plus the file types it accepts. It does not name sibling tools or state when-not to use it, so it stops short of full routing guidance.

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

check_lockfileAudit a lockfileA
Read-onlyIdempotent
Inspect

Audit a whole lockfile or dependency file in one call, including transitive dependencies where the file records them. Paste the file content as-is: package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, requirements.txt (== pins), poetry.lock, uv.lock, Pipfile.lock, Cargo.lock, go.sum, go.mod, packages.lock.json (NuGet) or gradle.lockfile. Up to 3,000 packages are checked against OSV.dev. Returns a summary and only the packages with problems: malicious-package flags first, then vulnerabilities by severity with the minimum upgrade target. Use when the user pastes or attaches a lockfile, asks for a full or transitive dependency audit, or asks "is my project vulnerable?". Prefer this over check_dependencies when the user has the file itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe full text of the lockfile or dependency file, pasted as-is
filenameNoFile name, e.g. package-lock.json, yarn.lock, Cargo.lock, go.sum, poetry.lock. Helps detect the format

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), and the description adds genuine behavioral context beyond them: the 3,000-package cap, the OSV.dev backend, and the output shape (summary plus only problem packages, malicious flags first, vulnerabilities by severity with a minimum upgrade target).

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?

Dense but front-loaded: what it does, what to paste, what it checks against, what it returns, then when to use it. Every sentence carries distinct information and none is redundant with structured fields.

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?

With no output schema, the description must describe returns, and it does (summary plus problem packages, ordered by severity, with upgrade targets). Format support, limits, and routing are all covered, so nothing an agent needs to call it correctly is missing.

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. The description does add value by enumerating the accepted file formats and the '== pins' constraint for requirements.txt, which the schema only gestures at with a short examples list.

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 (audit) and resource (lockfile/dependency file) with explicit scope: whole-file including transitive dependencies. It enumerates the accepted file formats, which lets an agent recognize the resource 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggers (user pastes/attaches a lockfile, wants a full or transitive audit, asks 'is my project vulnerable?') and an explicit routing rule: prefer this over check_dependencies when the user has the file itself. Names the sibling and the condition that selects it.

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

check_packageCheck a packageA
Read-onlyIdempotent
Inspect

Check one open-source package (npm, PyPI, Go, Maven, crates.io or NuGet) for safety and freshness. Returns a malicious-package flag (from OSV MAL- and malware advisories), known vulnerabilities with severity and the version that fixes each, the minimum version that clears all of them, the latest stable version, whether the given version is outdated or deprecated, licences, last release date, and the linked repository's OpenSSF Scorecard. If no version is given, the latest version is checked. Use when the user asks "is safe?", "is it malware?", "which version should I use?", "should I upgrade?", or about a package's known CVEs, and before recommending any package or version to install (npm install, pip install, go get, cargo add, etc.). Data comes from OSV.dev and deps.dev; newly published malware may not be listed yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPackage name, e.g. lodash, @types/node, requests, github.com/gin-gonic/gin, org.apache.logging.log4j:log4j-core, serde, Newtonsoft.Json
versionNoOptional exact version to check, e.g. 4.17.15. Omit to check the latest release
ecosystemYesPackage ecosystem: npm, PyPI, Go, Maven, crates.io or NuGet (aliases like pip, python, cargo, rust, golang, java, dotnet also work)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive, openWorld), and the description goes well beyond them by disclosing data provenance (OSV.dev and deps.dev), the default behavior when version is omitted (latest version is checked), and an explicit freshness caveat that newly published malware may not yet be listed. Those are exactly the operational traits an agent needs and that structured fields cannot convey.

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?

Front-loaded with purpose, then return contents, then usage triggers and a caveat; every sentence carries information and there is no filler. It is dense as a single long paragraph, which slightly hurts scannability, but nothing is wasted.

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?

There is no output schema, so the description must carry the return-value burden and it does, enumerating each returned field including the fix version and minimum clearing version. Combined with multi-ecosystem coverage, the omission default, and the data-source caveat, an agent has everything needed to call and interpret it.

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 description coverage is 100%, with the schema itself documenting the ecosystem aliases and the version default ("Omit to check the latest release"). The description restates that default and the ecosystem list but adds no new syntax, format, or constraint information beyond the schema, so the baseline 3 applies.

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 concrete verb ("Check") and resource ("one open-source package") and enumerates the ecosystems covered, then lists exactly what the result contains (malware flag, vulnerabilities, fix versions, latest stable version, licences, Scorecard). The word "one" implicitly separates it from the bulk siblings check_dependencies and check_lockfile, so an agent can route correctly without opening a 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?

Gives explicit trigger phrasings ("is <package> safe?", "is it malware?", "should I upgrade?") and a concrete precondition: call it before recommending any package or version to install, with install commands listed. It does not name the sibling alternatives (check_dependencies, check_lockfile, get_vulnerability) or say when NOT to use it, so it stops short of a full when/when-not/alternatives statement.

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

get_vulnerabilityGet vulnerability detailsA
Read-onlyIdempotent
Inspect

Look up one vulnerability or malicious-package advisory by ID (CVE, GHSA, PYSEC, GO, RUSTSEC, MAL and other OSV IDs) and return its summary, severity, CVSS vector, aliases, publish date, the affected packages with their affected and fixed version ranges, and key references. Use when the user mentions a specific advisory or CVE ID ("what is CVE-2021-44228?", "am I affected by this GHSA?") and wants to know what it is, what is affected or which version fixes it. Only covers advisories in OSV.dev.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAdvisory ID, e.g. CVE-2021-44228, GHSA-29mw-wpgm-hmr9, PYSEC-2018-28, MAL-2025-20690

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds genuinely new behavior: the exact fields returned (severity, CVSS vector, aliases, publish date, affected packages with affected/fixed ranges, references) and a coverage boundary ('Only covers advisories in OSV.dev'), which tells the agent when a lookup will come back empty.

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?

Purpose is front-loaded, followed by the return payload, then the usage trigger, then the scope caveat. Three sentences with no filler; the return-field enumeration is dense but justified given there is no output schema to carry it.

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?

With no output schema, the description carries the return-value burden and does so explicitly (summary, severity, CVSS vector, aliases, dates, version ranges, references). Combined with the OSV.dev coverage boundary and a concrete usage trigger, an agent has everything needed to decide and call correctly.

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% and the schema already supplies ID examples, so the baseline is 3. The description goes slightly beyond by enumerating additional ID namespaces (GO, RUSTSEC, MAL, 'other OSV IDs'), clarifying that the single 'id' field accepts any OSV ecosystem identifier rather than just CVEs.

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 ('look up one vulnerability or malicious-package advisory by ID') and immediately enumerates the accepted ID namespaces (CVE, GHSA, PYSEC, GO, RUSTSEC, MAL). The single-advisory-by-ID framing clearly separates it from the package/lockfile/dependency checking siblings, which operate on project manifests rather than a named advisory.

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 an explicit trigger with real user phrasings ('what is CVE-2021-44228?', 'am I affected by this GHSA?') and the intent behind the call (what it is, what is affected, which version fixes it). No sibling tool is named as an alternative, so the routing guidance is context-rich but not exhaustive.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • First observedcheck_dependencies
    • First observedcheck_lockfile
    • First observedcheck_package
    • First observedget_vulnerability

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables auditing npm, pip, and other package dependencies for known CVEs via the OSV database, with tools to scan manifests, query individual packages, and integrate into CI/CD workflows.
    456 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Audits package lockfiles for vulnerabilities, supporting npm, yarn, and pnpm. Runs via CLI or as an MCP server over stdio.
    1
    11 npm
    83
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to look up package versions, scan for vulnerabilities, and analyze dependencies across multiple registries (npm, Maven, PyPI, etc.) using exact version recommendations for security.
    4
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources