@soldy_ai/mcp 0.1.6 → 0.1.7
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 +12 -2
- package/dist/subscriptions.d.ts +24 -7
- package/dist/subscriptions.js +178 -40
- package/dist/subscriptions.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -4,9 +4,19 @@ A Model Context Protocol (MCP) server for [Soldy AI](https://soldy.ai) — gener
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
### Claude
|
|
7
|
+
### Cursor / Claude Code (Recommended — via Skills)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
The fastest way to set up the Soldy MCP in Cursor or Claude Code is to let the agent install it for you:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
npx skills add https://github.com/solgers/soldy-mcp
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This installs the Soldy skill which auto-configures the MCP server and provides contextual guidance to the agent.
|
|
16
|
+
|
|
17
|
+
### Claude Desktop / Cursor (Manual)
|
|
18
|
+
|
|
19
|
+
Add to your MCP configuration (`claude_desktop_config.json` or `.cursor/mcp.json`):
|
|
10
20
|
|
|
11
21
|
```json
|
|
12
22
|
{
|
package/dist/subscriptions.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import type { SoldyAPIClient } from "./client.js";
|
|
3
3
|
/**
|
|
4
|
-
* Bridges
|
|
4
|
+
* Bridges project subscriptions to MCP resource update notifications.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Primary transport: WebSocket (real-time, low latency).
|
|
7
|
+
* Fallback transport: HTTP polling (activates automatically when WebSocket
|
|
8
|
+
* is unavailable or repeatedly fails to connect).
|
|
9
|
+
*
|
|
10
|
+
* Both transports emit the same `sendResourceUpdated` notifications so MCP
|
|
11
|
+
* clients get a consistent experience regardless of the underlying transport.
|
|
9
12
|
*/
|
|
10
13
|
export declare class SubscriptionBridge {
|
|
11
14
|
private client;
|
|
@@ -20,24 +23,38 @@ export declare class SubscriptionBridge {
|
|
|
20
23
|
/** Brand task polling: taskId → { interval, lastStatus } */
|
|
21
24
|
private brandTaskPolls;
|
|
22
25
|
private static readonly BRAND_TASK_POLL_MS;
|
|
26
|
+
/** HTTP polling fallback state */
|
|
27
|
+
private pollInterval;
|
|
28
|
+
private static readonly PROJECT_POLL_MS;
|
|
29
|
+
private projectSnapshots;
|
|
30
|
+
private wsConsecutiveFailures;
|
|
31
|
+
private static readonly WS_FAILURE_THRESHOLD;
|
|
32
|
+
private usingPollingFallback;
|
|
33
|
+
private lastConnectTime;
|
|
34
|
+
private static readonly RAPID_CLOSE_MS;
|
|
23
35
|
constructor(client: SoldyAPIClient, _apiUrl: string, apiKey: string);
|
|
24
36
|
/** Attach the low-level MCP Server instance for sending notifications. */
|
|
25
37
|
setServer(server: Server): void;
|
|
26
|
-
/** Subscribe to a project's
|
|
38
|
+
/** Subscribe to a project's updates. Tries WebSocket first, falls back to HTTP polling. */
|
|
27
39
|
subscribeProject(projectId: string): Promise<void>;
|
|
28
|
-
/** Unsubscribe from a project.
|
|
40
|
+
/** Unsubscribe from a project. */
|
|
29
41
|
unsubscribeProject(projectId: string): void;
|
|
30
42
|
/** Subscribe to brand task status changes via polling. */
|
|
31
43
|
subscribeBrandTask(taskId: string): void;
|
|
32
44
|
/** Stop polling a brand task. */
|
|
33
45
|
unsubscribeBrandTask(taskId: string): void;
|
|
34
|
-
/** Disconnect
|
|
46
|
+
/** Disconnect all transports and stop all polling. */
|
|
35
47
|
disconnect(): void;
|
|
36
48
|
private ensureConnected;
|
|
37
49
|
private connect;
|
|
38
50
|
private scheduleReconnect;
|
|
39
51
|
private sendProjectSubscribe;
|
|
40
52
|
private handleMessage;
|
|
53
|
+
private activatePollingFallback;
|
|
54
|
+
private ensurePolling;
|
|
55
|
+
private stopPolling;
|
|
56
|
+
private pollAllProjects;
|
|
57
|
+
private pollProject;
|
|
41
58
|
}
|
|
42
59
|
/** Extract project_id from a soldy://project/... resource URI. */
|
|
43
60
|
export declare function extractProjectId(uri: string): string | null;
|
package/dist/subscriptions.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import WebSocket from "ws";
|
|
1
2
|
/** Events that indicate project status changed. */
|
|
2
3
|
const STATUS_EVENTS = new Set([
|
|
3
4
|
"RunStarted",
|
|
@@ -34,11 +35,14 @@ const MESSAGE_EVENTS = new Set([
|
|
|
34
35
|
...STATUS_EVENTS,
|
|
35
36
|
]);
|
|
36
37
|
/**
|
|
37
|
-
* Bridges
|
|
38
|
+
* Bridges project subscriptions to MCP resource update notifications.
|
|
38
39
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
40
|
+
* Primary transport: WebSocket (real-time, low latency).
|
|
41
|
+
* Fallback transport: HTTP polling (activates automatically when WebSocket
|
|
42
|
+
* is unavailable or repeatedly fails to connect).
|
|
43
|
+
*
|
|
44
|
+
* Both transports emit the same `sendResourceUpdated` notifications so MCP
|
|
45
|
+
* clients get a consistent experience regardless of the underlying transport.
|
|
42
46
|
*/
|
|
43
47
|
export class SubscriptionBridge {
|
|
44
48
|
client;
|
|
@@ -53,6 +57,15 @@ export class SubscriptionBridge {
|
|
|
53
57
|
/** Brand task polling: taskId → { interval, lastStatus } */
|
|
54
58
|
brandTaskPolls = new Map();
|
|
55
59
|
static BRAND_TASK_POLL_MS = 3000;
|
|
60
|
+
/** HTTP polling fallback state */
|
|
61
|
+
pollInterval = null;
|
|
62
|
+
static PROJECT_POLL_MS = 3000;
|
|
63
|
+
projectSnapshots = new Map();
|
|
64
|
+
wsConsecutiveFailures = 0;
|
|
65
|
+
static WS_FAILURE_THRESHOLD = 3;
|
|
66
|
+
usingPollingFallback = false;
|
|
67
|
+
lastConnectTime = 0;
|
|
68
|
+
static RAPID_CLOSE_MS = 3000;
|
|
56
69
|
constructor(client, _apiUrl, apiKey) {
|
|
57
70
|
this.client = client;
|
|
58
71
|
this.apiKey = apiKey;
|
|
@@ -61,18 +74,31 @@ export class SubscriptionBridge {
|
|
|
61
74
|
setServer(server) {
|
|
62
75
|
this.server = server;
|
|
63
76
|
}
|
|
64
|
-
/** Subscribe to a project's
|
|
77
|
+
/** Subscribe to a project's updates. Tries WebSocket first, falls back to HTTP polling. */
|
|
65
78
|
async subscribeProject(projectId) {
|
|
66
79
|
if (this.subscribedProjects.has(projectId))
|
|
67
80
|
return;
|
|
68
81
|
this.subscribedProjects.add(projectId);
|
|
69
|
-
|
|
70
|
-
|
|
82
|
+
if (this.usingPollingFallback) {
|
|
83
|
+
this.ensurePolling();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
await this.ensureConnected();
|
|
88
|
+
this.sendProjectSubscribe(projectId);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
console.error("[SubscriptionBridge] WebSocket unavailable, activating HTTP polling fallback");
|
|
92
|
+
this.activatePollingFallback();
|
|
93
|
+
}
|
|
71
94
|
}
|
|
72
|
-
/** Unsubscribe from a project.
|
|
95
|
+
/** Unsubscribe from a project. */
|
|
73
96
|
unsubscribeProject(projectId) {
|
|
74
97
|
this.subscribedProjects.delete(projectId);
|
|
75
|
-
|
|
98
|
+
this.projectSnapshots.delete(projectId);
|
|
99
|
+
if (this.subscribedProjects.size === 0) {
|
|
100
|
+
this.stopPolling();
|
|
101
|
+
}
|
|
76
102
|
}
|
|
77
103
|
/** Subscribe to brand task status changes via polling. */
|
|
78
104
|
subscribeBrandTask(taskId) {
|
|
@@ -95,7 +121,6 @@ export class SubscriptionBridge {
|
|
|
95
121
|
this.server.sendResourceUpdated({
|
|
96
122
|
uri: `soldy://brand/task/${taskId}`,
|
|
97
123
|
});
|
|
98
|
-
// Also notify brand list when a new brand is extracted
|
|
99
124
|
if (task.status === "finished") {
|
|
100
125
|
this.server.sendResourceUpdated({ uri: "soldy://brands" });
|
|
101
126
|
if (task.brand_id) {
|
|
@@ -103,11 +128,9 @@ export class SubscriptionBridge {
|
|
|
103
128
|
uri: `soldy://brand/${task.brand_id}`,
|
|
104
129
|
});
|
|
105
130
|
}
|
|
106
|
-
// Task completed — stop polling
|
|
107
131
|
this.unsubscribeBrandTask(taskId);
|
|
108
132
|
}
|
|
109
133
|
else if (task.status === "failed") {
|
|
110
|
-
// Task failed — stop polling
|
|
111
134
|
this.unsubscribeBrandTask(taskId);
|
|
112
135
|
}
|
|
113
136
|
}
|
|
@@ -127,7 +150,7 @@ export class SubscriptionBridge {
|
|
|
127
150
|
this.brandTaskPolls.delete(taskId);
|
|
128
151
|
}
|
|
129
152
|
}
|
|
130
|
-
/** Disconnect
|
|
153
|
+
/** Disconnect all transports and stop all polling. */
|
|
131
154
|
disconnect() {
|
|
132
155
|
if (this.reconnectTimer) {
|
|
133
156
|
clearTimeout(this.reconnectTimer);
|
|
@@ -138,23 +161,34 @@ export class SubscriptionBridge {
|
|
|
138
161
|
this.ws = null;
|
|
139
162
|
}
|
|
140
163
|
this.connecting = false;
|
|
141
|
-
|
|
142
|
-
|
|
164
|
+
this.stopPolling();
|
|
165
|
+
this.projectSnapshots.clear();
|
|
166
|
+
for (const [, entry] of this.brandTaskPolls) {
|
|
143
167
|
clearInterval(entry.interval);
|
|
144
|
-
this.brandTaskPolls.delete(taskId);
|
|
145
168
|
}
|
|
169
|
+
this.brandTaskPolls.clear();
|
|
146
170
|
}
|
|
171
|
+
// ---------------------------------------------------------------------------
|
|
172
|
+
// WebSocket transport
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
147
174
|
async ensureConnected() {
|
|
148
175
|
if (this.ws?.readyState === WebSocket.OPEN)
|
|
149
176
|
return;
|
|
150
177
|
if (this.connecting) {
|
|
151
|
-
|
|
152
|
-
|
|
178
|
+
await new Promise((resolve, reject) => {
|
|
179
|
+
const timeout = setTimeout(() => reject(new Error("WebSocket connect timeout")), 15_000);
|
|
153
180
|
const check = () => {
|
|
154
|
-
if (this.ws?.readyState === WebSocket.OPEN)
|
|
181
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
182
|
+
clearTimeout(timeout);
|
|
155
183
|
resolve();
|
|
156
|
-
|
|
184
|
+
}
|
|
185
|
+
else if (!this.connecting) {
|
|
186
|
+
clearTimeout(timeout);
|
|
187
|
+
reject(new Error("WebSocket connection failed"));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
157
190
|
setTimeout(check, 100);
|
|
191
|
+
}
|
|
158
192
|
};
|
|
159
193
|
check();
|
|
160
194
|
});
|
|
@@ -166,33 +200,58 @@ export class SubscriptionBridge {
|
|
|
166
200
|
this.connecting = true;
|
|
167
201
|
const wsUrl = this.client.getWebSocketUrl(this.apiKey);
|
|
168
202
|
return new Promise((resolve, reject) => {
|
|
169
|
-
|
|
170
|
-
|
|
203
|
+
let ws;
|
|
204
|
+
try {
|
|
205
|
+
ws = new WebSocket(wsUrl);
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
this.connecting = false;
|
|
209
|
+
this.wsConsecutiveFailures++;
|
|
210
|
+
reject(err instanceof Error ? err : new Error("WebSocket creation failed"));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const connectTimeout = setTimeout(() => {
|
|
214
|
+
this.connecting = false;
|
|
215
|
+
this.wsConsecutiveFailures++;
|
|
216
|
+
ws.close();
|
|
217
|
+
reject(new Error("WebSocket connect timeout"));
|
|
218
|
+
}, 10_000);
|
|
219
|
+
ws.on("open", () => {
|
|
220
|
+
clearTimeout(connectTimeout);
|
|
171
221
|
this.ws = ws;
|
|
172
222
|
this.connecting = false;
|
|
173
|
-
this.
|
|
223
|
+
this.lastConnectTime = Date.now();
|
|
174
224
|
console.error("[SubscriptionBridge] WebSocket connected");
|
|
175
|
-
// Re-subscribe all projects
|
|
176
225
|
for (const projectId of this.subscribedProjects) {
|
|
177
226
|
this.sendProjectSubscribe(projectId);
|
|
178
227
|
}
|
|
179
228
|
resolve();
|
|
180
|
-
};
|
|
181
|
-
ws.
|
|
182
|
-
this.handleMessage(String(
|
|
183
|
-
};
|
|
184
|
-
ws.
|
|
185
|
-
|
|
229
|
+
});
|
|
230
|
+
ws.on("message", (data) => {
|
|
231
|
+
this.handleMessage(String(data));
|
|
232
|
+
});
|
|
233
|
+
ws.on("close", (code) => {
|
|
234
|
+
const uptime = Date.now() - this.lastConnectTime;
|
|
186
235
|
this.ws = null;
|
|
187
236
|
this.connecting = false;
|
|
237
|
+
if (this.lastConnectTime > 0 &&
|
|
238
|
+
uptime < SubscriptionBridge.RAPID_CLOSE_MS) {
|
|
239
|
+
this.wsConsecutiveFailures++;
|
|
240
|
+
console.error(`[SubscriptionBridge] WebSocket closed (code=${code}) after ${uptime}ms (rapid disconnect #${this.wsConsecutiveFailures})`);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
console.error(`[SubscriptionBridge] WebSocket closed (code=${code})`);
|
|
244
|
+
}
|
|
188
245
|
this.scheduleReconnect();
|
|
189
|
-
};
|
|
190
|
-
ws.
|
|
191
|
-
|
|
246
|
+
});
|
|
247
|
+
ws.on("error", (err) => {
|
|
248
|
+
clearTimeout(connectTimeout);
|
|
249
|
+
console.error("[SubscriptionBridge] WebSocket error:", err.message);
|
|
192
250
|
this.connecting = false;
|
|
251
|
+
this.wsConsecutiveFailures++;
|
|
193
252
|
if (!this.ws)
|
|
194
253
|
reject(new Error("WebSocket connection failed"));
|
|
195
|
-
};
|
|
254
|
+
});
|
|
196
255
|
});
|
|
197
256
|
}
|
|
198
257
|
scheduleReconnect() {
|
|
@@ -200,14 +259,19 @@ export class SubscriptionBridge {
|
|
|
200
259
|
return;
|
|
201
260
|
if (this.reconnectTimer)
|
|
202
261
|
return;
|
|
262
|
+
if (this.wsConsecutiveFailures >= SubscriptionBridge.WS_FAILURE_THRESHOLD &&
|
|
263
|
+
!this.usingPollingFallback) {
|
|
264
|
+
console.error(`[SubscriptionBridge] ${this.wsConsecutiveFailures} consecutive WebSocket failures, activating HTTP polling fallback`);
|
|
265
|
+
this.activatePollingFallback();
|
|
266
|
+
}
|
|
267
|
+
const delay = Math.min(this.reconnectDelay * 2 ** Math.max(0, this.wsConsecutiveFailures - 1), this.maxReconnectDelay);
|
|
203
268
|
this.reconnectTimer = setTimeout(() => {
|
|
204
269
|
this.reconnectTimer = null;
|
|
205
270
|
this.connect().catch((err) => {
|
|
206
|
-
console.error("[SubscriptionBridge] Reconnect failed:", err);
|
|
207
|
-
this.reconnectDelay = Math.min(this.reconnectDelay * 2, this.maxReconnectDelay);
|
|
271
|
+
console.error("[SubscriptionBridge] Reconnect failed:", err.message);
|
|
208
272
|
this.scheduleReconnect();
|
|
209
273
|
});
|
|
210
|
-
},
|
|
274
|
+
}, delay);
|
|
211
275
|
}
|
|
212
276
|
sendProjectSubscribe(projectId) {
|
|
213
277
|
if (this.ws?.readyState !== WebSocket.OPEN)
|
|
@@ -230,15 +294,20 @@ export class SubscriptionBridge {
|
|
|
230
294
|
const projectId = msg.context?.project_id;
|
|
231
295
|
if (!projectId || !this.subscribedProjects.has(projectId))
|
|
232
296
|
return;
|
|
297
|
+
if (this.usingPollingFallback) {
|
|
298
|
+
console.error("[SubscriptionBridge] WebSocket recovered, stopping HTTP polling fallback");
|
|
299
|
+
this.stopPolling();
|
|
300
|
+
this.usingPollingFallback = false;
|
|
301
|
+
}
|
|
302
|
+
this.wsConsecutiveFailures = 0;
|
|
303
|
+
this.reconnectDelay = 1000;
|
|
233
304
|
const event = msg.event;
|
|
234
305
|
const runId = msg.context?.run_id;
|
|
235
|
-
// Status change notifications
|
|
236
306
|
if (STATUS_EVENTS.has(event)) {
|
|
237
307
|
this.server.sendResourceUpdated({
|
|
238
308
|
uri: `soldy://project/${projectId}/status`,
|
|
239
309
|
});
|
|
240
310
|
}
|
|
241
|
-
// Message notifications
|
|
242
311
|
if (MESSAGE_EVENTS.has(event)) {
|
|
243
312
|
this.server.sendResourceUpdated({
|
|
244
313
|
uri: `soldy://project/${projectId}/messages`,
|
|
@@ -249,7 +318,6 @@ export class SubscriptionBridge {
|
|
|
249
318
|
});
|
|
250
319
|
}
|
|
251
320
|
}
|
|
252
|
-
// Material notifications
|
|
253
321
|
if (msg.message?.materials?.length) {
|
|
254
322
|
this.server.sendResourceUpdated({
|
|
255
323
|
uri: `soldy://project/${projectId}/materials`,
|
|
@@ -261,6 +329,76 @@ export class SubscriptionBridge {
|
|
|
261
329
|
}
|
|
262
330
|
}
|
|
263
331
|
}
|
|
332
|
+
// ---------------------------------------------------------------------------
|
|
333
|
+
// HTTP polling fallback — activated when WebSocket is unavailable
|
|
334
|
+
// ---------------------------------------------------------------------------
|
|
335
|
+
activatePollingFallback() {
|
|
336
|
+
this.usingPollingFallback = true;
|
|
337
|
+
this.ensurePolling();
|
|
338
|
+
}
|
|
339
|
+
ensurePolling() {
|
|
340
|
+
if (this.pollInterval)
|
|
341
|
+
return;
|
|
342
|
+
if (this.subscribedProjects.size === 0)
|
|
343
|
+
return;
|
|
344
|
+
console.error(`[SubscriptionBridge] Starting HTTP polling for ${this.subscribedProjects.size} project(s)`);
|
|
345
|
+
this.pollInterval = setInterval(() => {
|
|
346
|
+
this.pollAllProjects();
|
|
347
|
+
}, SubscriptionBridge.PROJECT_POLL_MS);
|
|
348
|
+
this.pollAllProjects();
|
|
349
|
+
}
|
|
350
|
+
stopPolling() {
|
|
351
|
+
if (this.pollInterval) {
|
|
352
|
+
clearInterval(this.pollInterval);
|
|
353
|
+
this.pollInterval = null;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
async pollAllProjects() {
|
|
357
|
+
if (!this.server)
|
|
358
|
+
return;
|
|
359
|
+
const projects = [...this.subscribedProjects];
|
|
360
|
+
await Promise.allSettled(projects.map((id) => this.pollProject(id)));
|
|
361
|
+
}
|
|
362
|
+
async pollProject(projectId) {
|
|
363
|
+
if (!this.server)
|
|
364
|
+
return;
|
|
365
|
+
try {
|
|
366
|
+
const [project, { total: messageCount }, materials] = await Promise.all([
|
|
367
|
+
this.client.getProject(projectId),
|
|
368
|
+
this.client.listMessages(projectId, 1, 1),
|
|
369
|
+
this.client.getMaterials(projectId),
|
|
370
|
+
]);
|
|
371
|
+
if (!project)
|
|
372
|
+
return;
|
|
373
|
+
const prev = this.projectSnapshots.get(projectId);
|
|
374
|
+
const current = {
|
|
375
|
+
status: project.status,
|
|
376
|
+
messageCount,
|
|
377
|
+
materialCount: materials.length,
|
|
378
|
+
};
|
|
379
|
+
this.projectSnapshots.set(projectId, current);
|
|
380
|
+
if (!prev)
|
|
381
|
+
return;
|
|
382
|
+
if (current.status !== prev.status) {
|
|
383
|
+
this.server.sendResourceUpdated({
|
|
384
|
+
uri: `soldy://project/${projectId}/status`,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
if (current.messageCount !== prev.messageCount) {
|
|
388
|
+
this.server.sendResourceUpdated({
|
|
389
|
+
uri: `soldy://project/${projectId}/messages`,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
if (current.materialCount !== prev.materialCount) {
|
|
393
|
+
this.server.sendResourceUpdated({
|
|
394
|
+
uri: `soldy://project/${projectId}/materials`,
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch (err) {
|
|
399
|
+
console.error(`[SubscriptionBridge] Poll error (project ${projectId}):`, err instanceof Error ? err.message : err);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
264
402
|
}
|
|
265
403
|
/** Extract project_id from a soldy://project/... resource URI. */
|
|
266
404
|
export function extractProjectId(uri) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soldy_ai/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Soldy AI MCP Server — video ad generation via Claude Desktop, Cursor, Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"build": "tsc",
|
|
11
11
|
"dev": "tsx src/index.ts",
|
|
12
12
|
"start": "node dist/index.js",
|
|
13
|
-
"pack:dist": "npm run build && npm pack --pack-destination ../web/public/mcp",
|
|
14
13
|
"lint": "biome check src/",
|
|
15
14
|
"lint:fix": "biome check --write src/"
|
|
16
15
|
},
|
|
@@ -18,9 +17,11 @@
|
|
|
18
17
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
19
18
|
"@types/node": "^22.0.0",
|
|
20
19
|
"typescript": "^5.7.0",
|
|
20
|
+
"ws": "^8.20.0",
|
|
21
21
|
"zod": "^4.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
+
"@types/ws": "^8.18.1",
|
|
24
25
|
"tsx": "^4.19.0"
|
|
25
26
|
},
|
|
26
27
|
"files": [
|