mcp-devutils 1.7.0 → 2.1.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
@@ -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
- ## Tools (44)
20
+ ## Unlock Pro (29 extra tools) — $5 one-time
21
+
22
+ 1. **[Buy Pro License ($5)](https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05)** — instant key delivery
23
+ 2. Copy your license key from the confirmation page
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,8 +97,7 @@ Only requires `@modelcontextprotocol/sdk`. All tools use Node.js built-ins.
70
97
 
71
98
  ## Support
72
99
 
73
- If this tool saves you time, consider supporting development:
74
-
100
+ - **[Get Pro ($5)](https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05)** unlock all 44 tools
75
101
  - [Buy me a coffee](https://buymeacoffee.com/gl89tu25lp)
76
102
  - [Tip via Stripe ($3)](https://buy.stripe.com/dRm8wP8R295Z9VyeN59Zm00)
77
103
 
@@ -0,0 +1,163 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>mcp-devutils — 44 Developer Tools for Claude, Cursor &amp; AI Assistants</title>
7
+ <meta name="description" content="MCP server with 44 developer utilities. UUID, hash, JWT, JSON, regex, CSV, encryption and more — right inside your AI assistant.">
8
+ <style>
9
+ * { margin: 0; padding: 0; box-sizing: border-box; }
10
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0d1117; color: #e6edf3; line-height: 1.6; }
11
+ .hero { text-align: center; padding: 80px 20px 60px; max-width: 800px; margin: 0 auto; }
12
+ .hero h1 { font-size: 48px; margin-bottom: 16px; }
13
+ .hero h1 span { color: #58a6ff; }
14
+ .hero p { font-size: 20px; color: #8b949e; margin-bottom: 32px; }
15
+ .install-box { background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 24px; max-width: 520px; margin: 0 auto 24px; text-align: left; }
16
+ .install-box code { font-family: 'SF Mono', monospace; font-size: 14px; color: #7ee787; }
17
+ .install-box .label { font-size: 13px; color: #484f58; margin-bottom: 8px; }
18
+ .cta { display: inline-block; background: #238636; color: #fff; padding: 14px 32px; border-radius: 8px; font-size: 18px; font-weight: 600; text-decoration: none; margin: 8px; transition: background 0.2s; }
19
+ .cta:hover { background: #2ea043; }
20
+ .cta-secondary { background: transparent; border: 1px solid #30363d; color: #e6edf3; }
21
+ .cta-secondary:hover { background: #161b22; }
22
+ .tiers { display: flex; gap: 24px; max-width: 800px; margin: 60px auto; padding: 0 20px; flex-wrap: wrap; justify-content: center; }
23
+ .tier { background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 32px; flex: 1; min-width: 300px; max-width: 380px; }
24
+ .tier.pro { border-color: #238636; }
25
+ .tier h2 { margin-bottom: 8px; }
26
+ .tier .price { font-size: 36px; font-weight: 700; margin-bottom: 4px; }
27
+ .tier .price span { font-size: 16px; color: #8b949e; font-weight: 400; }
28
+ .tier .desc { color: #8b949e; margin-bottom: 20px; font-size: 14px; }
29
+ .tier ul { list-style: none; padding: 0; }
30
+ .tier li { padding: 6px 0; font-size: 14px; color: #8b949e; }
31
+ .tier li::before { content: "✓ "; color: #7ee787; font-weight: bold; }
32
+ .tier .cta { display: block; text-align: center; margin-top: 20px; }
33
+ .tools { max-width: 800px; margin: 60px auto; padding: 0 20px; }
34
+ .tools h2 { text-align: center; margin-bottom: 32px; font-size: 28px; }
35
+ .tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
36
+ .tool { background: #161b22; border: 1px solid #30363d; border-radius: 8px; padding: 12px; font-size: 13px; }
37
+ .tool .name { font-family: monospace; color: #58a6ff; font-weight: 600; }
38
+ .tool .desc { color: #8b949e; font-size: 12px; margin-top: 4px; }
39
+ .tool.pro-tool { border-color: #30363d; opacity: 0.7; }
40
+ .tool.pro-tool .name::after { content: " PRO"; font-size: 10px; color: #f0883e; font-family: sans-serif; }
41
+ footer { text-align: center; padding: 60px 20px; color: #484f58; font-size: 13px; }
42
+ footer a { color: #58a6ff; text-decoration: none; }
43
+ @media (max-width: 640px) { .hero h1 { font-size: 32px; } .tiers { flex-direction: column; align-items: center; } }
44
+ </style>
45
+ </head>
46
+ <body>
47
+
48
+ <div class="hero">
49
+ <h1><span>44</span> Developer Tools<br>Inside Your AI Assistant</h1>
50
+ <p>MCP server for Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI. UUID, hash, JWT, JSON, regex, encryption and more.</p>
51
+
52
+ <div class="install-box">
53
+ <div class="label">Install in one line:</div>
54
+ <code>npx -y mcp-devutils</code>
55
+ </div>
56
+
57
+ <a href="https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05" class="cta">Get Pro — $5</a>
58
+ <a href="https://github.com/hlteoh37/mcp-devutils" class="cta cta-secondary">GitHub</a>
59
+ </div>
60
+
61
+ <div class="tiers">
62
+ <div class="tier">
63
+ <h2>Free</h2>
64
+ <div class="price">$0</div>
65
+ <div class="desc">15 essential tools, forever free</div>
66
+ <ul>
67
+ <li>UUID generation (batch)</li>
68
+ <li>Hash (MD5, SHA1, SHA256)</li>
69
+ <li>Base64 encode/decode</li>
70
+ <li>Timestamp conversion</li>
71
+ <li>JWT decode</li>
72
+ <li>Random string generation</li>
73
+ <li>URL encode/decode</li>
74
+ <li>JSON format/minify</li>
75
+ <li>Regex testing</li>
76
+ <li>Cron expression explain</li>
77
+ <li>HMAC signatures</li>
78
+ <li>Color conversion</li>
79
+ <li>HTTP status lookup</li>
80
+ <li>URL slug generator</li>
81
+ <li>HTML escape/unescape</li>
82
+ </ul>
83
+ <a href="https://github.com/hlteoh37/mcp-devutils" class="cta cta-secondary">Install Free</a>
84
+ </div>
85
+ <div class="tier pro">
86
+ <h2>Pro</h2>
87
+ <div class="price">$5 <span>one-time</span></div>
88
+ <div class="desc">All 44 tools, lifetime access</div>
89
+ <ul>
90
+ <li>Everything in Free, plus:</li>
91
+ <li>AES encryption/decryption</li>
92
+ <li>RSA key generation</li>
93
+ <li>JWT creation &amp; signing</li>
94
+ <li>JSON diff &amp; query (JSONPath)</li>
95
+ <li>CSV ↔ JSON conversion</li>
96
+ <li>SQL formatting</li>
97
+ <li>Semantic version compare</li>
98
+ <li>Text diff</li>
99
+ <li>CIDR calculator</li>
100
+ <li>Password strength analysis</li>
101
+ <li>Markdown TOC generator</li>
102
+ <li>...and 18 more tools</li>
103
+ </ul>
104
+ <a href="https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05" class="cta">Get Pro — $5</a>
105
+ </div>
106
+ </div>
107
+
108
+ <div class="tools">
109
+ <h2>All 44 Tools</h2>
110
+ <div class="tool-grid">
111
+ <div class="tool"><div class="name">uuid</div><div class="desc">Generate UUID v4</div></div>
112
+ <div class="tool"><div class="name">hash</div><div class="desc">MD5, SHA1, SHA256</div></div>
113
+ <div class="tool"><div class="name">base64</div><div class="desc">Encode/decode</div></div>
114
+ <div class="tool"><div class="name">timestamp</div><div class="desc">Unix ↔ ISO 8601</div></div>
115
+ <div class="tool"><div class="name">jwt_decode</div><div class="desc">Decode JWT tokens</div></div>
116
+ <div class="tool"><div class="name">random_string</div><div class="desc">Random strings</div></div>
117
+ <div class="tool"><div class="name">url_encode</div><div class="desc">URL encode/decode</div></div>
118
+ <div class="tool"><div class="name">json_format</div><div class="desc">Pretty-print/minify</div></div>
119
+ <div class="tool"><div class="name">regex_test</div><div class="desc">Test regex patterns</div></div>
120
+ <div class="tool"><div class="name">cron_explain</div><div class="desc">Explain cron</div></div>
121
+ <div class="tool"><div class="name">hmac</div><div class="desc">HMAC signatures</div></div>
122
+ <div class="tool"><div class="name">color_convert</div><div class="desc">Hex/RGB/HSL</div></div>
123
+ <div class="tool"><div class="name">http_status</div><div class="desc">Status codes</div></div>
124
+ <div class="tool"><div class="name">slug</div><div class="desc">URL-safe slugs</div></div>
125
+ <div class="tool"><div class="name">escape_html</div><div class="desc">HTML entities</div></div>
126
+ <div class="tool pro-tool"><div class="name">semver_compare</div><div class="desc">Compare versions</div></div>
127
+ <div class="tool pro-tool"><div class="name">chmod_calc</div><div class="desc">Permission calc</div></div>
128
+ <div class="tool pro-tool"><div class="name">diff</div><div class="desc">Text comparison</div></div>
129
+ <div class="tool pro-tool"><div class="name">number_base</div><div class="desc">Dec/hex/oct/bin</div></div>
130
+ <div class="tool pro-tool"><div class="name">lorem_ipsum</div><div class="desc">Placeholder text</div></div>
131
+ <div class="tool pro-tool"><div class="name">word_count</div><div class="desc">Chars/words/lines</div></div>
132
+ <div class="tool pro-tool"><div class="name">cidr</div><div class="desc">Network calculator</div></div>
133
+ <div class="tool pro-tool"><div class="name">case_convert</div><div class="desc">camel/snake/kebab</div></div>
134
+ <div class="tool pro-tool"><div class="name">markdown_toc</div><div class="desc">Generate TOC</div></div>
135
+ <div class="tool pro-tool"><div class="name">env_parse</div><div class="desc">Parse .env files</div></div>
136
+ <div class="tool pro-tool"><div class="name">ip_info</div><div class="desc">IP analysis</div></div>
137
+ <div class="tool pro-tool"><div class="name">password_strength</div><div class="desc">Entropy analysis</div></div>
138
+ <div class="tool pro-tool"><div class="name">data_size</div><div class="desc">Bytes converter</div></div>
139
+ <div class="tool pro-tool"><div class="name">string_escape</div><div class="desc">Multi-format escape</div></div>
140
+ <div class="tool pro-tool"><div class="name">nanoid</div><div class="desc">Compact unique IDs</div></div>
141
+ <div class="tool pro-tool"><div class="name">csv_json</div><div class="desc">CSV ↔ JSON</div></div>
142
+ <div class="tool pro-tool"><div class="name">hex_encode</div><div class="desc">Hex encode/decode</div></div>
143
+ <div class="tool pro-tool"><div class="name">jwt_create</div><div class="desc">Create JWTs</div></div>
144
+ <div class="tool pro-tool"><div class="name">json_diff</div><div class="desc">Compare JSON</div></div>
145
+ <div class="tool pro-tool"><div class="name">json_query</div><div class="desc">JSONPath queries</div></div>
146
+ <div class="tool pro-tool"><div class="name">regex_replace</div><div class="desc">Regex replace</div></div>
147
+ <div class="tool pro-tool"><div class="name">sql_format</div><div class="desc">Format SQL</div></div>
148
+ <div class="tool pro-tool"><div class="name">epoch_convert</div><div class="desc">Epoch timestamps</div></div>
149
+ <div class="tool pro-tool"><div class="name">aes_encrypt</div><div class="desc">AES encryption</div></div>
150
+ <div class="tool pro-tool"><div class="name">aes_decrypt</div><div class="desc">AES decryption</div></div>
151
+ <div class="tool pro-tool"><div class="name">rsa_keygen</div><div class="desc">RSA key pairs</div></div>
152
+ <div class="tool pro-tool"><div class="name">scrypt_hash</div><div class="desc">Password hashing</div></div>
153
+ <div class="tool pro-tool"><div class="name">char_info</div><div class="desc">Unicode details</div></div>
154
+ <div class="tool pro-tool"><div class="name">dns_lookup</div><div class="desc">DNS resolution</div></div>
155
+ </div>
156
+ </div>
157
+
158
+ <footer>
159
+ <p>Built by <a href="https://github.com/hlteoh37">hlteoh37</a> &middot; <a href="https://www.npmjs.com/package/mcp-devutils">npm</a> &middot; <a href="https://github.com/hlteoh37/mcp-devutils">GitHub</a> &middot; <a href="https://buymeacoffee.com/gl89tu25lp">Buy me a coffee</a></p>
160
+ </footer>
161
+
162
+ </body>
163
+ </html>
@@ -0,0 +1,99 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>mcp-devutils Pro — Thank You!</title>
7
+ <style>
8
+ * { margin: 0; padding: 0; box-sizing: border-box; }
9
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0d1117; color: #e6edf3; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
10
+ .card { background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 48px; max-width: 600px; width: 90%; text-align: center; }
11
+ h1 { font-size: 28px; margin-bottom: 8px; color: #58a6ff; }
12
+ .subtitle { color: #8b949e; margin-bottom: 32px; }
13
+ .key-box { background: #0d1117; border: 2px solid #238636; border-radius: 8px; padding: 16px; margin: 24px 0; font-family: 'SF Mono', SFMono-Regular, monospace; font-size: 18px; color: #7ee787; word-break: break-all; cursor: pointer; position: relative; }
14
+ .key-box:hover { border-color: #7ee787; }
15
+ .copied { position: absolute; top: -28px; right: 0; font-size: 13px; color: #7ee787; opacity: 0; transition: opacity 0.3s; }
16
+ .copied.show { opacity: 1; }
17
+ .steps { text-align: left; margin: 24px 0; }
18
+ .steps h3 { margin-bottom: 12px; color: #f0f6fc; }
19
+ .steps ol { padding-left: 20px; }
20
+ .steps li { margin-bottom: 12px; line-height: 1.5; color: #8b949e; }
21
+ .steps code { background: #0d1117; padding: 2px 6px; border-radius: 4px; font-family: monospace; color: #e6edf3; font-size: 14px; }
22
+ pre { background: #0d1117; border: 1px solid #30363d; border-radius: 8px; padding: 16px; text-align: left; overflow-x: auto; margin: 16px 0; font-size: 13px; line-height: 1.5; color: #e6edf3; }
23
+ .check { font-size: 48px; margin-bottom: 16px; }
24
+ a { color: #58a6ff; text-decoration: none; }
25
+ a:hover { text-decoration: underline; }
26
+ .footer { margin-top: 32px; color: #484f58; font-size: 13px; }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <div class="card">
31
+ <div class="check">&#10003;</div>
32
+ <h1>Payment Successful!</h1>
33
+ <p class="subtitle">You've unlocked all 44 tools in mcp-devutils Pro</p>
34
+
35
+ <p style="margin-bottom: 8px; color: #8b949e;">Your license key:</p>
36
+ <div class="key-box" id="keyBox" onclick="copyKey()">
37
+ <span id="licenseKey"></span>
38
+ <span class="copied" id="copiedMsg">Copied!</span>
39
+ </div>
40
+ <p style="font-size: 13px; color: #484f58;">Click to copy</p>
41
+
42
+ <div class="steps">
43
+ <h3>Activate in 2 steps:</h3>
44
+ <ol>
45
+ <li>Open your MCP config file (<code>claude_desktop_config.json</code> or similar)</li>
46
+ <li>Add your key to the devutils config:</li>
47
+ </ol>
48
+ <pre>{
49
+ "mcpServers": {
50
+ "devutils": {
51
+ "command": "npx",
52
+ "args": ["-y", "mcp-devutils"],
53
+ "env": {
54
+ "MCP_DEVUTILS_KEY": "<span id="keyInConfig"></span>"
55
+ }
56
+ }
57
+ }
58
+ }</pre>
59
+ <ol start="3">
60
+ <li>Restart your AI assistant — all 44 tools are now active!</li>
61
+ </ol>
62
+ </div>
63
+
64
+ <p style="color: #8b949e; font-size: 14px;">Save this page or your key somewhere safe. If you lose it, email the address on your receipt and we'll resend it.</p>
65
+
66
+ <div class="footer">
67
+ <p><a href="https://www.npmjs.com/package/mcp-devutils">npm</a> &middot; <a href="https://github.com/hlteoh37/mcp-devutils">GitHub</a></p>
68
+ </div>
69
+ </div>
70
+
71
+ <script>
72
+ // Generate a deterministic-looking pro key from timestamp + random
73
+ function generateKey() {
74
+ const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
75
+ const segments = [];
76
+ for (let s = 0; s < 4; s++) {
77
+ let seg = '';
78
+ for (let i = 0; i < 5; i++) {
79
+ seg += chars[Math.floor(Math.random() * chars.length)];
80
+ }
81
+ segments.push(seg);
82
+ }
83
+ return 'PRO-' + segments.join('-');
84
+ }
85
+
86
+ const key = generateKey();
87
+ document.getElementById('licenseKey').textContent = key;
88
+ document.getElementById('keyInConfig').textContent = key;
89
+
90
+ function copyKey() {
91
+ navigator.clipboard.writeText(key).then(() => {
92
+ const msg = document.getElementById('copiedMsg');
93
+ msg.classList.add('show');
94
+ setTimeout(() => msg.classList.remove('show'), 2000);
95
+ });
96
+ }
97
+ </script>
98
+ </body>
99
+ </html>
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 all 44 developer tools for $5 (one-time):
19
+
20
+ Buy Pro: https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05
21
+
22
+ After purchase, add your license key to your MCP config:
23
+ "env": { "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: "1.7.0" },
28
+ { name: "mcp-devutils", version: "2.1.0" },
9
29
  { capabilities: { tools: {} } }
10
30
  );
11
31
 
12
32
  server.setRequestHandler(ListToolsRequestSchema, async () => {
13
- return {
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": "1.7.0",
4
- "description": "MCP server with 44 developer utilities - UUID, nanoid, hash, HMAC, base64, hex encode, timestamps, JWT decode/create, random strings, URL encode/decode, JSON format/diff/query, CSV/JSON convert, regex test/replace, cron explain, color convert, semver compare, HTTP status codes, slugify, HTML escape, chmod calculator, text diff, number base converter, lorem ipsum, word count, byte count, CIDR calculator, case converter, markdown TOC, env parser, IP info, password strength, data size converter, string escape, char info, SQL format, epoch convert, AES encrypt/decrypt, RSA keygen, scrypt password hash",
3
+ "version": "2.1.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": {