Mcp Npm_docs Server
An MCP server that provides a tool to fetch metadata and documentation (including README content) for NPM packages, using a local cache to improve performance.
bsmi021
README
# NPM Documentation MCP Server
An MCP server that provides a tool to fetch metadata and documentation (including README content) for NPM packages, using a local cache to improve performance.
Features
- Fetches package metadata and README content using the npms.io API.
- Caches results locally using SQLite (
better-sqlite3
). - Provides the
getNpmPackageDocs
MCP tool. - Follows the standard MCP server structure.
Project Structure
/src
: Contains all source code./config
: Configuration management (ConfigurationManager
)./services
: Core logic (NpmDocService
,CacheService
)./tools
: MCP tool definition (npmDocsTool.ts
,npmDocsToolParams.ts
)./types
: TypeScript interfaces and custom errors (npmDocsTypes.ts
)./utils
: Shared utility functions (logger.ts
,errors.ts
).createServer.ts
: Server instance creation and tool registration.server.ts
: Main application entry point.
/dist
: Compiled JavaScript output (generated bynpm run build
). Contains the default cache DB file (npm-docs-cache.db
).package.json
: Project metadata and dependencies.tsconfig.json
: TypeScript compiler options..eslintrc.json
: ESLint configuration..prettierrc.json
: Prettier configuration..gitignore
: Git ignore rules.
Installation & Setup
-
Clone the repository (if applicable).
-
Install Dependencies:
npm install
-
Build the Server:
npm run build
This compiles the TypeScript code into the
dist/
directory.
Configuration
The server can be configured using environment variables:
NPM_CACHE_TTL
: Cache Time-To-Live in seconds. (Default:86400
- 24 hours)NPM_CACHE_DB_PATH
: Path to the SQLite database file. (Default:./dist/npm-docs-cache.db
- relative to the project root after build). If set, this overrides the default. Can be an absolute path or relative to the current working directory where the server is started.LOG_LEVEL
: Set todebug
for verbose logging. (Default:info
) Note: TheNPM_REGISTRY_URL
config variable exists but is currently ignored as the server uses thenpms.io
API.
Running the Server
You can run the compiled server directly using Node:
node dist/server.js
For development, use the dev
script for auto-reloading:
npm run dev
MCP Integration
To use this server with an MCP client (like Cline), add its configuration to your MCP settings file (e.g., cline_mcp_settings.json
):
{
"mcpServers": {
// ... other servers
"npm-docs-server": {
"command": "node",
"args": [
"/path/to/mcp-npm_docs-server/dist/server.js" // <-- IMPORTANT: Use the absolute path to the compiled server.js
],
"env": {
// Optional: Set environment variables here if needed
// "NPM_CACHE_TTL": "3600",
// "NPM_CACHE_DB_PATH": "/path/to/your/cache.db",
// "LOG_LEVEL": "debug"
},
"disabled": false, // Ensure it's enabled
"autoApprove": [
"getNpmPackageDocs" // Optional: Auto-approve the tool
]
}
// ... other servers
}
}
Replace /path/to/mcp-npm_docs-server
with the actual absolute path to this project directory on your system.
Provided MCP Tool
getNpmPackageDocs
Retrieves documentation and metadata for a specified NPM package.
Parameters:
packageName
(string, required): The exact name of the NPM package (e.g., 'react', 'axios', '@azure/storage-blob'). Case-sensitive.forceFresh
(boolean, optional, default:false
): Iftrue
, bypasses the local cache and fetches fresh data from the npms.io API.
Returns:
A JSON object conforming to the NpmDocumentation
interface, including:
name
version
description
homepage
(if available)repository
(URL, if available)author
(name, if available)license
(if available)keywords
(if available)dependencies
devDependencies
readmeContent
(string containing README markdown, if available via npms.io)
Example Usage (MCP Tool Call):
<use_mcp_tool>
<server_name>npm-docs-server</server_name>
<tool_name>getNpmPackageDocs</tool_name>
<arguments>
{
"packageName": "lodash",
"forceFresh": false
}
</arguments>
</use_mcp_tool>
Linting and Formatting
- Lint:
npm run lint
- Format:
npm run format
Code will be automatically linted and formatted on commit via Husky and lint-staged (if Husky is installed).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.