NPM文档MCP服务器
一个MCP服务器,它提供了一个工具来获取NPM包的元数据和文档(包括README内容),使用本地缓存来提高性能。
特性
- 使用以下命令获取包元数据和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:预分级配置。.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.io API*
运行服务器
您可以使用Node直接运行编译后的服务器:
node dist/server.js对于开发,请使用 dev 自动重新加载脚本:
npm run devMCP集成
要将此服务器与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" //
npm-docs-server
getNpmPackageDocs
{
"packageName": "lodash",
"forceFresh": false
}
装订和格式化
- 棉绒:
npm run lint - 格式:
npm run format
代码将在通过Husky提交时自动进行lint和格式化,并进行lint stage(如果安装了Husky)。
