@elad-nofy/mssql-mcp 1.0.1 → 1.0.3
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 +70 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.js +4 -4
- package/dist/config.js.map +1 -1
- package/dist/index.js +48 -16
- package/dist/index.js.map +1 -1
- package/dist/mssqlClient.d.ts +6 -4
- package/dist/mssqlClient.d.ts.map +1 -1
- package/dist/mssqlClient.js +49 -20
- package/dist/mssqlClient.js.map +1 -1
- package/dist/tools/availability.d.ts +30 -10
- package/dist/tools/availability.d.ts.map +1 -1
- package/dist/tools/availability.js +18 -12
- package/dist/tools/availability.js.map +1 -1
- package/dist/tools/connection.d.ts +26 -5
- package/dist/tools/connection.d.ts.map +1 -1
- package/dist/tools/connection.js +14 -8
- package/dist/tools/connection.js.map +1 -1
- package/dist/tools/health.d.ts +42 -10
- package/dist/tools/health.d.ts.map +1 -1
- package/dist/tools/health.js +22 -13
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jobs.d.ts +25 -5
- package/dist/tools/jobs.d.ts.map +1 -1
- package/dist/tools/jobs.js +12 -6
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/performance.d.ts +26 -6
- package/dist/tools/performance.d.ts.map +1 -1
- package/dist/tools/performance.js +12 -6
- package/dist/tools/performance.js.map +1 -1
- package/dist/tools/queries.d.ts +15 -3
- package/dist/tools/queries.d.ts.map +1 -1
- package/dist/tools/queries.js +7 -3
- package/dist/tools/queries.js.map +1 -1
- package/dist/tools/schema.d.ts +230 -0
- package/dist/tools/schema.d.ts.map +1 -0
- package/dist/tools/schema.js +374 -0
- package/dist/tools/schema.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,9 +3,18 @@ import { MssqlClient } from '../mssqlClient.js';
|
|
|
3
3
|
export declare const connectionTools: {
|
|
4
4
|
test_connection: {
|
|
5
5
|
description: string;
|
|
6
|
-
inputSchema: z.ZodObject<{
|
|
7
|
-
|
|
6
|
+
inputSchema: z.ZodObject<{
|
|
7
|
+
server: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
server?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
server?: string | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
handler: (client: MssqlClient, args: {
|
|
14
|
+
server?: string;
|
|
15
|
+
}) => Promise<{
|
|
8
16
|
success: boolean;
|
|
17
|
+
server: string;
|
|
9
18
|
version?: string;
|
|
10
19
|
error?: string;
|
|
11
20
|
}>;
|
|
@@ -13,20 +22,32 @@ export declare const connectionTools: {
|
|
|
13
22
|
list_databases: {
|
|
14
23
|
description: string;
|
|
15
24
|
inputSchema: z.ZodObject<{
|
|
25
|
+
server: z.ZodOptional<z.ZodString>;
|
|
16
26
|
includeSystem: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
27
|
}, "strip", z.ZodTypeAny, {
|
|
18
28
|
includeSystem: boolean;
|
|
29
|
+
server?: string | undefined;
|
|
19
30
|
}, {
|
|
31
|
+
server?: string | undefined;
|
|
20
32
|
includeSystem?: boolean | undefined;
|
|
21
33
|
}>;
|
|
22
34
|
handler: (client: MssqlClient, args: {
|
|
35
|
+
server?: string;
|
|
23
36
|
includeSystem?: boolean;
|
|
24
|
-
}) => Promise<
|
|
37
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
25
38
|
};
|
|
26
39
|
get_server_info: {
|
|
27
40
|
description: string;
|
|
28
|
-
inputSchema: z.ZodObject<{
|
|
29
|
-
|
|
41
|
+
inputSchema: z.ZodObject<{
|
|
42
|
+
server: z.ZodOptional<z.ZodString>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
server?: string | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
server?: string | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
handler: (client: MssqlClient, args: {
|
|
49
|
+
server?: string;
|
|
50
|
+
}) => Promise<Record<string, unknown>>;
|
|
30
51
|
};
|
|
31
52
|
};
|
|
32
53
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/tools/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/tools/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,eAAO,MAAM,eAAe;;;;;;;;;;0BAMA,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;0BAWtC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;0BAgC/D,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;CAoBjE,CAAC"}
|
package/dist/tools/connection.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
// Shared server parameter for all tools
|
|
3
|
+
const serverParam = z.string().optional().describe('SQL Server instance (e.g., "server\\instance" or "server,port"). Uses default if not specified.');
|
|
2
4
|
export const connectionTools = {
|
|
3
5
|
test_connection: {
|
|
4
6
|
description: 'Test the connection to SQL Server and verify authentication',
|
|
5
|
-
inputSchema: z.object({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
server: serverParam,
|
|
9
|
+
}),
|
|
10
|
+
handler: async (client, args) => {
|
|
11
|
+
return await client.testConnection(args.server);
|
|
9
12
|
},
|
|
10
13
|
},
|
|
11
14
|
list_databases: {
|
|
12
15
|
description: 'List all databases on the SQL Server instance with their status and size',
|
|
13
16
|
inputSchema: z.object({
|
|
17
|
+
server: serverParam,
|
|
14
18
|
includeSystem: z.boolean().optional().default(false).describe('Include system databases (master, model, msdb, tempdb)'),
|
|
15
19
|
}),
|
|
16
20
|
handler: async (client, args) => {
|
|
@@ -34,13 +38,15 @@ export const connectionTools = {
|
|
|
34
38
|
d.compatibility_level, d.collation_name, d.create_date
|
|
35
39
|
ORDER BY d.name
|
|
36
40
|
`;
|
|
37
|
-
return await client.query(query);
|
|
41
|
+
return await client.query(query, undefined, args.server);
|
|
38
42
|
},
|
|
39
43
|
},
|
|
40
44
|
get_server_info: {
|
|
41
45
|
description: 'Get SQL Server instance information including version, edition, and configuration',
|
|
42
|
-
inputSchema: z.object({
|
|
43
|
-
|
|
46
|
+
inputSchema: z.object({
|
|
47
|
+
server: serverParam,
|
|
48
|
+
}),
|
|
49
|
+
handler: async (client, args) => {
|
|
44
50
|
const query = `
|
|
45
51
|
SELECT
|
|
46
52
|
SERVERPROPERTY('ServerName') as server_name,
|
|
@@ -55,7 +61,7 @@ export const connectionTools = {
|
|
|
55
61
|
@@MAX_CONNECTIONS as max_connections,
|
|
56
62
|
(SELECT COUNT(*) FROM sys.dm_exec_connections) as current_connections
|
|
57
63
|
`;
|
|
58
|
-
const result = await client.query(query);
|
|
64
|
+
const result = await client.query(query, undefined, args.server);
|
|
59
65
|
return result[0];
|
|
60
66
|
},
|
|
61
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/tools/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,eAAe,EAAE;QACf,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/tools/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,wCAAwC;AACxC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC,CAAC;AAEtJ,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,eAAe,EAAE;QACf,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAyB,EAAE,EAAE;YAChE,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;KACF;IAED,cAAc,EAAE;QACd,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACxH,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAkD,EAAE,EAAE;YACzF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,2DAA2D,CAAC;YAEhE,MAAM,KAAK,GAAG;;;;;;;;;;;;UAYV,YAAY;;;;OAIf,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF;IAED,eAAe,EAAE;QACf,WAAW,EAAE,mFAAmF;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAyB,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG;;;;;;;;;;;;;OAab,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;KACF;CACF,CAAC"}
|
package/dist/tools/health.d.ts
CHANGED
|
@@ -3,8 +3,16 @@ import { MssqlClient } from '../mssqlClient.js';
|
|
|
3
3
|
export declare const healthTools: {
|
|
4
4
|
get_database_states: {
|
|
5
5
|
description: string;
|
|
6
|
-
inputSchema: z.ZodObject<{
|
|
7
|
-
|
|
6
|
+
inputSchema: z.ZodObject<{
|
|
7
|
+
server: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
server?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
server?: string | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
handler: (client: MssqlClient, args: {
|
|
14
|
+
server?: string;
|
|
15
|
+
}) => Promise<{
|
|
8
16
|
summary: {
|
|
9
17
|
total: number;
|
|
10
18
|
critical: number;
|
|
@@ -19,29 +27,49 @@ export declare const healthTools: {
|
|
|
19
27
|
get_disk_space: {
|
|
20
28
|
description: string;
|
|
21
29
|
inputSchema: z.ZodObject<{
|
|
30
|
+
server: z.ZodOptional<z.ZodString>;
|
|
22
31
|
database: z.ZodOptional<z.ZodString>;
|
|
23
32
|
}, "strip", z.ZodTypeAny, {
|
|
24
33
|
database?: string | undefined;
|
|
34
|
+
server?: string | undefined;
|
|
25
35
|
}, {
|
|
26
36
|
database?: string | undefined;
|
|
37
|
+
server?: string | undefined;
|
|
27
38
|
}>;
|
|
28
39
|
handler: (client: MssqlClient, args: {
|
|
40
|
+
server?: string;
|
|
29
41
|
database?: string;
|
|
30
|
-
}) => Promise<
|
|
42
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
31
43
|
};
|
|
32
44
|
get_memory_usage: {
|
|
33
45
|
description: string;
|
|
34
|
-
inputSchema: z.ZodObject<{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
inputSchema: z.ZodObject<{
|
|
47
|
+
server: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
server?: string | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
server?: string | undefined;
|
|
52
|
+
}>;
|
|
53
|
+
handler: (client: MssqlClient, args: {
|
|
54
|
+
server?: string;
|
|
55
|
+
}) => Promise<{
|
|
56
|
+
serverMemory: Record<string, unknown>;
|
|
57
|
+
topMemoryClerks: Record<string, unknown>[];
|
|
58
|
+
bufferPoolByDatabase: Record<string, unknown>[];
|
|
39
59
|
}>;
|
|
40
60
|
};
|
|
41
61
|
get_log_space: {
|
|
42
62
|
description: string;
|
|
43
|
-
inputSchema: z.ZodObject<{
|
|
44
|
-
|
|
63
|
+
inputSchema: z.ZodObject<{
|
|
64
|
+
server: z.ZodOptional<z.ZodString>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
server?: string | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
server?: string | undefined;
|
|
69
|
+
}>;
|
|
70
|
+
handler: (client: MssqlClient, args: {
|
|
71
|
+
server?: string;
|
|
72
|
+
}) => Promise<{
|
|
45
73
|
summary: {
|
|
46
74
|
total: number;
|
|
47
75
|
critical: number;
|
|
@@ -59,13 +87,17 @@ export declare const healthTools: {
|
|
|
59
87
|
get_backup_status: {
|
|
60
88
|
description: string;
|
|
61
89
|
inputSchema: z.ZodObject<{
|
|
90
|
+
server: z.ZodOptional<z.ZodString>;
|
|
62
91
|
maxAgeDays: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
63
92
|
}, "strip", z.ZodTypeAny, {
|
|
64
93
|
maxAgeDays: number;
|
|
94
|
+
server?: string | undefined;
|
|
65
95
|
}, {
|
|
96
|
+
server?: string | undefined;
|
|
66
97
|
maxAgeDays?: number | undefined;
|
|
67
98
|
}>;
|
|
68
99
|
handler: (client: MssqlClient, args: {
|
|
100
|
+
server?: string;
|
|
69
101
|
maxAgeDays?: number;
|
|
70
102
|
}) => Promise<{
|
|
71
103
|
summary: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,WAAW;;;;;;;;;;0BAMI,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;+BAwBT,MAAM;;;;;;;;;;;;;;;;0BAsBnC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAqCzD,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;0BAmDtC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;iCAMzC,MAAM;iCACN,MAAM;sCACD,MAAM;wBACpB,MAAM;;;;;;;;;;;;;;;;0BAgCM,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;+BAqBhE,MAAM;gCACL,MAAM;kCACJ,IAAI,GAAG,IAAI;kCACX,IAAI,GAAG,IAAI;iCACZ,IAAI,GAAG,IAAI;iCACX,MAAM,GAAG,IAAI;iCACb,MAAM,GAAG,IAAI;;;;CAwBrC,CAAC"}
|
package/dist/tools/health.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
const serverParam = z.string().optional().describe('SQL Server instance (e.g., "server\\instance" or "server,port"). Uses default if not specified.');
|
|
2
3
|
export const healthTools = {
|
|
3
4
|
get_database_states: {
|
|
4
5
|
description: 'Get the health status of all databases including any that are offline, recovering, or suspect',
|
|
5
|
-
inputSchema: z.object({
|
|
6
|
-
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
server: serverParam,
|
|
8
|
+
}),
|
|
9
|
+
handler: async (client, args) => {
|
|
7
10
|
const query = `
|
|
8
11
|
SELECT
|
|
9
12
|
name,
|
|
@@ -26,7 +29,7 @@ export const healthTools = {
|
|
|
26
29
|
CASE WHEN state_desc != 'ONLINE' THEN 0 ELSE 1 END,
|
|
27
30
|
name
|
|
28
31
|
`;
|
|
29
|
-
const result = await client.query(query);
|
|
32
|
+
const result = await client.query(query, undefined, args.server);
|
|
30
33
|
const critical = result.filter((r) => r.health_status === 'CRITICAL');
|
|
31
34
|
const warning = result.filter((r) => r.health_status === 'WARNING');
|
|
32
35
|
return {
|
|
@@ -43,6 +46,7 @@ export const healthTools = {
|
|
|
43
46
|
get_disk_space: {
|
|
44
47
|
description: 'Get disk space usage for all database files including data and log files',
|
|
45
48
|
inputSchema: z.object({
|
|
49
|
+
server: serverParam,
|
|
46
50
|
database: z.string().optional().describe('Specific database to check (optional, checks all if not specified)'),
|
|
47
51
|
}),
|
|
48
52
|
handler: async (client, args) => {
|
|
@@ -71,13 +75,15 @@ export const healthTools = {
|
|
|
71
75
|
${dbFilter}
|
|
72
76
|
ORDER BY database_name, type_desc
|
|
73
77
|
`;
|
|
74
|
-
return await client.query(query);
|
|
78
|
+
return await client.query(query, undefined, args.server);
|
|
75
79
|
},
|
|
76
80
|
},
|
|
77
81
|
get_memory_usage: {
|
|
78
82
|
description: 'Get SQL Server memory usage including buffer pool, plan cache, and other memory clerks',
|
|
79
|
-
inputSchema: z.object({
|
|
80
|
-
|
|
83
|
+
inputSchema: z.object({
|
|
84
|
+
server: serverParam,
|
|
85
|
+
}),
|
|
86
|
+
handler: async (client, args) => {
|
|
81
87
|
const query = `
|
|
82
88
|
SELECT
|
|
83
89
|
type as memory_clerk_type,
|
|
@@ -88,7 +94,7 @@ export const healthTools = {
|
|
|
88
94
|
WHERE pages_kb > 0
|
|
89
95
|
ORDER BY pages_kb DESC
|
|
90
96
|
`;
|
|
91
|
-
const clerks = await client.query(query);
|
|
97
|
+
const clerks = await client.query(query, undefined, args.server);
|
|
92
98
|
// Get overall memory status
|
|
93
99
|
const memoryQuery = `
|
|
94
100
|
SELECT
|
|
@@ -98,7 +104,7 @@ export const healthTools = {
|
|
|
98
104
|
visible_target_kb / 1024 as visible_target_mb
|
|
99
105
|
FROM sys.dm_os_sys_info
|
|
100
106
|
`;
|
|
101
|
-
const memoryInfo = await client.query(memoryQuery);
|
|
107
|
+
const memoryInfo = await client.query(memoryQuery, undefined, args.server);
|
|
102
108
|
// Get buffer pool usage
|
|
103
109
|
const bufferQuery = `
|
|
104
110
|
SELECT
|
|
@@ -108,7 +114,7 @@ export const healthTools = {
|
|
|
108
114
|
GROUP BY database_id
|
|
109
115
|
ORDER BY COUNT(*) DESC
|
|
110
116
|
`;
|
|
111
|
-
const bufferUsage = await client.query(bufferQuery);
|
|
117
|
+
const bufferUsage = await client.query(bufferQuery, undefined, args.server);
|
|
112
118
|
return {
|
|
113
119
|
serverMemory: memoryInfo[0],
|
|
114
120
|
topMemoryClerks: clerks.slice(0, 15),
|
|
@@ -118,12 +124,14 @@ export const healthTools = {
|
|
|
118
124
|
},
|
|
119
125
|
get_log_space: {
|
|
120
126
|
description: 'Get transaction log space usage for all databases',
|
|
121
|
-
inputSchema: z.object({
|
|
122
|
-
|
|
127
|
+
inputSchema: z.object({
|
|
128
|
+
server: serverParam,
|
|
129
|
+
}),
|
|
130
|
+
handler: async (client, args) => {
|
|
123
131
|
const query = `
|
|
124
132
|
DBCC SQLPERF(LOGSPACE) WITH NO_INFOMSGS
|
|
125
133
|
`;
|
|
126
|
-
const result = await client.query(query);
|
|
134
|
+
const result = await client.query(query, undefined, args.server);
|
|
127
135
|
// Add health assessment
|
|
128
136
|
const assessed = result.map((r) => ({
|
|
129
137
|
...r,
|
|
@@ -145,6 +153,7 @@ export const healthTools = {
|
|
|
145
153
|
get_backup_status: {
|
|
146
154
|
description: 'Get last backup information for all databases',
|
|
147
155
|
inputSchema: z.object({
|
|
156
|
+
server: serverParam,
|
|
148
157
|
maxAgeDays: z.number().optional().default(7).describe('Flag databases with no backup in this many days as warning'),
|
|
149
158
|
}),
|
|
150
159
|
handler: async (client, args) => {
|
|
@@ -166,7 +175,7 @@ export const healthTools = {
|
|
|
166
175
|
CASE WHEN MAX(CASE WHEN b.type = 'D' THEN b.backup_finish_date END) IS NULL THEN 0 ELSE 1 END,
|
|
167
176
|
MAX(CASE WHEN b.type = 'D' THEN b.backup_finish_date END)
|
|
168
177
|
`;
|
|
169
|
-
const result = await client.query(query);
|
|
178
|
+
const result = await client.query(query, undefined, args.server);
|
|
170
179
|
// Add health assessment
|
|
171
180
|
const maxAge = args.maxAgeDays || 7;
|
|
172
181
|
const assessed = result.map((r) => ({
|
package/dist/tools/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,mBAAmB,EAAE;QACnB,WAAW,EAAE,+FAA+F;QAC5G,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export { performanceTools } from './performance.js';
|
|
|
4
4
|
export { healthTools } from './health.js';
|
|
5
5
|
export { jobTools } from './jobs.js';
|
|
6
6
|
export { availabilityTools } from './availability.js';
|
|
7
|
+
export { schemaTools } from './schema.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export { performanceTools } from './performance.js';
|
|
|
4
4
|
export { healthTools } from './health.js';
|
|
5
5
|
export { jobTools } from './jobs.js';
|
|
6
6
|
export { availabilityTools } from './availability.js';
|
|
7
|
+
export { schemaTools } from './schema.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/tools/jobs.d.ts
CHANGED
|
@@ -4,50 +4,70 @@ export declare const jobTools: {
|
|
|
4
4
|
list_jobs: {
|
|
5
5
|
description: string;
|
|
6
6
|
inputSchema: z.ZodObject<{
|
|
7
|
+
server: z.ZodOptional<z.ZodString>;
|
|
7
8
|
enabledOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8
9
|
}, "strip", z.ZodTypeAny, {
|
|
9
10
|
enabledOnly: boolean;
|
|
11
|
+
server?: string | undefined;
|
|
10
12
|
}, {
|
|
13
|
+
server?: string | undefined;
|
|
11
14
|
enabledOnly?: boolean | undefined;
|
|
12
15
|
}>;
|
|
13
16
|
handler: (client: MssqlClient, args: {
|
|
17
|
+
server?: string;
|
|
14
18
|
enabledOnly?: boolean;
|
|
15
|
-
}) => Promise<
|
|
19
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
16
20
|
};
|
|
17
21
|
get_running_jobs: {
|
|
18
22
|
description: string;
|
|
19
|
-
inputSchema: z.ZodObject<{
|
|
20
|
-
|
|
23
|
+
inputSchema: z.ZodObject<{
|
|
24
|
+
server: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
server?: string | undefined;
|
|
27
|
+
}, {
|
|
28
|
+
server?: string | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
handler: (client: MssqlClient, args: {
|
|
31
|
+
server?: string;
|
|
32
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
21
33
|
};
|
|
22
34
|
get_failed_jobs: {
|
|
23
35
|
description: string;
|
|
24
36
|
inputSchema: z.ZodObject<{
|
|
37
|
+
server: z.ZodOptional<z.ZodString>;
|
|
25
38
|
hours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
26
39
|
}, "strip", z.ZodTypeAny, {
|
|
27
40
|
hours: number;
|
|
41
|
+
server?: string | undefined;
|
|
28
42
|
}, {
|
|
43
|
+
server?: string | undefined;
|
|
29
44
|
hours?: number | undefined;
|
|
30
45
|
}>;
|
|
31
46
|
handler: (client: MssqlClient, args: {
|
|
47
|
+
server?: string;
|
|
32
48
|
hours?: number;
|
|
33
|
-
}) => Promise<
|
|
49
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
34
50
|
};
|
|
35
51
|
get_job_history: {
|
|
36
52
|
description: string;
|
|
37
53
|
inputSchema: z.ZodObject<{
|
|
54
|
+
server: z.ZodOptional<z.ZodString>;
|
|
38
55
|
jobName: z.ZodString;
|
|
39
56
|
top: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
40
57
|
}, "strip", z.ZodTypeAny, {
|
|
41
58
|
top: number;
|
|
42
59
|
jobName: string;
|
|
60
|
+
server?: string | undefined;
|
|
43
61
|
}, {
|
|
44
62
|
jobName: string;
|
|
63
|
+
server?: string | undefined;
|
|
45
64
|
top?: number | undefined;
|
|
46
65
|
}>;
|
|
47
66
|
handler: (client: MssqlClient, args: {
|
|
67
|
+
server?: string;
|
|
48
68
|
jobName: string;
|
|
49
69
|
top?: number;
|
|
50
|
-
}) => Promise<
|
|
70
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
51
71
|
};
|
|
52
72
|
};
|
|
53
73
|
//# sourceMappingURL=jobs.d.ts.map
|
package/dist/tools/jobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;0BAOO,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;0BAmE7D,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;0BA+BtC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;0BAoCtD,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE;;CA8BhG,CAAC"}
|
package/dist/tools/jobs.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
const serverParam = z.string().optional().describe('SQL Server instance (e.g., "server\\instance" or "server,port"). Uses default if not specified.');
|
|
2
3
|
export const jobTools = {
|
|
3
4
|
list_jobs: {
|
|
4
5
|
description: 'List all SQL Server Agent jobs with their status and schedule',
|
|
5
6
|
inputSchema: z.object({
|
|
7
|
+
server: serverParam,
|
|
6
8
|
enabledOnly: z.boolean().optional().default(false).describe('Only show enabled jobs'),
|
|
7
9
|
}),
|
|
8
10
|
handler: async (client, args) => {
|
|
@@ -61,13 +63,15 @@ export const jobTools = {
|
|
|
61
63
|
${enabledFilter}
|
|
62
64
|
ORDER BY j.name
|
|
63
65
|
`;
|
|
64
|
-
return await client.query(query);
|
|
66
|
+
return await client.query(query, undefined, args.server);
|
|
65
67
|
},
|
|
66
68
|
},
|
|
67
69
|
get_running_jobs: {
|
|
68
70
|
description: 'Get currently executing SQL Server Agent jobs',
|
|
69
|
-
inputSchema: z.object({
|
|
70
|
-
|
|
71
|
+
inputSchema: z.object({
|
|
72
|
+
server: serverParam,
|
|
73
|
+
}),
|
|
74
|
+
handler: async (client, args) => {
|
|
71
75
|
const query = `
|
|
72
76
|
SELECT
|
|
73
77
|
j.name as job_name,
|
|
@@ -87,12 +91,13 @@ export const jobTools = {
|
|
|
87
91
|
AND ja.stop_execution_date IS NULL
|
|
88
92
|
ORDER BY ja.start_execution_date
|
|
89
93
|
`;
|
|
90
|
-
return await client.query(query);
|
|
94
|
+
return await client.query(query, undefined, args.server);
|
|
91
95
|
},
|
|
92
96
|
},
|
|
93
97
|
get_failed_jobs: {
|
|
94
98
|
description: 'Get jobs that failed in their last execution or recent history',
|
|
95
99
|
inputSchema: z.object({
|
|
100
|
+
server: serverParam,
|
|
96
101
|
hours: z.number().optional().default(24).describe('Look back this many hours for failures'),
|
|
97
102
|
}),
|
|
98
103
|
handler: async (client, args) => {
|
|
@@ -119,12 +124,13 @@ export const jobTools = {
|
|
|
119
124
|
AS DATETIME) > DATEADD(HOUR, -${args.hours || 24}, GETDATE())
|
|
120
125
|
ORDER BY h.run_date DESC, h.run_time DESC
|
|
121
126
|
`;
|
|
122
|
-
return await client.query(query);
|
|
127
|
+
return await client.query(query, undefined, args.server);
|
|
123
128
|
},
|
|
124
129
|
},
|
|
125
130
|
get_job_history: {
|
|
126
131
|
description: 'Get execution history for a specific job',
|
|
127
132
|
inputSchema: z.object({
|
|
133
|
+
server: serverParam,
|
|
128
134
|
jobName: z.string().describe('Name of the job'),
|
|
129
135
|
top: z.number().optional().default(50).describe('Number of history records to return'),
|
|
130
136
|
}),
|
|
@@ -154,7 +160,7 @@ export const jobTools = {
|
|
|
154
160
|
WHERE j.name = @jobName
|
|
155
161
|
ORDER BY h.run_date DESC, h.run_time DESC, h.step_id
|
|
156
162
|
`;
|
|
157
|
-
return await client.query(query, { jobName: args.jobName });
|
|
163
|
+
return await client.query(query, { jobName: args.jobName }, args.server);
|
|
158
164
|
},
|
|
159
165
|
},
|
|
160
166
|
};
|
package/dist/tools/jobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SACtF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC,CAAC;AAEtJ,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SACtF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAgD,EAAE,EAAE;YACvF,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAElE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmDV,aAAa;;OAEhB,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF;IAED,gBAAgB,EAAE;QAChB,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAyB,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;OAkBb,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF;IAED,eAAe,EAAE;QACf,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC5F,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAyC,EAAE,EAAE;YAChF,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;wCAoBoB,IAAI,CAAC,KAAK,IAAI,EAAE;;OAEjD,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF;IAED,eAAe,EAAE;QACf,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACvF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAwD,EAAE,EAAE;YAC/F,MAAM,KAAK,GAAG;qBACC,IAAI,CAAC,GAAG,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;OAuB5B,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC;KACF;CACF,CAAC"}
|
|
@@ -3,58 +3,78 @@ import { MssqlClient } from '../mssqlClient.js';
|
|
|
3
3
|
export declare const performanceTools: {
|
|
4
4
|
get_blocking: {
|
|
5
5
|
description: string;
|
|
6
|
-
inputSchema: z.ZodObject<{
|
|
7
|
-
|
|
6
|
+
inputSchema: z.ZodObject<{
|
|
7
|
+
server: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
server?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
server?: string | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
handler: (client: MssqlClient, args: {
|
|
14
|
+
server?: string;
|
|
15
|
+
}) => Promise<{
|
|
8
16
|
blockingCount: number;
|
|
9
|
-
chains:
|
|
17
|
+
chains: Record<string, unknown>[];
|
|
10
18
|
}>;
|
|
11
19
|
};
|
|
12
20
|
get_wait_stats: {
|
|
13
21
|
description: string;
|
|
14
22
|
inputSchema: z.ZodObject<{
|
|
23
|
+
server: z.ZodOptional<z.ZodString>;
|
|
15
24
|
top: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
16
25
|
excludeIdle: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
26
|
}, "strip", z.ZodTypeAny, {
|
|
18
27
|
top: number;
|
|
19
28
|
excludeIdle: boolean;
|
|
29
|
+
server?: string | undefined;
|
|
20
30
|
}, {
|
|
31
|
+
server?: string | undefined;
|
|
21
32
|
top?: number | undefined;
|
|
22
33
|
excludeIdle?: boolean | undefined;
|
|
23
34
|
}>;
|
|
24
35
|
handler: (client: MssqlClient, args: {
|
|
36
|
+
server?: string;
|
|
25
37
|
top?: number;
|
|
26
38
|
excludeIdle?: boolean;
|
|
27
|
-
}) => Promise<
|
|
39
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
28
40
|
};
|
|
29
41
|
get_cpu_usage: {
|
|
30
42
|
description: string;
|
|
31
43
|
inputSchema: z.ZodObject<{
|
|
44
|
+
server: z.ZodOptional<z.ZodString>;
|
|
32
45
|
minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
33
46
|
}, "strip", z.ZodTypeAny, {
|
|
34
47
|
minutes: number;
|
|
48
|
+
server?: string | undefined;
|
|
35
49
|
}, {
|
|
50
|
+
server?: string | undefined;
|
|
36
51
|
minutes?: number | undefined;
|
|
37
52
|
}>;
|
|
38
53
|
handler: (client: MssqlClient, args: {
|
|
54
|
+
server?: string;
|
|
39
55
|
minutes?: number;
|
|
40
|
-
}) => Promise<
|
|
56
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
41
57
|
};
|
|
42
58
|
get_index_usage: {
|
|
43
59
|
description: string;
|
|
44
60
|
inputSchema: z.ZodObject<{
|
|
61
|
+
server: z.ZodOptional<z.ZodString>;
|
|
45
62
|
database: z.ZodString;
|
|
46
63
|
showUnused: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
47
64
|
}, "strip", z.ZodTypeAny, {
|
|
48
65
|
database: string;
|
|
49
66
|
showUnused: boolean;
|
|
67
|
+
server?: string | undefined;
|
|
50
68
|
}, {
|
|
51
69
|
database: string;
|
|
70
|
+
server?: string | undefined;
|
|
52
71
|
showUnused?: boolean | undefined;
|
|
53
72
|
}>;
|
|
54
73
|
handler: (client: MssqlClient, args: {
|
|
74
|
+
server?: string;
|
|
55
75
|
database: string;
|
|
56
76
|
showUnused?: boolean;
|
|
57
|
-
}) => Promise<
|
|
77
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
58
78
|
};
|
|
59
79
|
};
|
|
60
80
|
//# sourceMappingURL=performance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../src/tools/performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../src/tools/performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,gBAAgB;;;;;;;;;;0BAMD,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;0BAqDtC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;;;;0BA4C3E,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;0BAoCxD,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,OAAO,CAAA;SAAE;;CAkCzG,CAAC"}
|