<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Piks</title>
    <description>The latest articles on DEV Community by Piks (@piks).</description>
    <link>https://dev.to/piks</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3931291%2F5c716299-85f8-4071-afc0-9fccc7880083.jpeg</url>
      <title>DEV Community: Piks</title>
      <link>https://dev.to/piks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/piks"/>
    <language>en</language>
    <item>
      <title>audit-mcp-cli: Let AI Audit Your Node.js Dependencies</title>
      <dc:creator>Piks</dc:creator>
      <pubDate>Thu, 14 May 2026 13:15:31 +0000</pubDate>
      <link>https://dev.to/piks/audit-mcp-cli-let-ai-audit-your-nodejs-dependencies-38eh</link>
      <guid>https://dev.to/piks/audit-mcp-cli-let-ai-audit-your-nodejs-dependencies-38eh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A lightweight dependency vulnerability audit tool that works as both a CLI and an MCP Server — so your AI coding assistant can find and fix security issues for you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You run &lt;code&gt;npm audit&lt;/code&gt;. You get a wall of text. Some vulnerabilities are direct, some are buried five levels deep in your dependency tree. The output tells you &lt;em&gt;what's&lt;/em&gt; vulnerable, but figuring out &lt;em&gt;how it got there&lt;/em&gt; and &lt;em&gt;what to do about it&lt;/em&gt; takes manual effort.&lt;/p&gt;

&lt;p&gt;Now multiply that across every project you maintain.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;audit-mcp-cli&lt;/strong&gt; runs a full dependency vulnerability audit and produces a clean, structured report with &lt;strong&gt;complete dependency chains&lt;/strong&gt; — showing you the exact path from your &lt;code&gt;package.json&lt;/code&gt; to each vulnerable package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx audit-mcp-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. It auto-detects your package manager (npm or pnpm), runs the audit, and generates a Markdown or HTML report.&lt;/p&gt;

&lt;h2&gt;
  
  
  But Here's the Interesting Part
&lt;/h2&gt;

&lt;p&gt;It also runs as an &lt;strong&gt;MCP Server&lt;/strong&gt;. That means AI coding assistants like Claude and Cursor can call it directly.&lt;/p&gt;

&lt;p&gt;Instead of you reading an audit report, your AI assistant can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit your project's dependencies in conversation&lt;/li&gt;
&lt;li&gt;Show you exactly which vulnerabilities exist, their severity, and CVSS scores&lt;/li&gt;
&lt;li&gt;Trace the full dependency chain for each issue&lt;/li&gt;
&lt;li&gt;Suggest specific fixes with upgrade commands&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Set It Up in 30 Seconds
&lt;/h3&gt;

&lt;p&gt;Add this to your Claude Desktop config (&lt;code&gt;claude_desktop_config.json&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"audit-mcp-cli"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"audit-mcp-cli"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"--mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or for Cursor (&lt;code&gt;.cursor/mcp.json&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"audit-mcp-cli"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"audit-mcp-cli"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"--mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then just ask: &lt;em&gt;"Audit this project for vulnerabilities."&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Get
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Full Dependency Chains
&lt;/h3&gt;

&lt;p&gt;Not just "minimist has a vulnerability" — but:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-project → jest → @jest/core → jest-config → minimist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So you know exactly &lt;em&gt;why&lt;/em&gt; it's in your project and &lt;em&gt;how&lt;/em&gt; to remove it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Structured Reports
&lt;/h3&gt;

&lt;p&gt;Reports are sorted by severity (critical → high → moderate → low) with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVSS scores and vectors&lt;/strong&gt; — how bad is it, really?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CWE classifications&lt;/strong&gt; — what type of vulnerability?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advisory links&lt;/strong&gt; — full details from GitHub Advisory Database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix suggestions&lt;/strong&gt; — specific upgrade commands and target versions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transitive vulnerability attribution&lt;/strong&gt; — when package A is vulnerable because it depends on vulnerable package B, you see both, clearly separated&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Remote Repo Audit
&lt;/h3&gt;

&lt;p&gt;Audit any public or private GitHub repo without cloning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;audit-mcp-cli &lt;span class="nt"&gt;--remote&lt;/span&gt; github:facebook/react &lt;span class="nt"&gt;--ref&lt;/span&gt; main
audit-mcp-cli &lt;span class="nt"&gt;--remote&lt;/span&gt; github:facebook/react &lt;span class="nt"&gt;--ref&lt;/span&gt; v18.2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works with branches, tags, and commit SHAs.&lt;/p&gt;

&lt;h3&gt;
  
  
  CI/CD Integration
&lt;/h3&gt;

&lt;p&gt;Fail your pipeline when vulnerabilities exceed a threshold:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# GitHub Actions&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Security Audit&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npx audit-mcp-cli --fail-on high&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generic CI&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--fail-on&lt;/span&gt; high &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"pass"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"fail"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ignore Mechanism
&lt;/h3&gt;

&lt;p&gt;Accept known risks and track them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;.audit-mcp-cli-ignore.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ignore"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"packageName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"minimist"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"advisorySource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1179&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Accepted risk, limited impact in our usage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"expiresAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2025-12-31T00:00:00Z"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ignored vulnerabilities appear in a separate report section and don't trigger &lt;code&gt;--fail-on&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Reference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Audit current directory&lt;/span&gt;
npx audit-mcp-cli

&lt;span class="c"&gt;# Specific project&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--path&lt;/span&gt; /path/to/project

&lt;span class="c"&gt;# Remote GitHub repo&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--remote&lt;/span&gt; github:owner/repo &lt;span class="nt"&gt;--ref&lt;/span&gt; main

&lt;span class="c"&gt;# HTML report&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--format&lt;/span&gt; html &lt;span class="nt"&gt;--output&lt;/span&gt; report.html

&lt;span class="c"&gt;# Only show high and critical&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--severity&lt;/span&gt; high

&lt;span class="c"&gt;# CI: fail on high+&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--fail-on&lt;/span&gt; high

&lt;span class="c"&gt;# MCP Server mode&lt;/span&gt;
npx audit-mcp-cli &lt;span class="nt"&gt;--mcp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Tech Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;npm + pnpm support&lt;/strong&gt; — auto-detects package manager by lockfile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js &amp;gt;= 18&lt;/strong&gt; — no extra runtime requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero config&lt;/strong&gt; — works out of the box&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight&lt;/strong&gt; — minimal dependencies (commander, execa, eta, zod, MCP SDK)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual&lt;/strong&gt; — English and Chinese (auto-detects system language, override with &lt;code&gt;--lang&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT License&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Run directly (no install needed)&lt;/span&gt;
npx audit-mcp-cli

&lt;span class="c"&gt;# Or install globally&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; audit-mcp-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;npm&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/audit-mcp-cli" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/audit-mcp-cli&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/double527/audit-mcp-cli" rel="noopener noreferrer"&gt;https://github.com/double527/audit-mcp-cli&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you find this useful, a star on GitHub goes a long way. Issues and PRs welcome.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>node</category>
      <category>security</category>
    </item>
  </channel>
</rss>
