@occam-scaly/mcp-server 0.1.17 → 0.1.19
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/index.js +51 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/db.d.ts.map +1 -1
- package/dist/tools/db.js +233 -109
- package/dist/tools/db.js.map +1 -1
- package/dist/tools/doctor.d.ts +3 -0
- package/dist/tools/doctor.d.ts.map +1 -0
- package/dist/tools/doctor.js +228 -0
- package/dist/tools/doctor.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/project.d.ts.map +1 -1
- package/dist/tools/project.js +134 -8
- package/dist/tools/project.js.map +1 -1
- package/dist/tools/userGroups.d.ts.map +1 -1
- package/dist/tools/userGroups.js +137 -0
- package/dist/tools/userGroups.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -10,6 +10,32 @@ const client_js_1 = require("./client.js");
|
|
|
10
10
|
const audit_js_1 = require("./audit.js");
|
|
11
11
|
const index_js_2 = require("./tools/index.js");
|
|
12
12
|
const index_js_3 = require("./resources/index.js");
|
|
13
|
+
function parseGlobalToolTimeoutMs() {
|
|
14
|
+
const raw = process.env.SCALY_MCP_TIMEOUT_MS;
|
|
15
|
+
if (!raw)
|
|
16
|
+
return null;
|
|
17
|
+
const n = Number(raw);
|
|
18
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
19
|
+
return null;
|
|
20
|
+
return Math.max(1000, Math.floor(n));
|
|
21
|
+
}
|
|
22
|
+
async function withTimeout(promise, timeoutMs) {
|
|
23
|
+
let timer = null;
|
|
24
|
+
const timeout = new Promise((_, reject) => {
|
|
25
|
+
timer = setTimeout(() => {
|
|
26
|
+
const err = new Error(`Tool call exceeded SCALY_MCP_TIMEOUT_MS=${timeoutMs}ms`);
|
|
27
|
+
err.code = 'SCALY_MCP_TIMEOUT';
|
|
28
|
+
reject(err);
|
|
29
|
+
}, timeoutMs);
|
|
30
|
+
});
|
|
31
|
+
try {
|
|
32
|
+
return await Promise.race([promise, timeout]);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
if (timer)
|
|
36
|
+
clearTimeout(timer);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
13
39
|
async function main() {
|
|
14
40
|
// Load configuration
|
|
15
41
|
const config = (0, config_js_1.loadConfig)();
|
|
@@ -83,7 +109,10 @@ async function main() {
|
|
|
83
109
|
// Validate input
|
|
84
110
|
const validatedInput = tool.inputSchema.parse(args || {});
|
|
85
111
|
// Execute tool
|
|
86
|
-
const
|
|
112
|
+
const globalTimeoutMs = parseGlobalToolTimeoutMs();
|
|
113
|
+
const result = globalTimeoutMs
|
|
114
|
+
? await withTimeout(tool.handler(validatedInput), globalTimeoutMs)
|
|
115
|
+
: await tool.handler(validatedInput);
|
|
87
116
|
const meta = {
|
|
88
117
|
request_id,
|
|
89
118
|
duration_ms: Date.now() - startedAt
|
|
@@ -106,6 +135,27 @@ async function main() {
|
|
|
106
135
|
};
|
|
107
136
|
}
|
|
108
137
|
catch (err) {
|
|
138
|
+
if (err?.code === 'SCALY_MCP_TIMEOUT') {
|
|
139
|
+
const meta = {
|
|
140
|
+
request_id,
|
|
141
|
+
duration_ms: Date.now() - startedAt
|
|
142
|
+
};
|
|
143
|
+
const envelope = {
|
|
144
|
+
success: false,
|
|
145
|
+
error: {
|
|
146
|
+
code: 'TIMEOUT',
|
|
147
|
+
message: err.message,
|
|
148
|
+
retriable: true
|
|
149
|
+
},
|
|
150
|
+
meta
|
|
151
|
+
};
|
|
152
|
+
return {
|
|
153
|
+
content: [
|
|
154
|
+
{ type: 'text', text: JSON.stringify(envelope) }
|
|
155
|
+
],
|
|
156
|
+
isError: true
|
|
157
|
+
};
|
|
158
|
+
}
|
|
109
159
|
// Handle validation errors
|
|
110
160
|
if (err.name === 'ZodError') {
|
|
111
161
|
const issues = Array.isArray(err.errors)
|
package/dist/index.js.map
CHANGED
|
@@ -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/dist/tools/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/tools/db.ts"],"names":[],"mappings":"AAaA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/tools/db.ts"],"names":[],"mappings":"AAaA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAmhB3D,eAAO,MAAM,OAAO,EAAE,cAAc,EAggBnC,CAAC"}
|
package/dist/tools/db.js
CHANGED
|
@@ -17,6 +17,51 @@ const client_js_1 = require("../client.js");
|
|
|
17
17
|
const jwt_js_1 = require("../utils/jwt.js");
|
|
18
18
|
const paths_js_1 = require("../utils/paths.js");
|
|
19
19
|
const index_js_1 = require("./index.js");
|
|
20
|
+
const addonQueueTails = new Map();
|
|
21
|
+
async function withAddonQueue(addonId, fn) {
|
|
22
|
+
const requestedAt = Date.now();
|
|
23
|
+
const tail = addonQueueTails.get(addonId) || Promise.resolve();
|
|
24
|
+
let release = () => { };
|
|
25
|
+
const gate = new Promise((resolve) => {
|
|
26
|
+
release = resolve;
|
|
27
|
+
});
|
|
28
|
+
const nextTail = tail.then(() => gate);
|
|
29
|
+
addonQueueTails.set(addonId, nextTail);
|
|
30
|
+
try {
|
|
31
|
+
await tail;
|
|
32
|
+
const queuedMs = Date.now() - requestedAt;
|
|
33
|
+
return await fn(queuedMs);
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
try {
|
|
37
|
+
release();
|
|
38
|
+
}
|
|
39
|
+
catch { }
|
|
40
|
+
if (addonQueueTails.get(addonId) === nextTail) {
|
|
41
|
+
addonQueueTails.delete(addonId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function sleep(ms) {
|
|
46
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
47
|
+
}
|
|
48
|
+
function isLikelyTransientDbError(err) {
|
|
49
|
+
const msg = String(err?.message || err || '').toLowerCase();
|
|
50
|
+
const code = String(err?.code || '').toLowerCase();
|
|
51
|
+
if (code.includes('etimedout') || code.includes('timeout'))
|
|
52
|
+
return true;
|
|
53
|
+
if (msg.includes('timed out'))
|
|
54
|
+
return true;
|
|
55
|
+
if (msg.includes('timeout'))
|
|
56
|
+
return true;
|
|
57
|
+
if (msg.includes('connection terminated'))
|
|
58
|
+
return true;
|
|
59
|
+
if (msg.includes('server closed the connection'))
|
|
60
|
+
return true;
|
|
61
|
+
if (msg.includes('socket hang up'))
|
|
62
|
+
return true;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
20
65
|
function deriveDomainFromApiUrl(apiUrl) {
|
|
21
66
|
const host = new URL(apiUrl).host;
|
|
22
67
|
return host.replace(/^api-/, '').replace(/^api\./, '');
|
|
@@ -311,10 +356,12 @@ async function withTunnelPort({ bearer, apiUrl, fn }) {
|
|
|
311
356
|
}
|
|
312
357
|
}
|
|
313
358
|
async function withTunnel({ bearer, apiUrl, connectInfo, fn }) {
|
|
359
|
+
const tunnelStartedAt = Date.now();
|
|
314
360
|
return await withTunnelPort({
|
|
315
361
|
bearer,
|
|
316
362
|
apiUrl,
|
|
317
363
|
fn: async (port) => {
|
|
364
|
+
const tunnelMs = Date.now() - tunnelStartedAt;
|
|
318
365
|
const client = new pg_1.Client({
|
|
319
366
|
host: '127.0.0.1',
|
|
320
367
|
port,
|
|
@@ -324,8 +371,20 @@ async function withTunnel({ bearer, apiUrl, connectInfo, fn }) {
|
|
|
324
371
|
ssl: { rejectUnauthorized: false }
|
|
325
372
|
});
|
|
326
373
|
try {
|
|
374
|
+
const connectStartedAt = Date.now();
|
|
327
375
|
await client.connect();
|
|
328
|
-
|
|
376
|
+
const connectMs = Date.now() - connectStartedAt;
|
|
377
|
+
const queryStartedAt = Date.now();
|
|
378
|
+
const data = await fn(client);
|
|
379
|
+
const queryMs = Date.now() - queryStartedAt;
|
|
380
|
+
return {
|
|
381
|
+
data,
|
|
382
|
+
timing_ms: {
|
|
383
|
+
tunnel_ms: tunnelMs,
|
|
384
|
+
connect_ms: connectMs,
|
|
385
|
+
query_ms: queryMs
|
|
386
|
+
}
|
|
387
|
+
};
|
|
329
388
|
}
|
|
330
389
|
finally {
|
|
331
390
|
try {
|
|
@@ -452,33 +511,61 @@ exports.dbTools = [
|
|
|
452
511
|
retriable: false
|
|
453
512
|
});
|
|
454
513
|
}
|
|
455
|
-
const
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
514
|
+
const bearer = cfg.oidcToken;
|
|
515
|
+
return await withAddonQueue(input.addon_id, async (queued_ms) => {
|
|
516
|
+
const proxyStartedAt = Date.now();
|
|
517
|
+
const proxy = await mintDbProxyInfo(input.addon_id, input.ttl_minutes);
|
|
518
|
+
const proxy_ms = Date.now() - proxyStartedAt;
|
|
519
|
+
const runOnce = async () => {
|
|
520
|
+
return await withTunnel({
|
|
521
|
+
bearer,
|
|
522
|
+
apiUrl: cfg.apiUrl,
|
|
523
|
+
connectInfo: {
|
|
524
|
+
username: proxy.username,
|
|
525
|
+
token: proxy.token,
|
|
526
|
+
database: proxy.database
|
|
527
|
+
},
|
|
528
|
+
fn: async (client) => {
|
|
529
|
+
const timeout = Math.max(1000, Math.min(60_000, input.timeout_ms));
|
|
530
|
+
await client.query(`SET statement_timeout TO ${timeout}`);
|
|
531
|
+
return await client.query(input.sql, input.params || []);
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
};
|
|
535
|
+
let attempt = 1;
|
|
536
|
+
let result;
|
|
537
|
+
try {
|
|
538
|
+
result = await runOnce();
|
|
468
539
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
540
|
+
catch (err) {
|
|
541
|
+
if (isLikelyTransientDbError(err)) {
|
|
542
|
+
attempt = 2;
|
|
543
|
+
await sleep(200 + Math.floor(Math.random() * 300));
|
|
544
|
+
result = await runOnce();
|
|
545
|
+
}
|
|
546
|
+
else {
|
|
547
|
+
throw err;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
const columns = result.data.fields.map((f) => f.name);
|
|
551
|
+
const shaped = shapeRowsWithLimits(result.data.rows, input.max_rows, input.max_bytes);
|
|
552
|
+
return (0, index_js_1.ok)({
|
|
553
|
+
addon_id: input.addon_id,
|
|
554
|
+
columns,
|
|
555
|
+
rows: shaped.rows,
|
|
556
|
+
row_count_returned: shaped.rows.length,
|
|
557
|
+
row_count_reported: result.data.rowCount ?? null,
|
|
558
|
+
truncated: shaped.truncated,
|
|
559
|
+
max_rows: input.max_rows,
|
|
560
|
+
max_bytes: input.max_bytes,
|
|
561
|
+
bytes_returned: shaped.bytes_returned,
|
|
562
|
+
timing_ms: {
|
|
563
|
+
queued_ms,
|
|
564
|
+
proxy_ms,
|
|
565
|
+
...result.timing_ms
|
|
566
|
+
},
|
|
567
|
+
attempts: attempt
|
|
568
|
+
});
|
|
482
569
|
});
|
|
483
570
|
}
|
|
484
571
|
catch (err) {
|
|
@@ -544,26 +631,36 @@ exports.dbTools = [
|
|
|
544
631
|
retriable: false
|
|
545
632
|
});
|
|
546
633
|
}
|
|
547
|
-
const
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
634
|
+
const bearer = cfg.oidcToken;
|
|
635
|
+
return await withAddonQueue(input.addon_id, async (queued_ms) => {
|
|
636
|
+
const proxyStartedAt = Date.now();
|
|
637
|
+
const proxy = await mintDbProxyInfo(input.addon_id, input.ttl_minutes);
|
|
638
|
+
const proxy_ms = Date.now() - proxyStartedAt;
|
|
639
|
+
const execResult = await withTunnel({
|
|
640
|
+
bearer,
|
|
641
|
+
apiUrl: cfg.apiUrl,
|
|
642
|
+
connectInfo: {
|
|
643
|
+
username: proxy.username,
|
|
644
|
+
token: proxy.token,
|
|
645
|
+
database: proxy.database
|
|
646
|
+
},
|
|
647
|
+
fn: async (client) => {
|
|
648
|
+
const timeout = Math.max(1000, Math.min(60_000, input.timeout_ms));
|
|
649
|
+
await client.query(`SET statement_timeout TO ${timeout}`);
|
|
650
|
+
return await client.query(input.sql, input.params || []);
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
return (0, index_js_1.ok)({
|
|
654
|
+
preview: false,
|
|
655
|
+
addon_id: input.addon_id,
|
|
656
|
+
row_count: execResult.data.rowCount ?? null,
|
|
657
|
+
command: execResult.data.command ?? null,
|
|
658
|
+
timing_ms: {
|
|
659
|
+
queued_ms,
|
|
660
|
+
proxy_ms,
|
|
661
|
+
...execResult.timing_ms
|
|
662
|
+
}
|
|
663
|
+
});
|
|
567
664
|
});
|
|
568
665
|
}
|
|
569
666
|
catch (err) {
|
|
@@ -663,28 +760,38 @@ exports.dbTools = [
|
|
|
663
760
|
retriable: false
|
|
664
761
|
});
|
|
665
762
|
}
|
|
666
|
-
const
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
763
|
+
const bearer = cfg.oidcToken;
|
|
764
|
+
return await withAddonQueue(input.addon_id, async (queued_ms) => {
|
|
765
|
+
const proxyStartedAt = Date.now();
|
|
766
|
+
const proxy = await mintDbProxyInfo(input.addon_id, input.ttl_minutes);
|
|
767
|
+
const proxy_ms = Date.now() - proxyStartedAt;
|
|
768
|
+
const res = await withTunnel({
|
|
769
|
+
bearer,
|
|
770
|
+
apiUrl: cfg.apiUrl,
|
|
771
|
+
connectInfo: {
|
|
772
|
+
username: proxy.username,
|
|
773
|
+
token: proxy.token,
|
|
774
|
+
database: proxy.database
|
|
775
|
+
},
|
|
776
|
+
fn: async (client) => {
|
|
777
|
+
const timeout = Math.max(1000, Math.min(300_000, input.timeout_ms));
|
|
778
|
+
await client.query(`SET statement_timeout TO ${timeout}`);
|
|
779
|
+
return await client.query(sql);
|
|
780
|
+
}
|
|
781
|
+
});
|
|
782
|
+
return (0, index_js_1.ok)({
|
|
783
|
+
preview: false,
|
|
784
|
+
addon_id: input.addon_id,
|
|
785
|
+
migration_path: rel,
|
|
786
|
+
command: res.data.command ?? null,
|
|
787
|
+
row_count: res.data.rowCount ?? null,
|
|
788
|
+
bytes: Buffer.byteLength(sql, 'utf8'),
|
|
789
|
+
timing_ms: {
|
|
790
|
+
queued_ms,
|
|
791
|
+
proxy_ms,
|
|
792
|
+
...res.timing_ms
|
|
793
|
+
}
|
|
794
|
+
});
|
|
688
795
|
});
|
|
689
796
|
}
|
|
690
797
|
catch (err) {
|
|
@@ -725,47 +832,64 @@ exports.dbTools = [
|
|
|
725
832
|
retriable: false
|
|
726
833
|
});
|
|
727
834
|
}
|
|
728
|
-
const
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
835
|
+
const bearer = cfg.oidcToken;
|
|
836
|
+
return await withAddonQueue(input.addon_id, async (queued_ms) => {
|
|
837
|
+
const proxyStartedAt = Date.now();
|
|
838
|
+
const proxy = await mintDbProxyInfo(input.addon_id, input.ttl_minutes);
|
|
839
|
+
const proxy_ms = Date.now() - proxyStartedAt;
|
|
840
|
+
const timeout = Math.max(1000, Math.min(300_000, input.timeout_ms));
|
|
841
|
+
const env = {
|
|
842
|
+
...process.env,
|
|
843
|
+
PGPASSWORD: proxy.token,
|
|
844
|
+
PGSSLMODE: 'require',
|
|
845
|
+
PGCONNECT_TIMEOUT: String(Math.ceil(timeout / 1000))
|
|
846
|
+
};
|
|
847
|
+
const tunnelStartedAt = Date.now();
|
|
848
|
+
const res = await withTunnelPort({
|
|
849
|
+
bearer,
|
|
850
|
+
apiUrl: cfg.apiUrl,
|
|
851
|
+
fn: (port) => {
|
|
852
|
+
const tunnel_ms = Date.now() - tunnelStartedAt;
|
|
853
|
+
const dumpStartedAt = Date.now();
|
|
854
|
+
const out = (0, node_child_process_1.spawnSync)('pg_dump', [
|
|
855
|
+
'--schema-only',
|
|
856
|
+
'--no-owner',
|
|
857
|
+
'--no-privileges',
|
|
858
|
+
'-h',
|
|
859
|
+
'127.0.0.1',
|
|
860
|
+
'-p',
|
|
861
|
+
String(port),
|
|
862
|
+
'-U',
|
|
863
|
+
proxy.username,
|
|
864
|
+
'-d',
|
|
865
|
+
proxy.database
|
|
866
|
+
], { encoding: 'utf8', env });
|
|
867
|
+
const dump_ms = Date.now() - dumpStartedAt;
|
|
868
|
+
return { out, timing_ms: { tunnel_ms, dump_ms } };
|
|
869
|
+
}
|
|
870
|
+
});
|
|
871
|
+
if (res.out.status !== 0) {
|
|
872
|
+
const msg = res.out.error?.message ||
|
|
873
|
+
res.out.stderr ||
|
|
874
|
+
'pg_dump failed (is it installed and on PATH?)';
|
|
875
|
+
return (0, index_js_1.fail)({
|
|
876
|
+
code: 'NOT_SUPPORTED',
|
|
877
|
+
message: msg,
|
|
878
|
+
retriable: false
|
|
879
|
+
});
|
|
880
|
+
}
|
|
881
|
+
node_fs_1.default.mkdirSync(node_path_1.default.dirname(abs), { recursive: true });
|
|
882
|
+
node_fs_1.default.writeFileSync(abs, res.out.stdout, 'utf8');
|
|
883
|
+
return (0, index_js_1.ok)({
|
|
884
|
+
addon_id: input.addon_id,
|
|
885
|
+
output_path: rel,
|
|
886
|
+
bytes_written: Buffer.byteLength(res.out.stdout, 'utf8'),
|
|
887
|
+
timing_ms: {
|
|
888
|
+
queued_ms,
|
|
889
|
+
proxy_ms,
|
|
890
|
+
...res.timing_ms
|
|
891
|
+
}
|
|
761
892
|
});
|
|
762
|
-
}
|
|
763
|
-
node_fs_1.default.mkdirSync(node_path_1.default.dirname(abs), { recursive: true });
|
|
764
|
-
node_fs_1.default.writeFileSync(abs, res.stdout, 'utf8');
|
|
765
|
-
return (0, index_js_1.ok)({
|
|
766
|
-
addon_id: input.addon_id,
|
|
767
|
-
output_path: rel,
|
|
768
|
-
bytes_written: Buffer.byteLength(res.stdout, 'utf8')
|
|
769
893
|
});
|
|
770
894
|
}
|
|
771
895
|
catch (err) {
|