@mcp-consultant-tools/azure-sql 1.0.0 → 1.0.2

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/build/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
2
  import { AzureSqlService } from "./AzureSqlService.js";
3
- export declare function registerAzureSqlTools(server: any, service?: AzureSqlService): void;
4
- export { AzureSqlService } from "./AzureSqlService.js";
3
+ export declare function registerAzureSqlTools(server: any, azuresqlService?: AzureSqlService): void;
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,QAE3E;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,eAAe,QAkhBnF"}
package/build/index.js CHANGED
@@ -1,17 +1,464 @@
1
1
  #!/usr/bin/env node
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { createMcpServer, createEnvLoader } from "@mcp-consultant-tools/core";
4
- export function registerAzureSqlTools(server, service) {
5
- console.error("Azure SQL tools registered (tool extraction pending)");
4
+ import { AzureSqlService } from "./AzureSqlService.js";
5
+ import { z } from 'zod';
6
+ import { formatSqlResultsAsMarkdown, formatTableSchemaAsMarkdown, formatDatabaseOverview } from './utils/sql-formatters.js';
7
+ export function registerAzureSqlTools(server, azuresqlService) {
8
+ let service = azuresqlService || null;
9
+ function getAzureSqlService() {
10
+ if (!service) {
11
+ const missingConfig = [];
12
+ let resources = [];
13
+ if (process.env.AZURE_SQL_SERVERS) {
14
+ try {
15
+ resources = JSON.parse(process.env.AZURE_SQL_SERVERS);
16
+ }
17
+ catch (error) {
18
+ throw new Error("Failed to parse AZURE_SQL_SERVERS JSON");
19
+ }
20
+ }
21
+ else if (process.env.AZURE_SQL_SERVER && process.env.AZURE_SQL_DATABASE) {
22
+ resources = [{
23
+ id: 'default',
24
+ name: 'Default SQL Server',
25
+ server: process.env.AZURE_SQL_SERVER,
26
+ port: parseInt(process.env.AZURE_SQL_PORT || "1433"),
27
+ active: true,
28
+ databases: [{
29
+ name: process.env.AZURE_SQL_DATABASE,
30
+ active: true,
31
+ }],
32
+ username: process.env.AZURE_SQL_USERNAME || '',
33
+ password: process.env.AZURE_SQL_PASSWORD || '',
34
+ }];
35
+ }
36
+ else {
37
+ missingConfig.push("AZURE_SQL_SERVERS or AZURE_SQL_SERVER/AZURE_SQL_DATABASE");
38
+ }
39
+ if (missingConfig.length > 0) {
40
+ throw new Error(`Missing Azure SQL configuration: ${missingConfig.join(", ")}`);
41
+ }
42
+ const config = {
43
+ resources,
44
+ queryTimeout: parseInt(process.env.AZURE_SQL_QUERY_TIMEOUT || "30000"),
45
+ maxResultRows: parseInt(process.env.AZURE_SQL_MAX_RESULT_ROWS || "1000"),
46
+ };
47
+ service = new AzureSqlService(config);
48
+ console.error("Azure SQL service initialized");
49
+ }
50
+ return service;
51
+ }
52
+ // ========================================
53
+ // PROMPTS
54
+ // ========================================
55
+ server.prompt("sql-database-overview", "Get a comprehensive overview of the Azure SQL Database schema", {
56
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
57
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
58
+ }, async ({ serverId, database }) => {
59
+ const sqlService = getAzureSqlService();
60
+ const [tables, views, procedures, triggers, functions] = await Promise.all([
61
+ sqlService.listTables(serverId, database),
62
+ sqlService.listViews(serverId, database),
63
+ sqlService.listStoredProcedures(serverId, database),
64
+ sqlService.listTriggers(serverId, database),
65
+ sqlService.listFunctions(serverId, database),
66
+ ]);
67
+ const formattedOverview = formatDatabaseOverview(tables, views, procedures, triggers, functions);
68
+ return {
69
+ messages: [
70
+ {
71
+ role: "user",
72
+ content: {
73
+ type: "text",
74
+ text: formattedOverview,
75
+ },
76
+ },
77
+ ],
78
+ };
79
+ });
80
+ server.prompt("sql-table-details", "Get detailed report for a specific table with columns, indexes, and relationships", {
81
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
82
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
83
+ schemaName: z.string().describe("Schema name (e.g., 'dbo')"),
84
+ tableName: z.string().describe("Table name"),
85
+ }, async ({ serverId, database, schemaName, tableName }) => {
86
+ const sqlService = getAzureSqlService();
87
+ const schema = await sqlService.getTableSchema(serverId, database, schemaName, tableName);
88
+ let template = formatTableSchemaAsMarkdown(schema);
89
+ template += `\n\n### Sample Query\n\n\`\`\`sql\nSELECT TOP 100 * FROM ${schemaName}.${tableName}\n\`\`\``;
90
+ return {
91
+ messages: [
92
+ {
93
+ role: "user",
94
+ content: {
95
+ type: "text",
96
+ text: template,
97
+ },
98
+ },
99
+ ],
100
+ };
101
+ });
102
+ server.prompt("sql-query-results", "Execute a query and return formatted results with column headers", {
103
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
104
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
105
+ query: z.string().describe("SELECT query to execute"),
106
+ }, async ({ serverId, database, query }) => {
107
+ const sqlService = getAzureSqlService();
108
+ const result = await sqlService.executeSelectQuery(serverId, database, query);
109
+ let template = `## Query Results\n\n`;
110
+ template += `**Query:**\n\`\`\`sql\n${query}\n\`\`\`\n\n`;
111
+ template += `**Results:**\n${formatSqlResultsAsMarkdown(result)}\n\n`;
112
+ template += `**Row Count:** ${result.rowCount}`;
113
+ if (result.truncated) {
114
+ template += ` (truncated)`;
115
+ }
116
+ return {
117
+ messages: [
118
+ {
119
+ role: "user",
120
+ content: {
121
+ type: "text",
122
+ text: template,
123
+ },
124
+ },
125
+ ],
126
+ };
127
+ });
128
+ // ========================================
129
+ // TOOLS
130
+ // ========================================
131
+ server.tool("sql-list-servers", "List all configured SQL servers with active/inactive status", {}, async () => {
132
+ try {
133
+ const sqlService = getAzureSqlService();
134
+ const servers = await sqlService.listServers();
135
+ return {
136
+ content: [
137
+ {
138
+ type: "text",
139
+ text: JSON.stringify(servers, null, 2),
140
+ },
141
+ ],
142
+ };
143
+ }
144
+ catch (error) {
145
+ return {
146
+ content: [
147
+ {
148
+ type: "text",
149
+ text: `Error listing servers: ${error.message}`,
150
+ },
151
+ ],
152
+ isError: true,
153
+ };
154
+ }
155
+ });
156
+ server.tool("sql-list-databases", "List databases on a SQL server (configured or discovered)", {
157
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
158
+ }, async ({ serverId }) => {
159
+ try {
160
+ const sqlService = getAzureSqlService();
161
+ const databases = await sqlService.listDatabases(serverId);
162
+ return {
163
+ content: [
164
+ {
165
+ type: "text",
166
+ text: JSON.stringify(databases, null, 2),
167
+ },
168
+ ],
169
+ };
170
+ }
171
+ catch (error) {
172
+ return {
173
+ content: [
174
+ {
175
+ type: "text",
176
+ text: `Error listing databases: ${error.message}`,
177
+ },
178
+ ],
179
+ isError: true,
180
+ };
181
+ }
182
+ });
183
+ server.tool("sql-test-connection", "Test SQL Server connectivity and return connection information", {
184
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
185
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
186
+ }, async ({ serverId, database }) => {
187
+ try {
188
+ const sqlService = getAzureSqlService();
189
+ const result = await sqlService.testConnection(serverId, database);
190
+ return {
191
+ content: [
192
+ {
193
+ type: "text",
194
+ text: JSON.stringify(result, null, 2),
195
+ },
196
+ ],
197
+ };
198
+ }
199
+ catch (error) {
200
+ return {
201
+ content: [
202
+ {
203
+ type: "text",
204
+ text: `Error testing connection: ${error.message}`,
205
+ },
206
+ ],
207
+ isError: true,
208
+ };
209
+ }
210
+ });
211
+ server.tool("sql-list-tables", "List all user tables in the database with row counts and sizes", {
212
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
213
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
214
+ }, async ({ serverId, database }) => {
215
+ try {
216
+ const sqlService = getAzureSqlService();
217
+ const tables = await sqlService.listTables(serverId, database);
218
+ return {
219
+ content: [
220
+ {
221
+ type: "text",
222
+ text: JSON.stringify(tables, null, 2),
223
+ },
224
+ ],
225
+ };
226
+ }
227
+ catch (error) {
228
+ return {
229
+ content: [
230
+ {
231
+ type: "text",
232
+ text: `Error listing tables: ${error.message}`,
233
+ },
234
+ ],
235
+ isError: true,
236
+ };
237
+ }
238
+ });
239
+ server.tool("sql-list-views", "List all views in the database", {
240
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
241
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
242
+ }, async ({ serverId, database }) => {
243
+ try {
244
+ const sqlService = getAzureSqlService();
245
+ const views = await sqlService.listViews(serverId, database);
246
+ return {
247
+ content: [
248
+ {
249
+ type: "text",
250
+ text: JSON.stringify(views, null, 2),
251
+ },
252
+ ],
253
+ };
254
+ }
255
+ catch (error) {
256
+ return {
257
+ content: [
258
+ {
259
+ type: "text",
260
+ text: `Error listing views: ${error.message}`,
261
+ },
262
+ ],
263
+ isError: true,
264
+ };
265
+ }
266
+ });
267
+ server.tool("sql-list-stored-procedures", "List all stored procedures in the Azure SQL Database", {
268
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
269
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
270
+ }, async ({ serverId, database }) => {
271
+ try {
272
+ const sqlService = getAzureSqlService();
273
+ const procedures = await sqlService.listStoredProcedures(serverId, database);
274
+ return {
275
+ content: [
276
+ {
277
+ type: "text",
278
+ text: JSON.stringify(procedures, null, 2),
279
+ },
280
+ ],
281
+ };
282
+ }
283
+ catch (error) {
284
+ return {
285
+ content: [
286
+ {
287
+ type: "text",
288
+ text: `Error listing stored procedures: ${error.message}`,
289
+ },
290
+ ],
291
+ isError: true,
292
+ };
293
+ }
294
+ });
295
+ server.tool("sql-list-triggers", "List all database triggers in the Azure SQL Database", {
296
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
297
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
298
+ }, async ({ serverId, database }) => {
299
+ try {
300
+ const sqlService = getAzureSqlService();
301
+ const triggers = await sqlService.listTriggers(serverId, database);
302
+ return {
303
+ content: [
304
+ {
305
+ type: "text",
306
+ text: JSON.stringify(triggers, null, 2),
307
+ },
308
+ ],
309
+ };
310
+ }
311
+ catch (error) {
312
+ return {
313
+ content: [
314
+ {
315
+ type: "text",
316
+ text: `Error listing triggers: ${error.message}`,
317
+ },
318
+ ],
319
+ isError: true,
320
+ };
321
+ }
322
+ });
323
+ server.tool("sql-list-functions", "List all user-defined functions in the Azure SQL Database", {
324
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
325
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
326
+ }, async ({ serverId, database }) => {
327
+ try {
328
+ const sqlService = getAzureSqlService();
329
+ const functions = await sqlService.listFunctions(serverId, database);
330
+ return {
331
+ content: [
332
+ {
333
+ type: "text",
334
+ text: JSON.stringify(functions, null, 2),
335
+ },
336
+ ],
337
+ };
338
+ }
339
+ catch (error) {
340
+ return {
341
+ content: [
342
+ {
343
+ type: "text",
344
+ text: `Error listing functions: ${error.message}`,
345
+ },
346
+ ],
347
+ isError: true,
348
+ };
349
+ }
350
+ });
351
+ server.tool("sql-get-table-schema", "Get detailed schema information for a table including columns, indexes, and foreign keys", {
352
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
353
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
354
+ schemaName: z.string().describe("Schema name (e.g., 'dbo')"),
355
+ tableName: z.string().describe("Table name (e.g., 'Users')"),
356
+ }, async ({ serverId, database, schemaName, tableName }) => {
357
+ try {
358
+ const sqlService = getAzureSqlService();
359
+ const schema = await sqlService.getTableSchema(serverId, database, schemaName, tableName);
360
+ return {
361
+ content: [
362
+ {
363
+ type: "text",
364
+ text: JSON.stringify(schema, null, 2),
365
+ },
366
+ ],
367
+ };
368
+ }
369
+ catch (error) {
370
+ return {
371
+ content: [
372
+ {
373
+ type: "text",
374
+ text: `Error getting table schema: ${error.message}`,
375
+ },
376
+ ],
377
+ isError: true,
378
+ };
379
+ }
380
+ });
381
+ server.tool("sql-get-object-definition", "Get the SQL definition for a view, stored procedure, function, or trigger", {
382
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
383
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
384
+ schemaName: z.string().describe("Schema name (e.g., 'dbo')"),
385
+ objectName: z.string().describe("Object name"),
386
+ objectType: z.enum(['VIEW', 'PROCEDURE', 'FUNCTION', 'TRIGGER']).describe("Object type"),
387
+ }, async ({ serverId, database, schemaName, objectName, objectType }) => {
388
+ try {
389
+ const sqlService = getAzureSqlService();
390
+ const definition = await sqlService.getObjectDefinition(serverId, database, schemaName, objectName, objectType);
391
+ return {
392
+ content: [
393
+ {
394
+ type: "text",
395
+ text: JSON.stringify(definition, null, 2),
396
+ },
397
+ ],
398
+ };
399
+ }
400
+ catch (error) {
401
+ return {
402
+ content: [
403
+ {
404
+ type: "text",
405
+ text: `Error getting object definition: ${error.message}`,
406
+ },
407
+ ],
408
+ isError: true,
409
+ };
410
+ }
411
+ });
412
+ server.tool("sql-execute-query", "Execute a SELECT query against the Azure SQL Database (read-only, with result limits)", {
413
+ serverId: z.string().describe("Server ID (use sql-list-servers to find IDs)"),
414
+ database: z.string().describe("Database name (use sql-list-databases to find databases)"),
415
+ query: z.string().describe("SELECT query to execute (e.g., 'SELECT TOP 10 * FROM dbo.Users WHERE IsActive = 1')"),
416
+ }, async ({ serverId, database, query }) => {
417
+ try {
418
+ const sqlService = getAzureSqlService();
419
+ const result = await sqlService.executeSelectQuery(serverId, database, query);
420
+ let text = JSON.stringify(result, null, 2);
421
+ if (result.truncated) {
422
+ text += `\n\n⚠️ WARNING: Results truncated to ${result.rowCount} rows. Add WHERE clause to filter results.`;
423
+ }
424
+ return {
425
+ content: [
426
+ {
427
+ type: "text",
428
+ text,
429
+ },
430
+ ],
431
+ };
432
+ }
433
+ catch (error) {
434
+ return {
435
+ content: [
436
+ {
437
+ type: "text",
438
+ text: `Error executing query: ${error.message}`,
439
+ },
440
+ ],
441
+ isError: true,
442
+ };
443
+ }
444
+ });
445
+ console.error("azure-sql tools registered: 11 tools, 3 prompts");
446
+ console.error("Azure SQL tools registered: 11 tools, 3 prompts");
6
447
  }
7
- export { AzureSqlService } from "./AzureSqlService.js";
8
448
  if (import.meta.url === `file://${process.argv[1]}`) {
9
449
  const loadEnv = createEnvLoader();
10
450
  loadEnv();
11
- const server = createMcpServer({ name: "@mcp-consultant-tools/azure-sql", version: "1.0.0", capabilities: { tools: {} } });
451
+ const server = createMcpServer({
452
+ name: "mcp-azure-sql",
453
+ version: "1.0.0",
454
+ capabilities: { tools: {}, prompts: {} }
455
+ });
12
456
  registerAzureSqlTools(server);
13
457
  const transport = new StdioServerTransport();
14
- server.connect(transport).catch((error) => { console.error("Failed to start Azure SQL server:", error); process.exit(1); });
15
- console.error("@mcp-consultant-tools/azure-sql server running");
458
+ server.connect(transport).catch((error) => {
459
+ console.error("Failed to start Azure SQL MCP server:", error);
460
+ process.exit(1);
461
+ });
462
+ console.error("Azure SQL MCP server running");
16
463
  }
17
464
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG9E,MAAM,UAAU,qBAAqB,CAAC,MAAW,EAAE,OAAyB;IAC1E,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACxE,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,OAAO,EAAE,CAAC;IACV,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3H,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,24 +1,55 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/azure-sql",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server for Azure SQL Database - read-only queries and schema exploration",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
7
7
  "types": "./build/index.d.ts",
8
- "bin": { "mcp-azuresql": "./build/index.js" },
9
- "exports": { ".": { "import": "./build/index.js", "types": "./build/index.d.ts" } },
10
- "files": ["build", "README.md"],
11
- "scripts": { "build": "tsc", "clean": "rm -rf build *.tsbuildinfo", "prepublishOnly": "npm run build" },
12
- "keywords": ["mcp", "model-context-protocol", "azure", "sql", "database", "sql-server"],
8
+ "exports": {
9
+ ".": {
10
+ "import": "./build/index.js",
11
+ "types": "./build/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "build",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "clean": "rm -rf build *.tsbuildinfo",
21
+ "prepublishOnly": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "mcp",
25
+ "model-context-protocol",
26
+ "azure",
27
+ "sql",
28
+ "database",
29
+ "sql-server"
30
+ ],
13
31
  "author": "Michal Sobieraj",
14
32
  "license": "MIT",
15
- "repository": { "type": "git", "url": "git+https://github.com/klemensms/mcp-consultant-tools.git", "directory": "packages/azure-sql" },
16
- "engines": { "node": ">=16.0.0" },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/klemensms/mcp-consultant-tools.git",
36
+ "directory": "packages/azure-sql"
37
+ },
38
+ "engines": {
39
+ "node": ">=16.0.0"
40
+ },
17
41
  "dependencies": {
18
42
  "@mcp-consultant-tools/core": "^1.0.0",
19
43
  "@modelcontextprotocol/sdk": "^1.0.4",
20
44
  "mssql": "^11.0.1",
21
45
  "zod": "^3.24.1"
22
46
  },
23
- "devDependencies": { "@types/mssql": "^9.1.8", "@types/node": "^22.10.5", "typescript": "^5.8.2" }
47
+ "devDependencies": {
48
+ "@types/mssql": "^9.1.8",
49
+ "@types/node": "^22.10.5",
50
+ "typescript": "^5.8.2"
51
+ },
52
+ "bin": {
53
+ "mcp-sql": "./build/index.js"
54
+ }
24
55
  }