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 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
- * Connects offline AI tools (Claude Desktop, Claude Code) to WebsitePublisher.ai
6
- * This is a lightweight bridge - all logic runs on the central MCP server.
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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
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
- * Connects offline AI tools (Claude Desktop, Claude Code) to WebsitePublisher.ai
6
- * This is a lightweight bridge - all logic runs on the central MCP server.
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 { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
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
- async function fetchTools() {
19
- try {
20
- const response = await fetch(MCP_SERVER, {
21
- headers: { "Authorization": `Bearer ${WPS_TOKEN}` },
22
- });
23
- const data = await response.json();
24
- return data.data?.tools || [];
25
- }
26
- catch (error) {
27
- console.error("Failed to fetch tools from server:", error);
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
- async function executeTool(tool, params) {
32
- try {
33
- const response = await fetch(MCP_SERVER, {
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
- // MCP Server Setup
37
+ // Remote server proxy
53
38
  // =============================================================================
54
- const server = new McpServer({
55
- name: "websitepublisher-mcp",
56
- version: "2.0.0",
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
- // Dynamic Tool Registration
64
+ // Local fallback (no token)
60
65
  // =============================================================================
61
- async function registerTools() {
62
- // Check token first
63
- if (!WPS_TOKEN) {
64
- console.error("╔════════════════════════════════════════════════════════════════╗");
65
- console.error("║ WebsitePublisher MCP Bridge ║");
66
- console.error("║ ║");
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
- // Fetch tools from central server
100
- console.error("🔗 Connecting to WebsitePublisher.ai...");
101
- const tools = await fetchTools();
102
- if (tools.length === 0) {
103
- console.error("⚠️ Could not fetch tools from server. Check your token.");
104
- return;
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
- console.error(`✅ Connected! ${tools.length} tools available.`);
107
- console.error("╔════════════════════════════════════════════════════════════════╗");
108
- console.error("║ WebsitePublisher MCP Bridge v2.0.0 ║");
109
- console.error("║ ║");
110
- console.error("║ 🌐 Bridge between Claude Desktop and WebsitePublisher.ai ║");
111
- console.error("║ ║");
112
- console.error("║ Available tools: ║");
113
- tools.forEach(t => {
114
- const name = t.name.padEnd(20);
115
- console.error(`║ • ${name} ║`.slice(0, 67) + "║");
116
- });
117
- console.error("║ ║");
118
- console.error("║ 📚 Docs: https://websitepublisher.ai/docs/mcp ║");
119
- console.error("║ 🎛️ Dashboard: https://dashboard.websitepublisher.ai ║");
120
- console.error("╚════════════════════════════════════════════════════════════════╝");
121
- // Register each tool from the server
122
- for (const tool of tools) {
123
- // Build Zod schema from inputSchema
124
- const schemaProps = {};
125
- for (const [key, prop] of Object.entries(tool.inputSchema.properties || {})) {
126
- const isRequired = tool.inputSchema.required?.includes(key);
127
- let zodType;
128
- if (prop.type === "integer" || prop.type === "number") {
129
- zodType = z.number().describe(prop.description);
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
- else {
132
- zodType = z.string().describe(prop.description);
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
- console.error("Fatal error:", error);
195
+ log(`Fatal: ${error}`);
154
196
  process.exit(1);
155
197
  });
156
198
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "websitepublisher-mcp",
3
- "version": "2.0.0",
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": {