mcpize 1.0.20 ā 1.0.22
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/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +20 -29
- package/dist/commands/dev.js.map +1 -1
- package/dist/tunnel/providers/cloudflared.d.ts +8 -2
- package/dist/tunnel/providers/cloudflared.d.ts.map +1 -1
- package/dist/tunnel/providers/cloudflared.js +69 -14
- package/dist/tunnel/providers/cloudflared.js.map +1 -1
- package/dist/tunnel/providers/ngrok.d.ts +8 -3
- package/dist/tunnel/providers/ngrok.d.ts.map +1 -1
- package/dist/tunnel/providers/ngrok.js +26 -13
- package/dist/tunnel/providers/ngrok.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuLpC,eAAO,MAAM,UAAU,SA8JnB,CAAC"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -120,30 +120,9 @@ function loadEnvVars(cwd) {
|
|
|
120
120
|
return env;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
|
-
*
|
|
123
|
+
* Open playground URL in browser
|
|
124
124
|
*/
|
|
125
|
-
|
|
126
|
-
return new Promise((resolve) => {
|
|
127
|
-
const check = spawn("npx", ["--yes", "@anthropic-ai/mcp-inspector", "--version"], {
|
|
128
|
-
stdio: "ignore",
|
|
129
|
-
shell: true,
|
|
130
|
-
});
|
|
131
|
-
check.on("close", (code) => resolve(code === 0));
|
|
132
|
-
check.on("error", () => resolve(false));
|
|
133
|
-
// Timeout after 5 seconds
|
|
134
|
-
setTimeout(() => {
|
|
135
|
-
check.kill();
|
|
136
|
-
resolve(false);
|
|
137
|
-
}, 5000);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Open MCP Inspector in browser
|
|
142
|
-
*/
|
|
143
|
-
function openInspector(port) {
|
|
144
|
-
const url = `https://inspect.mcpize.dev?url=http://localhost:${port}/mcp`;
|
|
145
|
-
console.log(chalk.cyan(`\nš MCP Inspector: ${url}`));
|
|
146
|
-
// Try to open browser
|
|
125
|
+
function openBrowser(url) {
|
|
147
126
|
const openCmd = process.platform === "darwin"
|
|
148
127
|
? "open"
|
|
149
128
|
: process.platform === "win32"
|
|
@@ -151,13 +130,19 @@ function openInspector(port) {
|
|
|
151
130
|
: "xdg-open";
|
|
152
131
|
spawn(openCmd, [url], { stdio: "ignore", shell: true, detached: true });
|
|
153
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Get playground URL for tunnel
|
|
135
|
+
*/
|
|
136
|
+
function getPlaygroundUrl(tunnelUrl) {
|
|
137
|
+
return `https://mcpize.com/playground?url=${encodeURIComponent(tunnelUrl)}`;
|
|
138
|
+
}
|
|
154
139
|
export const devCommand = new Command("dev")
|
|
155
140
|
.description("Run local development server with hot reload")
|
|
156
141
|
.option("-p, --port <port>", "Port to run on", "3000")
|
|
157
|
-
.option("--no-inspector", "Don't open MCP Inspector")
|
|
158
142
|
.option("--no-build", "Skip initial build step")
|
|
159
143
|
.option("-t, --tunnel", "Expose server via public tunnel URL")
|
|
160
144
|
.option("--provider <provider>", "Tunnel provider: localtunnel, ngrok, cloudflared")
|
|
145
|
+
.option("--playground", "Open MCPize Playground instead of just showing URL")
|
|
161
146
|
.action(async (options) => {
|
|
162
147
|
const cwd = process.cwd();
|
|
163
148
|
const port = parseInt(options.port, 10);
|
|
@@ -228,7 +213,17 @@ export const devCommand = new Command("dev")
|
|
|
228
213
|
tunnel = await createTunnel(port, options.provider);
|
|
229
214
|
console.log(` ${chalk.gray("Public:")} ${chalk.green(tunnel.url)}`);
|
|
230
215
|
console.log(` ${chalk.gray("MCP:")} ${chalk.green(`${tunnel.url}/mcp`)}`);
|
|
231
|
-
|
|
216
|
+
// Show playground URL
|
|
217
|
+
const playgroundUrl = getPlaygroundUrl(tunnel.url);
|
|
218
|
+
console.log(`\n ${chalk.gray("Playground:")} ${chalk.cyan(playgroundUrl)}`);
|
|
219
|
+
// Open playground if requested
|
|
220
|
+
if (options.playground) {
|
|
221
|
+
console.log(chalk.gray(" Opening in browser..."));
|
|
222
|
+
setTimeout(() => openBrowser(playgroundUrl), 2000);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
console.log(chalk.gray("\n Use --playground flag to open in MCPize Playground"));
|
|
226
|
+
}
|
|
232
227
|
}
|
|
233
228
|
catch (err) {
|
|
234
229
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -237,10 +232,6 @@ export const devCommand = new Command("dev")
|
|
|
237
232
|
}
|
|
238
233
|
}
|
|
239
234
|
console.log(chalk.gray(`\n Health check: MCP ping method`));
|
|
240
|
-
// 9. Open MCP Inspector
|
|
241
|
-
if (options.inspector) {
|
|
242
|
-
setTimeout(() => openInspector(port), 2000); // Wait for server to start
|
|
243
|
-
}
|
|
244
235
|
console.log(chalk.gray("\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n"));
|
|
245
236
|
console.log(chalk.gray(`$ ${cmd} ${args.join(" ")}\n`));
|
|
246
237
|
// 9. Spawn dev process
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,14 @@ import type { TunnelProvider } from "../types.js";
|
|
|
3
3
|
* Cloudflare Tunnel provider - free, reliable tunneling
|
|
4
4
|
*
|
|
5
5
|
* Requires `cloudflared` CLI to be installed:
|
|
6
|
-
* brew install cloudflared
|
|
7
|
-
* winget install cloudflare.cloudflared
|
|
6
|
+
* macOS: brew install cloudflared
|
|
7
|
+
* Windows: winget install cloudflare.cloudflared
|
|
8
|
+
* Linux: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Free without limits (trycloudflare.com)
|
|
12
|
+
* - No account needed for quick tunnels
|
|
13
|
+
* - More stable than localtunnel
|
|
8
14
|
*
|
|
9
15
|
* @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
|
|
10
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflared.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudflared.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAIpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAoFjC,CAAC"}
|
|
@@ -1,28 +1,83 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
const STARTUP_TIMEOUT_MS = 30000;
|
|
1
3
|
/**
|
|
2
4
|
* Cloudflare Tunnel provider - free, reliable tunneling
|
|
3
5
|
*
|
|
4
6
|
* Requires `cloudflared` CLI to be installed:
|
|
5
|
-
* brew install cloudflared
|
|
6
|
-
* winget install cloudflare.cloudflared
|
|
7
|
+
* macOS: brew install cloudflared
|
|
8
|
+
* Windows: winget install cloudflare.cloudflared
|
|
9
|
+
* Linux: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Free without limits (trycloudflare.com)
|
|
13
|
+
* - No account needed for quick tunnels
|
|
14
|
+
* - More stable than localtunnel
|
|
7
15
|
*
|
|
8
16
|
* @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
|
|
9
17
|
*/
|
|
10
18
|
export const cloudflaredProvider = {
|
|
11
19
|
name: "cloudflared",
|
|
12
20
|
async isAvailable() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
return new Promise((resolve) => {
|
|
22
|
+
const proc = spawn("cloudflared", ["--version"], {
|
|
23
|
+
stdio: "ignore",
|
|
24
|
+
shell: true,
|
|
25
|
+
});
|
|
26
|
+
proc.on("close", (code) => resolve(code === 0));
|
|
27
|
+
proc.on("error", () => resolve(false));
|
|
28
|
+
// Timeout
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
proc.kill();
|
|
31
|
+
resolve(false);
|
|
32
|
+
}, 5000);
|
|
33
|
+
});
|
|
17
34
|
},
|
|
18
|
-
async connect(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
async connect(port) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
const proc = spawn("cloudflared", ["tunnel", "--url", `http://localhost:${port}`], {
|
|
38
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
39
|
+
shell: true,
|
|
40
|
+
});
|
|
41
|
+
let resolved = false;
|
|
42
|
+
const timeout = setTimeout(() => {
|
|
43
|
+
if (!resolved) {
|
|
44
|
+
proc.kill();
|
|
45
|
+
reject(new Error("Cloudflared tunnel startup timeout"));
|
|
46
|
+
}
|
|
47
|
+
}, STARTUP_TIMEOUT_MS);
|
|
48
|
+
// URL appears in stderr (cloudflared logs to stderr)
|
|
49
|
+
proc.stderr?.on("data", (data) => {
|
|
50
|
+
if (resolved)
|
|
51
|
+
return;
|
|
52
|
+
const output = data.toString();
|
|
53
|
+
// Look for the trycloudflare.com URL
|
|
54
|
+
const match = output.match(/https:\/\/[a-z0-9-]+\.trycloudflare\.com/i);
|
|
55
|
+
if (match) {
|
|
56
|
+
resolved = true;
|
|
57
|
+
clearTimeout(timeout);
|
|
58
|
+
resolve({
|
|
59
|
+
url: match[0],
|
|
60
|
+
close: async () => {
|
|
61
|
+
proc.kill("SIGTERM");
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
proc.on("error", (err) => {
|
|
67
|
+
if (!resolved) {
|
|
68
|
+
resolved = true;
|
|
69
|
+
clearTimeout(timeout);
|
|
70
|
+
reject(new Error(`Failed to start cloudflared: ${err.message}`));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
proc.on("close", (code) => {
|
|
74
|
+
if (!resolved) {
|
|
75
|
+
resolved = true;
|
|
76
|
+
clearTimeout(timeout);
|
|
77
|
+
reject(new Error(`Cloudflared exited unexpectedly with code ${code}`));
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
26
81
|
},
|
|
27
82
|
};
|
|
28
83
|
//# sourceMappingURL=cloudflared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflared.js","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudflared.js","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type { TunnelProvider } from "../types.js";
|
|
2
2
|
/**
|
|
3
|
-
* ngrok provider - reliable
|
|
3
|
+
* ngrok provider - reliable tunneling service (official SDK)
|
|
4
4
|
*
|
|
5
5
|
* Requires NGROK_AUTHTOKEN environment variable.
|
|
6
|
-
* Get token at: https://dashboard.ngrok.com/get-started/your-authtoken
|
|
6
|
+
* Get free token at: https://dashboard.ngrok.com/get-started/your-authtoken
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Pure JS, no binary download
|
|
10
|
+
* - Stable URLs during session
|
|
11
|
+
* - Better reliability than localtunnel
|
|
12
|
+
*
|
|
13
|
+
* @see https://ngrok.com/docs/getting-started/javascript
|
|
9
14
|
*/
|
|
10
15
|
export declare const ngrokProvider: TunnelProvider;
|
|
11
16
|
//# sourceMappingURL=ngrok.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrok.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/ngrok.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"ngrok.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/ngrok.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,EAAE,cA8B3B,CAAC"}
|
|
@@ -1,26 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ngrok provider - reliable
|
|
2
|
+
* ngrok provider - reliable tunneling service (official SDK)
|
|
3
3
|
*
|
|
4
4
|
* Requires NGROK_AUTHTOKEN environment variable.
|
|
5
|
-
* Get token at: https://dashboard.ngrok.com/get-started/your-authtoken
|
|
5
|
+
* Get free token at: https://dashboard.ngrok.com/get-started/your-authtoken
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Pure JS, no binary download
|
|
9
|
+
* - Stable URLs during session
|
|
10
|
+
* - Better reliability than localtunnel
|
|
11
|
+
*
|
|
12
|
+
* @see https://ngrok.com/docs/getting-started/javascript
|
|
8
13
|
*/
|
|
9
14
|
export const ngrokProvider = {
|
|
10
15
|
name: "ngrok",
|
|
11
16
|
async isAvailable() {
|
|
12
17
|
return !!process.env.NGROK_AUTHTOKEN;
|
|
13
18
|
},
|
|
14
|
-
async connect(
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
async connect(port) {
|
|
20
|
+
// Dynamic import to avoid bundling if not used
|
|
21
|
+
const ngrok = await import("@ngrok/ngrok");
|
|
22
|
+
// Create tunnel with authtoken from environment
|
|
23
|
+
const listener = await ngrok.forward({
|
|
24
|
+
addr: port,
|
|
25
|
+
authtoken_from_env: true,
|
|
26
|
+
});
|
|
27
|
+
const url = listener.url();
|
|
28
|
+
if (!url) {
|
|
29
|
+
throw new Error("Failed to get ngrok tunnel URL");
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
url,
|
|
33
|
+
close: async () => {
|
|
34
|
+
await ngrok.disconnect(url);
|
|
35
|
+
},
|
|
36
|
+
};
|
|
24
37
|
},
|
|
25
38
|
};
|
|
26
39
|
//# sourceMappingURL=ngrok.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrok.js","sourceRoot":"","sources":["../../../src/tunnel/providers/ngrok.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"ngrok.js","sourceRoot":"","sources":["../../../src/tunnel/providers/ngrok.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,OAAO;IAEb,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,+CAA+C;QAC/C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAE3C,gDAAgD;QAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,IAAI;YACV,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,GAAG;YACH,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpize",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.22",
|
|
4
4
|
"description": "Deploy and monetize MCP servers in the cloud",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"commander": "^14.0.0",
|
|
19
19
|
"dotenv": "^17.2.3",
|
|
20
20
|
"enquirer": "^2.4.1",
|
|
21
|
+
"@ngrok/ngrok": "^1.4.1",
|
|
21
22
|
"localtunnel": "^2.0.2",
|
|
22
23
|
"open": "^11.0.0",
|
|
23
24
|
"ora": "^9.0.0",
|