mcp-devutils 1.7.0 → 2.0.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 +30 -5
- package/index.js +40 -5
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
MCP server with **44 developer utilities** for Claude Desktop, Cursor, and any MCP-compatible AI assistant.
|
|
4
4
|
|
|
5
|
+
**15 tools free** — unlock all 44 with a Pro license key.
|
|
6
|
+
|
|
5
7
|
## Install
|
|
6
8
|
|
|
7
9
|
```json
|
|
@@ -15,7 +17,27 @@ MCP server with **44 developer utilities** for Claude Desktop, Cursor, and any M
|
|
|
15
17
|
}
|
|
16
18
|
```
|
|
17
19
|
|
|
18
|
-
##
|
|
20
|
+
## Unlock Pro (29 extra tools)
|
|
21
|
+
|
|
22
|
+
1. Support development at [buymeacoffee.com/gl89tu25lp](https://buymeacoffee.com/gl89tu25lp)
|
|
23
|
+
2. Get your license key in the confirmation
|
|
24
|
+
3. Add it to your MCP config:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"mcpServers": {
|
|
29
|
+
"devutils": {
|
|
30
|
+
"command": "npx",
|
|
31
|
+
"args": ["-y", "mcp-devutils"],
|
|
32
|
+
"env": {
|
|
33
|
+
"MCP_DEVUTILS_KEY": "your-key-here"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Free Tools (15)
|
|
19
41
|
|
|
20
42
|
| Tool | Description |
|
|
21
43
|
|------|-------------|
|
|
@@ -31,10 +53,15 @@ MCP server with **44 developer utilities** for Claude Desktop, Cursor, and any M
|
|
|
31
53
|
| `cron_explain` | Explain cron expressions + next run times |
|
|
32
54
|
| `hmac` | Generate HMAC signatures |
|
|
33
55
|
| `color_convert` | Convert hex ↔ RGB ↔ HSL colors |
|
|
34
|
-
| `semver_compare` | Compare semantic versions |
|
|
35
56
|
| `http_status` | Look up HTTP status code meanings |
|
|
36
57
|
| `slug` | Generate URL-safe slugs |
|
|
37
58
|
| `escape_html` | Escape/unescape HTML entities |
|
|
59
|
+
|
|
60
|
+
## Pro Tools (29)
|
|
61
|
+
|
|
62
|
+
| Tool | Description |
|
|
63
|
+
|------|-------------|
|
|
64
|
+
| `semver_compare` | Compare semantic versions |
|
|
38
65
|
| `chmod_calc` | Convert numeric ↔ symbolic permissions |
|
|
39
66
|
| `diff` | Compare two text strings |
|
|
40
67
|
| `number_base` | Convert decimal/hex/octal/binary |
|
|
@@ -70,9 +97,7 @@ Only requires `@modelcontextprotocol/sdk`. All tools use Node.js built-ins.
|
|
|
70
97
|
|
|
71
98
|
## Support
|
|
72
99
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
- [Buy me a coffee](https://buymeacoffee.com/gl89tu25lp)
|
|
100
|
+
- [Buy me a coffee](https://buymeacoffee.com/gl89tu25lp) — unlocks Pro tools!
|
|
76
101
|
- [Tip via Stripe ($3)](https://buy.stripe.com/dRm8wP8R295Z9VyeN59Zm00)
|
|
77
102
|
|
|
78
103
|
## License
|
package/index.js
CHANGED
|
@@ -4,14 +4,33 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import crypto from "crypto";
|
|
6
6
|
|
|
7
|
+
// --- Freemium gating ---
|
|
8
|
+
const PRO_KEY = process.env.MCP_DEVUTILS_KEY || "";
|
|
9
|
+
const isProUnlocked = PRO_KEY.length >= 16;
|
|
10
|
+
|
|
11
|
+
const FREE_TOOLS = new Set([
|
|
12
|
+
"uuid", "hash", "base64", "timestamp", "jwt_decode",
|
|
13
|
+
"random_string", "url_encode", "json_format", "regex_test",
|
|
14
|
+
"cron_explain", "hmac", "color_convert", "http_status",
|
|
15
|
+
"slug", "escape_html"
|
|
16
|
+
]);
|
|
17
|
+
|
|
18
|
+
const UPGRADE_MSG = `🔒 This is a PRO tool. Upgrade to unlock 29 additional developer tools!
|
|
19
|
+
|
|
20
|
+
Get your license key: https://buymeacoffee.com/gl89tu25lp
|
|
21
|
+
|
|
22
|
+
After purchase, set your key:
|
|
23
|
+
export MCP_DEVUTILS_KEY="your-key-here"
|
|
24
|
+
|
|
25
|
+
Then restart your MCP client. All 44 tools will be unlocked.`;
|
|
26
|
+
|
|
7
27
|
const server = new Server(
|
|
8
|
-
{ name: "mcp-devutils", version: "
|
|
28
|
+
{ name: "mcp-devutils", version: "2.0.0" },
|
|
9
29
|
{ capabilities: { tools: {} } }
|
|
10
30
|
);
|
|
11
31
|
|
|
12
32
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
13
|
-
|
|
14
|
-
tools: [
|
|
33
|
+
const allTools = [
|
|
15
34
|
{
|
|
16
35
|
name: "uuid",
|
|
17
36
|
description: "Generate a UUID v4",
|
|
@@ -585,13 +604,29 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
585
604
|
required: ["text", "pattern", "replacement"]
|
|
586
605
|
}
|
|
587
606
|
}
|
|
588
|
-
|
|
589
|
-
|
|
607
|
+
];
|
|
608
|
+
|
|
609
|
+
// Label pro tools when not unlocked
|
|
610
|
+
const tools = allTools.map(tool => {
|
|
611
|
+
if (!FREE_TOOLS.has(tool.name) && !isProUnlocked) {
|
|
612
|
+
return { ...tool, description: `[PRO] ${tool.description}` };
|
|
613
|
+
}
|
|
614
|
+
return tool;
|
|
615
|
+
});
|
|
616
|
+
|
|
617
|
+
return { tools };
|
|
590
618
|
});
|
|
591
619
|
|
|
592
620
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
593
621
|
const { name, arguments: args } = request.params;
|
|
594
622
|
|
|
623
|
+
// Gate pro tools
|
|
624
|
+
if (!FREE_TOOLS.has(name) && !isProUnlocked) {
|
|
625
|
+
return {
|
|
626
|
+
content: [{ type: "text", text: UPGRADE_MSG }]
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
|
|
595
630
|
try {
|
|
596
631
|
switch (name) {
|
|
597
632
|
case "uuid": {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-devutils",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP server with 44 developer utilities
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "MCP server with 44 developer utilities (15 free + 29 pro). Free: UUID, hash, HMAC, base64, timestamps, JWT decode, random strings, URL encode/decode, JSON format, regex test, cron explain, color convert, HTTP status, slugify, HTML escape. Pro: nanoid, hex encode, JWT create, JSON diff/query, CSV/JSON convert, regex replace, semver compare, chmod calc, text diff, number base, lorem ipsum, word/byte count, CIDR calc, case convert, markdown TOC, env parser, IP info, password strength, data size, string escape, char info, SQL format, epoch convert, AES encrypt/decrypt, RSA keygen, scrypt hash",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|