mcp-npm-tools
Provides tools for managing Node.js packages, including dependency auditing and bundle size estimation, enabling AI agents to analyze and compare Node.js packages from the npm registry.
Provides tools for searching npm packages, retrieving detailed package information, auditing dependencies for outdated or vulnerable packages, estimating bundle sizes, and comparing packages across multiple metrics. Integrates with the npm registry and Bundlephobia API.
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., "@mcp-npm-toolscompare bundle sizes of react and vue"
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.
mcp-npm-tools
MCP server providing npm and Node.js package management tools for AI agents.
Tools
npm_search
Search the npm registry for packages by keyword. Returns name, description, version, weekly downloads, and last publish date.
npm_package_info
Get detailed information about a specific npm package: all published versions, dependencies, maintainers, repository URL, license, unpacked size, npm quality/popularity/maintenance scores, and weekly download count.
npm_dependency_audit
Analyze a package.json file to find outdated dependencies (compares pinned/range version against latest), deprecated packages, and known security vulnerabilities via the npm bulk advisory API.
npm_bundle_size
Estimate the bundle size of an npm package using the Bundlephobia API. Returns minified size, gzipped size, dependency count, and tree-shaking support indicators.
npm_compare_packages
Compare two or more packages side by side across multiple dimensions: weekly downloads, bundle size, number of runtime dependencies, last publish date, GitHub stars, and license.
Related MCP server: mcp-server-npm
Setup
npm install
npm run buildUsage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"npm-tools": {
"command": "node",
"args": ["D:/products/mcp-servers/mcp-npm-tools/dist/index.js"]
}
}
}Development
npm run build # compile TypeScript
npm start # run the serverLicense
MIT
Available Tools
5 toolsnpm_bundle_sizeA
Estimate the bundle size of an npm package using the Bundlephobia API. Returns minified size, gzipped size, and dependency count.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Specific version to check (optional, defaults to latest) | |
| package_name | Yes | npm package name (e.g. 'lodash') |
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 use of an external API and the return fields, but does not mention potential rate limits, error behavior, or network dependencies. This is useful but not rich.
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 two sentences, front-loaded with the action and resource, and includes output details. No unnecessary words, making it highly efficient.
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?
For a simple 2-parameter tool with no output schema, the description sufficiently covers purpose and return values. However, it omits error handling or API-specific caveats, so not fully complete.
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?
The input schema has 100% parameter coverage with clear descriptions, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides.
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 estimates bundle size using the Bundlephobia API and lists the returned metrics (minified size, gzipped size, dependency count). This distinguishes it from siblings like npm_search and npm_package_info.
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 implies a use case (estimating bundle size) but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or mention when to prefer npm_package_info or npm_compare_packages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_compare_packagesA
Compare 2 or more npm packages side by side: weekly downloads, bundle size, dependency count, last update, GitHub stars, and license.
| Name | Required | Description | Default |
|---|---|---|---|
| packages | Yes | Array of package names to compare (min 2, max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adequately describes the core action and data points, but does not mention whether it is read-only, any potential network latency, or what the output format looks like. It is not misleading, but lacks the extra context that annotations would provide.
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 a single, dense sentence that front-loads the primary verb and resource, and then adds specific metrics. Every phrase earns its place; there is no fluff or redundancy.
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?
Given the simple single-parameter schema and no output schema, the description sufficiently lists all comparison dimensions and implies the need for 2+ packages. It does not explicitly mention output format or alternatives to sibling tools, but for a tool this straightforward, it is largely complete.
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?
The schema already provides a complete description for the 'packages' parameter, including type and min/max constraints. The tool description merely reinforces the comparison context without adding new parameter-level information. With high schema coverage, the baseline of 3 applies.
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 uses a specific verb ('Compare') and identifies the exact resource (npm packages), then enumerates the comparison dimensions (weekly downloads, bundle size, dependency count, last update, GitHub stars, license). This clearly distinguishes it from sibling tools like npm_search or npm_package_info, which focus on individual package lookup or search.
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 clearly implies a side-by-side comparison use case for multiple packages, which sets it apart from single-package tools. However, it does not explicitly state when not to use it (e.g., for a single package) or name alternatives like npm_package_info. Clear context with no exclusions earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_dependency_auditA
Analyze a package.json to find outdated dependencies (compare installed vs latest), deprecated packages, and known security vulnerabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| package_json | Yes | The full contents of a package.json file as a string |
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 core behavior (comparing installed vs latest, checking for deprecated and vulnerable packages) but does not mention output format, side effects, or network usage. It is transparent enough for a basic understanding but lacks depth.
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 a single, concise sentence that is front-loaded with the key action and outcomes. No extraneous information.
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 with one parameter and no output schema. The description covers the main functionality but does not mention what the tool returns or the report structure. Given the lack of output schema, this is a notable omission, though the core purpose is clear.
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% since the single parameter has a clear description. The tool description adds context about how the parameter is used but does not provide syntax or format details beyond the schema. Baseline 3 is appropriate.
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 analyzes a package.json to find outdated dependencies (with installed vs latest comparison), deprecated packages, and known security vulnerabilities. This specific verb+resource combination distinguishes it from sibling tools like npm_search or npm_package_info.
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 implies when to use the tool: for auditing dependency health. It provides clear context but does not explicitly mention alternatives or exclusions. The context is strong enough for an agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_package_infoA
Get detailed information about an npm package: all versions, dependencies, maintainers, repository, license, size, npm score, and weekly downloads.
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | Exact npm package name (e.g. 'express', '@types/node') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It implies a read-only operation via 'Get' and enumerates what data is returned, but it does not disclose potential error conditions, rate limits, or authentication requirements. This is adequate but not rich.
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 a single, well-structured sentence that lists the tool's capabilities without unnecessary words. It front-loads the core purpose and efficiently communicates the scope.
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?
For a simple single-parameter read tool with no output schema, the description is remarkably complete: it enumerates all major return categories, leaving little ambiguity about what the tool provides. The absence of an output schema is compensated by this detailed enumeration.
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?
The input schema fully describes the only parameter (package_name) with an exact format and examples, giving 100% coverage. The description adds no further semantic value beyond the schema, so the baseline of 3 is appropriate.
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 uses a specific verb ('Get') and resource ('npm package') and lists numerous concrete outputs (versions, dependencies, maintainers, repository, license, size, npm score, weekly downloads). This clearly distinguishes it from sibling tools like npm_search or npm_compare_packages, which focus on other tasks.
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 clearly implies this tool is for retrieving comprehensive details about a specific npm package, providing clear context for when to use it. However, it does not explicitly mention alternatives or state when not to use it, which 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.
npm_searchA
Search the npm registry for packages by keyword. Returns name, description, version, weekly downloads, and last publish date for each result.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default: 10, max: 50) | |
| keyword | Yes | Search keyword or phrase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As no annotations are provided, the description carries the full burden. It discloses that it returns specific fields (name, description, version, weekly downloads, last publish date), but does not cover additional behavioral traits such as sorting, pagination, or rate limits. The behavior is basic but not deeply transparent.
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 two sentences, front-loaded with the purpose, and every sentence provides relevant information about the function and return values. No wasted words.
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?
Given the absence of an output schema, the description appropriately lists the return fields, making it clear what the agent can expect. It covers the essential context for a simple search tool, though it doesn't mention nuances like sort order or result relevance, which are not critical.
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?
The input schema already provides 100% coverage for both parameters (keyword and limit) with descriptive text. The description adds no extra meaning beyond what is in the schema, so the baseline 3 is appropriate.
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's purpose: 'Search the npm registry for packages by keyword.' It uses a specific verb (search) and resource (npm registry), and also lists the return fields, which distinguishes it from sibling tools like npm_package_info or npm_dependency_audit.
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 implies usage for searching packages but does not explicitly mention when to use it versus alternatives. There is no guidance about exclusions or scenarios where other tools like npm_package_info would be more appropriate, so it lacks explicit usage differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct aspect of npm packages: searching, detailed info, dependency audit, bundle size, and comparison. No two tools overlap in purpose, and the descriptions make their boundaries clear.
All tool names share the npm_ prefix and use lowercase with underscores, but the pattern mixes verb-first names (npm_search, npm_compare_packages) with noun-phrase names (npm_package_info, npm_dependency_audit). This is generally predictable but not perfectly uniform.
With exactly 5 tools, the server is well-scoped for an npm utility toolkit. Each tool covers a meaningful function without bloat, and the count feels appropriate for the domain.
The set covers the core needs for npm package exploration: search, detailed inspection, dependency auditing, bundle size estimation, and side-by-side comparison. No obvious missing operations within the apparent purpose.
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
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Dive into the world of npm with our NPM Package Info MCP. Access crucial metadata about any npm
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
The official e18e MCP server keeping your agent in check from installing bloated dependencies.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for npm — search packages, check bundle sizes, scan vulnerabilities, compare downloads, inspect dependencies.8561MIT
- AlicenseAqualityDmaintenanceMCP server to search npm packages, view details, compare, check downloads, and inspect dependencies.656MIT

@lpm-registry/mcp-serverofficial
AlicenseAqualityCmaintenanceMCP server for the LPM package registry, enabling AI tools to search, browse source code, install packages, check quality, and more.1718ISC- AlicenseAqualityCmaintenanceMCP server that provides npm package information for AI agents during TypeScript development.7191MIT
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/rog0x/mcp-npm-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server