Skip to main content
Glama

Server Details

Free lockfile malware check plus paid pre-install scan of any skill, tool, or package.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
jamesdfinance-dev/lazaretto-mcp
GitHub Stars
0
Server Listing
lazaretto-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation: lockfile advisory scanning, hash indicator lookup, deep artifact analysis, and attestation verification. Inputs and payment/free semantics are different enough that an agent should rarely misselect.

Naming Consistency4/5

Three tools follow a clear verb_noun pattern: check_lockfile, scan_artifact, and verify_attestation. known_bad_lookup breaks the pattern as a noun phrase, but it is still readable and consistent in snake_case.

Tool Count5/5

Four tools is well-scoped for this server's purpose: free lockfile checks, free hash lookups, the metered deep scan, and attestation verification. No tool is redundant or extraneous.

Completeness5/5

The tool surface covers the main security workflows: checking lockfiles, looking up known-bad hashes, deep-scanning artifacts, and verifying attestations without rescanning. There are no obvious dead ends or missing core operations.

Available Tools

4 tools
check_lockfileAInspect

Check every EXACTLY-PINNED dependency in a lockfile against published malicious-package advisories (OSV/OpenSSF). Free, anonymous, one call for the whole tree. Accepts the contents of a package-lock.json, yarn.lock, or pnpm-lock.yaml. Only exact versions can be answered: a range like ^5.0.0 has no definitive answer because a compromised release usually sits between clean ones. Fail-closed: anything that could not be checked is returned in unverified, so an empty malicious list is an all-clear only when unverified is empty too.

ParametersJSON Schema
NameRequiredDescriptionDefault
lockfileYesThe full text contents of a package-lock.json, yarn.lock, or pnpm-lock.yaml.
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool is free and anonymous, and explains fail-closed behavior: 'anything that could not be checked is returned in `unverified`, so an empty `malicious` list is an all-clear only when `unverified` is empty too.' This provides key behavioral context beyond a simple mutation warning. It does not contradict any annotations, as none exist.

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?

The description is three sentences, each purposeful and informative. The first sentence fronts the core purpose. No redundant or vague language exists. Every sentence earns its place, making it highly efficient for an AI agent to parse.

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 the tool's simplicity (one required parameter, no output schema), the description adequately covers usage context and output semantics. It explains fail-closed behavior and the meaning of the 'unverified' list, giving agents enough information to interpret results. However, without an output schema, a more explicit listing of return fields (e.g., 'malicious', 'unverified') would improve completeness.

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?

The schema covers 100% of parameters (only 'lockfile') with a clear description. The description adds value by specifying the accepted formats: 'Accepts the contents of a package-lock.json, yarn.lock, or pnpm-lock.yaml.' This clarifies that the input must be the full text, not a path or URL, which is not explicit in the schema. Since schema coverage is high, baseline is 3, and the description provides meaningful extra detail, earning a 4.

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 clearly states the tool's purpose: 'Check every EXACTLY-PINNED dependency in a lockfile against published malicious-package advisories (OSV/OpenSSF).' It specifies the verb 'check', the resource 'dependencies in a lockfile', and the scope 'malicious-package advisories'. This distinguishes it from siblings like 'known_bad_lookup' and 'scan_artifact', which target individual packages or artifacts rather than lockfile trees.

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 explains when to use the tool: 'Free, anonymous, one call for the whole tree.' It also clarifies a limitation: 'Only exact versions can be answered: a range like ^5.0.0 has no definitive answer.' This implies that users should only use this tool for lockfiles with pinned versions. However, it does not explicitly contrast with sibling tools, missing a direct 'when not to use' statement.

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

known_bad_lookupAInspect

Check a SHA-256 against Lazaretto's known-bad indicator set (refreshed daily from abuse.ch). Free and anonymous. A miss only means this exact hash is not in the indicator set; it is not a clean verdict on the artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
sha256Yes64 hex chars, optionally sha256: prefixed
Behavior5/5

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

With no annotations provided, the description carries full burden and excellently discloses behavior: the set is refreshed daily, the lookup is free and anonymous, and a miss does not imply a clean verdict. No contradictions.

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?

The description is concise, consisting of two sentences that front-load the essential action and limitation. Every sentence adds value, and there is no extraneous 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?

Given the single parameter, no output schema, and clear explanation of behavior and limitations, the description is fully complete for an agent to select and invoke the tool correctly.

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 fully describes the sha256 parameter (64 hex chars, optional prefix). The description does not add additional parameter semantics beyond what the schema provides, so baseline score 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 clearly states the action ('Check a SHA-256 against Lazaretto's known-bad indicator set') and distinguishes itself from sibling tools like check_lockfile and scan_artifact by focusing specifically on hash lookups against a curated indicator set.

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 mentions that the tool is free and anonymous and clarifies the meaning of a miss ('not a clean verdict'). However, it does not explicitly specify when to use this tool versus alternatives like scan_artifact, which might provide broader analysis.

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

scan_artifactAInspect

Deterministically analyze a package, repo, skill, or file for malicious behavior (credential theft, data exfiltration, obfuscation, prompt injection aimed at the agent, install scripts) and return a verdict (malicious, flagged, clear, error) with the exact evidence and a hash of what was scanned. Metered: present an X-API-Key holding credits. If you hold a wallet instead of an account, pay per call over x402 at POST https://lazaretto.dev/v1/scan ($0.03 USDC on Base, no signup). A free key with a daily allowance is available at POST https://lazaretto.dev/v1/trial. For checks that are always free, use check_lockfile or known_bad_lookup.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoThe locator: an npm spec (name@version), a GitHub repo URL, a ClawHub skill id, or a raw file URL. Omit for type=inline.
typeYesWhat kind of artifact ref points at.
depthNolookup = known-bad match only; full = full behavioral analysis.full
contentNoRaw file content, required when type=inline.
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 analysis is deterministic, states the output verdicts (malicious, flagged, clear, error), mentions exact evidence and hash, and reveals metering/payment behavior. It stops short of describing rate limits or full response structure, but the core behavioral traits are covered.

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 first sentence is a bit long but front-loads the core purpose effectively. The payment and alternative-tool information is relevant and justified given the tool's metered nature, though the several payment URLs and cost details make the description denser than ideal.

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 the tool has no output schema and no annotations, the description compensates well by explaining the verdict, evidence, hash, payment requirements, and free alternatives. It could briefly mention expected response structure or error cases, but on the whole it provides enough context for an agent to call the tool correctly.

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 documents all four parameters at 100% coverage, so the baseline is 3. The description does add some semantic context, such as 'lookup' meaning known-bad match only in the depth description, but this mostly mirrors the schema's own parameter descriptions rather than contributing substantial new meaning.

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 clearly identifies a specific action ('deterministically analyze'), the resource type ('package, repo, skill, or file'), and the exact purpose ('malicious behavior'), listing concrete threat categories. It differentiates from siblings by explicitly stating that check_lockfile and known_bad_lookup are for always-free checks.

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?

The description provides clear direction on when to use this tool versus alternatives, explicitly naming check_lockfile and known_bad_lookup for free checks. It also supplies practical authorization instructions: API key, wallet-based x402 payment, and a free trial key endpoint, which is unusually actionable.

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

verify_attestationAInspect

Verify a Lazaretto scan attestation that another agent (or a README, or a lockfile) handed you, WITHOUT re-scanning or paying. Free and anonymous. Returns whether the signature is valid and Lazaretto's, the attested claims (verdict, risk, and the subject the verdict is about), and a contradicted flag if a previously-clear subject is now known-bad. You MUST still confirm the artifact you are about to run matches claims.sub (its sha256, or its package identity).

ParametersJSON Schema
NameRequiredDescriptionDefault
attestationYesThe compact-JWS attestation string from a scan report.
Behavior5/5

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

With no annotations provided, the description fully carries the burden of behavioral disclosure. It clearly states the tool is free and anonymous, does not rescan, returns specific outputs (signature validity, claims, contradicted flag), and explains the meaning of 'contradicted'. This is rich behavioral context that goes beyond what one would expect, covering side effects, return values, and logical 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 front-loaded with the core action and then expands with essential context. It is slightly longer than the minimum but every sentence earns its place: the 'free and anonymous' note, return-value summary, and security caveat all add value. Structure is logical and easy to parse. A 5 would require even tighter phrasing with no redundancy.

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 the tool has only one parameter, no annotations, and no output schema, the description does a solid job of explaining return values and prerequisites. It clearly states what the function returns and even explains the 'contradicted' flag. However, it leaves some ambiguity about the exact shape of the return (e.g., is 'valid' a boolean? how are claims nested?). A tiny bit more detail on return structure would make it complete, but as-is it is quite comprehensive.

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 schema has 100% coverage for the single parameter 'attestation', so the description does not need to add much for the parameter itself. The description adds context about where attestations come from (another agent, README, lockfile) and underscores the need to cross-check claims.sub, but it does not elaborate on the compact-JWS format beyond the schema. This is adequate but not exceptional, so a baseline 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 a specific verb ('Verify') and a specific resource ('Lazaretto scan attestation'), immediately clarifying the action. It also distinguishes itself from sibling tools by explicitly stating 'WITHOUT re-scanning or paying', which differentiates it from scan_artifact. This makes the tool's purpose unmistakable and well-scoped.

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 gives clear context for when to use this tool: when handed an attestation by another agent, README, or lockfile. It also provides an important caution ('You MUST still confirm the artifact... matches claims.sub'), which is a usage guideline. However, it does not explicitly name alternative tools (e.g., scan_artifact) or state when to avoid this tool, so it misses the 'when-not' dimension that would earn a 5.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Static security scanner for AI agent skill packages that detects malicious SKILL.md files and bundled scripts before they run.
    15
  • A
    license
    A
    quality
    F
    maintenance
    Acts as a security checkpoint for AI coding agents by intercepting package installations to verify existence, check against CVE databases, and block vulnerable or hallucinated dependencies before they reach your codebase. Provides seven security tools including pre-install gates, full project audits, safe version recommendations, and deep transitive dependency scanning for npm and PyPI packages.
    7
    13
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Audits your package-lock.json for supply-chain attacks before install. Cross-checks every resolved entry against the live npm registry to detect integrity mismatches, new install scripts, and other malicious signals.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.