@nekzus/mcp-server 1.18.3 → 1.19.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +162 -283
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.d.ts +60 -40
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +488 -785
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/cache.d.ts +22 -0
  8. package/dist/src/cache.d.ts.map +1 -0
  9. package/dist/src/cache.js +68 -0
  10. package/dist/src/cache.js.map +1 -0
  11. package/dist/src/config.d.ts +11 -0
  12. package/dist/src/config.d.ts.map +1 -0
  13. package/dist/src/config.js +45 -0
  14. package/dist/src/config.js.map +1 -0
  15. package/dist/src/handlers/index.d.ts +2 -0
  16. package/dist/src/handlers/index.d.ts.map +1 -0
  17. package/dist/src/handlers/index.js +2 -0
  18. package/dist/src/handlers/index.js.map +1 -0
  19. package/dist/src/icons.d.ts +21 -0
  20. package/dist/src/icons.d.ts.map +1 -0
  21. package/dist/src/icons.js +29 -0
  22. package/dist/src/icons.js.map +1 -0
  23. package/dist/src/prompts/index.d.ts +3 -0
  24. package/dist/src/prompts/index.d.ts.map +1 -0
  25. package/dist/src/prompts/index.js +22 -0
  26. package/dist/src/prompts/index.js.map +1 -0
  27. package/dist/src/resources/index.d.ts +3 -0
  28. package/dist/src/resources/index.d.ts.map +1 -0
  29. package/dist/src/resources/index.js +62 -0
  30. package/dist/src/resources/index.js.map +1 -0
  31. package/dist/src/schemas.d.ts +143 -0
  32. package/dist/src/schemas.d.ts.map +1 -0
  33. package/dist/src/schemas.js +189 -0
  34. package/dist/src/schemas.js.map +1 -0
  35. package/dist/src/server.d.ts +7 -0
  36. package/dist/src/server.d.ts.map +1 -0
  37. package/dist/src/server.js +21 -0
  38. package/dist/src/server.js.map +1 -0
  39. package/dist/src/tools/index.d.ts +3 -0
  40. package/dist/src/tools/index.d.ts.map +1 -0
  41. package/dist/src/tools/index.js +411 -0
  42. package/dist/src/tools/index.js.map +1 -0
  43. package/dist/src/utils/fetch-retry.d.ts +5 -0
  44. package/dist/src/utils/fetch-retry.d.ts.map +1 -0
  45. package/dist/src/utils/fetch-retry.js +69 -0
  46. package/dist/src/utils/fetch-retry.js.map +1 -0
  47. package/llms-full.txt +312 -422
  48. package/package.json +16 -17
  49. package/smithery.yaml +10 -2
package/README.md CHANGED
@@ -13,36 +13,30 @@
13
13
 
14
14
  </div>
15
15
 
16
- A powerful Model Context Protocol (MCP) server that revolutionizes NPM package analysis through AI. Built to integrate with Claude and Anthropic AI, it provides real-time intelligence on package security, dependencies, and performance. This MCP server delivers instant insights and smart analysis to safeguard and optimize your npm ecosystem, making package management decisions faster and safer for modern development workflows.
17
-
18
- ## Features
19
-
20
- - **Version analysis and tracking**
21
- - **Dependency analysis and mapping**
22
- - **Advanced Security Scanning**: Recursive dependency checks, ecosystem awareness (e.g., React), and accurate version resolution.
23
- - **Strict Input Validation**: Protection against Path Traversal, SSRF, and Command Injection via rigorous input sanitization.
24
- - **Package quality metrics**
25
- - **Download trends and statistics**
26
- - **TypeScript support verification**
27
- - **Package size analysis**
28
- - **Maintenance metrics**
29
- - **Real-time package comparisons**
30
- - **Standardized error handling and MCP response formats**
31
- - **Efficient caching for improved performance and API rate limit management**
32
- - **Rigorous schema validation and type safety using Zod**
33
-
34
- Note: The server provides AI-assisted analysis through MCP integration.
16
+ A powerful **Model Context Protocol (MCP v2)** server built on `@modelcontextprotocol/server` and `@modelcontextprotocol/core` (v2) that revolutionizes NPM package analysis through AI. Built to integrate seamlessly with Claude, Anthropic AI, and any MCP v2 compatible client, it provides real-time intelligence on package security, dependencies, and performance.
17
+
18
+ This server features **Modular ESM Architecture (`src/`)**, **Dual Output Protocol Returns (`content` + `structuredContent`)**, **Zod Output Schemas (`outputSchema`)**, **Embedded SVG Data URI Icons**, and **Real-Time Context Logging**.
19
+
20
+ ## Key Features
21
+
22
+ - **MCP v2 Native Protocol**: Fully upgraded to MCP v2 with `outputSchema` Zod validation, dual `structuredContent` returning, and diagnostic context logging (`ctx.mcpReq.log`).
23
+ - **Self-Contained Vector Icons**: Pre-configured SVG Data URIs (`data:image/svg+xml`) embedded across all 19 tools, resources, and prompts for enhanced client UI presentation.
24
+ - **Advanced Security Scanning**: Recursive dependency checks powered by Google's `deps.dev` and OSV.dev, ecosystem awareness, and accurate version resolution.
25
+ - **Smart Alternatives Filtering (`npmAlternatives`)**: Intelligent search based on functional domain keywords with strict ecosystem plugin/extension filtering (e.g., excludes `express-rate-limit` when searching for alternatives to `express`).
26
+ - **Strict Input Validation**: Protection against Path Traversal, SSRF, and Command Injection via rigorous input sanitization (`isValidNpmPackageName`).
27
+ - **Dependency & Transitive Mapping**: Complete dependency tree analysis mapping through `deps.dev`.
28
+ - **Package Quality & Maintenance Metrics**: Real-time scoring using OpenSSF Scorecard, GitHub repository metrics, and npms.io.
29
+ - **Download Trends & Performance**: Real-time download statistics and bundle size analysis.
30
+ - **Efficient Caching System**: Automated cache invalidation on workspace lockfile changes (`pnpm-lock.yaml`, `package-lock.json`, `yarn.lock`) with manual bypass (`ignoreCache: true`).
35
31
 
36
32
  ## Caching and Invalidation
37
33
 
38
- To ensure data accuracy while maintaining performance, the server implements robust caching strategies:
39
- - **Automatic Invalidation**: The cache is automatically invalidated whenever `pnpm-lock.yaml`, `package-lock.json`, or `yarn.lock` changes in your workspace. This ensures you always get fresh data after installing or updating dependencies.
40
- - **Force Refresh**: All tools accept an optional `ignoreCache: true` parameter to bypass the cache and force a fresh lookup from the registry.
34
+ To ensure data accuracy while maintaining high performance:
35
+ - **Automatic Invalidation**: The cache is automatically invalidated whenever `pnpm-lock.yaml`, `package-lock.json`, or `yarn.lock` changes in your workspace.
36
+ - **Force Refresh**: All tools accept an optional `ignoreCache: true` parameter to bypass the cache and force a fresh lookup from the NPM registry.
41
37
 
42
38
  ### Example Usage (JSON-RPC)
43
39
 
44
- When calling a tool, simply include `ignoreCache: true` in the arguments:
45
-
46
40
  ```json
47
41
  {
48
42
  "name": "npmVersions",
@@ -53,38 +47,43 @@ When calling a tool, simply include `ignoreCache: true` in the arguments:
53
47
  }
54
48
  ```
55
49
 
56
- ## Installation
50
+ ## Installation & Transports
57
51
 
58
- ### Migration to HTTP Streamable
52
+ ### STDIO & Streamable HTTP Transports
59
53
 
60
- This MCP server now supports both STDIO and HTTP streamable transport. Your existing STDIO configuration will continue to work without changes.
54
+ This MCP server supports both **STDIO** (standard input/output) and **Streamable HTTP / SSE** transports out of the box.
61
55
 
62
- **New capabilities:**
63
- - HTTP streamable transport via Smithery.ai
64
- - Enhanced scalability and performance
65
- - Interactive testing playground
56
+ - **STDIO Mode**: Default transport for local execution via `npx` or Docker.
57
+ - **Streamable HTTP / SSE Mode**: Decoupled `createServer({ config })` factory exported from `dist/index.js` and `dist/src/server.js` for mounting on Express, Hono, Cloudflare Workers, or Smithery.ai.
66
58
 
67
- **Development commands:**
59
+ **Development Commands:**
68
60
  ```bash
69
- # Development server with playground
70
- npm run dev
61
+ # Install dependencies
62
+ pnpm install
71
63
 
72
- # Build for HTTP
73
- npm run build:http
64
+ # Compile TypeScript to dist/
65
+ pnpm run build
74
66
 
75
- # Start HTTP server
76
- npm run start:http
77
- ```
67
+ # Start STDIO server
68
+ pnpm run start
78
69
 
79
- ### Install in VS Code
70
+ # Development server with Smithery CLI playground
71
+ pnpm run dev
80
72
 
81
- [<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20NPM%20Sentinel%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522npm-sentinel%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522%2540nekzus%252Fmcp-server%2540latest%2522%255D%257D%257D)
82
- [<img alt="Install in VS Code Insiders (npx)" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20NPM%20Sentinel%20MCP&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522npm-sentinel%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522%2540nekzus%252Fmcp-server%2540latest%2522%255D%257D%257D)
73
+ # Run unit and integration test suite (212+ tests)
74
+ pnpm test -- --run
83
75
 
84
- Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.
76
+ # Run full E2E tarball verification
77
+ node __tests__/full-e2e-pack-validation.js
78
+ ```
79
+
80
+ ### Install in VS Code / Cursor
81
+
82
+ Add this to your VS Code / Cursor MCP configuration:
85
83
 
86
84
  ```json
87
85
  {
86
+ "inputs": [],
88
87
  "servers": {
89
88
  "npm-sentinel": {
90
89
  "type": "stdio",
@@ -95,306 +94,186 @@ Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.vi
95
94
  }
96
95
  ```
97
96
 
98
- ### Smithery.ai Deployment (HTTP Streamable)
97
+ ### Install in Claude Desktop
99
98
 
100
- This MCP server now supports HTTP streamable transport through Smithery.ai for enhanced scalability and performance. You can deploy it directly on Smithery.ai:
101
- **Benefits of HTTP deployment:**
102
- - **Scalable**: Handles multiple concurrent connections
103
- - **Streamable**: Real-time streaming responses
104
- - **Managed**: Automatic deployment and monitoring
105
- - **Backward Compatible**: Still supports STDIO for local development
106
- - **Interactive Testing**: Built-in playground for testing tools
99
+ Add this to your `claude_desktop_config.json`:
107
100
 
108
- **Configuration for Smithery.ai:**
109
101
  ```json
110
102
  {
111
103
  "mcpServers": {
112
104
  "npm-sentinel": {
113
- "type": "http",
114
- "url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp"
105
+ "command": "npx",
106
+ "args": ["-y", "@nekzus/mcp-server@latest"]
115
107
  }
116
108
  }
117
109
  }
118
110
  ```
119
111
 
120
- ### Configuration
121
-
122
- The server supports the following configuration options:
123
-
124
- | Environment Variable | CLI Argument | Default | Description |
125
- | -------------------- | ------------ | ------- | ----------- |
126
- | `NPM_REGISTRY_URL` | `config.NPM_REGISTRY_URL` | `https://registry.npmjs.org` | URL of the NPM registry to use for all requests |
127
-
128
- #### HTTP Deployment (Smithery/Docker)
112
+ **Configuration File Locations:**
113
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
114
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
115
+ - Linux: `~/.config/Claude/claude_desktop_config.json`
129
116
 
130
- When deploying via Smithery or Docker, you can configure these options in your configuration file:
117
+ ### Smithery.ai Deployment
131
118
 
132
119
  ```json
133
120
  {
134
121
  "mcpServers": {
135
122
  "npm-sentinel": {
136
123
  "type": "http",
137
- "url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp",
138
- "config": {
139
- "NPM_REGISTRY_URL": "https://registry.npmjs.org"
140
- }
124
+ "url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp"
141
125
  }
142
126
  }
143
127
  }
144
128
  ```
145
- ### Docker
146
129
 
147
- #### Build
130
+ ### Docker Usage
131
+
148
132
  ```bash
149
- # Build the Docker image
133
+ # Build Docker image
150
134
  docker build -t nekzus/npm-sentinel-mcp .
135
+
136
+ # Run with local volume mount
137
+ docker run -i --rm -w /projects -v ${PWD}:/projects nekzus/npm-sentinel-mcp node dist/index.js
151
138
  ```
152
139
 
153
- #### Usage
140
+ ## Configuration
154
141
 
155
- You can run the MCP server using Docker with directory mounting to `/projects`:
142
+ The server supports the following configuration parameters:
156
143
 
157
- ```json
158
- {
159
- "mcpServers": {
160
- "npm-sentinel-mcp": {
161
- "command": "docker",
162
- "args": [
163
- "run",
164
- "-i",
165
- "--rm",
166
- "-w", "/projects",
167
- "--mount", "type=bind,src=${PWD},dst=/projects",
168
- "nekzus/npm-sentinel-mcp",
169
- "node",
170
- "dist/index.js"
171
- ]
172
- }
173
- }
174
- }
175
- ```
144
+ | Environment Variable | Config Object Property | Default | Description |
145
+ | -------------------- | ---------------------- | ------- | ----------- |
146
+ | `NPM_REGISTRY_URL` | `config.NPM_REGISTRY_URL` | `https://registry.npmjs.org` | URL of the NPM registry to use for all requests |
147
+
148
+ ---
176
149
 
177
- For multiple directories:
150
+ ## MCP Server Capabilities (v2 API)
151
+
152
+ All tool responses conform to the MCP v2 dual output format, providing both human-readable text in `content` and parsed JSON objects in `structuredContent`:
178
153
 
179
154
  ```json
180
155
  {
181
- "mcpServers": {
182
- "npm-sentinel-mcp": {
183
- "command": "docker",
184
- "args": [
185
- "run",
186
- "-i",
187
- "--rm",
188
- "-w", "/projects",
189
- "--mount", "type=bind,src=/path/to/workspace,dst=/projects/workspace",
190
- "--mount", "type=bind,src=/path/to/other/dir,dst=/projects/other/dir,ro",
191
- "nekzus/npm-sentinel-mcp",
192
- "node",
193
- "dist/index.js"
194
- ]
156
+ "content": [
157
+ {
158
+ "type": "text",
159
+ "text": "{\n \"queryPackages\": [\"express\"],\n \"results\": [...]\n}"
195
160
  }
161
+ ],
162
+ "structuredContent": {
163
+ "queryPackages": ["express"],
164
+ "results": [...]
196
165
  }
197
166
  }
198
167
  ```
199
168
 
200
- Note: All mounted directories must be under `/projects` for proper access.
169
+ ### Server Resources
201
170
 
202
- ### Usage with Claude Desktop
171
+ Accessible via MCP `readResource` requests:
203
172
 
204
- Add this to your `claude_desktop_config.json`:
173
+ - `doc://server/readme`
174
+ - **Description**: Main documentation file for NPM Sentinel MCP server.
175
+ - **MIME Type**: `text/markdown`
176
+ - **Icon**: Embedded Document SVG Data URI.
177
+ - `doc://mcp/specification`
178
+ - **Description**: Complete Model Context Protocol specification file (`llms-full.txt`).
179
+ - **MIME Type**: `text/plain`
180
+ - **Icon**: Embedded Document SVG Data URI.
205
181
 
206
- ```json
207
- {
208
- "mcpServers": {
209
- "npmsentinel": {
210
- "command": "npx",
211
- "args": ["-y", "@nekzus/mcp-server@latest"]
212
- }
213
- }
214
- }
215
- ```
182
+ ### Server Prompts
216
183
 
217
- Configuration file locations:
218
- - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
219
- - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
220
- - Linux: (Claude for Desktop does not officially support Linux at this time)
184
+ Accessible via MCP `getPrompt` requests:
221
185
 
222
- ### NPX
186
+ - `analyze-package`
187
+ - **Description**: Generates a comprehensive prompt template for AI analysis of an NPM package including security, performance, dependencies, and health metrics.
188
+ - **Arguments**: `package` (string, required)
189
+ - **Icon**: Embedded Security SVG Data URI.
223
190
 
224
- <!-- [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.png)](cursor://anysphere.cursor-deeplink/mcp/install?name=npm-sentinel-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBuZWt6dXMvbWNwLXNlcnZlckBsYXRlc3QiXX0=) -->
191
+ ---
225
192
 
226
- ```json
227
- {
228
- "mcpServers": {
229
- "npm-sentinel-mcp": {
230
- "command": "npx",
231
- "args": [
232
- "-y",
233
- "@nekzus/mcp-server@latest"
234
- ]
235
- }
236
- }
237
- }
238
- ```
193
+ ### Tools Catalog (19 Tools)
239
194
 
240
- ## API
195
+ All 19 tools define `inputSchema`, `outputSchema`, `annotations` (`title`, `readOnlyHint`), and `icons`:
241
196
 
242
- The server exposes its tools via the Model Context Protocol. All tools adhere to a standardized response format:
243
- ```json
244
- {
245
- "content": [
246
- {
247
- "type": "text",
248
- "text": "string",
249
- "isError": boolean // Optional
250
- }
251
- // ... more content items if necessary
252
- ]
253
- }
254
- ```
197
+ #### 1. `npmLatest`
198
+ - Get latest version information, release dates, SRI integrity hashes, and dist-tags.
199
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
255
200
 
256
- ### Resources
201
+ #### 2. `npmVersions`
202
+ - Get full version history with release dates and deprecation statuses.
203
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
257
204
 
258
- - `npm://registry`: NPM Registry interface
259
- - `npm://security`: Security analysis interface
260
- - `npm://metrics`: Package metrics interface
205
+ #### 3. `npmDeps`
206
+ - Complete dependency tree analysis including direct dependencies and full transitive graph mapping via `deps.dev`.
207
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
261
208
 
262
- ### Server Resources
209
+ #### 4. `npmTypes`
210
+ - Verify TypeScript support (native `index.d.ts` declaration files vs `@types/*` DefinitelyTyped packages).
211
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
263
212
 
264
- The server also provides the following informational resources accessible via MCP `GetResource` requests:
213
+ #### 5. `npmSize`
214
+ - Package bundle size, minified size, and gzip impact analysis.
215
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
265
216
 
266
- - `doc://server/readme`:
267
- - **Description**: Retrieves the main `README.md` file content for this NPM Sentinel MCP server.
268
- - **MIME Type**: `text/markdown`
269
- - `doc://mcp/specification`:
270
- - **Description**: Retrieves the `llms-full.txt` content, providing the comprehensive Model Context Protocol specification.
271
- - **MIME Type**: `text/plain`
217
+ #### 6. `npmVulnerabilities`
218
+ - Instant transitive vulnerability scanning powered by Google's `deps.dev` and OSV.dev advisories.
219
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
272
220
 
273
- ### Tools
274
-
275
- #### npmVersions
276
- - Get all versions of a package
277
- - Input: `packages` (string[])
278
- - Returns: Version history with release dates
279
-
280
- #### npmLatest
281
- - Get latest version information
282
- - Input: `packages` (string[])
283
- - Returns: Latest version details and changelog
284
-
285
- #### npmDeps
286
- - Analyze package dependencies
287
- - Input: `packages` (string[])
288
- - Returns: Complete dependency tree analysis including direct dependencies and full transitive graph (count and explicit flatten list) mapping through deps.dev.
289
-
290
- #### npmTypes
291
- - Check TypeScript support
292
- - Input: `packages` (string[])
293
- - Returns: TypeScript compatibility status
294
-
295
- #### npmSize
296
- - Analyze package size
297
- - Input: `packages` (string[])
298
- - Returns: Bundle size and import cost analysis
299
-
300
- #### npmVulnerabilities
301
- - Scan for security vulnerabilities
302
- - Features:
303
- - **Instant Transitive Scanning**: Powered by Google's `deps.dev` API to resolve massive dependency trees (e.g. Next.js, Astro) in a single request, bypassing deep recursion limitations.
304
- - **Ecosystem Awareness**: Automatically scans related packages efficiently.
305
- - **Rich Reports**: Includes CVE IDs and full summaries from OSV.dev.
306
- - Input: `packages` (string[])
307
- - Returns: Detailed security advisories, CVEs, and severity ratings
308
-
309
- #### npmTrends
310
- - Get download trends
311
- - Input:
312
- - `packages` (string[])
313
- - `period` ("last-week" | "last-month" | "last-year")
314
- - Returns: Download statistics over time
315
-
316
- #### npmCompare
317
- - Compare multiple packages
318
- - Input: `packages` (string[])
319
- - Returns: Detailed comparison metrics
320
-
321
- #### npmMaintainers
322
- - Get package maintainers
323
- - Input: `packages` (string[])
324
- - Returns: Maintainer information and activity
325
-
326
- #### npmScore
327
- - Get package quality score
328
- - Input: `packages` (string[])
329
- - Returns: Comprehensive quality metrics
330
-
331
- #### npmPackageReadme
332
- - Get package README
333
- - Input: `packages` (string[])
334
- - Returns: Formatted README content
335
-
336
- #### npmSearch
337
- - Search for packages
338
- - Input:
339
- - `query` (string)
340
- - `limit` (number, optional)
341
- - Returns: Matching packages with metadata
342
-
343
- #### npmLicenseCompatibility
344
- - Check license compatibility
345
- - Input: `packages` (string[])
346
- - Returns: License analysis and compatibility info
347
-
348
- #### npmRepoStats
349
- - Get repository statistics
350
- - Input: `packages` (string[])
351
- - Returns: GitHub/repository metrics
352
-
353
- #### npmDeprecated
354
- - Check for deprecation
355
- - Input: `packages` (string[])
356
- - Returns: Deprecation status and alternatives
357
-
358
- #### npmChangelogAnalysis
359
- - Analyze package changelogs
360
- - Input: `packages` (string[])
361
- - Returns: Changelog summaries and impact analysis
362
-
363
- #### npmAlternatives
364
- - Find package alternatives
365
- - Input: `packages` (string[])
366
- - Returns: Similar packages with comparisons
367
-
368
- #### npmQuality
369
- - Assess package quality
370
- - Input: `packages` (string[])
371
- - Returns: Quality metrics and scores
372
-
373
- #### npmMaintenance
374
- - Check maintenance status
375
- - Input: `packages` (string[])
376
- - Returns: Maintenance activity metrics
377
-
378
- ## Build
221
+ #### 7. `npmTrends`
222
+ - Historical download statistics over customizable time ranges (`last-week`, `last-month`, `last-year`).
223
+ - **Input**: `packages` (`string[]`), `period` (`"last-week"` \| `"last-month"` \| `"last-year"`), `ignoreCache` (`boolean`, optional)
379
224
 
380
- ```bash
381
- # Install dependencies
382
- npm install
225
+ #### 8. `npmCompare`
226
+ - Side-by-side metric comparison across multiple packages.
227
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
383
228
 
384
- # Build for STDIO (traditional)
385
- npm run build:stdio
229
+ #### 9. `npmMaintainers`
230
+ - List of package maintainers, public emails, and publishing activity.
231
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
386
232
 
387
- # Build for HTTP (Smithery)
388
- npm run build:http
233
+ #### 10. `npmScore`
234
+ - Consolidated score combining quality, popularity, maintenance, and OpenSSF Scorecard.
235
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
389
236
 
390
- # Development server
391
- npm run dev
392
- ```
237
+ #### 11. `npmPackageReadme`
238
+ - Retrieve full formatted raw README markdown content from NPM registry / CDN.
239
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
393
240
 
394
- ## License
241
+ #### 12. `npmSearch`
242
+ - Search NPM registry packages by query with rich metadata (scores, publisher, keywords).
243
+ - **Input**: `query` (`string`), `limit` (`number`, optional)
244
+
245
+ #### 13. `npmLicenseCompatibility`
246
+ - Analyze license compatibility across multiple packages (MIT, Apache-2.0, GPL, etc.).
247
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
248
+
249
+ #### 14. `npmRepoStats`
250
+ - Repository statistics (GitHub stars, forks, open issues) combined with OpenSSF Scorecard checks.
251
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
252
+
253
+ #### 15. `npmDeprecated`
254
+ - Detect deprecation status on package and recursive sub-dependencies.
255
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
256
+
257
+ #### 16. `npmChangelogAnalysis`
258
+ - Extract release notes and GitHub release history.
259
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
395
260
 
396
- This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
261
+ #### 17. `npmAlternatives`
262
+ - Smart functional alternative suggestions filtering out ecosystem plugins (e.g. excludes `express-rate-limit` for `express`).
263
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
264
+
265
+ #### 18. `npmQuality`
266
+ - Package code quality score (0–1).
267
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
268
+
269
+ #### 19. `npmMaintenance`
270
+ - Package maintenance activity score (0–1).
271
+ - **Input**: `packages` (`string[]`), `ignoreCache` (`boolean`, optional)
397
272
 
398
273
  ---
399
274
 
275
+ ## License
276
+
277
+ This MCP server is licensed under the MIT License. See [LICENSE](LICENSE) for details.
278
+
400
279
  MIT © [nekzus](https://github.com/nekzus)