关于 Mcp Npm_docs Server
Mcp Npm_docs Server 为开发者提供 NPM 包元数据和 README 文档查询,并用 SQLite 本地缓存结果。
主要功能
- 01查询包元数据与 README
- 02通过 npms.io 获取信息
- 03SQLite 本地缓存
- 04支持强制刷新缓存
适用场景
- 01查看依赖包版本与描述
- 02读取包的 README 文档
- 03检查包的依赖与许可证
MCP 相关
向 MCP 客户端提供 getNpmPackageDocs 工具,用于按包名检索 NPM 文档和元数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
NPM 文档 MCP 服务
一个 MCP 服务,提供用于获取 NPM 包元数据和文档(包括 README 内容)的工具,并使用本地缓存提升性能。
功能
- 使用 npms.io API 获取包元数据和 README 内容。
- 使用 SQLite(
better-sqlite3)在本地缓存结果。 - 提供
getNpmPackageDocsMCP 工具。 - 遵循标准 MCP 服务结构。
项目结构
/src:包含所有源代码。/config:配置管理(ConfigurationManager)。/services:核心逻辑(NpmDocService、CacheService)。/tools:MCP 工具定义(npmDocsTool.ts、npmDocsToolParams.ts)。/types:TypeScript 接口和自定义错误(npmDocsTypes.ts)。/utils:共享实用函数(logger.ts、errors.ts)。createServer.ts:创建服务实例并注册工具。server.ts:应用程序主入口。
/dist:编译后的 JavaScript 输出(由npm run build生成)。包含默认缓存数据库文件(npm-docs-cache.db)。package.json:项目元数据和依赖项。tsconfig.json:TypeScript 编译器选项。.eslintrc.json:ESLint 配置。.prettierrc.json:Prettier 配置。.gitignore:Git 忽略规则。
安装与设置
-
克隆代码仓库(如适用)。
-
安装依赖项:
npm install -
构建服务:
npm run build此命令会将 TypeScript 代码编译到
dist/目录。
配置
可以使用环境变量配置服务:
NPM_CACHE_TTL:缓存存活时间,以秒为单位。(默认值:86400,即 24 小时)NPM_CACHE_DB_PATH:SQLite 数据库文件的路径。(默认值:./dist/npm-docs-cache.db,构建后相对于项目根目录)。设置后会覆盖默认值。可以是绝对路径,也可以是启动服务时相对于当前工作目录的路径。LOG_LEVEL:设置为debug以启用详细日志记录。(默认值:info) 注意:NPM_REGISTRY_URL配置变量虽然存在,但目前会被忽略,因为服务使用的是npms.ioAPI。
运行服务
你可以使用 Node 直接运行编译后的服务:
node dist/server.js
开发时,使用 dev 脚本自动重新加载:
npm run dev
MCP 集成
要将此服务与 MCP 客户端(如 Cline)搭配使用,请将其配置添加到 MCP 设置文件(例如 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
}
}
将 /path/to/mcp-npm_docs-server 替换为系统上此项目目录的实际绝对路径。
提供的 MCP 工具
getNpmPackageDocs
获取指定 NPM 包的文档和元数据。
参数:
packageName(字符串,必填):NPM 包的准确名称(例如,'react'、'axios'、'@azure/storage-blob')。区分大小写。forceFresh(布尔值,可选,默认值:false):如果为true,则绕过本地缓存,从 npms.io API 获取最新数据。
返回值:
符合 NpmDocumentation 接口的 JSON 对象,包含:
nameversiondescriptionhomepage(如果可用)repository(URL,如果可用)author(名称,如果可用)license(如果可用)keywords(如果可用)dependenciesdevDependenciesreadmeContent(包含 README Markdown 内容的字符串,如果可通过 npms.io 获取)
用法示例(MCP 工具调用):
<use_mcp_tool>
<server_name>npm-docs-server</server_name>
<tool_name>getNpmPackageDocs</tool_name>
<arguments>
{
"packageName": "lodash",
"forceFresh": false
}
</arguments>
</use_mcp_tool>
代码检查与格式化
- 代码检查:
npm run lint - 格式化:
npm run format
提交时,Husky 和 lint-staged 会自动对代码进行检查和格式化(如果已安装 Husky)。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。