---
title: "Blog. Lazaretto"
description: "Guides on verifying AI agent skills, tools, and packages before install: supply-chain security, malware detection, and the x402 pay-per-call model."
url: "https://lazaretto.dev/blog"
---

[Home](https://lazaretto.dev/) / Blog

Blog

# Notes on verifying what agents install

Supply-chain attacks, malware detection, false positives, and paying per call over x402.

- 2026-07-17

  [How to vet an MCP server before you connect it to your agent](https://lazaretto.dev/blog/vet-an-mcp-server-before-you-connect-it)

  An MCP server runs with your agent’s access to files, tools, and credentials. A practical checklist for deciding whether to trust one, before you connect it.
- 2026-07-17

  [Why an automated dependency scan flags packages that are fine](https://lazaretto.dev/blog/why-dependency-scanners-cry-wolf)

  We ran a behavioral scan over the most-installed npm packages. Most are clean, and the ones that get flagged are mostly legitimate code that happens to look like an attack. Here is how to tell the difference.
- 2026-07-17

  [Scan your dependencies for malware in GitHub Actions](https://lazaretto.dev/blog/scan-dependencies-for-malware-github-actions)

  Add one step to CI and every pull request that touches your dependencies gets checked for malicious behavior before it merges. Here is how, with the Lazaretto GitHub Action.
- 2026-07-16

  [How to tell if an npm package is malicious before you install it](https://lazaretto.dev/blog/how-to-tell-if-an-npm-package-is-malicious)

  Most malicious npm packages give themselves away if you know where to look: install scripts, credential reads, odd network calls, obfuscation. Here is what to check, and how to automate it.
- 2026-07-16

  [Why a scan verdict has to be tied to a hash](https://lazaretto.dev/blog/why-a-scan-verdict-needs-a-hash)

  A scan tells you a package was fine when it was scanned, not when you install it. Binding the verdict to a content hash closes that time-of-check to time-of-use gap.
- 2026-07-14

  [SSH keys, cloud creds, wallets: what a malicious agent skill actually steals](https://lazaretto.dev/blog/what-a-malicious-agent-skill-steals)

  Malicious AI-agent skills and packages target the same high-value secrets every time. Here is what they go after, how they hide it, and how to check a skill before it runs on a machine full of credentials.
- 2026-07-14

  [How to check an MCP server for malware before you add it](https://lazaretto.dev/blog/check-an-mcp-server-for-malware-before-adding-it)

  MCP servers run with real access to your tools and data. Before an agent connects to a third-party one, verify it: a free known-bad lookup and a deterministic scan of the package it ships.
- 2026-07-14

  [Pay-per-call verification: how an agent scans a package without an account](https://lazaretto.dev/blog/pay-per-call-verification-x402-for-agents)

  Lazaretto is priced per call over x402 (USDC on Base), so an autonomous agent can discover the price, pay, and get a scan inline, with no signup and no key. Here is how the flow works.
- 2026-07-14

  [How to verify a skill or package before your AI agent installs it](https://lazaretto.dev/blog/verify-a-skill-before-your-agent-installs-it)

  Autonomous agents install third-party skills, MCP servers, and npm packages on the fly. Here is how to check one for malicious behavior before it runs, with a free known-bad lookup and a deterministic scan.

---

Machine-readable index: https://lazaretto.dev/llms.txt. OpenAPI: https://lazaretto.dev/openapi.json. MCP endpoint: https://lazaretto.dev/mcp. Any page on this site is available as markdown by adding .md to its path.
