@mcp-consultant-tools/azure-sql 28.0.0-beta.7 → 28.0.0

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.
Files changed (79) hide show
  1. package/build/cli/commands/connection-commands.d.ts +7 -0
  2. package/build/cli/commands/connection-commands.d.ts.map +1 -0
  3. package/build/cli/commands/connection-commands.js +64 -0
  4. package/build/cli/commands/connection-commands.js.map +1 -0
  5. package/build/cli/commands/crud-commands.d.ts +7 -0
  6. package/build/cli/commands/crud-commands.d.ts.map +1 -0
  7. package/build/cli/commands/crud-commands.js +63 -0
  8. package/build/cli/commands/crud-commands.js.map +1 -0
  9. package/build/cli/commands/index.d.ts +13 -0
  10. package/build/cli/commands/index.d.ts.map +1 -0
  11. package/build/cli/commands/index.js +24 -0
  12. package/build/cli/commands/index.js.map +1 -0
  13. package/build/cli/commands/query-commands.d.ts +7 -0
  14. package/build/cli/commands/query-commands.d.ts.map +1 -0
  15. package/build/cli/commands/query-commands.js +149 -0
  16. package/build/cli/commands/query-commands.js.map +1 -0
  17. package/build/cli/commands/sproc-commands.d.ts +7 -0
  18. package/build/cli/commands/sproc-commands.d.ts.map +1 -0
  19. package/build/cli/commands/sproc-commands.js +87 -0
  20. package/build/cli/commands/sproc-commands.js.map +1 -0
  21. package/build/cli/commands/unrestricted-commands.d.ts +7 -0
  22. package/build/cli/commands/unrestricted-commands.d.ts.map +1 -0
  23. package/build/cli/commands/unrestricted-commands.js +31 -0
  24. package/build/cli/commands/unrestricted-commands.js.map +1 -0
  25. package/build/cli/commands/view-commands.d.ts +7 -0
  26. package/build/cli/commands/view-commands.d.ts.map +1 -0
  27. package/build/cli/commands/view-commands.js +66 -0
  28. package/build/cli/commands/view-commands.js.map +1 -0
  29. package/build/cli/output.d.ts +11 -0
  30. package/build/cli/output.d.ts.map +1 -0
  31. package/build/cli/output.js +10 -0
  32. package/build/cli/output.js.map +1 -0
  33. package/build/cli.d.ts +9 -0
  34. package/build/cli.d.ts.map +1 -0
  35. package/build/cli.js +27 -0
  36. package/build/cli.js.map +1 -0
  37. package/build/context-factory.d.ts +10 -0
  38. package/build/context-factory.d.ts.map +1 -0
  39. package/build/context-factory.js +104 -0
  40. package/build/context-factory.js.map +1 -0
  41. package/build/index.d.ts +1 -0
  42. package/build/index.d.ts.map +1 -1
  43. package/build/index.js +44 -0
  44. package/build/index.js.map +1 -1
  45. package/build/services/index.d.ts +2 -0
  46. package/build/services/index.d.ts.map +1 -1
  47. package/build/services/index.js +1 -0
  48. package/build/services/index.js.map +1 -1
  49. package/build/services/write-service.d.ts +109 -0
  50. package/build/services/write-service.d.ts.map +1 -0
  51. package/build/services/write-service.js +735 -0
  52. package/build/services/write-service.js.map +1 -0
  53. package/build/tool-examples.d.ts +32 -0
  54. package/build/tool-examples.d.ts.map +1 -1
  55. package/build/tool-examples.js +33 -0
  56. package/build/tool-examples.js.map +1 -1
  57. package/build/tools/crud-tools.d.ts +3 -0
  58. package/build/tools/crud-tools.d.ts.map +1 -0
  59. package/build/tools/crud-tools.js +115 -0
  60. package/build/tools/crud-tools.js.map +1 -0
  61. package/build/tools/index.d.ts +4 -0
  62. package/build/tools/index.d.ts.map +1 -1
  63. package/build/tools/index.js +12 -0
  64. package/build/tools/index.js.map +1 -1
  65. package/build/tools/sproc-tools.d.ts +3 -0
  66. package/build/tools/sproc-tools.d.ts.map +1 -0
  67. package/build/tools/sproc-tools.js +172 -0
  68. package/build/tools/sproc-tools.js.map +1 -0
  69. package/build/tools/unrestricted-tools.d.ts +7 -0
  70. package/build/tools/unrestricted-tools.d.ts.map +1 -0
  71. package/build/tools/unrestricted-tools.js +63 -0
  72. package/build/tools/unrestricted-tools.js.map +1 -0
  73. package/build/tools/view-tools.d.ts +3 -0
  74. package/build/tools/view-tools.d.ts.map +1 -0
  75. package/build/tools/view-tools.js +121 -0
  76. package/build/tools/view-tools.js.map +1 -0
  77. package/build/types.d.ts +10 -0
  78. package/build/types.d.ts.map +1 -1
  79. package/package.json +6 -4
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Connection CLI Commands - 4 commands mapping to connection MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerConnectionCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=connection-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connection-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA6DtF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Connection CLI Commands - 4 commands mapping to connection MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerConnectionCommands(program, ctx) {
7
+ const conn = program.command('connection').description('Connection and server operations');
8
+ conn
9
+ .command('list-servers')
10
+ .description('List all configured SQL servers')
11
+ .action(async () => {
12
+ try {
13
+ const servers = await ctx.connection.listServers();
14
+ outputResult({ fileName: 'sql-servers', data: servers, summary: `Found ${servers.length} configured SQL server(s)` }, getGlobalFlags(program));
15
+ }
16
+ catch (error) {
17
+ handleCliError(error, 'list servers');
18
+ }
19
+ });
20
+ conn
21
+ .command('list-databases')
22
+ .description('List databases on a SQL server')
23
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
24
+ .action(async (opts) => {
25
+ try {
26
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
27
+ const databases = await ctx.connection.listDatabases(resolvedServerId);
28
+ outputResult({ fileName: `sql-databases-${resolvedServerId}`, data: databases, summary: `Found ${databases.length} database(s) on server '${resolvedServerId}'` }, getGlobalFlags(program));
29
+ }
30
+ catch (error) {
31
+ handleCliError(error, 'list databases');
32
+ }
33
+ });
34
+ conn
35
+ .command('get-defaults')
36
+ .description('Get the default server and database configuration')
37
+ .action(async () => {
38
+ try {
39
+ const defaults = ctx.connection.getDefaultConfiguration();
40
+ outputResult({ fileName: 'sql-defaults', data: defaults, summary: `Default: server='${defaults.defaultServerId}', database='${defaults.defaultDatabase}'` }, getGlobalFlags(program));
41
+ }
42
+ catch (error) {
43
+ handleCliError(error, 'get defaults');
44
+ }
45
+ });
46
+ conn
47
+ .command('test')
48
+ .description('Test SQL Server connectivity and return connection information')
49
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
50
+ .option('-d, --database <name>', 'Database name (omit for default)')
51
+ .action(async (opts) => {
52
+ try {
53
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
54
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
55
+ const result = await ctx.connection.testConnection(resolvedServerId, resolvedDatabase);
56
+ const status = result.connected ? 'Connected' : 'Failed';
57
+ outputResult({ fileName: `sql-test-${resolvedServerId}`, data: result, summary: `Connection test: ${status} to ${result.server}/${result.database}` }, getGlobalFlags(program));
58
+ }
59
+ catch (error) {
60
+ handleCliError(error, 'test connection');
61
+ }
62
+ });
63
+ }
64
+ //# sourceMappingURL=connection-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/connection-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CRUD CLI Commands - 3 commands mapping to INSERT/UPDATE/DELETE MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerCrudCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=crud-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/crud-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA2DhF"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * CRUD CLI Commands - 3 commands mapping to INSERT/UPDATE/DELETE MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerCrudCommands(program, ctx) {
7
+ const crud = program.command('crud').description('Data modification operations (INSERT, UPDATE, DELETE)');
8
+ crud
9
+ .command('insert')
10
+ .description('Execute an INSERT query')
11
+ .argument('<query>', 'INSERT query to execute (e.g., "INSERT INTO Users (Name, Email) VALUES (\'John\', \'john@example.com\')")')
12
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
13
+ .option('-d, --database <name>', 'Database name (omit for default)')
14
+ .action(async (query, opts) => {
15
+ try {
16
+ ctx.checkInsertEnabled();
17
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
18
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
19
+ const result = await ctx.write.executeInsert(resolvedServerId, resolvedDatabase, query);
20
+ outputResult({ fileName: 'sql-crud-insert', data: result, summary: result.message }, getGlobalFlags(program));
21
+ }
22
+ catch (error) {
23
+ handleCliError(error, 'insert');
24
+ }
25
+ });
26
+ crud
27
+ .command('update')
28
+ .description('Execute an UPDATE query')
29
+ .argument('<query>', 'UPDATE query to execute (e.g., "UPDATE Users SET Status = 1 WHERE Email = \'john@example.com\'")')
30
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
31
+ .option('-d, --database <name>', 'Database name (omit for default)')
32
+ .action(async (query, opts) => {
33
+ try {
34
+ ctx.checkUpdateEnabled();
35
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
36
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
37
+ const result = await ctx.write.executeUpdate(resolvedServerId, resolvedDatabase, query);
38
+ outputResult({ fileName: 'sql-crud-update', data: result, summary: result.message }, getGlobalFlags(program));
39
+ }
40
+ catch (error) {
41
+ handleCliError(error, 'update');
42
+ }
43
+ });
44
+ crud
45
+ .command('delete')
46
+ .description('Execute a DELETE query (requires WHERE clause)')
47
+ .argument('<query>', 'DELETE query to execute (e.g., "DELETE FROM Users WHERE Status = 0")')
48
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
49
+ .option('-d, --database <name>', 'Database name (omit for default)')
50
+ .action(async (query, opts) => {
51
+ try {
52
+ ctx.checkDeleteEnabled();
53
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
54
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
55
+ const result = await ctx.write.executeDelete(resolvedServerId, resolvedDatabase, query);
56
+ outputResult({ fileName: 'sql-crud-delete', data: result, summary: result.message }, getGlobalFlags(program));
57
+ }
58
+ catch (error) {
59
+ handleCliError(error, 'delete');
60
+ }
61
+ });
62
+ }
63
+ //# sourceMappingURL=crud-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/crud-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLI Commands barrel export + combined registration
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerAllCommands(program: Command, ctx: ServiceContext): void;
7
+ export { registerQueryCommands } from './query-commands.js';
8
+ export { registerConnectionCommands } from './connection-commands.js';
9
+ export { registerViewCommands } from './view-commands.js';
10
+ export { registerSprocCommands } from './sproc-commands.js';
11
+ export { registerCrudCommands } from './crud-commands.js';
12
+ export { registerUnrestrictedCommands } from './unrestricted-commands.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAO/E;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * CLI Commands barrel export + combined registration
3
+ */
4
+ import { registerQueryCommands } from './query-commands.js';
5
+ import { registerConnectionCommands } from './connection-commands.js';
6
+ import { registerViewCommands } from './view-commands.js';
7
+ import { registerSprocCommands } from './sproc-commands.js';
8
+ import { registerCrudCommands } from './crud-commands.js';
9
+ import { registerUnrestrictedCommands } from './unrestricted-commands.js';
10
+ export function registerAllCommands(program, ctx) {
11
+ registerQueryCommands(program, ctx);
12
+ registerConnectionCommands(program, ctx);
13
+ registerViewCommands(program, ctx);
14
+ registerSprocCommands(program, ctx);
15
+ registerCrudCommands(program, ctx);
16
+ registerUnrestrictedCommands(program, ctx);
17
+ }
18
+ export { registerQueryCommands } from './query-commands.js';
19
+ export { registerConnectionCommands } from './connection-commands.js';
20
+ export { registerViewCommands } from './view-commands.js';
21
+ export { registerSprocCommands } from './sproc-commands.js';
22
+ export { registerCrudCommands } from './crud-commands.js';
23
+ export { registerUnrestrictedCommands } from './unrestricted-commands.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,GAAmB;IACvE,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Query CLI Commands - 8 commands mapping to query MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerQueryCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=query-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsJjF"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Query CLI Commands - 8 commands mapping to query MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerQueryCommands(program, ctx) {
7
+ const query = program.command('query').description('Query and schema operations');
8
+ query
9
+ .command('list-tables')
10
+ .description('List all user tables in the database with row counts and sizes')
11
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
12
+ .option('-d, --database <name>', 'Database name (omit for default)')
13
+ .action(async (opts) => {
14
+ try {
15
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
16
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
17
+ const tables = await ctx.query.listTables(resolvedServerId, resolvedDatabase);
18
+ outputResult({ fileName: `sql-tables-${resolvedServerId}-${resolvedDatabase}`, data: tables, summary: `Found ${tables.length} table(s) in ${resolvedServerId}/${resolvedDatabase}` }, getGlobalFlags(program));
19
+ }
20
+ catch (error) {
21
+ handleCliError(error, 'list tables');
22
+ }
23
+ });
24
+ query
25
+ .command('list-views')
26
+ .description('List all views in the database')
27
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
28
+ .option('-d, --database <name>', 'Database name (omit for default)')
29
+ .action(async (opts) => {
30
+ try {
31
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
32
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
33
+ const views = await ctx.query.listViews(resolvedServerId, resolvedDatabase);
34
+ outputResult({ fileName: `sql-views-${resolvedServerId}-${resolvedDatabase}`, data: views, summary: `Found ${views.length} view(s) in ${resolvedServerId}/${resolvedDatabase}` }, getGlobalFlags(program));
35
+ }
36
+ catch (error) {
37
+ handleCliError(error, 'list views');
38
+ }
39
+ });
40
+ query
41
+ .command('list-sprocs')
42
+ .description('List all stored procedures in the database')
43
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
44
+ .option('-d, --database <name>', 'Database name (omit for default)')
45
+ .action(async (opts) => {
46
+ try {
47
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
48
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
49
+ const procedures = await ctx.query.listStoredProcedures(resolvedServerId, resolvedDatabase);
50
+ outputResult({ fileName: `sql-sprocs-${resolvedServerId}-${resolvedDatabase}`, data: procedures, summary: `Found ${procedures.length} stored procedure(s) in ${resolvedServerId}/${resolvedDatabase}` }, getGlobalFlags(program));
51
+ }
52
+ catch (error) {
53
+ handleCliError(error, 'list stored procedures');
54
+ }
55
+ });
56
+ query
57
+ .command('list-triggers')
58
+ .description('List all database triggers in the database')
59
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
60
+ .option('-d, --database <name>', 'Database name (omit for default)')
61
+ .action(async (opts) => {
62
+ try {
63
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
64
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
65
+ const triggers = await ctx.query.listTriggers(resolvedServerId, resolvedDatabase);
66
+ outputResult({ fileName: `sql-triggers-${resolvedServerId}-${resolvedDatabase}`, data: triggers, summary: `Found ${triggers.length} trigger(s) in ${resolvedServerId}/${resolvedDatabase}` }, getGlobalFlags(program));
67
+ }
68
+ catch (error) {
69
+ handleCliError(error, 'list triggers');
70
+ }
71
+ });
72
+ query
73
+ .command('list-functions')
74
+ .description('List all user-defined functions in the database')
75
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
76
+ .option('-d, --database <name>', 'Database name (omit for default)')
77
+ .action(async (opts) => {
78
+ try {
79
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
80
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
81
+ const functions = await ctx.query.listFunctions(resolvedServerId, resolvedDatabase);
82
+ outputResult({ fileName: `sql-functions-${resolvedServerId}-${resolvedDatabase}`, data: functions, summary: `Found ${functions.length} function(s) in ${resolvedServerId}/${resolvedDatabase}` }, getGlobalFlags(program));
83
+ }
84
+ catch (error) {
85
+ handleCliError(error, 'list functions');
86
+ }
87
+ });
88
+ query
89
+ .command('table-schema')
90
+ .description('Get detailed schema information for a table including columns, indexes, and foreign keys')
91
+ .argument('<schemaName>', "Schema name (e.g., 'dbo')")
92
+ .argument('<tableName>', "Table name (e.g., 'Users')")
93
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
94
+ .option('-d, --database <name>', 'Database name (omit for default)')
95
+ .action(async (schemaName, tableName, opts) => {
96
+ try {
97
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
98
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
99
+ const schema = await ctx.query.getTableSchema(resolvedServerId, resolvedDatabase, schemaName, tableName);
100
+ outputResult({ fileName: `sql-schema-${schemaName}-${tableName}`, data: schema, summary: `Schema for ${schemaName}.${tableName}: ${schema.columns?.length ?? 0} column(s), ${schema.indexes?.length ?? 0} index(es), ${schema.foreignKeys?.length ?? 0} FK(s)` }, getGlobalFlags(program));
101
+ }
102
+ catch (error) {
103
+ handleCliError(error, 'get table schema');
104
+ }
105
+ });
106
+ query
107
+ .command('obj-def')
108
+ .description('Get the SQL definition for a view, stored procedure, function, or trigger')
109
+ .argument('<schemaName>', "Schema name (e.g., 'dbo')")
110
+ .argument('<objectName>', 'Object name')
111
+ .argument('<objectType>', 'Object type: VIEW, PROCEDURE, FUNCTION, or TRIGGER')
112
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
113
+ .option('-d, --database <name>', 'Database name (omit for default)')
114
+ .action(async (schemaName, objectName, objectType, opts) => {
115
+ try {
116
+ const validTypes = ['VIEW', 'PROCEDURE', 'FUNCTION', 'TRIGGER'];
117
+ const upperType = objectType.toUpperCase();
118
+ if (!validTypes.includes(upperType)) {
119
+ throw new Error(`Invalid object type '${objectType}'. Must be one of: ${validTypes.join(', ')}`);
120
+ }
121
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
122
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
123
+ const definition = await ctx.query.getObjectDefinition(resolvedServerId, resolvedDatabase, schemaName, objectName, upperType);
124
+ outputResult({ fileName: `sql-def-${schemaName}-${objectName}`, data: definition, summary: `${upperType} definition for ${schemaName}.${objectName}` }, getGlobalFlags(program));
125
+ }
126
+ catch (error) {
127
+ handleCliError(error, 'get object definition');
128
+ }
129
+ });
130
+ query
131
+ .command('execute')
132
+ .description('Execute a SELECT query against Azure SQL Database')
133
+ .argument('<query>', 'SELECT query to execute')
134
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
135
+ .option('-d, --database <name>', 'Database name (omit for default)')
136
+ .action(async (queryStr, opts) => {
137
+ try {
138
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
139
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
140
+ const result = await ctx.query.executeSelectQuery(resolvedServerId, resolvedDatabase, queryStr);
141
+ const truncatedMsg = result.truncated ? ' (truncated)' : '';
142
+ outputResult({ fileName: 'sql-query-result', data: result, summary: `Query returned ${result.rowCount} row(s)${truncatedMsg}` }, getGlobalFlags(program));
143
+ }
144
+ catch (error) {
145
+ handleCliError(error, 'execute query');
146
+ }
147
+ });
148
+ }
149
+ //# sourceMappingURL=query-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sproc CLI Commands - 3 commands mapping to stored procedure MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerSprocCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=sproc-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sproc-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sproc-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAoFjF"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Sproc CLI Commands - 3 commands mapping to stored procedure MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerSprocCommands(program, ctx) {
7
+ const sproc = program.command('sproc').description('Stored procedure management and execution');
8
+ sproc
9
+ .command('manage')
10
+ .description('Create or alter a stored procedure')
11
+ .argument('<schemaName>', "Schema name (e.g., 'dbo')")
12
+ .argument('<sprocName>', "Procedure name (e.g., 'usp_GetActiveUsers')")
13
+ .argument('<definition>', 'Procedure definition (parameters + body, e.g., "@Status INT AS SELECT * FROM Users WHERE Status = @Status")')
14
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
15
+ .option('-d, --database <name>', 'Database name (omit for default)')
16
+ .action(async (schemaName, sprocName, definition, opts) => {
17
+ try {
18
+ ctx.checkSprocManageEnabled();
19
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
20
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
21
+ const result = await ctx.write.manageSproc(resolvedServerId, resolvedDatabase, schemaName, sprocName, definition);
22
+ outputResult({ fileName: `sql-sproc-manage-${schemaName}-${sprocName}`, data: result, summary: result.message }, getGlobalFlags(program));
23
+ }
24
+ catch (error) {
25
+ handleCliError(error, 'manage sproc');
26
+ }
27
+ });
28
+ sproc
29
+ .command('deploy')
30
+ .description('Deploy a stored procedure from a local .sql file')
31
+ .argument('<filePath>', 'Path to a .sql file containing a CREATE OR ALTER PROCEDURE statement')
32
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
33
+ .option('-d, --database <name>', 'Database name (omit for default)')
34
+ .action(async (filePath, opts) => {
35
+ try {
36
+ ctx.checkSprocManageEnabled();
37
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
38
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
39
+ const result = await ctx.write.deploySprocFromFile(resolvedServerId, resolvedDatabase, filePath);
40
+ outputResult({ fileName: `sql-sproc-deploy-${filePath.replace(/[^a-zA-Z0-9]/g, '_')}`, data: result, summary: result.message }, getGlobalFlags(program));
41
+ }
42
+ catch (error) {
43
+ handleCliError(error, 'deploy sproc from file');
44
+ }
45
+ });
46
+ sproc
47
+ .command('drop')
48
+ .description('Drop a stored procedure if it exists')
49
+ .argument('<schemaName>', "Schema name (e.g., 'dbo')")
50
+ .argument('<sprocName>', "Procedure name (e.g., 'usp_GetActiveUsers')")
51
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
52
+ .option('-d, --database <name>', 'Database name (omit for default)')
53
+ .action(async (schemaName, sprocName, opts) => {
54
+ try {
55
+ ctx.checkSprocDropEnabled();
56
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
57
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
58
+ const result = await ctx.write.dropSproc(resolvedServerId, resolvedDatabase, schemaName, sprocName);
59
+ outputResult({ fileName: `sql-sproc-drop-${schemaName}-${sprocName}`, data: result, summary: result.message }, getGlobalFlags(program));
60
+ }
61
+ catch (error) {
62
+ handleCliError(error, 'drop sproc');
63
+ }
64
+ });
65
+ sproc
66
+ .command('execute')
67
+ .description('Execute a stored procedure with optional parameters')
68
+ .argument('<schemaName>', "Schema name (e.g., 'dbo')")
69
+ .argument('<sprocName>', "Procedure name (e.g., 'usp_GetActiveUsers')")
70
+ .option('-p, --parameters <json>', 'Parameters as JSON object (e.g., \'{"Status": 1, "Name": "John"}\')')
71
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
72
+ .option('-d, --database <name>', 'Database name (omit for default)')
73
+ .action(async (schemaName, sprocName, opts) => {
74
+ try {
75
+ ctx.checkSprocExecuteEnabled();
76
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
77
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
78
+ const parameters = opts.parameters ? JSON.parse(opts.parameters) : undefined;
79
+ const result = await ctx.write.executeSproc(resolvedServerId, resolvedDatabase, schemaName, sprocName, parameters);
80
+ outputResult({ fileName: `sql-sproc-exec-${schemaName}-${sprocName}`, data: result, summary: `Procedure ${schemaName}.${sprocName} returned ${result.rowCount} row(s), return value: ${result.returnValue}` }, getGlobalFlags(program));
81
+ }
82
+ catch (error) {
83
+ handleCliError(error, 'execute sproc');
84
+ }
85
+ });
86
+ }
87
+ //# sourceMappingURL=sproc-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sproc-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/sproc-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Unrestricted SQL CLI Command - maps to sql-execute-unrestricted MCP tool
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerUnrestrictedCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=unrestricted-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unrestricted-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/unrestricted-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA2BxF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Unrestricted SQL CLI Command - maps to sql-execute-unrestricted MCP tool
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerUnrestrictedCommands(program, ctx) {
7
+ if (process.env.SQL_ENABLE_UNRESTRICTED !== 'true')
8
+ return;
9
+ const unrestricted = program.command('unrestricted').description('Execute any T-SQL without restrictions (requires SQL_ENABLE_UNRESTRICTED=true)');
10
+ unrestricted
11
+ .command('execute')
12
+ .description('Execute any T-SQL (DDL, DML, EXEC, multi-batch with GO)')
13
+ .argument('<sql>', 'T-SQL to execute (use GO on its own line to separate batches)')
14
+ .option('-s, --server-id <id>', 'Server ID (omit for default)')
15
+ .option('-d, --database <name>', 'Database name (omit for default)')
16
+ .action(async (sql, opts) => {
17
+ try {
18
+ const resolvedServerId = ctx.connection.resolveServerId(opts.serverId);
19
+ const resolvedDatabase = ctx.connection.resolveDatabase(resolvedServerId, opts.database);
20
+ const result = await ctx.write.executeUnrestricted(resolvedServerId, resolvedDatabase, sql);
21
+ const summary = result.completedBatches === result.totalBatches
22
+ ? `All ${result.totalBatches} batch(es) executed successfully.`
23
+ : `${result.completedBatches}/${result.totalBatches} batch(es) completed. Batch ${result.completedBatches} failed.`;
24
+ outputResult({ fileName: 'sql-unrestricted', data: result, summary }, getGlobalFlags(program));
25
+ }
26
+ catch (error) {
27
+ handleCliError(error, 'unrestricted execute');
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=unrestricted-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unrestricted-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/unrestricted-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,4BAA4B,CAAC,OAAgB,EAAE,GAAmB;IAChF,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM;QAAE,OAAO;IAE3D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,gFAAgF,CAAC,CAAC;IAEnJ,YAAY;SACT,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CAAC,OAAO,EAAE,+DAA+D,CAAC;SAClF,MAAM,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;SAC9D,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvE,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAChD,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,CACxC,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,YAAY;gBAC7D,CAAC,CAAC,OAAO,MAAM,CAAC,YAAY,mCAAmC;gBAC/D,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,+BAA+B,MAAM,CAAC,gBAAgB,UAAU,CAAC;YACtH,YAAY,CACV,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EACvD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * View CLI Commands - 2 commands mapping to view management MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerViewCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=view-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/view-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA8DhF"}