@nekzus/mcp-server 1.2.0 → 1.3.0

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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Nekzus MCP Server
1
+ # @nekzus/mcp-server
2
2
 
3
3
  [![Github Workflow](https://github.com/nekzus/mcp-server/actions/workflows/publish.yml/badge.svg?event=push)](https://github.com/Nekzus/mcp-server/actions/workflows/publish.yml)
4
4
  [![npm-version](https://img.shields.io/npm/v/@nekzus/mcp-server.svg)](https://www.npmjs.com/package/@nekzus/mcp-server)
@@ -8,177 +8,161 @@
8
8
 
9
9
  <div align="center">
10
10
 
11
- **A Model Context Protocol (MCP) server that provides utility tools for
12
- development and testing** </br>_This implementation is built on top of the
13
- official MCP SDK and offers an extensible architecture for adding new tools_
11
+ **A Model Context Protocol (MCP) server for comprehensive NPM package analysis** </br>
12
+ _Built on the MCP SDK, providing real-time insights into package quality, security, dependencies, and metrics_
14
13
 
15
14
  </div>
16
15
 
17
- ## Components
16
+ ## Features
18
17
 
19
- ### Tools
18
+ - **Version Analysis**
19
+ - List all available package versions
20
+ - Get latest version details
21
+ - Track version history
22
+ - Analyze release patterns
20
23
 
21
- - **greeting**
22
- - Generate personalized greeting messages
23
- - Input: `name` (string, required): Name of the recipient
24
+ - **Package Analysis**
25
+ - Check dependencies and devDependencies
26
+ - Verify TypeScript support
27
+ - Analyze package size and dependencies
28
+ - Scan for vulnerabilities
29
+ - Monitor security updates
30
+
31
+ - **Metrics Analysis**
32
+ - Track download trends
33
+ - Compare package metrics
34
+ - Evaluate quality scores
35
+ - Assess maintenance status
36
+ - Monitor popularity trends
37
+
38
+ ## Tools
39
+
40
+ ### Version Analysis Tools
41
+
42
+ - **npmVersions**
43
+ - Get all available versions of a package
44
+ - Input: `packageName` (string, required)
24
45
  - Example:
25
46
  ```json
26
- {"name": "John"} -> "👋 Hello John! Welcome to the MCP server!"
47
+ {"packageName": "react"} -> Lists all react versions
27
48
  ```
28
49
 
29
- - **card**
30
- - Draw random cards from a standard 52-card poker deck
31
- - Input: No parameters required
50
+ - **npmLatest**
51
+ - Get latest version info and changelog
52
+ - Input: `packageName` (string, required)
32
53
  - Example:
33
54
  ```json
34
- {} -> "🎴 Drew card: A♠️" (random from 52 cards)
55
+ {"packageName": "react"} -> Latest version details
35
56
  ```
36
57
 
37
- - **datetime**
38
- - Get formatted date/time for any timezone
39
- - Inputs:
40
- - `timeZone` (string, optional, default: "UTC"): Timezone identifier
41
- - `locale` (string, optional, default: "en-US"): Locale for formatting
58
+ ### Package Analysis Tools
59
+
60
+ - **npmDeps**
61
+ - Analyze package dependencies
62
+ - Input: `packageName` (string, required)
42
63
  - Example:
43
64
  ```json
44
- {"timeZone": "America/New_York", "locale": "es-ES"} ->
45
- "🕒 domingo, 24 de marzo de 2024, 15:25:25 hora de verano del este"
65
+ {"packageName": "react"} -> Dependencies breakdown
46
66
  ```
47
67
 
48
- - **calculator**
49
- - Perform mathematical calculations
50
- - Inputs:
51
- - `expression` (string, required): Mathematical expression to evaluate
52
- - `precision` (number, optional, default: 2): Number of decimal places
53
- - Supported operations: +, -, *, /, %, (), .
68
+ - **npmTypes**
69
+ - Check TypeScript support
70
+ - Input: `packageName` (string, required)
54
71
  - Example:
55
72
  ```json
56
- {"expression": "2 + 2 * 3", "precision": 2} -> "🔢 Result: 8.00"
57
- {"expression": "(15 / 2) % 2", "precision": 3} -> "🔢 Result: 1.500"
73
+ {"packageName": "react"} -> TypeScript support info
58
74
  ```
59
75
 
60
- - **passwordGen**
61
- - Generate secure passwords with customizable options
62
- - Inputs:
63
- - `length` (number, optional, default: 16): Password length
64
- - `includeNumbers` (boolean, optional, default: true): Include numbers
65
- - `includeSymbols` (boolean, optional, default: true): Include special symbols
66
- - `includeUppercase` (boolean, optional, default: true): Include uppercase letters
76
+ - **npmSize**
77
+ - Get package size metrics
78
+ - Input: `packageName` (string, required)
67
79
  - Example:
68
80
  ```json
69
- {"length": 12, "includeSymbols": true} -> "🔐 Generated: Kj2$mP9&vN4x"
70
- {"length": 8, "includeNumbers": false} -> "🔐 Generated: KjMpNvXw"
81
+ {"packageName": "react"} -> Size and dependency info
71
82
  ```
72
83
 
73
- - **qrGen**
74
- - Generate QR codes for text or URLs
84
+ - **npmVulnerabilities**
85
+ - Check security vulnerabilities
86
+ - Input: `packageName` (string, required)
87
+ - Example:
88
+ ```json
89
+ {"packageName": "react"} -> Security vulnerabilities
90
+ ```
91
+
92
+ ### Metrics Analysis Tools
93
+
94
+ - **npmTrends**
95
+ - Get download trends
75
96
  - Inputs:
76
- - `text` (string, required): Text or URL to encode
77
- - `size` (number, optional, default: 200): Size in pixels
78
- - `dark` (string, optional, default: "#000000"): Color for dark modules
79
- - `light` (string, optional, default: "#ffffff"): Color for light modules
80
- - Output: Returns a Data URL containing the QR code image
97
+ - `packageName` (string, required)
98
+ - `period` (string, optional): "last-week" | "last-month" | "last-year"
81
99
  - Example:
82
100
  ```json
83
- // Basic Usage
84
- {"text": "https://github.com/nekzus"} ->
85
- "📱 QR Code generated successfully!
86
- Properties:
87
- • Content: https://github.com/nekzus
88
- • Size: 200px
89
- • Dark Color: #000000
90
- • Light Color: #ffffff
91
-
92
- QR Code (Data URL):
93
- data:image/png;base64,..."
94
-
95
- // Custom Size and Colors
96
101
  {
97
- "text": "Hello World!",
98
- "size": 300,
99
- "dark": "#FF0000",
100
- "light": "#FFFFFF"
101
- } ->
102
- "📱 QR Code generated successfully!
103
- Properties:
104
- • Content: Hello World!
105
- • Size: 300px
106
- • Dark Color: #FF0000
107
- • Light Color: #FFFFFF
108
-
109
- QR Code (Data URL):
110
- data:image/png;base64,..."
102
+ "packageName": "react",
103
+ "period": "last-month"
104
+ } -> Download trends data
111
105
  ```
112
106
 
113
- **Note:** The QR code is returned as a Data URL that can be used directly in HTML `<img>` tags or converted to a file.
107
+ - **npmCompare**
108
+ - Compare multiple packages
109
+ - Input: `packages` (string[], required)
110
+ - Example:
111
+ ```json
112
+ {
113
+ "packages": ["react", "vue", "angular"]
114
+ } -> Comparative metrics
115
+ ```
114
116
 
115
- - **kitchenConvert**
116
- - Convert between kitchen measurements
117
- - Inputs:
118
- - `value` (number, required): Value to convert
119
- - `from` (string, required): Source unit
120
- - `to` (string, required): Target unit
121
- - `ingredient` (string, optional): Ingredient for accurate conversion
122
-
123
- **Supported Units:**
124
-
125
- *Volume Units:*
126
- ```
127
- - ml (milliliters)
128
- - l (liters)
129
- - cup (US cup = 236.588 ml)
130
- - tbsp (US tablespoon = 14.787 ml)
131
- - tsp (US teaspoon = 4.929 ml)
132
- - floz (US fluid ounce = 29.574 ml)
133
- ```
134
-
135
- *Weight Units:*
136
- ```
137
- - g (grams)
138
- - kg (kilograms)
139
- - oz (ounces = 28.350 g)
140
- - lb (pounds = 453.592 g)
141
- ```
142
-
143
- **Ingredient Densities:**
144
- ```
145
- - water (1.000 g/ml)
146
- - milk (1.030 g/ml)
147
- - flour (0.593 g/ml)
148
- - sugar (0.845 g/ml)
149
- - brown_sugar (0.721 g/ml)
150
- - salt (1.217 g/ml)
151
- - butter (0.911 g/ml)
152
- - oil (0.918 g/ml)
153
- - honey (1.420 g/ml)
154
- - maple_syrup (1.370 g/ml)
155
- ```
156
-
157
- Examples:
158
- ```json
159
- // Volume to Volume
160
- {"value": 1, "from": "cup", "to": "ml"} ->
161
- "⚖️ 1 cup = 236.59 ml"
162
-
163
- // Weight to Weight
164
- {"value": 500, "from": "g", "to": "lb"} ->
165
- "⚖️ 500 g = 1.10 lb"
166
-
167
- // Volume to Weight (requires ingredient)
168
- {"value": 1, "from": "cup", "to": "g", "ingredient": "flour"} ->
169
- "⚖️ 1 cup of flour = 140.30 g"
170
- ```
117
+ - **npmQuality**
118
+ - Get quality metrics
119
+ - Input: `packageName` (string, required)
120
+ - Example:
121
+ ```json
122
+ {"packageName": "react"} -> Quality score details
123
+ ```
124
+
125
+ - **npmMaintenance**
126
+ - Get maintenance metrics
127
+ - Input: `packageName` (string, required)
128
+ - Example:
129
+ ```json
130
+ {"packageName": "react"} -> Maintenance status
131
+ ```
132
+
133
+ - **npmPopularity**
134
+ - Get popularity metrics
135
+ - Input: `packageName` (string, required)
136
+ - Example:
137
+ ```json
138
+ {"packageName": "react"} -> Popularity metrics
139
+ ```
171
140
 
172
141
  ## Key Features
173
142
 
143
+ - Real-time package analysis
144
+ - Comprehensive security scanning
145
+ - Detailed dependency tracking
146
+ - TypeScript support verification
147
+ - Performance metrics monitoring
174
148
  - Zero configuration required
175
- - JSON-RPC 2.0 compliant
176
149
  - Type-safe implementations
177
- - Emoji-enhanced responses
178
- - Comprehensive error handling
179
- - ESM support
180
- - Full TypeScript types
150
+ - Full TypeScript declarations
181
151
  - Docker support
152
+ - ESM support
153
+
154
+ ## Installation
155
+
156
+ ```bash
157
+ # NPM
158
+ npm install @nekzus/mcp-server
159
+
160
+ # Yarn
161
+ yarn add @nekzus/mcp-server
162
+
163
+ # PNPM
164
+ pnpm add @nekzus/mcp-server
165
+ ```
182
166
 
183
167
  ## Configuration
184
168
 
@@ -244,7 +228,7 @@ npm run build
244
228
 
245
229
  ## Docker
246
230
 
247
- Build the Docker image:
231
+ Build and run the Docker image:
248
232
 
249
233
  ```bash
250
234
  # Build the image
@@ -254,24 +238,11 @@ docker build -t nekzus/mcp-server .
254
238
  docker run -i --rm --init nekzus/mcp-server
255
239
  ```
256
240
 
257
- ## Contributing
241
+ ## Requirements
258
242
 
259
- 1. Fork the repository
260
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
261
- 3. Commit your changes using commitizen (`npm run commit`)
262
- 4. Push to the branch (`git push origin feature/amazing-feature`)
263
- 5. Open a Pull Request
243
+ - Node.js >= 18
244
+ - npm >= 9
264
245
 
265
246
  ## License
266
247
 
267
- 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.
268
-
269
- ## Author
270
-
271
- 👤 **nekzus**
272
-
273
- * GitHub: [@Nekzus](https://github.com/Nekzus)
274
-
275
- ## Show your support
276
-
277
- Give a ⭐️ if this project helped you!
248
+ MIT © [nekzus](https://github.com/nekzus)
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ declare function handleNpmVersions(args: {
4
+ packageName: string;
5
+ }): Promise<CallToolResult>;
6
+ declare function handleNpmLatest(args: {
7
+ packageName: string;
8
+ }): Promise<CallToolResult>;
9
+ declare function handleNpmDeps(args: {
10
+ packageName: string;
11
+ }): Promise<CallToolResult>;
12
+ declare function handleNpmTypes(args: {
13
+ packageName: string;
14
+ }): Promise<CallToolResult>;
15
+ declare function handleNpmSize(args: {
16
+ packageName: string;
17
+ }): Promise<CallToolResult>;
18
+ declare function handleNpmVulnerabilities(args: {
19
+ packageName: string;
20
+ }): Promise<CallToolResult>;
21
+ declare function handleNpmTrends(args: {
22
+ packageName: string;
23
+ period?: string;
24
+ }): Promise<CallToolResult>;
25
+ declare function handleNpmCompare(args: {
26
+ packages: string[];
27
+ }): Promise<CallToolResult>;
28
+ declare function handleNpmQuality(args: {
29
+ packageName: string;
30
+ }): Promise<CallToolResult>;
31
+ declare function handleNpmMaintenance(args: {
32
+ packageName: string;
33
+ }): Promise<CallToolResult>;
34
+ declare function handleNpmPopularity(args: {
35
+ packageName: string;
36
+ }): Promise<CallToolResult>;
37
+ export { handleNpmCompare, handleNpmDeps, handleNpmLatest, handleNpmMaintenance, handleNpmPopularity, handleNpmQuality, handleNpmSize, handleNpmTrends, handleNpmTypes, handleNpmVersions, handleNpmVulnerabilities, };
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAQ,MAAM,oCAAoC,CAAC;AAiT/E,iBAAe,iBAAiB,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAwCvF;AAED,iBAAe,eAAe,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAyDrF;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAqDnF;AAED,iBAAe,cAAc,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAwCpF;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAuCnF;AAED,iBAAe,wBAAwB,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA6D9F;AAED,iBAAe,eAAe,CAAC,IAAI,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,cAAc,CAAC,CA8B1B;AAED,iBAAe,gBAAgB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAoDrF;AAGD,iBAAe,gBAAgB,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA4CtF;AAGD,iBAAe,oBAAoB,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA4C1F;AAGD,iBAAe,mBAAmB,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA4CzF;AAGD,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,wBAAwB,GACxB,CAAC"}