{"_id":"@arvoretech/npm-registry-mcp","_rev":"10-eb2b7920330b405c99dc8336f70928d1","name":"@arvoretech/npm-registry-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@arvoretech/npm-registry-mcp","version":"1.0.0","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/npm-registry-mcp@1.0.0","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"npm-registry-mcp":"dist/index.js"},"dist":{"shasum":"815ac12d1d8bb9645cf7f073dbcfdbc3f9eff707","tarball":"https://registry.npmjs.org/@arvoretech/npm-registry-mcp/-/npm-registry-mcp-1.0.0.tgz","fileCount":25,"integrity":"sha512-TxK58SzRzYF2Y1iPu+/b13b2oPwOC/0ItzLVcgoR55IVES59mQn4yocthD7fw4r9Arm6DH+W8aKQle4ej+ZD6Q==","signatures":[{"sig":"MEUCIGBtazxYU38gwKcBLvjOy5PBopYpk95Z7wuXDQPdWQkTAiEAiKC/fTS4QGOsX9p9xH0VIUNEAz8J1aOGb5OJWv+CFk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101601},"main":"dist/index.js","type":"module","gitHead":"61639fec2e249e20cedc5e85cd11be86cdd10e7f","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo 'No tests configured'","build":"tsc","start":"node dist/index.js","lint:fix":"eslint src/**/*.ts --fix","test:cov":"echo 'No tests configured'"},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"_npmVersion":"10.8.2","description":"NPM Registry MCP Server for package information","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npm-registry-mcp_1.0.0_1761862102011_0.3540627463363799","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arvoretech/npm-registry-mcp","version":"1.0.1","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/npm-registry-mcp@1.0.1","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"npm-registry-mcp":"dist/index.js"},"dist":{"shasum":"291a902c98da8dd5e8715ca8778a00bdf0ef59b8","tarball":"https://registry.npmjs.org/@arvoretech/npm-registry-mcp/-/npm-registry-mcp-1.0.1.tgz","fileCount":25,"integrity":"sha512-vnxMwbjZsJ9R00I4mlC7dGWZM0DBYpSc4EEY1ROYPMjPy/Xw9aD3bqrnH2gCvCKRyXiJkNZjIjGNlQ4BxbrLwQ==","signatures":[{"sig":"MEYCIQD9VWkc5eWeEnIII67WbviOqjkAx/C+wxgsUEd5Fry17QIhAMZdSStJMpL/6a7ztVqNev27+mVhaahuQaQ422Pp5Kfm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101447},"main":"dist/index.js","type":"module","gitHead":"276708ed1d3a23092cdecb40c6d5fb736ab09f9e","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo 'No tests configured'","build":"tsc","start":"node dist/index.js","lint:fix":"eslint src/**/*.ts --fix","test:cov":"echo 'No tests configured'"},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"_npmVersion":"10.8.2","description":"NPM Registry MCP Server for package information","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npm-registry-mcp_1.0.1_1761865978789_0.45100603170964226","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@arvoretech/npm-registry-mcp","version":"1.0.2","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/npm-registry-mcp@1.0.2","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"npm-registry-mcp":"dist/index.js"},"dist":{"shasum":"5484c28173b507b4aacb7e867b900bdb45896b63","tarball":"https://registry.npmjs.org/@arvoretech/npm-registry-mcp/-/npm-registry-mcp-1.0.2.tgz","fileCount":25,"integrity":"sha512-rId3Ipd1Tvtu8n5BCjmfXV/7uiQRffrktDC9wA1LoSD+RYIFu3yi6a/PynCtlITBNxGl4zi8DRTgUhi+QPyFuQ==","signatures":[{"sig":"MEUCIHHoSpnVLpGegKUiQGEnnDa9pbmw0mosvkHcGesu01sxAiEAvVAUhlJDI98tBVdNWXkh9s2LL+EjV529nCDlBAZt/qQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101447},"main":"dist/index.js","type":"module","gitHead":"e693015587b0573f63473530d3e6c99616ec66ec","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo 'No tests configured'","build":"tsc","start":"node dist/index.js","lint:fix":"eslint src/**/*.ts --fix","test:cov":"echo 'No tests configured'"},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"_npmVersion":"10.8.2","description":"NPM Registry MCP Server for package information","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npm-registry-mcp_1.0.2_1761866075289_0.8495683290638434","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@arvoretech/npm-registry-mcp","version":"1.0.3","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/npm-registry-mcp@1.0.3","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"npm-registry-mcp":"dist/index.js"},"dist":{"shasum":"9870979823909d2abf223d0191ae4c48ec1a49a4","tarball":"https://registry.npmjs.org/@arvoretech/npm-registry-mcp/-/npm-registry-mcp-1.0.3.tgz","fileCount":25,"integrity":"sha512-SfgEljb81NKKVDOUfMxx0Nzu8xVeldl791pd726MfOjUr1OovvEwMqI/T1hGb0+c0w81hBvHa6YJdNZ77o4BXQ==","signatures":[{"sig":"MEUCIQDfWSWGUh87JCMyyxRyfaq3fI//rUhWNMYjy9Uo4XJvowIgFR0cWRo/9aZMYuqt9DO7C8Vna/uF4R86U+CzKT5Vm4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101447},"main":"dist/index.js","type":"module","gitHead":"785fcfad7173cfe2c9a5e5adb489fb45aba57e03","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo 'No tests configured'","build":"tsc","start":"node dist/index.js","lint:fix":"eslint src/**/*.ts --fix","test:cov":"echo 'No tests configured'"},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"_npmVersion":"10.8.2","description":"NPM Registry MCP Server for package information","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npm-registry-mcp_1.0.3_1761866219566_0.4680686494838997","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@arvoretech/npm-registry-mcp","version":"1.0.4","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/npm-registry-mcp@1.0.4","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"npm-registry-mcp":"dist/index.js"},"dist":{"shasum":"6ebfa41d74e4cd88fccad016722536d705219eb4","tarball":"https://registry.npmjs.org/@arvoretech/npm-registry-mcp/-/npm-registry-mcp-1.0.4.tgz","fileCount":25,"integrity":"sha512-cF7zNjOyl7u+e31AjrrIw92UNx+1pQbjc/BasPMXbuA2jsm7RQSmOuuiyD0eHKMTOuHxPK/cE3BFrdR/u007Lg==","signatures":[{"sig":"MEUCIQDlBU+JdA6RXT3iupNTazLZ9oZD2UVA91Qh25HzpBoqQAIgYv1/1yEdYVbbLVZwtVRrJyv5A+L9t6QfOgfHaOoBcQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100866},"main":"dist/index.js","type":"module","gitHead":"db1ba069f2c6b9075ec771ddd8680ddbc1de7748","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo 'No tests configured'","build":"tsc","start":"node dist/index.js","lint:fix":"eslint src/**/*.ts --fix","test:cov":"echo 'No tests configured'"},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"_npmVersion":"10.8.2","description":"NPM Registry MCP Server for package information","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npm-registry-mcp_1.0.4_1761866502074_0.033920060573293886","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-10-30T22:08:21.929Z","modified":"2026-06-16T21:13:15.101Z","1.0.0":"2025-10-30T22:08:22.230Z","1.0.1":"2025-10-30T23:12:59.004Z","1.0.2":"2025-10-30T23:14:35.474Z","1.0.3":"2025-10-30T23:16:59.788Z","1.0.4":"2025-10-30T23:21:42.303Z"},"bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"author":{"name":"Arvore"},"license":"MIT","homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","keywords":["mcp","npm","package","registry","llm","ai","arvore"],"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/npm-registry"},"description":"NPM Registry MCP Server for package information","maintainers":[{"email":"joao.barros@arvore.com.br","name":"joao.barros.arvore"},{"email":"rafasouza@protonmail.com","name":"rafsouza"},{"email":"pedro.adas@gmail.com","name":"pedro.adas"},{"email":"guilhermebscontact@gmail.com","name":"guilhermebs"},{"email":"ricardorbxx1@gmail.com","name":"ricardoraposorfox"},{"email":"jvgcunha2002@gmail.com","name":"jott4"},{"email":"vitor.piovezan@arvore.com.br","name":"vitor.piovezan"}],"readme":"# NPM Registry MCP Server\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=npm-registry-mcp&registry=https://npm.pkg.github.com&packageName=@arvoretech/npm-registry-mcp)\n\nA Model Context Protocol (MCP) server implementation that provides comprehensive access to NPM package information through the official NPM registry API. Perfect for integrating NPM package data with LLMs and AI tools.\n\n## Features\n\n- 📦 **Package Information**: Complete metadata, dependencies, and version history\n- 📊 **Download Statistics**: Weekly download counts and trends\n- 🔍 **Package Search**: Advanced search with scoring and filtering\n- 🚀 **Fast**: Direct API calls to NPM registry using fetch\n- 📡 **MCP Protocol**: Communication via stdio transport\n- 🛠️ **TypeScript**: Fully typed with Zod validation\n- 🌐 **No Configuration**: Uses public NPM APIs - no setup required\n\n## Installation\n\n```bash\nnpm install -g @arvoretech/npm-registry-mcp --registry=https://npm.pkg.github.com\n```\n\nOr configure your `.npmrc`:\n\n```bash\necho \"@arvoretech:registry=https://npm.pkg.github.com\" >> ~/.npmrc\nnpm install -g @arvoretech/npm-registry-mcp\n```\n\n## Usage\n\n```bash\n# Development\npnpm dev\n\n# Production\nnode dist/index.js\n```\n\n## Available MCP Tools\n\n### `get_package_info`\n\nRetrieves comprehensive information about an NPM package.\n\n**Parameters:**\n\n- `packageName` (string): Name of the NPM package\n\n**Returns:**\n\n- Package metadata (name, version, description)\n- Author and maintainer information\n- Dependencies and dev dependencies\n- Repository and homepage links\n- Available versions and distribution tags\n- Creation and modification timestamps\n\n**Example:**\n\n```json\n{\n  \"packageName\": \"react\"\n}\n```\n\n### `get_package_downloads`\n\nGets download statistics for an NPM package from the last week.\n\n**Parameters:**\n\n- `packageName` (string): Name of the NPM package\n\n**Returns:**\n\n- Total downloads in the last week\n- Average downloads per day\n- Date range for the statistics\n\n**Example:**\n\n```json\n{\n  \"packageName\": \"typescript\"\n}\n```\n\n### `search_packages`\n\nSearches for NPM packages with advanced filtering and scoring.\n\n**Parameters:**\n\n- `query` (string): Search query string\n- `size` (number, optional): Number of results to return (1-250, default: 20)\n\n**Returns:**\n\n- Search results with package metadata\n- Quality, popularity, and maintenance scores\n- Author and keyword information\n- Repository and homepage links\n\n**Example:**\n\n```json\n{\n  \"query\": \"react component\",\n  \"size\": 10\n}\n```\n\n## Programmatic Usage\n\n```typescript\nimport { NPMMCPServer } from \"npm-mcp-server\";\n\nconst server = new NPMMCPServer();\n\n// Setup graceful shutdown\nserver.setupGracefulShutdown();\n\n// Start server\nawait server.start();\n```\n\n## Claude Desktop Integration\n\nAdd to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"npm-registry\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@arvoretech/npm-registry-mcp\"]\n    }\n  }\n}\n```\n\n## API Endpoints\n\nThe server integrates with these NPM API endpoints:\n\n- **Package Info**: `https://registry.npmjs.org/<package>`\n- **Download Stats**: `https://api.npmjs.org/downloads/point/last-week/<package>`\n- **Search**: `https://registry.npmjs.org/-/v1/search?text=<query>&size=<size>`\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Run in development mode\npnpm dev\n\n# Build\npnpm build\n\n# Linting\npnpm lint\npnpm lint:fix\n```\n\n## Architecture\n\n- **`NPMClient`**: Handles NPM API communication and error handling\n- **`NPMMCPTools`**: Implements MCP tool logic and response formatting\n- **`NPMMCPServer`**: Main MCP server with stdio transport\n- **Validation**: Uses Zod for type and parameter validation\n- **Error Handling**: Comprehensive error handling for API failures\n\n## Error Handling\n\n- **Network errors**: Graceful handling of API timeouts and connectivity issues\n- **Package not found**: Clear error messages for non-existent packages\n- **Rate limiting**: Appropriate handling of NPM API rate limits\n- **Validation**: Input validation with descriptive error messages\n\n## Limitations\n\n- Read-only access to NPM registry (no publishing capabilities)\n- Uses public NPM APIs only\n- Weekly download statistics only (NPM API limitation)\n- Stdio transport only (no HTTP/WebSocket)\n- No caching (each request hits NPM API)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}