@elad-nofy/mssql-mcp 1.0.2 → 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.
@@ -1,14 +1,16 @@
1
1
  import sql from 'mssql';
2
2
  import { Config } from './config.js';
3
3
  export declare class MssqlClient {
4
- private pool;
4
+ private pools;
5
5
  private config;
6
6
  constructor(config: Config);
7
+ private parseServer;
7
8
  private getSqlConfig;
8
- connect(): Promise<sql.ConnectionPool>;
9
- query<T = sql.IRecordSet<unknown>>(queryText: string, params?: Record<string, unknown>): Promise<T[]>;
10
- testConnection(): Promise<{
9
+ connect(server?: string): Promise<sql.ConnectionPool>;
10
+ query<T = Record<string, unknown>>(queryText: string, params?: Record<string, unknown>, server?: string): Promise<T[]>;
11
+ testConnection(server?: string): Promise<{
11
12
  success: boolean;
13
+ server: string;
12
14
  version?: string;
13
15
  error?: string;
14
16
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"mssqlClient.d.ts","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,YAAY;IAoCd,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAUtC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAcrG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IASjF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
1
+ {"version":3,"file":"mssqlClient.d.ts","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;IAgDd,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAgBrD,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,EAAE,CAAC;IAcT,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAUhH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -1,22 +1,43 @@
1
1
  import sql from 'mssql';
2
2
  export class MssqlClient {
3
- pool = null;
3
+ pools = new Map();
4
4
  config;
5
5
  constructor(config) {
6
6
  this.config = config;
7
7
  }
8
- getSqlConfig() {
8
+ parseServer(server) {
9
+ // Handle formats:
10
+ // - server\instance
11
+ // - server,port
12
+ // - server
13
+ if (server.includes(',')) {
14
+ const [host, portStr] = server.split(',');
15
+ return { host, port: parseInt(portStr, 10) };
16
+ }
17
+ return { host: server };
18
+ }
19
+ getSqlConfig(server) {
20
+ const targetServer = server || this.config.host;
21
+ const parsed = this.parseServer(targetServer);
9
22
  const baseConfig = {
10
- server: this.config.host,
11
- port: this.config.port,
23
+ server: parsed.host,
24
+ port: parsed.port || this.config.port,
12
25
  database: this.config.database,
13
26
  options: {
14
27
  encrypt: this.config.encrypt,
15
28
  trustServerCertificate: this.config.trustServerCertificate,
29
+ // Enable named instance support
30
+ instanceName: targetServer.includes('\\')
31
+ ? targetServer.split('\\')[1]
32
+ : undefined,
16
33
  },
17
34
  connectionTimeout: this.config.connectionTimeout,
18
35
  requestTimeout: this.config.requestTimeout,
19
36
  };
37
+ // If instance name is used, don't specify port (SQL Browser will resolve it)
38
+ if (baseConfig.options?.instanceName) {
39
+ delete baseConfig.port;
40
+ }
20
41
  // Use Windows Auth if no user/password provided
21
42
  if (this.config.user && this.config.password) {
22
43
  return {
@@ -32,7 +53,7 @@ export class MssqlClient {
32
53
  authentication: {
33
54
  type: 'ntlm',
34
55
  options: {
35
- domain: '', // Uses current domain
56
+ domain: '',
36
57
  userName: '',
37
58
  password: '',
38
59
  },
@@ -40,16 +61,21 @@ export class MssqlClient {
40
61
  };
41
62
  }
42
63
  }
43
- async connect() {
44
- if (this.pool) {
45
- return this.pool;
64
+ async connect(server) {
65
+ const key = server || this.config.host || 'default';
66
+ // Check for existing pool
67
+ const existingPool = this.pools.get(key);
68
+ if (existingPool?.connected) {
69
+ return existingPool;
46
70
  }
47
- const sqlConfig = this.getSqlConfig();
48
- this.pool = await sql.connect(sqlConfig);
49
- return this.pool;
71
+ // Create new pool
72
+ const sqlConfig = this.getSqlConfig(server);
73
+ const pool = await sql.connect(sqlConfig);
74
+ this.pools.set(key, pool);
75
+ return pool;
50
76
  }
51
- async query(queryText, params) {
52
- const pool = await this.connect();
77
+ async query(queryText, params, server) {
78
+ const pool = await this.connect(server);
53
79
  const request = pool.request();
54
80
  if (params) {
55
81
  for (const [key, value] of Object.entries(params)) {
@@ -59,19 +85,22 @@ export class MssqlClient {
59
85
  const result = await request.query(queryText);
60
86
  return result.recordset;
61
87
  }
62
- async testConnection() {
88
+ async testConnection(server) {
89
+ const targetServer = server || this.config.host;
63
90
  try {
64
- const result = await this.query('SELECT @@VERSION as version');
65
- return { success: true, version: result[0]?.version };
91
+ const result = await this.query('SELECT @@VERSION as version', undefined, server);
92
+ return { success: true, server: targetServer, version: result[0]?.version };
66
93
  }
67
94
  catch (error) {
68
- return { success: false, error: error instanceof Error ? error.message : String(error) };
95
+ return { success: false, server: targetServer, error: error instanceof Error ? error.message : String(error) };
69
96
  }
70
97
  }
71
98
  async close() {
72
- if (this.pool) {
73
- await this.pool.close();
74
- this.pool = null;
99
+ for (const [key, pool] of this.pools) {
100
+ if (pool?.connected) {
101
+ await pool.close();
102
+ }
103
+ this.pools.delete(key);
75
104
  }
76
105
  }
77
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mssqlClient.js","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AAGxB,MAAM,OAAO,WAAW;IACd,IAAI,GAA8B,IAAI,CAAC;IACvC,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,MAAM,UAAU,GAAe;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;aAC3D;YACD,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;SAC3C,CAAC;QAEF,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO;gBACL,GAAG,UAAU;gBACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,OAAO;gBACL,GAAG,UAAU;gBACb,cAAc,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,MAAM,EAAE,EAAE,EAAE,sBAAsB;wBAClC,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;qBACb;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAA8B,SAAiB,EAAE,MAAgC;QAC1F,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,SAAgB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAsB,6BAA6B,CAAC,CAAC;YACpF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mssqlClient.js","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AAGxB,MAAM,OAAO,WAAW;IACd,KAAK,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,kBAAkB;QAClB,oBAAoB;QACpB,gBAAgB;QAChB,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,MAAe;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAe;YAC7B,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;YACrC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;gBAC1D,gCAAgC;gBAChC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACvC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,SAAS;aACd;YACD,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;SAC3C,CAAC;QAEF,6EAA6E;QAC7E,IAAI,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO;gBACL,GAAG,UAAU;gBACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,OAAO;gBACL,GAAG,UAAU;gBACb,cAAc,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;qBACb;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe;QAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;QAEpD,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,YAAY,EAAE,SAAS,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,MAAgC,EAChC,MAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,SAAgB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAe;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAsB,6BAA6B,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
@@ -3,36 +3,56 @@ import { MssqlClient } from '../mssqlClient.js';
3
3
  export declare const availabilityTools: {
4
4
  get_ag_status: {
5
5
  description: string;
6
- inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
- handler: (client: MssqlClient) => Promise<{
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
  hadrEnabled: boolean;
9
17
  message: string;
10
18
  replicas?: undefined;
11
19
  databases?: undefined;
12
20
  } | {
13
21
  hadrEnabled: boolean;
14
- replicas: import("mssql").IRecordSet<unknown>[];
15
- databases: import("mssql").IRecordSet<unknown>[];
22
+ replicas: Record<string, unknown>[];
23
+ databases: Record<string, unknown>[];
16
24
  message?: undefined;
17
25
  }>;
18
26
  };
19
27
  get_replica_states: {
20
28
  description: string;
21
29
  inputSchema: z.ZodObject<{
30
+ server: z.ZodOptional<z.ZodString>;
22
31
  agName: z.ZodOptional<z.ZodString>;
23
32
  }, "strip", z.ZodTypeAny, {
33
+ server?: string | undefined;
24
34
  agName?: string | undefined;
25
35
  }, {
36
+ server?: string | undefined;
26
37
  agName?: string | undefined;
27
38
  }>;
28
39
  handler: (client: MssqlClient, args: {
40
+ server?: string;
29
41
  agName?: string;
30
- }) => Promise<import("mssql").IRecordSet<unknown>[]>;
42
+ }) => Promise<Record<string, unknown>[]>;
31
43
  };
32
44
  get_cluster_status: {
33
45
  description: string;
34
- inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
35
- handler: (client: MssqlClient) => Promise<{
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<{
36
56
  isClustered: boolean;
37
57
  message: string;
38
58
  cluster?: undefined;
@@ -40,9 +60,9 @@ export declare const availabilityTools: {
40
60
  networks?: undefined;
41
61
  } | {
42
62
  isClustered: boolean;
43
- cluster: import("mssql").IRecordSet<unknown>;
44
- members: import("mssql").IRecordSet<unknown>[];
45
- networks: import("mssql").IRecordSet<unknown>[];
63
+ cluster: Record<string, unknown>;
64
+ members: Record<string, unknown>[];
65
+ networks: Record<string, unknown>[];
46
66
  message?: undefined;
47
67
  }>;
48
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/tools/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,eAAO,MAAM,iBAAiB;;;;0BAIF,WAAW;;;;;;;;;;;;;;;;;;;;;0BA+EX,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;0BAmCtC,WAAW;;;;;;;;;;;;;;CAsDtC,CAAC"}
1
+ {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/tools/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,iBAAiB;;;;;;;;;;0BAMF,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;0BAkFtC,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAqCvD,WAAW,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;CAwDjE,CAAC"}
@@ -1,11 +1,14 @@
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 availabilityTools = {
3
4
  get_ag_status: {
4
5
  description: 'Get Always On Availability Group status and health',
5
- inputSchema: z.object({}),
6
- handler: async (client) => {
6
+ inputSchema: z.object({
7
+ server: serverParam,
8
+ }),
9
+ handler: async (client, args) => {
7
10
  // First check if HADR is enabled
8
- const hadrCheck = await client.query("SELECT CAST(SERVERPROPERTY('IsHadrEnabled') AS INT) as is_hadr_enabled");
11
+ const hadrCheck = await client.query("SELECT CAST(SERVERPROPERTY('IsHadrEnabled') AS INT) as is_hadr_enabled", undefined, args.server);
9
12
  if (!hadrCheck[0]?.is_hadr_enabled) {
10
13
  return {
11
14
  hadrEnabled: false,
@@ -36,7 +39,7 @@ export const availabilityTools = {
36
39
  INNER JOIN sys.dm_hadr_availability_replica_states ars ON ar.replica_id = ars.replica_id
37
40
  ORDER BY ag.name, ar.replica_server_name
38
41
  `;
39
- const replicas = await client.query(query);
42
+ const replicas = await client.query(query, undefined, args.server);
40
43
  // Get database-level sync status
41
44
  const dbQuery = `
42
45
  SELECT
@@ -60,7 +63,7 @@ export const availabilityTools = {
60
63
  INNER JOIN sys.dm_hadr_database_replica_states drs ON adc.group_database_id = drs.group_database_id
61
64
  ORDER BY ag.name, adc.database_name, drs.is_primary_replica DESC
62
65
  `;
63
- const databases = await client.query(dbQuery);
66
+ const databases = await client.query(dbQuery, undefined, args.server);
64
67
  return {
65
68
  hadrEnabled: true,
66
69
  replicas,
@@ -71,6 +74,7 @@ export const availabilityTools = {
71
74
  get_replica_states: {
72
75
  description: 'Get detailed state information for all availability group replicas',
73
76
  inputSchema: z.object({
77
+ server: serverParam,
74
78
  agName: z.string().optional().describe('Filter by availability group name'),
75
79
  }),
76
80
  handler: async (client, args) => {
@@ -99,15 +103,17 @@ export const availabilityTools = {
99
103
  ${agFilter}
100
104
  ORDER BY ag.name, ars.role_desc, ar.replica_server_name
101
105
  `;
102
- return await client.query(query);
106
+ return await client.query(query, undefined, args.server);
103
107
  },
104
108
  },
105
109
  get_cluster_status: {
106
110
  description: 'Get Windows Server Failover Cluster status for the SQL Server instance',
107
- inputSchema: z.object({}),
108
- handler: async (client) => {
111
+ inputSchema: z.object({
112
+ server: serverParam,
113
+ }),
114
+ handler: async (client, args) => {
109
115
  // Check if this is a clustered instance
110
- const clusterCheck = await client.query("SELECT CAST(SERVERPROPERTY('IsClustered') AS INT) as is_clustered");
116
+ const clusterCheck = await client.query("SELECT CAST(SERVERPROPERTY('IsClustered') AS INT) as is_clustered", undefined, args.server);
111
117
  if (!clusterCheck[0]?.is_clustered) {
112
118
  return {
113
119
  isClustered: false,
@@ -121,7 +127,7 @@ export const availabilityTools = {
121
127
  quorum_state_desc as quorum_state
122
128
  FROM sys.dm_hadr_cluster
123
129
  `;
124
- const cluster = await client.query(query);
130
+ const cluster = await client.query(query, undefined, args.server);
125
131
  const membersQuery = `
126
132
  SELECT
127
133
  member_name,
@@ -130,7 +136,7 @@ export const availabilityTools = {
130
136
  number_of_quorum_votes
131
137
  FROM sys.dm_hadr_cluster_members
132
138
  `;
133
- const members = await client.query(membersQuery);
139
+ const members = await client.query(membersQuery, undefined, args.server);
134
140
  const networksQuery = `
135
141
  SELECT
136
142
  network_subnet_ip,
@@ -140,7 +146,7 @@ export const availabilityTools = {
140
146
  is_ipv4
141
147
  FROM sys.dm_hadr_cluster_networks
142
148
  `;
143
- const networks = await client.query(networksQuery);
149
+ const networks = await client.query(networksQuery, undefined, args.server);
144
150
  return {
145
151
  isClustered: true,
146
152
  cluster: cluster[0],
@@ -1 +1 @@
1
- {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/tools/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa,EAAE;QACb,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YACrC,iCAAiC;YACjC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC,wEAAwE,CACzE,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;gBACnC,OAAO;oBACL,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,6DAA6D;iBACvE,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;OAuBb,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE3C,iCAAiC;YACjC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;OAqBf,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE9C,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,QAAQ;gBACR,SAAS;aACV,CAAC;QACJ,CAAC;KACF;IAED,kBAAkB,EAAE;QAClB,WAAW,EAAE,oEAAoE;QACjF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAC5E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,IAAyB,EAAE,EAAE;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;UAqBV,QAAQ;;OAEX,CAAC;YAEF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;KACF;IAED,kBAAkB,EAAE;QAClB,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YACrC,wCAAwC;YACxC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,mEAAmE,CACpE,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;gBACnC,OAAO;oBACL,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,2CAA2C;iBACrD,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG;;;;;;OAMb,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE1C,MAAM,YAAY,GAAG;;;;;;;OAOpB,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,aAAa,GAAG;;;;;;;;OAQrB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAEnD,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnB,OAAO;gBACP,QAAQ;aACT,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/tools/availability.ts"],"names":[],"mappings":"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"}
@@ -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<{}, "strip", z.ZodTypeAny, {}, {}>;
7
- handler: (client: MssqlClient) => Promise<{
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<import("mssql").IRecordSet<unknown>[]>;
37
+ }) => Promise<Record<string, unknown>[]>;
25
38
  };
26
39
  get_server_info: {
27
40
  description: string;
28
- inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
29
- handler: (client: MssqlClient) => Promise<import("mssql").IRecordSet<unknown>>;
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;AAEhD,eAAO,MAAM,eAAe;;;;0BAIA,WAAW;;;;;;;;;;;;;;;0BAWX,WAAW,QAAQ;YAAE,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;0BA8B9C,WAAW;;CAoBtC,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"}
@@ -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
- handler: async (client) => {
7
- const result = await client.testConnection();
8
- return result;
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
- handler: async (client) => {
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;QACzB,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,cAAc,EAAE;QACd,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,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,IAAiC,EAAE,EAAE;YACxE,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,CAAC,CAAC;QACnC,CAAC;KACF;IAED,eAAe,EAAE;QACf,WAAW,EAAE,mFAAmF;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG;;;;;;;;;;;;;OAab,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;KACF;CACF,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"}
@@ -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<{}, "strip", z.ZodTypeAny, {}, {}>;
7
- handler: (client: MssqlClient) => Promise<{
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<import("mssql").IRecordSet<unknown>[]>;
42
+ }) => Promise<Record<string, unknown>[]>;
31
43
  };
32
44
  get_memory_usage: {
33
45
  description: string;
34
- inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
35
- handler: (client: MssqlClient) => Promise<{
36
- serverMemory: import("mssql").IRecordSet<unknown>;
37
- topMemoryClerks: import("mssql").IRecordSet<unknown>[];
38
- bufferPoolByDatabase: import("mssql").IRecordSet<unknown>[];
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<{}, "strip", z.ZodTypeAny, {}, {}>;
44
- handler: (client: MssqlClient) => Promise<{
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;AAEhD,eAAO,MAAM,WAAW;;;;0BAII,WAAW;;;;;;;;+BAwBkB,MAAM;;;;;;;;;;;;;0BAqBnC,WAAW,QAAQ;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;0BAmCxC,WAAW;;;;;;;;;0BAiDX,WAAW;;;;;;;;iCAMd,MAAM;iCACN,MAAM;sCACD,MAAM;wBACpB,MAAM;;;;;;;;;;;;;0BA+BM,WAAW,QAAQ;YAAE,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;+BAqB/C,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"}
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"}