websitepublisher-mcp 2.0.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/build/index.d.ts +8 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +169 -127
- package/build/index.js.map +1 -1
- package/package.json +15 -7
package/build/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* WebsitePublisher MCP Bridge
|
|
3
|
+
* WebsitePublisher MCP Bridge v2.1.0
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Pure JSON-RPC proxy: STDIO ↔ HTTPS
|
|
6
|
+
* Reads JSON-RPC from stdin, forwards to mcp.websitepublisher.ai, writes response to stdout.
|
|
7
|
+
*
|
|
8
|
+
* No local tool registration, no Zod schemas, no pre-fetching.
|
|
9
|
+
* The central McpController is the single source of truth.
|
|
10
|
+
*
|
|
11
|
+
* Fix #594: initialize responds in <1ms (was: 60s timeout on slow networks).
|
|
7
12
|
*
|
|
8
13
|
* @see https://websitepublisher.ai/docs/mcp
|
|
9
14
|
*/
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
|
package/build/index.js
CHANGED
|
@@ -1,156 +1,198 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* WebsitePublisher MCP Bridge
|
|
3
|
+
* WebsitePublisher MCP Bridge v2.1.0
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Pure JSON-RPC proxy: STDIO ↔ HTTPS
|
|
6
|
+
* Reads JSON-RPC from stdin, forwards to mcp.websitepublisher.ai, writes response to stdout.
|
|
7
|
+
*
|
|
8
|
+
* No local tool registration, no Zod schemas, no pre-fetching.
|
|
9
|
+
* The central McpController is the single source of truth.
|
|
10
|
+
*
|
|
11
|
+
* Fix #594: initialize responds in <1ms (was: 60s timeout on slow networks).
|
|
7
12
|
*
|
|
8
13
|
* @see https://websitepublisher.ai/docs/mcp
|
|
9
14
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
12
|
-
import { z } from "zod";
|
|
15
|
+
import { createInterface } from "readline";
|
|
13
16
|
// =============================================================================
|
|
14
17
|
// Configuration
|
|
15
18
|
// =============================================================================
|
|
16
19
|
const MCP_SERVER = process.env.WPS_SERVER || "https://mcp.websitepublisher.ai";
|
|
17
20
|
const WPS_TOKEN = process.env.WPS_TOKEN || "";
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
21
|
+
const VERSION = "2.1.0";
|
|
22
|
+
// Timeouts per method type
|
|
23
|
+
const TIMEOUT_DEFAULT_MS = 15_000; // initialize, tools/list, ping
|
|
24
|
+
const TIMEOUT_TOOL_MS = 120_000; // tools/call — some tools (coach, build) need time
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// STDIO helpers
|
|
27
|
+
// =============================================================================
|
|
28
|
+
/** Write JSON-RPC message to stdout (STDIO transport) */
|
|
29
|
+
function respond(data) {
|
|
30
|
+
process.stdout.write(JSON.stringify(data) + "\n");
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
method: "POST",
|
|
35
|
-
headers: {
|
|
36
|
-
"Authorization": `Bearer ${WPS_TOKEN}`,
|
|
37
|
-
"Content-Type": "application/json",
|
|
38
|
-
},
|
|
39
|
-
body: JSON.stringify({ tool, params }),
|
|
40
|
-
});
|
|
41
|
-
const data = await response.json();
|
|
42
|
-
return JSON.stringify(data, null, 2);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
return JSON.stringify({
|
|
46
|
-
success: false,
|
|
47
|
-
error: { message: error instanceof Error ? error.message : "Unknown error", code: 500 },
|
|
48
|
-
});
|
|
49
|
-
}
|
|
32
|
+
/** Write diagnostic to stderr (visible in client logs, not in protocol) */
|
|
33
|
+
function log(msg) {
|
|
34
|
+
console.error(msg);
|
|
50
35
|
}
|
|
51
36
|
// =============================================================================
|
|
52
|
-
//
|
|
37
|
+
// Remote server proxy
|
|
53
38
|
// =============================================================================
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Forward a JSON-RPC message to the central MCP server.
|
|
41
|
+
* Uses the JSON-RPC path (no Accept: text/event-stream) → no sessions needed.
|
|
42
|
+
*/
|
|
43
|
+
async function forward(message) {
|
|
44
|
+
const method = message.method || "";
|
|
45
|
+
const timeout = method === "tools/call" ? TIMEOUT_TOOL_MS : TIMEOUT_DEFAULT_MS;
|
|
46
|
+
const response = await fetch(MCP_SERVER, {
|
|
47
|
+
method: "POST",
|
|
48
|
+
headers: {
|
|
49
|
+
"Content-Type": "application/json",
|
|
50
|
+
"Accept": "application/json",
|
|
51
|
+
"Authorization": `Bearer ${WPS_TOKEN}`,
|
|
52
|
+
},
|
|
53
|
+
body: JSON.stringify(message),
|
|
54
|
+
signal: AbortSignal.timeout(timeout),
|
|
55
|
+
});
|
|
56
|
+
// Server returned non-JSON (nginx 502, etc.) → throw so caller can build JSON-RPC error
|
|
57
|
+
const contentType = response.headers.get("content-type") || "";
|
|
58
|
+
if (!contentType.includes("json")) {
|
|
59
|
+
throw new Error(`Server returned ${response.status} (${contentType.split(";")[0]})`);
|
|
60
|
+
}
|
|
61
|
+
return (await response.json());
|
|
62
|
+
}
|
|
58
63
|
// =============================================================================
|
|
59
|
-
//
|
|
64
|
+
// Local fallback (no token)
|
|
60
65
|
// =============================================================================
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
console.error("║ ⚠️ Missing WPS_TOKEN environment variable ║");
|
|
68
|
-
console.error("║ ║");
|
|
69
|
-
console.error("║ Get your token at: ║");
|
|
70
|
-
console.error("║ https://dashboard.websitepublisher.ai ║");
|
|
71
|
-
console.error("╚════════════════════════════════════════════════════════════════╝");
|
|
72
|
-
// Register a help tool so user gets guidance
|
|
73
|
-
server.tool("setup_help", "Shows how to configure WebsitePublisher MCP Bridge", {}, async () => ({
|
|
74
|
-
content: [{
|
|
75
|
-
type: "text",
|
|
76
|
-
text: JSON.stringify({
|
|
77
|
-
success: false,
|
|
78
|
-
error: "Missing WPS_TOKEN",
|
|
79
|
-
setup: {
|
|
80
|
-
step1: "Go to https://dashboard.websitepublisher.ai",
|
|
81
|
-
step2: "Login or create an account",
|
|
82
|
-
step3: "Copy your session token",
|
|
83
|
-
step4: "Add WPS_TOKEN to your Claude Desktop config",
|
|
84
|
-
example_config: {
|
|
85
|
-
mcpServers: {
|
|
86
|
-
websitepublisher: {
|
|
87
|
-
command: "npx",
|
|
88
|
-
args: ["-y", "websitepublisher-mcp@latest"],
|
|
89
|
-
env: { WPS_TOKEN: "wps_your_token_here" }
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}, null, 2),
|
|
95
|
-
}],
|
|
96
|
-
}));
|
|
66
|
+
/** Handle all messages locally when no WPS_TOKEN is configured */
|
|
67
|
+
function handleNoToken(message) {
|
|
68
|
+
const id = message.id;
|
|
69
|
+
const method = message.method;
|
|
70
|
+
// Notifications (no id) → nothing to respond
|
|
71
|
+
if (id === undefined || id === null)
|
|
97
72
|
return;
|
|
73
|
+
switch (method) {
|
|
74
|
+
case "initialize":
|
|
75
|
+
respond({
|
|
76
|
+
jsonrpc: "2.0",
|
|
77
|
+
id,
|
|
78
|
+
result: {
|
|
79
|
+
protocolVersion: "2024-11-05",
|
|
80
|
+
serverInfo: { name: "websitepublisher-mcp", version: VERSION },
|
|
81
|
+
capabilities: { tools: { listChanged: false } },
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
85
|
+
case "tools/list":
|
|
86
|
+
respond({
|
|
87
|
+
jsonrpc: "2.0",
|
|
88
|
+
id,
|
|
89
|
+
result: {
|
|
90
|
+
tools: [
|
|
91
|
+
{
|
|
92
|
+
name: "setup_help",
|
|
93
|
+
description: "WebsitePublisher MCP Bridge is not configured. This tool shows setup instructions.",
|
|
94
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
break;
|
|
100
|
+
case "tools/call":
|
|
101
|
+
respond({
|
|
102
|
+
jsonrpc: "2.0",
|
|
103
|
+
id,
|
|
104
|
+
result: {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: "text",
|
|
108
|
+
text: JSON.stringify({
|
|
109
|
+
error: "Missing WPS_TOKEN",
|
|
110
|
+
setup: {
|
|
111
|
+
step1: "Go to https://dashboard.websitepublisher.ai",
|
|
112
|
+
step2: "Login or create an account",
|
|
113
|
+
step3: "Copy your session token (starts with wps_)",
|
|
114
|
+
step4: "Add WPS_TOKEN to your MCP configuration",
|
|
115
|
+
docs: "https://websitepublisher.ai/docs/mcp",
|
|
116
|
+
example_config: {
|
|
117
|
+
mcpServers: {
|
|
118
|
+
websitepublisher: {
|
|
119
|
+
command: "npx",
|
|
120
|
+
args: ["-y", "websitepublisher-mcp@latest"],
|
|
121
|
+
env: { WPS_TOKEN: "wps_your_token_here" },
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
}, null, 2),
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
// ping, prompts/list, resources/list, etc.
|
|
134
|
+
respond({ jsonrpc: "2.0", id, result: {} });
|
|
98
135
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
136
|
+
}
|
|
137
|
+
// =============================================================================
|
|
138
|
+
// Main loop
|
|
139
|
+
// =============================================================================
|
|
140
|
+
async function main() {
|
|
141
|
+
if (WPS_TOKEN) {
|
|
142
|
+
log(`🔌 WebsitePublisher MCP Bridge v${VERSION} — proxy mode`);
|
|
143
|
+
log(` Server: ${MCP_SERVER}`);
|
|
105
144
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
145
|
+
else {
|
|
146
|
+
log(`⚠️ WebsitePublisher MCP Bridge v${VERSION} — no WPS_TOKEN`);
|
|
147
|
+
log(` Get your token at: https://dashboard.websitepublisher.ai`);
|
|
148
|
+
}
|
|
149
|
+
const rl = createInterface({ input: process.stdin, terminal: false });
|
|
150
|
+
for await (const line of rl) {
|
|
151
|
+
const trimmed = line.trim();
|
|
152
|
+
if (!trimmed)
|
|
153
|
+
continue;
|
|
154
|
+
// Parse JSON-RPC message
|
|
155
|
+
let message;
|
|
156
|
+
try {
|
|
157
|
+
message = JSON.parse(trimmed);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
log(`⚠️ Invalid JSON on stdin: ${trimmed.slice(0, 120)}`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
// No token → handle locally
|
|
164
|
+
if (!WPS_TOKEN) {
|
|
165
|
+
handleNoToken(message);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// Notification = no id → forward to server but don't write response
|
|
169
|
+
const isNotification = message.id === undefined || message.id === null;
|
|
170
|
+
const method = message.method || "unknown";
|
|
171
|
+
try {
|
|
172
|
+
const result = await forward(message);
|
|
173
|
+
if (!isNotification) {
|
|
174
|
+
respond(result);
|
|
130
175
|
}
|
|
131
|
-
|
|
132
|
-
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
const msg = error instanceof Error ? error.message : "Unknown error";
|
|
179
|
+
log(`❌ ${method} failed: ${msg}`);
|
|
180
|
+
// Return JSON-RPC error for requests (not notifications)
|
|
181
|
+
if (!isNotification) {
|
|
182
|
+
respond({
|
|
183
|
+
jsonrpc: "2.0",
|
|
184
|
+
id: message.id,
|
|
185
|
+
error: {
|
|
186
|
+
code: -32603,
|
|
187
|
+
message: `WebsitePublisher server unreachable: ${msg}`,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
133
190
|
}
|
|
134
|
-
schemaProps[key] = isRequired ? zodType : zodType.optional();
|
|
135
191
|
}
|
|
136
|
-
server.tool(tool.name, tool.description, schemaProps, async (params) => ({
|
|
137
|
-
content: [{
|
|
138
|
-
type: "text",
|
|
139
|
-
text: await executeTool(tool.name, params),
|
|
140
|
-
}],
|
|
141
|
-
}));
|
|
142
192
|
}
|
|
143
193
|
}
|
|
144
|
-
// =============================================================================
|
|
145
|
-
// Start Server
|
|
146
|
-
// =============================================================================
|
|
147
|
-
async function main() {
|
|
148
|
-
await registerTools();
|
|
149
|
-
const transport = new StdioServerTransport();
|
|
150
|
-
await server.connect(transport);
|
|
151
|
-
}
|
|
152
194
|
main().catch((error) => {
|
|
153
|
-
|
|
195
|
+
log(`Fatal: ${error}`);
|
|
154
196
|
process.exit(1);
|
|
155
197
|
});
|
|
156
198
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,iCAAiC,CAAC;AAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;AAC9C,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAE,+BAA+B;AACnE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAI,mDAAmD;AAEvF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,yDAAyD;AACzD,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,2EAA2E;AAC3E,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAC,OAAgC;IACrD,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAE/E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,eAAe,EAAE,UAAU,SAAS,EAAE;SACvC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;KACrC,CAAC,CAAC;IAEH,wFAAwF;IACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;AAC5D,CAAC;AAED,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,kEAAkE;AAClE,SAAS,aAAa,CAAC,OAAgC;IACrD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAgB,CAAC;IAExC,6CAA6C;IAC7C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO;IAE5C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM,EAAE;oBACN,eAAe,EAAE,YAAY;oBAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE;oBAC9D,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;iBAChD;aACF,CAAC,CAAC;YACH,MAAM;QAER,KAAK,YAAY;YACf,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,YAAY;4BAClB,WAAW,EACT,oFAAoF;4BACtF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;yBAC9D;qBACF;iBACF;aACF,CAAC,CAAC;YACH,MAAM;QAER,KAAK,YAAY;YACf,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,KAAK,EAAE,mBAAmB;gCAC1B,KAAK,EAAE;oCACL,KAAK,EAAE,6CAA6C;oCACpD,KAAK,EAAE,4BAA4B;oCACnC,KAAK,EAAE,4CAA4C;oCACnD,KAAK,EAAE,yCAAyC;oCAChD,IAAI,EAAE,sCAAsC;oCAC5C,cAAc,EAAE;wCACd,UAAU,EAAE;4CACV,gBAAgB,EAAE;gDAChB,OAAO,EAAE,KAAK;gDACd,IAAI,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC;gDAC3C,GAAG,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE;6CAC1C;yCACF;qCACF;iCACF;6BACF,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;YACH,MAAM;QAER;YACE,2CAA2C;YAC3C,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,KAAK,UAAU,IAAI;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,mCAAmC,OAAO,eAAe,CAAC,CAAC;QAC/D,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,oCAAoC,OAAO,iBAAiB,CAAC,CAAC;QAClE,GAAG,CAAC,6DAA6D,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtE,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,yBAAyB;QACzB,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,8BAA8B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;QACvE,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,SAAS,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,GAAG,CAAC,KAAK,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC;YAElC,yDAAyD;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,wCAAwC,GAAG,EAAE;qBACvD;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "websitepublisher-mcp",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "MCP Bridge - Connects Claude Desktop/Code to WebsitePublisher.ai for AI-powered website building",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "MCP Bridge - Connects Claude Desktop/Code/Windsurf/Cursor to WebsitePublisher.ai for AI-powered website building",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -14,7 +14,14 @@
|
|
|
14
14
|
"build": "tsc",
|
|
15
15
|
"watch": "tsc --watch",
|
|
16
16
|
"start": "node build/index.js",
|
|
17
|
-
"inspector": "npx @modelcontextprotocol/inspector build/index.js"
|
|
17
|
+
"inspector": "npx @modelcontextprotocol/inspector build/index.js",
|
|
18
|
+
"bundle": "esbuild src/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/index.cjs --external:fsevents",
|
|
19
|
+
"build:exe": "npm run bundle && pkg dist/index.cjs --targets node18-win-x64,node18-macos-x64,node18-macos-arm64,node18-linux-x64 --out-path dist",
|
|
20
|
+
"build:exe:win": "npm run bundle && pkg dist/index.cjs --target node18-win-x64 --output dist/websitepublisher-mcp.exe",
|
|
21
|
+
"build:exe:mac": "npm run bundle && pkg dist/index.cjs --target node18-macos-arm64 --output dist/websitepublisher-mcp",
|
|
22
|
+
"build:exe:mac:intel": "npm run bundle && pkg dist/index.cjs --target node18-macos-x64 --output dist/websitepublisher-mcp",
|
|
23
|
+
"build:exe:linux": "npm run bundle && pkg dist/index.cjs --target node18-linux-x64 --output dist/websitepublisher-mcp",
|
|
24
|
+
"build:exe:linux:arm": "npm run bundle && pkg dist/index.cjs --target node18-linux-arm64 --output dist/websitepublisher-mcp"
|
|
18
25
|
},
|
|
19
26
|
"keywords": [
|
|
20
27
|
"mcp",
|
|
@@ -22,6 +29,8 @@
|
|
|
22
29
|
"claude",
|
|
23
30
|
"claude-desktop",
|
|
24
31
|
"claude-code",
|
|
32
|
+
"windsurf",
|
|
33
|
+
"cursor",
|
|
25
34
|
"websitepublisher",
|
|
26
35
|
"ai",
|
|
27
36
|
"website-builder",
|
|
@@ -29,12 +38,11 @@
|
|
|
29
38
|
],
|
|
30
39
|
"author": "WebsitePublisher.ai",
|
|
31
40
|
"license": "MIT",
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
34
|
-
"zod": "^3.25.30"
|
|
35
|
-
},
|
|
41
|
+
"dependencies": {},
|
|
36
42
|
"devDependencies": {
|
|
37
43
|
"@types/node": "^22.10.10",
|
|
44
|
+
"@yao-pkg/pkg": "^6.12.0",
|
|
45
|
+
"esbuild": "^0.27.2",
|
|
38
46
|
"typescript": "^5.7.3"
|
|
39
47
|
},
|
|
40
48
|
"engines": {
|