Skip to main content
Glama

NPM MCP Banner

NPM MCP

Model Context Protocol server for npm registry

Search packages, check security, compare versions, and validate compatibility. Use it from Cursor AI or Claude Desktop.

Note: This is an unofficial, community-driven MCP server and is not affiliated with or endorsed by npm, Inc.

Features

  • Auto-Security — AI automatically checks packages before suggesting install (no user action!)

  • Capabilities Analysis — ESM/CJS, TypeScript, Platform support (Node/Browser/Deno), Build tools

  • Quick Start Generator — Ready-to-use code examples for any package

  • Package Comparison — Compare alternatives side-by-side (features, size, popularity)

  • Bundle Size Analysis — Minified/gzipped sizes, tree-shaking, impact on your bundle

  • Similar Packages — Find alternatives and similar packages

  • Search — Find packages with ranking and scores

  • Details — Versions, dependencies, download stats, deprecation status

  • Security — Vulnerability check and safe version tips

  • Compatibility — Peer dependency and version conflicts

  • Quality — Maintenance and community metrics

  • Version compare — Breaking changes and semver

  • NPX check — Validate npx commands before running

Related MCP server: NPM Sentinel MCP

Install & use

No global install. Add to Cursor or Claude config:

Cursor~/.cursor/mcp.json:

{
  "mcpServers": {
    "npm-registry-mcp": {
      "command": "npx",
      "args": ["@alisaitteke/npm-mcp"]
    }
  }
}

Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "npm-registry-mcp": {
      "command": "npx",
      "args": ["@alisaitteke/npm-mcp"]
    }
  }
}

Global install (optional)

npm install -g @alisaitteke/npm-mcp

Then use "command": "npm-mcp" (no args) in the config above.

What you can ask

Once the server is connected, you can ask things like:

  • “Search for React state management libraries”

  • “Security audit for express@4.18

  • “Is lodash@4.17 compatible with my current deps?”

  • “Compare React 17 and 18”

  • “Quality check for date-fns”

  • “Is it safe to run npx create-next-app?”

License

MIT

Contributors

Thanks to everyone who helps improve this project!

Contributors

Available Tools

12 tools
analyze_bundle_sizeA

Analyze bundle size impact and answer "how big is this package?" or "will this slow down my app?" questions. Returns minified size, gzipped size, tree-shaking support analysis, and generates recommendations for lighter alternatives if package is large. Includes comparison with similar packages and actionable advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific version (optional)
packageNameYesName of the package

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It does well by specifying what the tool returns (minified size, gzipped size, tree-shaking analysis), the conditional behavior (generates recommendations 'if package is large'), and that it includes comparison with similar packages. It lacks some details like whether network calls are made or how 'large' is determined, but still provides substantial transparency.

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 a single, information-dense sentence that front-loads the purpose, then efficiently enumerates key outputs and the conditional recommendation behavior. Every clause adds value without redundancy or fluff. It is appropriately sized for the tool's complexity.

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?

The description is largely complete for an analysis tool: it covers purpose, outputs, and conditional behavior, and the schema covers parameter semantics. However, there is no output schema, so the description could have indicated units (e.g., bytes/kB) or how to interpret results. Minor gaps prevent a perfect score, but it is well above minimal viability.

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?

Schema description coverage is 100%, and both parameters (packageName, version) have basic descriptions in the schema. The tool description adds no additional parameter-level meaning beyond what the schema already supplies; it refers to the package generally but does not explain version syntax or required vs. optional. Baseline 3 is appropriate given full schema coverage.

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 uses a specific verb ('Analyze') with a clear resource ('bundle size') and states explicit question types it answers ('how big is this package?', 'will this slow down my app?'). It distinguishes itself from siblings by focusing on bundle size impact, including minified/gzipped sizes, tree-shaking support, and recommendations, which separates it from other analysis tools like analyze_quality or check_compatibility.

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 use cases by framing the tool around common user questions, which implies when to choose it (bundle size concerns). However, it does not explicitly state when not to use it or mention alternatives like find_similar_packages or compare_packages, despite overlapping features (comparison with similar packages). This is clear context but lacks exclusions.

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

analyze_capabilitiesA

Analyze package technical capabilities to answer "does this support ESM/TypeScript?" or "what platforms does this work on?" questions. Shows module system (ESM/CJS), TypeScript support, platform compatibility (Node/Browser/Deno), build tools, and engine requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific version (optional, defaults to latest)
packageNameYesName of the package to analyze

TDQS

A4/5.0
Behavior3/5

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 lists what the tool shows (module system, TS support, platforms, etc.) but does not explicitly state that it is a read-only analysis, that it likely fetches external data, or any limitations. The verb 'Analyze' implies non-mutating behavior, but this is not stated outright.

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 two sentences: the first establishes intent and examples, the second lists specific outputs. It is front-loaded, free of redundant phrases, and every sentence earns its place.

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?

For a 2-parameter analysis tool with no output schema, the description gives a clear picture of what to expect (the listed capability dimensions) and when to use it. It lacks explicit output structure details, but the list of aspects is sufficient for an agent to select 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?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter semantics beyond what the schema already provides. It does not mention any nuances such as version format or package name constraints.

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 begins with a specific verb 'Analyze' and resource 'package technical capabilities', then gives concrete example questions and an explicit list of output dimensions (module system, TypeScript support, platform compatibility, build tools, engine requirements). This clearly distinguishes it from sibling tools like analyze_bundle_size or check_compatibility.

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 provides clear use context via example questions ('does this support ESM/TypeScript?', 'what platforms does this work on?'), establishing when the tool is appropriate. However, it does not explicitly mention alternatives or when-not-to-use, so it misses the full guidance needed for a 5.

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

analyze_npx_commandB

Analyze and validate an npx command before execution (security check)

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoCommand arguments (optional)
commandYesPackage to analyze (e.g., "create-react-app" or "typescript@5.0.0")
timeoutNoTimeout in milliseconds (default: 30000)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full transparency burden. It only says 'security check,' which is a vague label and does not clarify whether the tool is read-only, whether it performs network requests, or what happens if a command is unsafe. No side effects or validation mechanics are disclosed.

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 a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the security-sensitive nature and lack of output schema, the description is too minimal. It does not explain what validation entails, what actions might be taken on unsafe commands, or the format of results, leaving significant gaps for an agent.

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?

Schema coverage is 100%, and the schema already documents command, args, and timeout. The description adds no additional parameter meaning, so the baseline of 3 applies.

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 function: analyze and validate an npx command, with a specific security-check purpose. The verb 'analyze' and 'validate' plus the resource 'npx command' make it distinct from sibling tools like audit_security or analyze_quality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before execution' implies it should be used prior to running npx, but it does not explicitly mention when not to use it or contrast with sibling tools. No alternatives are named, so guidance is only implicit.

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

analyze_qualityC

Evaluate package quality metrics including maintenance, popularity, and sustainability

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesName of the package to analyze

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only evaluation but does not disclose output format, failure modes, network requirements, or side effects.

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 a single, concise sentence with no wasteful words. It front-loads the purpose and names three metrics, but its brevity omits useful behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the agent cannot infer what the tool returns or how it behaves beyond 'evaluate.' The three listed metrics give some hint, but the return value, performance, and edge cases remain undefined.

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 only parameter packageName is fully described in the schema ('Name of the package to analyze'), covering 100% of the parameter meaning. The description adds no further parameter detail, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Evaluate' with a clear resource 'package quality metrics' and lists three aspects (maintenance, popularity, sustainability). It distinguishes itself from sibling tools like audit_security or analyze_bundle_size, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings like get_package_details or analyze_capabilities. It lacks context about prerequisites, suitable scenarios, or exclusions.

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

audit_securityB

Check package for known security vulnerabilities and get recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific version to audit (optional)
packageNameYesName of the package to audit

TDQS

B3.3/5.0
Behavior2/5

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 states the purpose but does not disclose whether the operation is read-only, whether it accesses external vulnerability databases, or what 'recommendations' entail. This is insufficient for an agent to anticipate side effects or required context.

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 a single, concise sentence that front-loads the core action. It is efficient with no redundant wording, and every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple signature, but with no output schema and no annotations, the description fails to explain what 'recommendations' look like or any important context (e.g., network dependency, return format). While the core purpose is clear, the lack of detail about outputs makes it slightly incomplete.

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?

Schema description coverage is 100% for both parameters, with clear descriptions for packageName and version. The tool description adds no additional semantic depth beyond the schema, so a 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 tool checks a package for known security vulnerabilities and returns recommendations. The verb 'check' is specific, the resource is the package, and the security vulnerability focus distinguishes it from sibling tools like analyze_quality or check_compatibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives. The description implies it is for security auditing, but it does not mention exclusions, prerequisites, or contrast with sibling tools such as analyze_bundle_size or find_similar_packages.

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

check_compatibilityB

Analyze compatibility of a package with existing project dependencies

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion or version range
packageNameYesName of the package to check
existingDependenciesYesExisting package.json dependencies

TDQS

B3.2/5.0
Behavior2/5

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 merely says 'Analyze compatibility,' which implies a read-only action, but it does not disclose whether this performs network calls, how results are returned (e.g., boolean, report, errors), or any side effects. This leaves critical behavioral traits unexplained.

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 a single, front-loaded sentence that directly states the tool's purpose without any fluff. Every word serves to communicate the core function, making it highly concise and appropriately structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three parameters including a nested object, and no output schema. The description does not explain what the compatibility result looks like, what 'compatibility' means in this context, or how the version parameter affects the analysis. A more complete description should outline the output format and any assumptions about dependencies.

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 provides 100% coverage for all three parameters, including descriptions for packageName, existingDependencies, and version. The description adds no additional semantic meaning beyond what the schema already documents, so the 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 tool analyzes compatibility of a package with existing project dependencies. The verb 'Analyze' combined with the specific resource 'compatibility of a package with existing project dependencies' distinguishes it from sibling tools like compare_versions or analyze_quality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool instead of alternatives. It does not mention exclusions, prerequisites, or context such as comparing two packages or checking security, leaving the agent without explicit usage direction.

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

compare_packagesA

Compare multiple npm packages side-by-side to answer "which is better?" or "what are the pros/cons?" questions. IMPORTANT: This tool generates detailed comparison analysis including: module system (ESM/CJS), TypeScript support, popularity metrics, maintenance status, bundle sizes, and provides a scored recommendation with reasoning. Output is a comprehensive comparison report with pros/cons for each package and a winner recommendation.

ParametersJSON Schema
NameRequiredDescriptionDefault
packagesYesArray of package names to compare (2-5 packages)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool generates a detailed analysis including module system, TypeScript support, popularity, maintenance, bundle sizes, and provides a scored recommendation with pros/cons. This goes beyond the schema and makes behavioral expectations clear. It could add more on side effects or limitations, but for a read-only comparison tool, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, then details on what the analysis includes and the output format. Every sentence adds value. The 'IMPORTANT' marker draws attention to key details without excessive length.

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 is simple (one param, no output schema), the description covers the purpose, the comparison dimensions, and the output type comprehensively. It could mention return format explicitly (e.g., JSON structure), but the description's 'comprehensive comparison report' is sufficient for an agent to understand what it returns.

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 covers 100% of the single parameter, describing it as an array of package names (2-5). The description adds context for why this parameter is used, but no additional syntactical or format detail beyond the schema. Baseline 3 is appropriate because the schema already does the heavy lifting.

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 function: comparing multiple npm packages side-by-side to answer 'which is better?' or 'pros/cons' questions. It specifies the resource (npm packages) and the action (compare), and distinguishes itself from sibling tools like compare_versions, which is for version comparisons.

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 on when to use the tool ('to answer which is better or pros/cons questions'), but it does not explicitly list when not to use it or name alternatives. A more explicit exclusion (e.g., 'not for comparing versions') would make it a 5.

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

compare_versionsB

Compare different versions of a package and analyze breaking changes

ParametersJSON Schema
NameRequiredDescriptionDefault
toVersionYesTarget version
fromVersionYesStarting version
packageNameYesName of the package

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool compares versions and analyzes breaking changes but does not clarify whether it is a read-only operation, what exactly constitutes 'breaking changes', whether external network/registry access is needed, or what the return format looks like. This lack of detail leaves significant behavioral ambiguity.

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 a single, concise sentence that front-loads the primary action and outcome. Every word contributes to the core purpose, with no redundancy or filler. It is efficient and appropriately sized for the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 and annotations, the description should provide more context about return values, edge cases, or operational details. It does not mention what the tool returns after analysis, any performance implications, or how breaking changes are determined. For an analytical tool with three required parameters, this is a notable gap.

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?

Schema description coverage is 100% with each parameter having a basic description ('Target version', 'Starting version', 'Name of the package'). The tool description adds the context of comparing versions but does not provide additional semantic meaning beyond what the schema already offers, such as version format expectations or constraints. Thus the baseline 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 ('Compare'), the resource ('different versions of a package'), and the specific outcome ('analyze breaking changes'). This distinguishes it from sibling tools like compare_packages (which compares packages, not versions) and check_compatibility (which focuses on compatibility rather than breaking changes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when comparing versions of a single package, but it does not explicitly state when to use this tool over alternatives like compare_packages or check_compatibility, nor does it provide any exclusion criteria. There is no mention of prerequisites or common scenarios, leaving the agent to infer applicability.

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

find_similar_packagesA

Find alternative or similar packages based on keywords and functionality. Use this when users ask "what else is like X?" or "alternatives to Y?" or "other options besides Z?". Returns ranked list of similar packages with scores, descriptions, and download stats. Helps discover packages user might not know about.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 5, max: 10)
packageNameYesName of the package to find alternatives for

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are present, so the description must explain behavior. It describes the return value as a ranked list with scores, descriptions, and download stats, and clarifies the basis as keywords/functionality. This is useful but lacks caveats about ranking methodology or potential gaps.

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?

Three sentences, front-loaded with purpose, then usage, then output. Every sentence earns its place.

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?

For a simple two-parameter tool, the description covers purpose, usage, and return format. No output schema exists, but the description adequately describes results.

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?

Both parameters have schema descriptions, so baseline 3. The description doesn't add much beyond schema, though it implies ranking behavior via 'ranked list' which is relevant to limit.

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 finds alternative or similar packages based on keywords and functionality, with concrete examples of user queries. It distinguishes itself from siblings like search_packages by focusing on similarity rather than general search.

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?

Provides explicit usage context with paraphrases like 'what else is like X?' and 'alternatives to Y?', making when-to-use clear. It doesn't mention when not to use or alternative tools, but the guidance is strong.

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

generate_quick_startA

Generate ready-to-use code examples and installation instructions. Use this when users ask "how do I use X?" or "show me example code for Y" or want to quickly start using a package. Provides install commands, basic usage, and framework-specific examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific version (optional)
frameworkNoTarget framework (auto-detect if not specified)
packageNameYesName of the package

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool produces install commands, basic usage, and framework-specific examples, but does not disclose potential side effects, limitations, or return format beyond these broad outputs. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and each sentence serves a clear purpose: the first states what the tool does, the second provides usage guidance. There is no wasted wording, making it an exemplary model of conciseness.

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?

The tool has three parameters, one with an enum, and no output schema. The description adequately explains what the tool returns at a high level ('install commands, basic usage, and framework-specific examples'), which is sufficient for an agent to select and invoke it correctly. It does not dive into output formatting, but that is not critical given the tool's simplicity.

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 has 100% coverage for all three parameters, providing full descriptions for packageName, framework, and version. The description's mention of 'framework-specific examples' loosely aligns with the framework parameter, but it adds no additional semantic value beyond what the schema already documents, justifying the baseline score of 3.

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: 'Generate ready-to-use code examples and installation instructions.' It uses a specific verb (Generate) and resource (code examples/installation instructions), and differentiates from siblings by targeting 'how do I use X?' queries, which is distinct from searching, comparing, or analyzing packages.

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 explicitly tells when to use the tool ('Use this when users ask...') with concrete examples. It provides clear context for common user intents but does not explicitly mention when not to use it or name alternative tools, which would warrant a 5.

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

get_package_detailsA

Get detailed information about a specific npm package including versions, dependencies, and repository info

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific version (optional, defaults to latest)
packageNameYesName of the package

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It does disclose the kind of information returned (versions, dependencies, repository info), but does not explicitly state read-only behavior, error handling, or prerequisites. For a simple get tool, the lack of explicit safety or behavioral caveats keeps this at a middle score.

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 a single, front-loaded sentence that immediately identifies the action and subject. Every word adds value, and it is free of fluff or repetition.

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?

For a relatively simple tool with two parameters and no output schema, the description covers the key return categories (versions, dependencies, repository info) and the input requirements. While it could specify exact return format or behavior when the package does not exist, the essentials are present. The description is complete enough 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 provides 100% coverage with descriptions for both 'packageName' and 'version'. The description adds no additional parameter-level meaning beyond listing the return content, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'Get detailed information' targeting a 'specific npm package' and enumerates the key contents (versions, dependencies, repository info). This clearly distinguishes it from sibling tools like search_packages (which finds packages) and compare_versions (which compares versions), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing details on a specific package, but does not explicitly mention alternatives or when not to use this tool. The sibling tools suggest contexts like searching or comparing, but no exclusions or alternative pointers are provided. Usage is inferred from the name and description rather than clearly stated.

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

search_packagesA

Search and discover npm packages. Use this to find libraries, compare options, see what's available for a specific task, or answer "what packages exist for X?" questions. Returns packages with popularity ranking, descriptions, download stats, and quality scores. Output includes package names, versions, descriptions, and can be used as input for compare_packages.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default: 10, max: 50)
queryYesSearch query (package name or keywords)

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses that it returns packages with popularity ranking, descriptions, download stats, and quality scores, and that output includes package names and versions. It doesn't explicitly state read-only behavior, but for a search tool this is implied and sufficiently transparent.

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?

Three sentences, each with a distinct purpose: definition, use cases, and output characteristics. No filler or redundant information, highly efficient.

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?

For a simple two-parameter search tool with no output schema, the description fully covers purpose, usage, and expected output, and even hints at compatibility with compare_packages. It is complete enough for an agent to select and invoke 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?

Schema coverage is 100% for query and limit parameters. The description adds context by framing query as a way to 'find libraries' or 'see what's available for a specific task,' but doesn't add new semantic detail beyond the schema descriptions. 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 states 'Search and discover npm packages' with specific use cases like 'find libraries, compare options, see what's available for a specific task, or answer "what packages exist for X?" questions.' It clearly distinguishes itself from siblings by noting its output can be used as input for compare_packages.

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?

Explicitly says 'Use this to find libraries, compare options, see what's available for a specific task, or answer "what packages exist for X?" questions.' It also mentions that output can be used as input for compare_packages, providing an alternative and integration 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.

  1. 12 tool updatesv0.0.3
    • First observedanalyze_bundle_size
    • First observedanalyze_capabilities
    • First observedanalyze_npx_command
    • First observedanalyze_quality
    • First observedaudit_security
    • First observedcheck_compatibility
    • First observedcompare_packages
    • First observedcompare_versions
    • First observedfind_similar_packages
    • First observedgenerate_quick_start
    • First observedget_package_details
    • First observedsearch_packages

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct aspect of npm package interaction: searching, comparing, analyzing security, quality, capabilities, bundle size, and generating code. Though some tools are related, their descriptions clearly differentiate purposes (e.g., search_packages finds packages by keyword, find_similar_packages finds alternatives to a given package). No two tools appear to do the same thing.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_packages, analyze_quality, get_package_details). The verbs are descriptive and each noun is appropriate for the operation. This is a uniform, predictable naming convention.

Tool Count5/5

With 12 tools, the server is well-scoped for its purpose of npm package analysis and discovery. Each tool covers a distinct need without bloat, fitting comfortably within the ideal 3-15 range. The count supports thorough functionality without overwhelming an agent.

Completeness5/5

The tool set covers the full spectrum of package evaluation: discovery, detailed inspection, version comparison, security audits, quality analysis, compatibility checking, bundle size analysis, and quick-start code generation. There are no obvious dead ends—after finding a package, an agent can analyze it in multiple ways and even get usage examples. The surface is complete for the intended domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    D
    maintenance
    A Model Context Protocol server that allows AI models to fetch detailed information about npm packages and discover popular packages in the npm ecosystem.
    1
    8 npm
    1
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol server that enables AI-powered analysis of NPM packages through multiple tools for security vulnerability scanning, dependency analysis, package comparison, and quality assessment.
    19
    456 npm
    18
    TypeScript
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables language models to interact with npm services securely, providing tools for package management, project initialization, script execution, and security auditing.
    8 npm
    MIT