mcp-devutils 2.0.0 → 2.1.1

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.
@@ -0,0 +1,31 @@
1
+ name: Deploy to GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths: ['docs/**']
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ concurrency:
15
+ group: pages
16
+ cancel-in-progress: true
17
+
18
+ jobs:
19
+ deploy:
20
+ environment:
21
+ name: github-pages
22
+ url: ${{ steps.deployment.outputs.page_url }}
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/configure-pages@v4
27
+ - uses: actions/upload-pages-artifact@v3
28
+ with:
29
+ path: docs
30
+ - id: deployment
31
+ uses: actions/deploy-pages@v4
package/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # mcp-devutils
2
2
 
3
- MCP server with **44 developer utilities** for Claude Desktop, Cursor, and any MCP-compatible AI assistant.
3
+ [![npm version](https://img.shields.io/npm/v/mcp-devutils)](https://www.npmjs.com/package/mcp-devutils)
4
+ [![npm downloads](https://img.shields.io/npm/dw/mcp-devutils)](https://www.npmjs.com/package/mcp-devutils)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
6
 
5
- **15 tools free** unlock all 44 with a Pro license key.
7
+ MCP server with **44 developer utilities** for Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI assistant.
8
+
9
+ **15 tools free forever** — [unlock all 44 for $5](https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05) (one-time, instant delivery).
6
10
 
7
11
  ## Install
8
12
 
@@ -17,10 +21,10 @@ MCP server with **44 developer utilities** for Claude Desktop, Cursor, and any M
17
21
  }
18
22
  ```
19
23
 
20
- ## Unlock Pro (29 extra tools)
24
+ ## Unlock Pro (29 extra tools) — $5 one-time
21
25
 
22
- 1. Support development at [buymeacoffee.com/gl89tu25lp](https://buymeacoffee.com/gl89tu25lp)
23
- 2. Get your license key in the confirmation
26
+ 1. **[Buy Pro License ($5)](https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05)** — instant key delivery
27
+ 2. Copy your license key from the confirmation page
24
28
  3. Add it to your MCP config:
25
29
 
26
30
  ```json
@@ -97,7 +101,8 @@ Only requires `@modelcontextprotocol/sdk`. All tools use Node.js built-ins.
97
101
 
98
102
  ## Support
99
103
 
100
- - [Buy me a coffee](https://buymeacoffee.com/gl89tu25lp) — unlocks Pro tools!
104
+ - **[Get Pro ($5)](https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05)**unlock all 44 tools
105
+ - [Buy me a coffee](https://buymeacoffee.com/gl89tu25lp)
101
106
  - [Tip via Stripe ($3)](https://buy.stripe.com/dRm8wP8R295Z9VyeN59Zm00)
102
107
 
103
108
  ## License
@@ -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
@@ -15,17 +15,17 @@ const FREE_TOOLS = new Set([
15
15
  "slug", "escape_html"
16
16
  ]);
17
17
 
18
- const UPGRADE_MSG = `🔒 This is a PRO tool. Upgrade to unlock 29 additional developer tools!
18
+ const UPGRADE_MSG = `🔒 This is a PRO tool. Upgrade to unlock all 44 developer tools for $5 (one-time):
19
19
 
20
- Get your license key: https://buymeacoffee.com/gl89tu25lp
20
+ Buy Pro: https://buy.stripe.com/bJe00jgjugyr5Fi5cv9Zm05
21
21
 
22
- After purchase, set your key:
23
- export MCP_DEVUTILS_KEY="your-key-here"
22
+ After purchase, add your license key to your MCP config:
23
+ "env": { "MCP_DEVUTILS_KEY": "your-key-here" }
24
24
 
25
25
  Then restart your MCP client. All 44 tools will be unlocked.`;
26
26
 
27
27
  const server = new Server(
28
- { name: "mcp-devutils", version: "2.0.0" },
28
+ { name: "mcp-devutils", version: "2.1.0" },
29
29
  { capabilities: { tools: {} } }
30
30
  );
31
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-devutils",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
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",