bunqueue 2.7.22 → 2.8.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.
- package/README.md +7 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +24 -87
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts +16 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +101 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/webhookTools.js +1 -1
- package/dist/mcp/tools/webhookTools.js.map +1 -1
- package/package.json +12 -7
package/README.md
CHANGED
|
@@ -602,6 +602,7 @@ https://github.com/user-attachments/assets/e8a8d38e-b4a6-4dc8-8360-876c0f24d116
|
|
|
602
602
|
- **MCP server included** — 73 tools, 5 resources, 3 prompts. AI agents get full control out of the box
|
|
603
603
|
- **BullMQ-compatible API** — Same `Queue`, `Worker`, `QueueEvents`
|
|
604
604
|
- **Zero dependencies** — No Redis, no MongoDB
|
|
605
|
+
- **Tiny footprint** — 8.2 MB installed, 7 packages (just 2 runtime deps: `croner` + `msgpackr`)
|
|
605
606
|
- **SQLite persistence** — Survives restarts, WAL mode for concurrent access
|
|
606
607
|
- **Up to 286K ops/sec** — [Verified benchmarks](https://bunqueue.dev/guide/benchmarks/)
|
|
607
608
|
|
|
@@ -629,12 +630,17 @@ bunqueue is the **first job queue with native MCP support**. AI agents get a ful
|
|
|
629
630
|
# bunqueue-mcp is a binary bundled inside the bunqueue package (not a standalone npm package),
|
|
630
631
|
# so install bunqueue first, then connect Claude Code:
|
|
631
632
|
bun add bunqueue
|
|
633
|
+
# Since v2.8.0 the MCP SDK is an optional peer dependency. Queue-only users skip it entirely:
|
|
634
|
+
# a clean install drops from 93 MB / 117 packages to 8.2 MB / 7 packages (−91%, 3.8x faster).
|
|
635
|
+
# bunx --package=bunqueue does NOT auto-install optional peers, so install the SDK once to run the MCP server:
|
|
636
|
+
bun add @modelcontextprotocol/sdk
|
|
632
637
|
claude mcp add bunqueue -- bunx bunqueue-mcp
|
|
633
638
|
```
|
|
634
639
|
|
|
635
640
|
```json
|
|
636
641
|
// Claude Desktop / Cursor / Windsurf — --package=bunqueue lets bunx resolve the bundled
|
|
637
|
-
// bunqueue-mcp binary without a separate install
|
|
642
|
+
// bunqueue-mcp binary without a separate install (the @modelcontextprotocol/sdk optional
|
|
643
|
+
// peer dependency must still be installed once: bun add @modelcontextprotocol/sdk):
|
|
638
644
|
{
|
|
639
645
|
"mcpServers": {
|
|
640
646
|
"bunqueue": {
|
package/dist/mcp/index.d.ts
CHANGED
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AASH,iBAAe,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBrC"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
+
"use strict";
|
|
2
3
|
/**
|
|
3
4
|
* bunqueue MCP Server
|
|
4
5
|
*
|
|
@@ -40,94 +41,30 @@
|
|
|
40
41
|
* }
|
|
41
42
|
* ```
|
|
42
43
|
*/
|
|
43
|
-
|
|
44
|
-
import
|
|
45
|
-
import
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
import { registerCronTools } from './tools/cronTools';
|
|
54
|
-
import { registerRateLimitTools } from './tools/rateLimitTools';
|
|
55
|
-
import { registerWebhookTools } from './tools/webhookTools';
|
|
56
|
-
import { registerWorkerMgmtTools } from './tools/workerMgmtTools';
|
|
57
|
-
import { registerMonitoringTools } from './tools/monitoringTools';
|
|
58
|
-
import { registerFlowTools } from './tools/flowTools';
|
|
59
|
-
import { registerHandlerTools } from './tools/handlerTools';
|
|
60
|
-
import { HttpHandlerRegistry } from './httpHandler';
|
|
61
|
-
import { registerPrompts } from './prompts';
|
|
62
|
-
import { mcpTracker } from './tools/mcpTracker';
|
|
63
|
-
import { CloudAgent } from '../infrastructure/cloud/cloudAgent';
|
|
64
|
-
import { getSharedManager } from '../client/manager';
|
|
65
|
-
async function main() {
|
|
66
|
-
const backend = await createBackend();
|
|
67
|
-
const mode = process.env.BUNQUEUE_MODE ?? 'embedded';
|
|
68
|
-
const server = new McpServer({
|
|
69
|
-
name: 'bunqueue-mcp',
|
|
70
|
-
version: VERSION,
|
|
71
|
-
});
|
|
72
|
-
const handlerRegistry = new HttpHandlerRegistry();
|
|
73
|
-
// Register all tools (73 total) and prompts (3)
|
|
74
|
-
registerJobTools(server, backend);
|
|
75
|
-
registerJobMgmtTools(server, backend);
|
|
76
|
-
registerConsumptionTools(server, backend);
|
|
77
|
-
registerQueueTools(server, backend);
|
|
78
|
-
registerDlqTools(server, backend);
|
|
79
|
-
registerCronTools(server, backend);
|
|
80
|
-
registerRateLimitTools(server, backend);
|
|
81
|
-
registerWebhookTools(server, backend);
|
|
82
|
-
registerWorkerMgmtTools(server, backend);
|
|
83
|
-
registerMonitoringTools(server, backend);
|
|
84
|
-
registerFlowTools(server, backend);
|
|
85
|
-
registerHandlerTools(server, handlerRegistry);
|
|
86
|
-
// Register resources and prompts
|
|
87
|
-
registerResources(server, backend);
|
|
88
|
-
registerPrompts(server, backend);
|
|
89
|
-
// Start Cloud agent for MCP telemetry (embedded mode only)
|
|
90
|
-
let cloudAgent = null;
|
|
91
|
-
if (mode === 'embedded' && process.env.BUNQUEUE_CLOUD_URL) {
|
|
92
|
-
const manager = getSharedManager();
|
|
93
|
-
cloudAgent = CloudAgent.create(manager);
|
|
94
|
-
if (cloudAgent) {
|
|
95
|
-
cloudAgent.setServerHandles({
|
|
96
|
-
getConnectionCount: () => 0,
|
|
97
|
-
getWsClientCount: () => 0,
|
|
98
|
-
getSseClientCount: () => 0,
|
|
99
|
-
getMcpOperations: () => {
|
|
100
|
-
// IMPORTANT: getSummary() MUST be called before drain() — drain empties the buffer
|
|
101
|
-
const summary = mcpTracker.getSummary();
|
|
102
|
-
const operations = mcpTracker.drain();
|
|
103
|
-
return { operations, summary };
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
}
|
|
44
|
+
// The MCP server implementation lives in ./server.ts and is loaded LAZILY via
|
|
45
|
+
// dynamic import below. This keeps `@modelcontextprotocol/sdk` (and its zod
|
|
46
|
+
// sub-dependency) out of this entrypoint's static import graph, so they can be
|
|
47
|
+
// an OPTIONAL peer dependency: queue-only consumers of bunqueue never download
|
|
48
|
+
// the SDK + zod + its HTTP stack (~24 MB). If a user starts `bunqueue-mcp`
|
|
49
|
+
// without the SDK installed, the guard below prints an actionable install hint.
|
|
50
|
+
async function launch() {
|
|
51
|
+
try {
|
|
52
|
+
const mod = await import('./server.js');
|
|
53
|
+
await mod.run();
|
|
107
54
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
catch {
|
|
118
|
-
// Ignore cleanup errors during shutdown
|
|
55
|
+
catch (err) {
|
|
56
|
+
const e = err;
|
|
57
|
+
const msg = String(e?.message ?? err);
|
|
58
|
+
const isModuleNotFound = e?.code === 'ERR_MODULE_NOT_FOUND' || /Cannot find (module|package)/i.test(msg);
|
|
59
|
+
const mentionsMcpDeps = /@modelcontextprotocol\/sdk|(^|\W)zod(\W|$)/i.test(msg);
|
|
60
|
+
if (isModuleNotFound && mentionsMcpDeps) {
|
|
61
|
+
process.stderr.write('[bunqueue-mcp] The MCP server requires "@modelcontextprotocol/sdk" (an optional peer dependency).\n' +
|
|
62
|
+
'Install it with: bun add @modelcontextprotocol/sdk\n');
|
|
63
|
+
process.exit(1);
|
|
119
64
|
}
|
|
120
|
-
process.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
process.on('SIGTERM', () => void shutdown());
|
|
124
|
-
// Connect via stdio transport
|
|
125
|
-
const transport = new StdioServerTransport();
|
|
126
|
-
await server.connect(transport);
|
|
127
|
-
process.stderr.write(`bunqueue MCP server started (mode: ${mode}, version: ${VERSION})\n`);
|
|
65
|
+
process.stderr.write(`Fatal error: ${err}\n`);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
128
68
|
}
|
|
129
|
-
|
|
130
|
-
process.stderr.write(`Fatal error: ${err}\n`);
|
|
131
|
-
process.exit(1);
|
|
132
|
-
});
|
|
69
|
+
void launch();
|
|
133
70
|
//# sourceMappingURL=index.js.map
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,2EAA2E;AAC3E,gFAAgF;AAEhF,KAAK,UAAU,MAAM;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAA0C,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;QACtC,MAAM,gBAAgB,GACpB,CAAC,EAAE,IAAI,KAAK,sBAAsB,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,eAAe,GAAG,6CAA6C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhF,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qGAAqG;gBACnG,uDAAuD,CAC1D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bunqueue MCP Server — implementation.
|
|
3
|
+
*
|
|
4
|
+
* Loaded lazily by ./index.ts (the `bunqueue-mcp` bin) via dynamic import, so
|
|
5
|
+
* that the static `@modelcontextprotocol/sdk` imports below are only resolved
|
|
6
|
+
* when the MCP server is actually started.
|
|
7
|
+
*
|
|
8
|
+
* `@modelcontextprotocol/sdk` is an OPTIONAL peer dependency (declared in
|
|
9
|
+
* package.json). `zod` (used by the tool schemas) is NOT declared by bunqueue
|
|
10
|
+
* at all — it resolves transitively from the SDK, which hard-depends on
|
|
11
|
+
* `zod: "^3.25 || ^4.0"`. Queue-only consumers download neither. If a future
|
|
12
|
+
* SDK major drops or peer-izes zod, declare zod explicitly here.
|
|
13
|
+
* See ./index.ts for the install-hint guard when the SDK is absent.
|
|
14
|
+
*/
|
|
15
|
+
export declare function run(): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAqEzC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bunqueue MCP Server — implementation.
|
|
3
|
+
*
|
|
4
|
+
* Loaded lazily by ./index.ts (the `bunqueue-mcp` bin) via dynamic import, so
|
|
5
|
+
* that the static `@modelcontextprotocol/sdk` imports below are only resolved
|
|
6
|
+
* when the MCP server is actually started.
|
|
7
|
+
*
|
|
8
|
+
* `@modelcontextprotocol/sdk` is an OPTIONAL peer dependency (declared in
|
|
9
|
+
* package.json). `zod` (used by the tool schemas) is NOT declared by bunqueue
|
|
10
|
+
* at all — it resolves transitively from the SDK, which hard-depends on
|
|
11
|
+
* `zod: "^3.25 || ^4.0"`. Queue-only consumers download neither. If a future
|
|
12
|
+
* SDK major drops or peer-izes zod, declare zod explicitly here.
|
|
13
|
+
* See ./index.ts for the install-hint guard when the SDK is absent.
|
|
14
|
+
*/
|
|
15
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
16
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
17
|
+
import { VERSION } from '../shared/version';
|
|
18
|
+
import { createBackend } from './adapter';
|
|
19
|
+
import { registerResources } from './resources';
|
|
20
|
+
import { registerJobTools } from './tools/jobTools';
|
|
21
|
+
import { registerJobMgmtTools } from './tools/jobMgmtTools';
|
|
22
|
+
import { registerConsumptionTools } from './tools/consumptionTools';
|
|
23
|
+
import { registerQueueTools } from './tools/queueTools';
|
|
24
|
+
import { registerDlqTools } from './tools/dlqTools';
|
|
25
|
+
import { registerCronTools } from './tools/cronTools';
|
|
26
|
+
import { registerRateLimitTools } from './tools/rateLimitTools';
|
|
27
|
+
import { registerWebhookTools } from './tools/webhookTools';
|
|
28
|
+
import { registerWorkerMgmtTools } from './tools/workerMgmtTools';
|
|
29
|
+
import { registerMonitoringTools } from './tools/monitoringTools';
|
|
30
|
+
import { registerFlowTools } from './tools/flowTools';
|
|
31
|
+
import { registerHandlerTools } from './tools/handlerTools';
|
|
32
|
+
import { HttpHandlerRegistry } from './httpHandler';
|
|
33
|
+
import { registerPrompts } from './prompts';
|
|
34
|
+
import { mcpTracker } from './tools/mcpTracker';
|
|
35
|
+
import { CloudAgent } from '../infrastructure/cloud/cloudAgent';
|
|
36
|
+
import { getSharedManager } from '../client/manager';
|
|
37
|
+
export async function run() {
|
|
38
|
+
const backend = await createBackend();
|
|
39
|
+
const mode = process.env.BUNQUEUE_MODE ?? 'embedded';
|
|
40
|
+
const server = new McpServer({
|
|
41
|
+
name: 'bunqueue-mcp',
|
|
42
|
+
version: VERSION,
|
|
43
|
+
});
|
|
44
|
+
const handlerRegistry = new HttpHandlerRegistry();
|
|
45
|
+
// Register all tools (73 total) and prompts (3)
|
|
46
|
+
registerJobTools(server, backend);
|
|
47
|
+
registerJobMgmtTools(server, backend);
|
|
48
|
+
registerConsumptionTools(server, backend);
|
|
49
|
+
registerQueueTools(server, backend);
|
|
50
|
+
registerDlqTools(server, backend);
|
|
51
|
+
registerCronTools(server, backend);
|
|
52
|
+
registerRateLimitTools(server, backend);
|
|
53
|
+
registerWebhookTools(server, backend);
|
|
54
|
+
registerWorkerMgmtTools(server, backend);
|
|
55
|
+
registerMonitoringTools(server, backend);
|
|
56
|
+
registerFlowTools(server, backend);
|
|
57
|
+
registerHandlerTools(server, handlerRegistry);
|
|
58
|
+
// Register resources and prompts
|
|
59
|
+
registerResources(server, backend);
|
|
60
|
+
registerPrompts(server, backend);
|
|
61
|
+
// Start Cloud agent for MCP telemetry (embedded mode only)
|
|
62
|
+
let cloudAgent = null;
|
|
63
|
+
if (mode === 'embedded' && process.env.BUNQUEUE_CLOUD_URL) {
|
|
64
|
+
const manager = getSharedManager();
|
|
65
|
+
cloudAgent = CloudAgent.create(manager);
|
|
66
|
+
if (cloudAgent) {
|
|
67
|
+
cloudAgent.setServerHandles({
|
|
68
|
+
getConnectionCount: () => 0,
|
|
69
|
+
getWsClientCount: () => 0,
|
|
70
|
+
getSseClientCount: () => 0,
|
|
71
|
+
getMcpOperations: () => {
|
|
72
|
+
// IMPORTANT: getSummary() MUST be called before drain() — drain empties the buffer
|
|
73
|
+
const summary = mcpTracker.getSummary();
|
|
74
|
+
const operations = mcpTracker.drain();
|
|
75
|
+
return { operations, summary };
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Graceful shutdown — allow backend and transport to flush before exit
|
|
81
|
+
const shutdown = async () => {
|
|
82
|
+
try {
|
|
83
|
+
if (cloudAgent)
|
|
84
|
+
await cloudAgent.stop();
|
|
85
|
+
handlerRegistry.shutdown();
|
|
86
|
+
backend.shutdown();
|
|
87
|
+
await server.close();
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Ignore cleanup errors during shutdown
|
|
91
|
+
}
|
|
92
|
+
process.exit(0);
|
|
93
|
+
};
|
|
94
|
+
process.on('SIGINT', () => void shutdown());
|
|
95
|
+
process.on('SIGTERM', () => void shutdown());
|
|
96
|
+
// Connect via stdio transport
|
|
97
|
+
const transport = new StdioServerTransport();
|
|
98
|
+
await server.connect(transport);
|
|
99
|
+
process.stderr.write(`bunqueue MCP server started (mode: ${mode}, version: ${VERSION})\n`);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { z } from 'zod';
|
|
|
6
6
|
import { withErrorHandler } from './withErrorHandler';
|
|
7
7
|
export function registerWebhookTools(server, backend) {
|
|
8
8
|
server.tool('bunqueue_add_webhook', 'Add a webhook to receive notifications for job events.', {
|
|
9
|
-
url: z.url().describe('Webhook URL to receive POST requests'),
|
|
9
|
+
url: z.string().url().describe('Webhook URL to receive POST requests'),
|
|
10
10
|
events: z
|
|
11
11
|
.array(z.enum([
|
|
12
12
|
'job.completed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhookTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/webhookTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,OAAmB;IACzE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,wDAAwD,EACxD;QACE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"webhookTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/webhookTools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bunqueue",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -62,13 +62,12 @@
|
|
|
62
62
|
"prepublishOnly": "bun run build:lib"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
66
65
|
"croner": "10.0.1",
|
|
67
|
-
"msgpackr": "^1.11.8"
|
|
68
|
-
"zod": "^4.3.6"
|
|
66
|
+
"msgpackr": "^1.11.8"
|
|
69
67
|
},
|
|
70
68
|
"devDependencies": {
|
|
71
69
|
"@eslint/js": "^10.0.1",
|
|
70
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
72
71
|
"@types/bun": "^1.3.9",
|
|
73
72
|
"bullmq": "^5.70.1",
|
|
74
73
|
"elysia": "^1.4.25",
|
|
@@ -77,10 +76,16 @@
|
|
|
77
76
|
"ioredis": "^5.9.3",
|
|
78
77
|
"prettier": "^3.8.1",
|
|
79
78
|
"typescript": "^5.9.3",
|
|
80
|
-
"typescript-eslint": "8.56.1"
|
|
79
|
+
"typescript-eslint": "8.56.1",
|
|
80
|
+
"zod": "^4.3.6"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"
|
|
83
|
+
"@modelcontextprotocol/sdk": "^1.26.0"
|
|
84
|
+
},
|
|
85
|
+
"peerDependenciesMeta": {
|
|
86
|
+
"@modelcontextprotocol/sdk": {
|
|
87
|
+
"optional": true
|
|
88
|
+
}
|
|
84
89
|
},
|
|
85
90
|
"keywords": [
|
|
86
91
|
"bun",
|
|
@@ -134,6 +139,6 @@
|
|
|
134
139
|
"homepage": "https://bunqueue.dev",
|
|
135
140
|
"engines": {
|
|
136
141
|
"node": ">=18.0.0",
|
|
137
|
-
"bun": ">=1.
|
|
142
|
+
"bun": ">=1.3.9"
|
|
138
143
|
}
|
|
139
144
|
}
|