@elad-nofy/mssql-mcp 1.0.3 → 1.0.6
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/config.d.ts +2 -2
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/mssqlClient.d.ts +2 -4
- package/dist/mssqlClient.d.ts.map +1 -1
- package/dist/mssqlClient.js +65 -57
- package/dist/mssqlClient.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
declare const ConfigSchema: z.ZodObject<{
|
|
3
|
-
host: z.ZodString
|
|
3
|
+
host: z.ZodDefault<z.ZodString>;
|
|
4
4
|
port: z.ZodDefault<z.ZodNumber>;
|
|
5
5
|
database: z.ZodDefault<z.ZodString>;
|
|
6
6
|
user: z.ZodOptional<z.ZodString>;
|
|
@@ -20,7 +20,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
20
20
|
user?: string | undefined;
|
|
21
21
|
password?: string | undefined;
|
|
22
22
|
}, {
|
|
23
|
-
host
|
|
23
|
+
host?: string | undefined;
|
|
24
24
|
port?: number | undefined;
|
|
25
25
|
database?: string | undefined;
|
|
26
26
|
user?: string | undefined;
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
const ConfigSchema = z.object({
|
|
3
|
-
host: z.string().
|
|
3
|
+
host: z.string().default(''), // Optional - can specify server per-tool call
|
|
4
4
|
port: z.coerce.number().default(1433),
|
|
5
5
|
database: z.string().default('master'),
|
|
6
6
|
user: z.string().optional(),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAG,8CAA8C;IAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjD,CAAC,CAAC;AAIH,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACpC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QAClC,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B;QAClE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QACvD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;KAClD,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
package/dist/mssqlClient.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import sql from 'mssql';
|
|
2
1
|
import { Config } from './config.js';
|
|
3
2
|
export declare class MssqlClient {
|
|
4
3
|
private pools;
|
|
5
4
|
private config;
|
|
6
5
|
constructor(config: Config);
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
connect(server?: string): Promise<sql.ConnectionPool>;
|
|
6
|
+
private connect;
|
|
7
|
+
private resolveServer;
|
|
10
8
|
query<T = Record<string, unknown>>(queryText: string, params?: Record<string, unknown>, server?: string): Promise<T[]>;
|
|
11
9
|
testConnection(server?: string): Promise<{
|
|
12
10
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mssqlClient.d.ts","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mssqlClient.d.ts","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;YAIZ,OAAO;IA8CrB,OAAO,CAAC,aAAa;IAsBf,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;IAeT,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;IA6BhH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
|
package/dist/mssqlClient.js
CHANGED
|
@@ -5,77 +5,67 @@ export class MssqlClient {
|
|
|
5
5
|
constructor(config) {
|
|
6
6
|
this.config = config;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
async connect(server) {
|
|
9
|
+
const key = server || 'default';
|
|
10
|
+
// Check for existing pool
|
|
11
|
+
const existingPool = this.pools.get(key);
|
|
12
|
+
if (existingPool?.connected) {
|
|
13
|
+
return existingPool;
|
|
14
|
+
}
|
|
15
|
+
// Parse server for port/instance handling
|
|
16
|
+
let serverHost = server;
|
|
17
|
+
let port = this.config.port;
|
|
18
|
+
let instanceName;
|
|
19
|
+
if (server.includes('\\')) {
|
|
20
|
+
// Named instance: server\instance
|
|
21
|
+
[serverHost, instanceName] = server.split('\\');
|
|
22
|
+
}
|
|
23
|
+
else if (server.includes(',')) {
|
|
24
|
+
// Port notation: server,port
|
|
14
25
|
const [host, portStr] = server.split(',');
|
|
15
|
-
|
|
26
|
+
serverHost = host;
|
|
27
|
+
port = parseInt(portStr, 10);
|
|
16
28
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
getSqlConfig(server) {
|
|
20
|
-
const targetServer = server || this.config.host;
|
|
21
|
-
const parsed = this.parseServer(targetServer);
|
|
22
|
-
const baseConfig = {
|
|
23
|
-
server: parsed.host,
|
|
24
|
-
port: parsed.port || this.config.port,
|
|
29
|
+
const config = {
|
|
30
|
+
server: serverHost,
|
|
25
31
|
database: this.config.database,
|
|
32
|
+
user: this.config.user,
|
|
33
|
+
password: this.config.password,
|
|
26
34
|
options: {
|
|
27
|
-
encrypt: this.config.encrypt,
|
|
28
35
|
trustServerCertificate: this.config.trustServerCertificate,
|
|
29
|
-
|
|
30
|
-
instanceName: targetServer.includes('\\')
|
|
31
|
-
? targetServer.split('\\')[1]
|
|
32
|
-
: undefined,
|
|
36
|
+
instanceName,
|
|
33
37
|
},
|
|
34
38
|
connectionTimeout: this.config.connectionTimeout,
|
|
35
39
|
requestTimeout: this.config.requestTimeout,
|
|
36
40
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
delete baseConfig.port;
|
|
41
|
+
if (!instanceName) {
|
|
42
|
+
config.port = port;
|
|
40
43
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const pool = await sql.connect(config);
|
|
45
|
+
this.pools.set(key, pool);
|
|
46
|
+
return pool;
|
|
47
|
+
}
|
|
48
|
+
resolveServer(server) {
|
|
49
|
+
if (!server) {
|
|
50
|
+
// No server param - use default host as-is
|
|
51
|
+
if (!this.config.host) {
|
|
52
|
+
throw new Error('No server specified. Provide the "server" parameter.');
|
|
53
|
+
}
|
|
54
|
+
return this.config.host;
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return
|
|
52
|
-
...baseConfig,
|
|
53
|
-
authentication: {
|
|
54
|
-
type: 'ntlm',
|
|
55
|
-
options: {
|
|
56
|
-
domain: '',
|
|
57
|
-
userName: '',
|
|
58
|
-
password: '',
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
};
|
|
56
|
+
// If server contains backslash, it's a full path - use as-is
|
|
57
|
+
if (server.includes('\\')) {
|
|
58
|
+
return server;
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// Check for existing pool
|
|
67
|
-
const existingPool = this.pools.get(key);
|
|
68
|
-
if (existingPool?.connected) {
|
|
69
|
-
return existingPool;
|
|
60
|
+
// Otherwise, it's an instance name - combine with default host
|
|
61
|
+
if (this.config.host) {
|
|
62
|
+
return `${this.config.host}\\${server}`;
|
|
70
63
|
}
|
|
71
|
-
|
|
72
|
-
const sqlConfig = this.getSqlConfig(server);
|
|
73
|
-
const pool = await sql.connect(sqlConfig);
|
|
74
|
-
this.pools.set(key, pool);
|
|
75
|
-
return pool;
|
|
64
|
+
return server;
|
|
76
65
|
}
|
|
77
66
|
async query(queryText, params, server) {
|
|
78
|
-
const
|
|
67
|
+
const targetServer = this.resolveServer(server);
|
|
68
|
+
const pool = await this.connect(targetServer);
|
|
79
69
|
const request = pool.request();
|
|
80
70
|
if (params) {
|
|
81
71
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -86,7 +76,25 @@ export class MssqlClient {
|
|
|
86
76
|
return result.recordset;
|
|
87
77
|
}
|
|
88
78
|
async testConnection(server) {
|
|
89
|
-
|
|
79
|
+
let targetServer;
|
|
80
|
+
try {
|
|
81
|
+
targetServer = this.resolveServer(server);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
server: server || '(none)',
|
|
87
|
+
error: 'No server specified. Provide the "server" parameter (e.g., "V85X_QA_DB").'
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Check if credentials are configured
|
|
91
|
+
if (!this.config.user || !this.config.password) {
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
server: targetServer,
|
|
95
|
+
error: `SQL Authentication required. Set MSSQL_USER and MSSQL_PASSWORD environment variables.`
|
|
96
|
+
};
|
|
97
|
+
}
|
|
90
98
|
try {
|
|
91
99
|
const result = await this.query('SELECT @@VERSION as version', undefined, server);
|
|
92
100
|
return { success: true, server: targetServer, version: result[0]?.version };
|
package/dist/mssqlClient.js.map
CHANGED
|
@@ -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,KAAK,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,
|
|
1
|
+
{"version":3,"file":"mssqlClient.js","sourceRoot":"","sources":["../src/mssqlClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED