
mcp-npm_docs-server
Un servidor MCP que proporciona una herramienta para obtener metadatos y documentación (incluido el contenido de ReadMe) para los paquetes de NPM, utilizando un caché local para mejorar el rendimiento.
1
Github Watches
0
Github Forks
1
Github Stars
# 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).
相关推荐
I find academic articles and books for research and literature reviews.
Confidential guide on numerology and astrology, based of GG33 Public information
Emulating Dr. Jordan B. Peterson's style in providing life advice and insights.
Advanced software engineer GPT that excels through nailing the basics.
Your go-to expert in the Rust ecosystem, specializing in precise code interpretation, up-to-date crate version checking, and in-depth source code analysis. I offer accurate, context-aware insights for all your Rust programming questions.
Converts Figma frames into front-end code for various mobile frameworks.
Take an adjectivised noun, and create images making it progressively more adjective!
Descubra la colección más completa y actualizada de servidores MCP en el mercado. Este repositorio sirve como un centro centralizado, que ofrece un extenso catálogo de servidores MCP de código abierto y propietarios, completos con características, enlaces de documentación y colaboradores.
La aplicación AI de escritorio todo en uno y Docker con trapo incorporado, agentes de IA, creador de agentes sin código, compatibilidad de MCP y más.
Manipulación basada en Micrypthon I2C del expansor GPIO de la serie MCP, derivada de AdaFruit_MCP230xx
Plataforma de automatización de flujo de trabajo de código justo con capacidades de IA nativas. Combine el edificio visual con código personalizado, auto-anfitrión o nube, más de 400 integraciones.
🧑🚀 全世界最好的 llM 资料总结(数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Resumen de los mejores recursos del mundo.
Espejo dehttps: //github.com/agentience/practices_mcp_server
Una lista curada de servidores de protocolo de contexto del modelo (MCP)
Reviews

user_6sSAMfIo
I recently started using mcp-npm_docs-server by bsmi021 and it has significantly streamlined my work. The tool is user-friendly and integrates seamlessly with my existing workflow. The documentation provided is clear and concise, making it easy to get started. Highly recommend checking it out on GitHub!