Skip to main content
Glama

Server Details

Hourly security advisories for JS, AI and web3 packages: ranges, fixes and exploit conditions.

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.3/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct role: batch lookup by package (get_advisories), single-advisory detail (get_advisory), upgrade target (latest_safe), platform bulletins, and a cross-stack feed. The only mild overlap is get_advisories vs list_feed, but the descriptions explicitly steer ('to check your own packages, use get_advisories') and the plural/singular get pair is clarified by 'one advisory in full'.

Naming Consistency3/5

Most names follow verb_noun (get_advisories, get_advisory, get_platform_bulletins, list_feed), but latest_safe breaks the pattern with an adjective-style name and no verb. Readable overall, but the convention is not uniform.

Tool Count5/5

Five tools is well-scoped for an advisory/security lookup server: batch query, detail, feed, upgrade target, and non-npm bulletins. Each tool covers a distinct workflow step rather than padding the surface.

Completeness4/5

The lifecycle is well covered: discover advisories by package, drill into one by id, find a safe upgrade version, browse recent advisories, and check platform bulletins. Minor gaps remain around severity-based package queries or live dependency/lockfile scanning, but core workflows are complete.

Available Tools

5 tools
get_advisoriesAdvisories for packagesA
Read-onlyIdempotent
Inspect

Check npm packages for security advisories. Start here before installing, upgrading or deploying: send 1 to 50 package names (never versions) and get, per package, its total and up to 20 advisories of the last 120 days, newest first, each with vulnerable ranges, fixed versions and the conditions that make it exploitable. A package with none returns total 0. Compare the ranges with your lockfile. For one advisory in full use get_advisory; for the version to upgrade to, use latest_safe.

NameRequiredDescriptionDefault
packagesYesnpm package names as written in package.json, 1 to 50, for example ["next", "@supabase/supabase-js"]. Names only, never versions: compare the returned ranges with your lockfile.

TDQS

A4.9/5.0
Behavior5/5

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

Goes well past the annotations (which only cover read-only/idempotent safety) by disclosing the 120-day window, the 20-advisories-per-package cap, newest-first ordering, and the zero-advisory case returning total 0. It also describes the payload fields (vulnerable ranges, fixed versions, exploitability conditions), which matters since there is no output schema.

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 sentences, each doing distinct work: purpose, invocation contract, return shape, sibling routing. Front-loaded and free of filler despite the density of information.

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 exactly what comes back per package and how to act on it. An agent has everything needed to call it correctly and interpret the result without further exploration.

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 already documents the array, 1-50 bounds and the name pattern, so the description supplements rather than carries the burden. It still adds real meaning by stressing "names only, never versions" and telling the agent to compare returned ranges against its lockfile.

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?

Opens with a specific verb and resource ("Check npm packages for security advisories") and immediately distinguishes itself from siblings by naming get_advisory and latest_safe as different scopes. The scope (batch of package names, not versions) is unambiguous.

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?

Explicitly states when to call it ("Start here before installing, upgrading or deploying") and routes to the correct alternatives for adjacent needs: get_advisory for a single advisory in full, latest_safe for the upgrade target. No inference required.

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

get_advisoryOne advisory in fullA
Read-onlyIdempotent
Inspect

Read one advisory in full by id: CVE, GHSA, MAL or Patchwire id, any case, aliases resolve. Returns its ranges, fixed versions, exploit conditions with the source sentence they come from, a summary and the sources. Use it after get_advisories or list_feed gave you an id. An unknown id, or one older than 120 days, returns an error.

NameRequiredDescriptionDefault
idYesAn advisory id: CVE (CVE-2026-12345), GHSA (GHSA-xxxx-xxxx-xxxx), MAL or a Patchwire id. Any case; aliases resolve.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely new behavior: the payload contents (ranges, fixed versions, exploit conditions with their source sentence, summary, sources) and a 120-day retention cutoff that returns an error. The retention limit in particular is a constraint an agent cannot get from the annotations or schema.

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?

Two sentences, front-loaded with the action and the id contract, then the return shape and error case. No filler and nothing repeated for its own sake.

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, and the description compensates by summarizing exactly what comes back. Combined with the id namespace rules and the error condition, an agent has everything needed to call this correctly on the first attempt.

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% and the single `id` parameter already documents the accepted formats, case-insensitivity, and alias resolution with a regex pattern. The description restates the same facts rather than adding new constraint detail, so 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 specific verb and resource with explicit cardinality ('Read one advisory in full by id'), which cleanly separates it from the plural sibling get_advisories. It also enumerates the id namespaces (CVE, GHSA, MAL, Patchwire) so the agent knows exactly what kind of key to supply.

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?

'Use it after get_advisories or list_feed gave you an id' names the producing siblings and the condition under which this tool applies, giving clear routing instead of leaving the agent to infer. Failure conditions ('unknown id, or one older than 120 days, returns an error') further bound when a call will succeed.

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

get_platform_bulletinsPlatform bulletinsA
Read-onlyIdempotent
Inspect

Get the security bulletins and announced changes of hosting and data platforms, which are not npm packages and never show in a lockfile: Vercel, Supabase, Neon and the other platforms of the platform parameter. Returns up to 50, newest first; omit platform for all of them. For npm packages, use get_advisories.

NameRequiredDescriptionDefault
platformNoOne platform: vercel, supabase, cloudflare, railway, neon, postgres, clerk. Omit for every platform.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds substantive behavioral detail beyond that: result cap of 50 and newest-first ordering, which an agent needs to interpret output. It does not explain what happens past the 50-item cap, keeping it short of a 5.

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?

Two tight sentences with the core scope front-loaded and the sibling redirect last. The mid-sentence parenthetical about lockfiles and the parameter reference are slightly redundant, but nothing is 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 single optional-enum parameter and no output schema, the description supplies ordering and result-count behavior plus sibling routing, which is enough to call it correctly. Missing only the truncation/pagination story once the 50-item cap is hit.

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 100% and the enum values are fully documented there, including 'Omit for every platform.' The description restates the same semantics ('the other platforms of the platform parameter', 'omit platform for all of them') without adding syntax or edge-case meaning, so the baseline of 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?

Specific verb+resource: security bulletins and announced changes for hosting/data platforms. It explicitly carves out the boundary ('not npm packages and never show in a lockfile') and enumerates the covered platforms, so an agent can distinguish it from advisory-lookup tools 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 both directions of routing: use this for platform bulletins, and 'For npm packages, use get_advisories.' It also states the omission behavior ('omit platform for all of them'), so the no-argument path is unambiguous.

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

latest_safeSafe version per release lineA
Read-onlyIdempotent
Inspect

Find the version to upgrade to for one npm package. Returns, per release line (major, or minor for 0.x), the version that fixes every known advisory of the last 120 days; a line still affected has safe: null and the ids that keep it affected. Also lists advisories with no fix found, and says whether this package name itself is flagged as malicious. Use it after get_advisories, to pick one target version per line.

NameRequiredDescriptionDefault
packageYesOne npm package name as written in package.json, for example "next" or "@solana/web3.js".

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantive behavior: a 120-day advisory window, per-line resolution, 'safe: null' plus blocking ids when a line remains affected, unfixed advisories, and a malicious-package flag. Because there is no output schema, this return-shape disclosure is exactly what the agent needs.

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 the core action in the first sentence, then return semantics, then the workflow hint. Dense but each clause carries information; the nested parenthetical about major/minor lines is slightly heavy but earns its place.

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?

With no output schema, the description compensates well by describing the response fields (per-line version, safe: null, blocking ids, unfixed advisories, malicious flag). Only minor gaps remain, such as response ordering or how release lines are enumerated.

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 100% and the single parameter is fully documented in the schema, including the pattern and examples. The description only restates that it takes 'one npm package,' adding no format or edge-case guidance beyond the schema.

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: it finds the version to upgrade to for one npm package, per release line. The scope is precise enough to distinguish it from the advisory-lookup siblings, which return advisories rather than a chosen target version.

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?

Explicitly sequences it: 'Use it after get_advisories, to pick one target version per line,' which tells the agent exactly where this fits in a workflow. It stops short of naming a when-not condition or an alternative tool for the same job.

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

list_feedLatest advisoriesA
Read-onlyIdempotent
Inspect

List the latest advisories across every tracked stack, newest first, without a package list. Filter by sector (js, stack, ai, crypto) and severity; by default the last 7 days and at most 20 advisories (days 1 to 30, limit 1 to 50). An empty list means nothing matched. To check your own packages, use get_advisories instead.

NameRequiredDescriptionDefault
daysNoHow many days back, from 1 to 30. Default 7.
limitNoHow many advisories at most, from 1 to 50. Default 20.
sectionNoSector: js (JS runtimes and frameworks), stack (hosting and data platforms), ai (AI SDKs and agent tools), crypto (web3 libraries). Omit for every sector.
severityNoOnly this severity; watch is an announced change or upcoming fix. Omit for all.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description adds context instead: ordering (newest first), default 7-day window, cap of 20, and the meaning of an empty result. It does not mention pagination or whether results are deduplicated across stacks, which is the only real gap.

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?

One front-loaded paragraph with the scope first and the alternative last, which is the right order. It loses a little to redundancy, restating default values and numeric bounds that already live in the schema.

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 zero-required-param filtered list with no output schema, the description covers return ordering, the empty-result case, and the sibling alternative. Nothing an agent needs in order 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description largely restates what the schema already documents (defaults 7/20, ranges 1-30 and 1-50, the five severity values). It adds only the light framing that filters are optional, so the schema does the heavy lifting.

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 ('List the latest advisories'), plus scope ('across every tracked stack, newest first, without a package list'). It explicitly distinguishes itself from get_advisories, so an agent can route without opening either 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 both sides of the routing decision: use this for a broad feed, use get_advisories to check your own packages. Defaults and bounds are stated, and the sector/severity filters are framed as optional.

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. 5 tool updates
    • First observedget_advisories
    • First observedget_advisory
    • First observedget_platform_bulletins
    • First observedlatest_safe
    • First observedlist_feed

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources