@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 +123 -152
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +616 -260
- package/dist/index.js.map +1 -0
- package/package.json +49 -14
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @nekzus/mcp-server
|
|
2
2
|
|
|
3
3
|
[](https://github.com/Nekzus/mcp-server/actions/workflows/publish.yml)
|
|
4
4
|
[](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
|
|
12
|
-
|
|
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
|
-
##
|
|
16
|
+
## Features
|
|
18
17
|
|
|
19
|
-
|
|
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
|
-
- **
|
|
22
|
-
-
|
|
23
|
-
-
|
|
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
|
-
{"
|
|
47
|
+
{"packageName": "react"} -> Lists all react versions
|
|
27
48
|
```
|
|
28
49
|
|
|
29
|
-
- **
|
|
30
|
-
-
|
|
31
|
-
- Input:
|
|
50
|
+
- **npmLatest**
|
|
51
|
+
- Get latest version info and changelog
|
|
52
|
+
- Input: `packageName` (string, required)
|
|
32
53
|
- Example:
|
|
33
54
|
```json
|
|
34
|
-
{
|
|
55
|
+
{"packageName": "react"} -> Latest version details
|
|
35
56
|
```
|
|
36
57
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
58
|
+
### Package Analysis Tools
|
|
59
|
+
|
|
60
|
+
- **npmDeps**
|
|
61
|
+
- Analyze package dependencies
|
|
62
|
+
- Input: `packageName` (string, required)
|
|
42
63
|
- Example:
|
|
43
64
|
```json
|
|
44
|
-
{"
|
|
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
|
-
- **
|
|
49
|
-
-
|
|
50
|
-
-
|
|
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
|
-
{"
|
|
57
|
-
{"expression": "(15 / 2) % 2", "precision": 3} -> "🔢 Result: 1.500"
|
|
73
|
+
{"packageName": "react"} -> TypeScript support info
|
|
58
74
|
```
|
|
59
75
|
|
|
60
|
-
- **
|
|
61
|
-
-
|
|
62
|
-
-
|
|
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
|
-
{"
|
|
70
|
-
{"length": 8, "includeNumbers": false} -> "🔐 Generated: KjMpNvXw"
|
|
81
|
+
{"packageName": "react"} -> Size and dependency info
|
|
71
82
|
```
|
|
72
83
|
|
|
73
|
-
- **
|
|
74
|
-
-
|
|
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
|
-
- `
|
|
77
|
-
- `
|
|
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
|
-
"
|
|
98
|
-
"
|
|
99
|
-
|
|
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
|
-
|
|
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
|
-
- **
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
-
|
|
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
|
-
##
|
|
241
|
+
## Requirements
|
|
258
242
|
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
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)
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|