dependency-audit-mcp
Provides tools to audit a project's npm dependencies against the live npm registry, reporting outdated, deprecated, and license information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dependency-audit-mcpAudit this repo's dependencies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dependency-audit-mcp
Give your coding agent real eyes on how stale and risky your dependencies are.
An MCP server that audits a project's npm dependencies against the live registry. Feed it a package.json and the agent gets a per-dependency report: how far behind latest each package is (patch / minor / major), how many versions behind, whether it's deprecated, and its license — real facts, not a guess from training data.
Why this exists
Ask an agent "what's outdated here?" and it will happily hallucinate version numbers. The npm registry knows the truth. This server hands the agent that truth in one call, and pairs naturally with breaking-changes-mcp — audit to find what's behind, then check the breaking changes before you bump.
Related MCP server: npm-mcp
Tools
Tool | What it does |
| Full report from a |
| One-off lookup for a single package — latest version, how far behind your range is, deprecation, license. |
No API key required.
Quick start
npx dependency-audit-mcpClaude Code
claude mcp add dependency-audit -- npx -y dependency-audit-mcpClaude Desktop / Cursor / Windsurf / any MCP client
{
"mcpServers": {
"dependency-audit": {
"command": "npx",
"args": ["-y", "dependency-audit-mcp"]
}
}
}Example prompts
"Audit this repo's dependencies — what's outdated or deprecated?" (agent reads
package.json, callsaudit_dependencies)"Is
requestdeprecated? What should I use instead?""How far behind is my
^4.17.0of lodash?"
Output at a glance
✓ up-to-date · patch △ minor ⚠ major behind
package range → latest gap behind license
⚠ react ^17.0.2 → 19.1.0 major 210 MIT
△ zod ^3.20.0 → 3.23.8 minor 28 MIT
⚠ request ^2.88.0 → 2.88.2 patch Apache-2.0 DEPRECATEDConfig
Env var | Default | Purpose |
|
| Override for private/mirror registries. |
How it works
package.json text
│
├─ parse dependencies / devDependencies (+ optional peer)
├─ for each dep → npm registry metadata (bounded concurrency)
├─ semver-diff installed lower-bound vs dist-tags.latest
└─ collect deprecation + license ──► sorted, worst-first reportNon-registry ranges (workspace:, file:, git+…, *) are listed as skipped rather than guessed at.
Develop
npm install
npm run build
node dist/index.jsLicense
MIT © Anicodeth
Available Tools
2 toolsaudit_dependenciesAudit a project's npm dependenciesA
Given the contents of a package.json, report every dependency's freshness against the npm registry: how far behind latest it is (patch/minor/major), how many versions behind, whether it's DEPRECATED, and its license. Reach for this when asked to 'update dependencies', 'check what's outdated', 'is anything deprecated', or before a dependency bump — it gives the agent real registry facts instead of guessing from stale training data. Read the repo's package.json and pass its full text as packageJson.
| Name | Required | Description | Default |
|---|---|---|---|
| includeDev | No | Include devDependencies (default true). | |
| includePeer | No | Include peerDependencies (default false). | |
| packageJson | Yes | The FULL text of the package.json file to audit (JSON). The tool parses dependencies from it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool queries the npm registry and produces a report with specific fields. However, it doesn't state whether the tool is read-only, potential rate limits, or failure modes. The 'real registry facts' line adds rationale rather than behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with no filler. The first sentence front-loads the core purpose and outputs. The second sentence provides clear usage guidance and input preparation. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description adequately lists the return fields (patch/minor/major, versions behind, deprecated, license) and gives strong usage context. It could mention edge cases (e.g., invalid package.json, registry unavailability) or error handling, but for an audit tool the key information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds value by directing the agent to read the repo's package.json and pass it as the `packageJson` parameter, which clarifies the expected input. It doesn't expand on includeDev/includePeer beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports each dependency's freshness against the npm registry, including how far behind (patch/minor/major), versions behind, deprecated status, and license. This is a specific verb+resource with concrete outputs. However, it does not differentiate itself from the sibling tool 'check_package'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives trigger phrases ('update dependencies', 'check what's outdated', 'is anything deprecated') and context (before a dependency bump). It also instructs the agent to read the repo's package.json and pass its full text. It lacks exclusions or mentions of alternatives, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_packageCheck a single package's statusA
Look up one npm package: its latest version, how far a given range/version is behind, deprecation status, and license. Use for a quick one-off check ('is X deprecated?', 'what's the latest Y?', 'how far behind is my Z?') without needing a whole package.json.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | npm package name, e.g. 'lodash', '@types/node'. | |
| range | No | The version or range you currently use, e.g. '^4.17.0'. Defaults to 'latest' (reports latest only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the read-only nature via 'Look up' and 'reports', and lists the specific data returned (version, range lag, deprecation, license). It does not mention error behavior or rate limits, but for a simple lookup this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence front-loads the core purpose and outputs; the second provides usage guidance. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema), and the description covers all essential return values, usage context, and alternatives. It is fully self-contained for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds meaning by explaining how the 'range' parameter works ('how far a given range/version is behind') and provides usage examples. This exceeds the baseline of 3 by giving context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Look up') and resource ('one npm package'), and lists concrete outputs: latest version, range comparison, deprecation status, and license. It explicitly contrasts with 'single package' vs. the sibling 'audit_dependencies', making the distinction clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage context: 'Use for a quick one-off check... without needing a whole package.json.' This implies when to use this tool over a bulk audit, though it doesn't name the alternative explicitly. The exclusion ('without needing a whole package.json') gives practical guidance.
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. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
audit_dependencies - First observed
check_package
TDQS
The two tools have clearly distinct scopes: audit_dependencies evaluates an entire package.json against the registry, while check_package focuses on a single package. There is no ambiguity about which tool to use for a given request.
Both tools follow the same verb_noun pattern with lowercase and underscores: 'audit_dependencies' and 'check_package'. The naming is consistent and predictable.
With only two tools, the server feels thin for a general dependency-audit purpose, but it does cover the two primary use cases: whole-project audit and single-package lookup. The count is borderline but not unreasonable for such a narrow domain.
The core auditing operations are covered: checking a full dependency set and checking an individual package. Minor gaps exist, such as lack of support for lockfiles or batch version comparisons, but these are workarounds and not severe.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
The official e18e MCP server keeping your agent in check from installing bloated dependencies.
Publish and discover MCP servers via the official MCP Registry. Powered by HAPI MCP server.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server to search npm packages, view details, compare, check downloads, and inspect dependencies.656MIT
- AlicenseBqualityCmaintenanceMCP server for npm package management — publish, install, audit, search, security & dependency health38551MIT
- AlicenseAqualityDmaintenanceMCP server providing npm registry search, package details, dependency auditing, bundle size estimation, and package comparison tools for AI agents.551MIT
- FlicenseAqualityDmaintenanceAn MCP server that performs comprehensive health checks on project dependencies for JavaScript and Python projects, detecting outdated packages and fetching changelogs.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Anicodeth/dependency-audit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server