@softtechai/quickmcp 1.0.8

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 (163) hide show
  1. package/README.md +553 -0
  2. package/dist/client/MCPClient.d.ts +24 -0
  3. package/dist/client/MCPClient.d.ts.map +1 -0
  4. package/dist/client/MCPClient.js +211 -0
  5. package/dist/client/MCPClient.js.map +1 -0
  6. package/dist/client/MCPClientUnified.d.ts +31 -0
  7. package/dist/client/MCPClientUnified.d.ts.map +1 -0
  8. package/dist/client/MCPClientUnified.js +275 -0
  9. package/dist/client/MCPClientUnified.js.map +1 -0
  10. package/dist/client/MCPTestRunner.d.ts +44 -0
  11. package/dist/client/MCPTestRunner.d.ts.map +1 -0
  12. package/dist/client/MCPTestRunner.js +220 -0
  13. package/dist/client/MCPTestRunner.js.map +1 -0
  14. package/dist/client/MCPTestRunnerUnified.d.ts +48 -0
  15. package/dist/client/MCPTestRunnerUnified.d.ts.map +1 -0
  16. package/dist/client/MCPTestRunnerUnified.js +183 -0
  17. package/dist/client/MCPTestRunnerUnified.js.map +1 -0
  18. package/dist/database/json-manager.d.ts +55 -0
  19. package/dist/database/json-manager.d.ts.map +1 -0
  20. package/dist/database/json-manager.js +128 -0
  21. package/dist/database/json-manager.js.map +1 -0
  22. package/dist/database/sqlite-manager.d.ts +53 -0
  23. package/dist/database/sqlite-manager.d.ts.map +1 -0
  24. package/dist/database/sqlite-manager.js +193 -0
  25. package/dist/database/sqlite-manager.js.map +1 -0
  26. package/dist/dynamic-mcp-executor.d.ts +14 -0
  27. package/dist/dynamic-mcp-executor.d.ts.map +1 -0
  28. package/dist/dynamic-mcp-executor.js +274 -0
  29. package/dist/dynamic-mcp-executor.js.map +1 -0
  30. package/dist/generators/MCPServerGenerator-new.d.ts +37 -0
  31. package/dist/generators/MCPServerGenerator-new.d.ts.map +1 -0
  32. package/dist/generators/MCPServerGenerator-new.js +287 -0
  33. package/dist/generators/MCPServerGenerator-new.js.map +1 -0
  34. package/dist/generators/MCPServerGenerator.d.ts +42 -0
  35. package/dist/generators/MCPServerGenerator.d.ts.map +1 -0
  36. package/dist/generators/MCPServerGenerator.js +494 -0
  37. package/dist/generators/MCPServerGenerator.js.map +1 -0
  38. package/dist/generators/database/sqlite-manager.d.ts +52 -0
  39. package/dist/generators/database/sqlite-manager.js +143 -0
  40. package/dist/generators/generators/MCPServerGenerator.d.ts +37 -0
  41. package/dist/generators/generators/MCPServerGenerator.js +396 -0
  42. package/dist/index.d.ts +7 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +23 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/integrated-mcp-server-new.d.ts +12 -0
  47. package/dist/integrated-mcp-server-new.d.ts.map +1 -0
  48. package/dist/integrated-mcp-server-new.js +253 -0
  49. package/dist/integrated-mcp-server-new.js.map +1 -0
  50. package/dist/integrated-mcp-server.d.ts +25 -0
  51. package/dist/integrated-mcp-server.d.ts.map +1 -0
  52. package/dist/integrated-mcp-server.js +541 -0
  53. package/dist/integrated-mcp-server.js.map +1 -0
  54. package/dist/mcp-inspector-server.d.ts +3 -0
  55. package/dist/mcp-inspector-server.d.ts.map +1 -0
  56. package/dist/mcp-inspector-server.js +119 -0
  57. package/dist/mcp-inspector-server.js.map +1 -0
  58. package/dist/mcp-sdk-server.d.ts +3 -0
  59. package/dist/mcp-sdk-server.d.ts.map +1 -0
  60. package/dist/mcp-sdk-server.js +90 -0
  61. package/dist/mcp-sdk-server.js.map +1 -0
  62. package/dist/mcp-server.d.ts +3 -0
  63. package/dist/mcp-server.d.ts.map +1 -0
  64. package/dist/mcp-server.js +300 -0
  65. package/dist/mcp-server.js.map +1 -0
  66. package/dist/parsers/CsvParser.d.ts +7 -0
  67. package/dist/parsers/CsvParser.d.ts.map +1 -0
  68. package/dist/parsers/CsvParser.js +98 -0
  69. package/dist/parsers/CsvParser.js.map +1 -0
  70. package/dist/parsers/DatabaseParser.d.ts +18 -0
  71. package/dist/parsers/DatabaseParser.d.ts.map +1 -0
  72. package/dist/parsers/DatabaseParser.js +372 -0
  73. package/dist/parsers/DatabaseParser.js.map +1 -0
  74. package/dist/parsers/ExcelParser.d.ts +8 -0
  75. package/dist/parsers/ExcelParser.d.ts.map +1 -0
  76. package/dist/parsers/ExcelParser.js +119 -0
  77. package/dist/parsers/ExcelParser.js.map +1 -0
  78. package/dist/parsers/index.d.ts +13 -0
  79. package/dist/parsers/index.d.ts.map +1 -0
  80. package/dist/parsers/index.js +88 -0
  81. package/dist/parsers/index.js.map +1 -0
  82. package/dist/parsers/parsers/ExcelParser.js +118 -0
  83. package/dist/parsers/types/index.js +2 -0
  84. package/dist/quickmcp-unified-bridge.d.ts +13 -0
  85. package/dist/quickmcp-unified-bridge.d.ts.map +1 -0
  86. package/dist/quickmcp-unified-bridge.js +176 -0
  87. package/dist/quickmcp-unified-bridge.js.map +1 -0
  88. package/dist/server/ServerManager.d.ts +37 -0
  89. package/dist/server/ServerManager.d.ts.map +1 -0
  90. package/dist/server/ServerManager.js +376 -0
  91. package/dist/server/ServerManager.js.map +1 -0
  92. package/dist/sqlite-manager.js +145 -0
  93. package/dist/start-new-server.d.ts +3 -0
  94. package/dist/start-new-server.d.ts.map +1 -0
  95. package/dist/start-new-server.js +10 -0
  96. package/dist/start-new-server.js.map +1 -0
  97. package/dist/test-app.d.ts +2 -0
  98. package/dist/test-app.d.ts.map +1 -0
  99. package/dist/test-app.js +119 -0
  100. package/dist/test-app.js.map +1 -0
  101. package/dist/test-new-architecture.d.ts +3 -0
  102. package/dist/test-new-architecture.d.ts.map +1 -0
  103. package/dist/test-new-architecture.js +72 -0
  104. package/dist/test-new-architecture.js.map +1 -0
  105. package/dist/transport/base-transport.d.ts +21 -0
  106. package/dist/transport/base-transport.d.ts.map +1 -0
  107. package/dist/transport/base-transport.js +16 -0
  108. package/dist/transport/base-transport.js.map +1 -0
  109. package/dist/transport/index.d.ts +10 -0
  110. package/dist/transport/index.d.ts.map +1 -0
  111. package/dist/transport/index.js +12 -0
  112. package/dist/transport/index.js.map +1 -0
  113. package/dist/transport/sse-transport.d.ts +13 -0
  114. package/dist/transport/sse-transport.d.ts.map +1 -0
  115. package/dist/transport/sse-transport.js +106 -0
  116. package/dist/transport/sse-transport.js.map +1 -0
  117. package/dist/transport/stdio-transport.d.ts +8 -0
  118. package/dist/transport/stdio-transport.d.ts.map +1 -0
  119. package/dist/transport/stdio-transport.js +53 -0
  120. package/dist/transport/stdio-transport.js.map +1 -0
  121. package/dist/transport/streamable-http-transport.d.ts +15 -0
  122. package/dist/transport/streamable-http-transport.d.ts.map +1 -0
  123. package/dist/transport/streamable-http-transport.js +151 -0
  124. package/dist/transport/streamable-http-transport.js.map +1 -0
  125. package/dist/types/index.d.ts +64 -0
  126. package/dist/types/index.d.ts.map +1 -0
  127. package/dist/types/index.js +3 -0
  128. package/dist/types/index.js.map +1 -0
  129. package/dist/web/client/MCPClient.js +348 -0
  130. package/dist/web/client/MCPTestRunner.js +317 -0
  131. package/dist/web/database/json-manager.js +124 -0
  132. package/dist/web/database/sqlite-manager.js +146 -0
  133. package/dist/web/dynamic-mcp-executor.js +443 -0
  134. package/dist/web/generators/MCPServerGenerator-new.js +284 -0
  135. package/dist/web/generators/MCPServerGenerator.js +566 -0
  136. package/dist/web/integrated-mcp-server-new.js +394 -0
  137. package/dist/web/parsers/CsvParser.js +144 -0
  138. package/dist/web/parsers/DatabaseParser.js +637 -0
  139. package/dist/web/parsers/ExcelParser.js +180 -0
  140. package/dist/web/parsers/index.js +152 -0
  141. package/dist/web/server.d.ts +3 -0
  142. package/dist/web/server.d.ts.map +1 -0
  143. package/dist/web/server.js +790 -0
  144. package/dist/web/server.js.map +1 -0
  145. package/dist/web/types/index.js +2 -0
  146. package/dist/web/web/server.js +860 -0
  147. package/package.json +68 -0
  148. package/quickmcp-direct-stdio.js +328 -0
  149. package/src/web/public/app.js +1795 -0
  150. package/src/web/public/database-tables.html +711 -0
  151. package/src/web/public/how-to-use.html +571 -0
  152. package/src/web/public/how-to-use.js +255 -0
  153. package/src/web/public/images/1-claude-quickmcp-stdio.png +0 -0
  154. package/src/web/public/images/2-claude-tools.png +0 -0
  155. package/src/web/public/images/3-claude-developer-settings.png +0 -0
  156. package/src/web/public/images/4-claude-config.png +0 -0
  157. package/src/web/public/images/5-claude-config-edit.png +0 -0
  158. package/src/web/public/index.html +626 -0
  159. package/src/web/public/manage-servers.html +198 -0
  160. package/src/web/public/modern-styles.css +946 -0
  161. package/src/web/public/shared-styles.css +2091 -0
  162. package/src/web/public/shared.js +93 -0
  163. package/src/web/public/test-servers.html +302 -0
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const express_1 = __importDefault(require("express"));
8
+ const sqlite_manager_1 = require("./database/sqlite-manager");
9
+ const dynamic_mcp_executor_1 = require("./dynamic-mcp-executor");
10
+ const app = (0, express_1.default)();
11
+ app.use(express_1.default.json());
12
+ // CORS headers
13
+ app.use((req, res, next) => {
14
+ res.header('Access-Control-Allow-Origin', '*');
15
+ res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
16
+ res.header('Access-Control-Allow-Headers', 'Content-Type, Accept');
17
+ if (req.method === 'OPTIONS') {
18
+ return res.sendStatus(200);
19
+ }
20
+ next();
21
+ });
22
+ const sqliteManager = new sqlite_manager_1.SQLiteManager();
23
+ const executor = new dynamic_mcp_executor_1.DynamicMCPExecutor();
24
+ // Single endpoint for MCP Inspector
25
+ app.post('/', async (req, res) => {
26
+ const message = req.body;
27
+ console.error(`[Inspector] Received: ${message.method} (id: ${message.id})`);
28
+ let response = null;
29
+ try {
30
+ switch (message.method) {
31
+ case 'initialize':
32
+ response = {
33
+ jsonrpc: '2.0',
34
+ id: message.id,
35
+ result: {
36
+ protocolVersion: '2024-11-05',
37
+ serverInfo: {
38
+ name: 'quickmcp-inspector',
39
+ version: '1.0.0'
40
+ },
41
+ capabilities: {
42
+ tools: { listChanged: false },
43
+ resources: { listChanged: false }
44
+ }
45
+ }
46
+ };
47
+ break;
48
+ case 'tools/list':
49
+ const tools = sqliteManager.getAllTools();
50
+ const formattedTools = tools.map(tool => ({
51
+ name: `${tool.server_id}__${tool.name}`,
52
+ description: `[${tool.server_id}] ${tool.description}`,
53
+ inputSchema: typeof tool.inputSchema === 'string'
54
+ ? JSON.parse(tool.inputSchema)
55
+ : tool.inputSchema
56
+ }));
57
+ response = {
58
+ jsonrpc: '2.0',
59
+ id: message.id,
60
+ result: { tools: formattedTools }
61
+ };
62
+ break;
63
+ case 'tools/call':
64
+ const toolResult = await executor.executeTool(message.params?.name || '', message.params?.arguments || {});
65
+ response = {
66
+ jsonrpc: '2.0',
67
+ id: message.id,
68
+ result: {
69
+ content: [{
70
+ type: 'text',
71
+ text: JSON.stringify(toolResult, null, 2)
72
+ }]
73
+ }
74
+ };
75
+ break;
76
+ case 'resources/list':
77
+ const resources = sqliteManager.getAllResources();
78
+ const formattedResources = resources.map(resource => ({
79
+ name: `${resource.server_id}__${resource.name}`,
80
+ description: `[${resource.server_id}] ${resource.description}`,
81
+ uri: resource.uri_template
82
+ }));
83
+ response = {
84
+ jsonrpc: '2.0',
85
+ id: message.id,
86
+ result: { resources: formattedResources }
87
+ };
88
+ break;
89
+ default:
90
+ response = {
91
+ jsonrpc: '2.0',
92
+ id: message.id,
93
+ error: {
94
+ code: -32601,
95
+ message: `Method not found: ${message.method}`
96
+ }
97
+ };
98
+ }
99
+ console.error(`[Inspector] Sending response for id ${message.id}`);
100
+ res.json(response);
101
+ }
102
+ catch (error) {
103
+ console.error('[Inspector] Error:', error);
104
+ res.json({
105
+ jsonrpc: '2.0',
106
+ id: message.id,
107
+ error: {
108
+ code: -32603,
109
+ message: `Server error: ${error instanceof Error ? error.message : 'Unknown'}`
110
+ }
111
+ });
112
+ }
113
+ });
114
+ const PORT = process.env.PORT || 3006;
115
+ app.listen(PORT, () => {
116
+ console.log(`MCP Inspector Server running on http://localhost:${PORT}`);
117
+ console.log('Use this URL in MCP Inspector: http://localhost:' + PORT);
118
+ });
119
+ //# sourceMappingURL=mcp-inspector-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-inspector-server.js","sourceRoot":"","sources":["../src/mcp-inspector-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=mcp-sdk-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-sdk-server.d.ts","sourceRoot":"","sources":["../src/mcp-sdk-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const sqlite_manager_1 = require("./database/sqlite-manager");
7
+ const dynamic_mcp_executor_1 = require("./dynamic-mcp-executor");
8
+ const sqliteManager = new sqlite_manager_1.SQLiteManager();
9
+ const executor = new dynamic_mcp_executor_1.DynamicMCPExecutor();
10
+ // Create MCP server with official SDK
11
+ const server = new index_js_1.Server({
12
+ name: 'quickmcp-sdk',
13
+ version: '1.0.0',
14
+ }, {
15
+ capabilities: {
16
+ tools: {},
17
+ resources: {}
18
+ },
19
+ });
20
+ // List tools handler
21
+ server.setRequestHandler('tools/list', async () => {
22
+ const tools = sqliteManager.getAllTools();
23
+ const formattedTools = tools.map(tool => ({
24
+ name: `${tool.server_id}__${tool.name}`,
25
+ description: `[${tool.server_id}] ${tool.description}`,
26
+ inputSchema: typeof tool.inputSchema === 'string'
27
+ ? JSON.parse(tool.inputSchema)
28
+ : tool.inputSchema
29
+ }));
30
+ return { tools: formattedTools };
31
+ });
32
+ // Call tool handler
33
+ server.setRequestHandler('tools/call', async (request) => {
34
+ const { name, arguments: args } = request.params;
35
+ try {
36
+ const result = await executor.executeTool(name, args || {});
37
+ return {
38
+ content: [{
39
+ type: 'text',
40
+ text: JSON.stringify(result, null, 2)
41
+ }]
42
+ };
43
+ }
44
+ catch (error) {
45
+ return {
46
+ content: [{
47
+ type: 'text',
48
+ text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}`
49
+ }]
50
+ };
51
+ }
52
+ });
53
+ // List resources handler
54
+ server.setRequestHandler('resources/list', async () => {
55
+ const resources = sqliteManager.getAllResources();
56
+ const formattedResources = resources.map(resource => ({
57
+ name: `${resource.server_id}__${resource.name}`,
58
+ description: `[${resource.server_id}] ${resource.description}`,
59
+ uri: resource.uri_template
60
+ }));
61
+ return { resources: formattedResources };
62
+ });
63
+ // Read resource handler
64
+ server.setRequestHandler('resources/read', async (request) => {
65
+ const { uri } = request.params;
66
+ try {
67
+ const result = await executor.readResource(uri);
68
+ return result;
69
+ }
70
+ catch (error) {
71
+ return {
72
+ contents: [{
73
+ uri: uri,
74
+ mimeType: 'text/plain',
75
+ text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}`
76
+ }]
77
+ };
78
+ }
79
+ });
80
+ // Start server with STDIO transport
81
+ async function main() {
82
+ const transport = new stdio_js_1.StdioServerTransport();
83
+ await server.connect(transport);
84
+ console.error('QuickMCP SDK Server started with STDIO transport');
85
+ }
86
+ main().catch(error => {
87
+ console.error('Failed to start server:', error);
88
+ process.exit(1);
89
+ });
90
+ //# sourceMappingURL=mcp-sdk-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-sdk-server.js","sourceRoot":"","sources":["../src/mcp-sdk-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,300 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
+ const DatabaseParser_1 = require("./parsers/DatabaseParser");
8
+ const MCPServerGenerator_1 = require("./generators/MCPServerGenerator");
9
+ class QuickMCPServer {
10
+ constructor() {
11
+ this.currentConnection = null;
12
+ this.currentParsedData = [];
13
+ this.server = new index_js_1.Server({
14
+ name: 'quickmcp-generator',
15
+ version: '1.0.0'
16
+ });
17
+ this.dbParser = new DatabaseParser_1.DatabaseParser();
18
+ this.generator = new MCPServerGenerator_1.MCPServerGenerator();
19
+ this.setupHandlers();
20
+ }
21
+ setupHandlers() {
22
+ this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
23
+ tools: [
24
+ {
25
+ name: 'connect_database',
26
+ description: 'Connect to a database (MySQL, PostgreSQL, SQLite, MSSQL)',
27
+ inputSchema: {
28
+ type: 'object',
29
+ properties: {
30
+ type: {
31
+ type: 'string',
32
+ enum: ['mysql', 'postgresql', 'sqlite', 'mssql'],
33
+ description: 'Database type'
34
+ },
35
+ host: {
36
+ type: 'string',
37
+ description: 'Database host (not required for SQLite)'
38
+ },
39
+ port: {
40
+ type: 'number',
41
+ description: 'Database port (not required for SQLite)'
42
+ },
43
+ database: {
44
+ type: 'string',
45
+ description: 'Database name or file path for SQLite'
46
+ },
47
+ username: {
48
+ type: 'string',
49
+ description: 'Database username (not required for SQLite)'
50
+ },
51
+ password: {
52
+ type: 'string',
53
+ description: 'Database password (not required for SQLite)'
54
+ }
55
+ },
56
+ required: ['type', 'database']
57
+ }
58
+ },
59
+ {
60
+ name: 'list_tables',
61
+ description: 'List all tables in the currently connected database',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {},
65
+ additionalProperties: false
66
+ }
67
+ },
68
+ {
69
+ name: 'parse_database',
70
+ description: 'Parse and analyze all data from the connected database',
71
+ inputSchema: {
72
+ type: 'object',
73
+ properties: {
74
+ tableNames: {
75
+ type: 'array',
76
+ items: { type: 'string' },
77
+ description: 'Specific table names to parse (optional - if empty, parses all tables)'
78
+ }
79
+ }
80
+ }
81
+ },
82
+ {
83
+ name: 'generate_mcp_server',
84
+ description: 'Generate an MCP server from the currently parsed data',
85
+ inputSchema: {
86
+ type: 'object',
87
+ properties: {
88
+ name: {
89
+ type: 'string',
90
+ description: 'Name for the MCP server'
91
+ },
92
+ description: {
93
+ type: 'string',
94
+ description: 'Description of the MCP server'
95
+ },
96
+ version: {
97
+ type: 'string',
98
+ description: 'Version of the MCP server',
99
+ default: '1.0.0'
100
+ }
101
+ },
102
+ required: ['name']
103
+ }
104
+ }
105
+ ]
106
+ }));
107
+ this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
108
+ const { name, arguments: args } = request.params;
109
+ try {
110
+ switch (name) {
111
+ case 'connect_database':
112
+ return await this.connectDatabase(args);
113
+ case 'list_tables':
114
+ return await this.listTables();
115
+ case 'parse_database':
116
+ return await this.parseDatabase(args);
117
+ case 'generate_mcp_server':
118
+ return await this.generateMCPServer(args);
119
+ default:
120
+ throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
121
+ }
122
+ }
123
+ catch (error) {
124
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Tool execution failed: ${error?.message || error}`);
125
+ }
126
+ });
127
+ }
128
+ async connectDatabase(args) {
129
+ try {
130
+ const connection = {
131
+ type: args.type,
132
+ host: args.host,
133
+ port: args.port,
134
+ database: args.database,
135
+ username: args.username,
136
+ password: args.password
137
+ };
138
+ // Test the connection by trying to get tables
139
+ await this.dbParser.getTables(connection);
140
+ this.currentConnection = connection;
141
+ this.currentParsedData = []; // Reset parsed data when connecting to new DB
142
+ return {
143
+ content: [
144
+ {
145
+ type: 'text',
146
+ text: `Successfully connected to ${connection.type} database: ${connection.database}`
147
+ }
148
+ ]
149
+ };
150
+ }
151
+ catch (error) {
152
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to connect to database: ${error?.message || error}`);
153
+ }
154
+ }
155
+ async listTables() {
156
+ if (!this.currentConnection) {
157
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, 'No database connection. Use connect_database first.');
158
+ }
159
+ try {
160
+ const tables = await this.dbParser.getTables(this.currentConnection);
161
+ return {
162
+ content: [
163
+ {
164
+ type: 'text',
165
+ text: `Found ${tables.length} tables in ${this.currentConnection.database}:\n\n${tables.map(table => `• ${table}`).join('\n')}`
166
+ }
167
+ ]
168
+ };
169
+ }
170
+ catch (error) {
171
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to list tables: ${error?.message || error}`);
172
+ }
173
+ }
174
+ async parseDatabase(args) {
175
+ if (!this.currentConnection) {
176
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, 'No database connection. Use connect_database first.');
177
+ }
178
+ try {
179
+ // For now, parse all tables if no specific tables specified
180
+ this.currentParsedData = await this.dbParser.parse(this.currentConnection);
181
+ const summary = this.currentParsedData.map(data => ({
182
+ tableName: data.tableName || 'Unknown',
183
+ rows: data.metadata.rowCount,
184
+ columns: data.metadata.columnCount,
185
+ columnNames: data.headers
186
+ }));
187
+ return {
188
+ content: [
189
+ {
190
+ type: 'text',
191
+ text: `Successfully parsed ${this.currentParsedData.length} table(s):\n\n${JSON.stringify(summary, null, 2)}\n\nData is ready for MCP server generation. Use generate_mcp_server to create a server.`
192
+ }
193
+ ]
194
+ };
195
+ }
196
+ catch (error) {
197
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to parse database: ${error?.message || error}`);
198
+ }
199
+ }
200
+ async generateMCPServer(args) {
201
+ if (this.currentParsedData.length === 0) {
202
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, 'No parsed data available. Use parse_database first.');
203
+ }
204
+ try {
205
+ // Create a mock MCP server config
206
+ const config = {
207
+ name: args.name,
208
+ description: args.description || `MCP Server for ${this.currentConnection?.database}`,
209
+ version: args.version || '1.0.0',
210
+ dataSource: {
211
+ type: 'database',
212
+ name: `Database (${this.currentConnection?.type})`,
213
+ connection: this.currentConnection || undefined
214
+ },
215
+ tools: this.generateBasicTools(),
216
+ resources: this.generateBasicResources(),
217
+ prompts: this.generateBasicPrompts()
218
+ };
219
+ // Convert ParsedData[] to ParsedData format expected by generator
220
+ const parsedDataForGenerator = {};
221
+ this.currentParsedData.forEach(data => {
222
+ const tableName = data.tableName || `table_${Date.now()}`;
223
+ // Convert rows array to objects using headers
224
+ parsedDataForGenerator[tableName] = data.rows.map(row => {
225
+ const obj = {};
226
+ data.headers.forEach((header, index) => {
227
+ obj[header] = row[index];
228
+ });
229
+ return obj;
230
+ });
231
+ });
232
+ // Generate the server using the new virtual method
233
+ const result = await this.generator.generateServer(args.name, config.name, parsedDataForGenerator, this.currentConnection);
234
+ const totalRows = this.currentParsedData.reduce((sum, data) => sum + data.metadata.rowCount, 0);
235
+ return {
236
+ content: [
237
+ {
238
+ type: 'text',
239
+ text: result.success ?
240
+ `Successfully generated virtual MCP server "${args.name}"!\n\n${result.message}\n\nGenerated:\n• ${config.tools.length} tools\n• ${config.resources.length} resources\n• ${config.prompts.length} prompts\n• ${totalRows} total data rows\n\nServer is now available as a virtual MCP server in the integrated system.` :
241
+ `Failed to generate MCP server: ${result.message}`
242
+ }
243
+ ]
244
+ };
245
+ }
246
+ catch (error) {
247
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to generate MCP server: ${error?.message || error}`);
248
+ }
249
+ }
250
+ generateBasicTools() {
251
+ const tools = [];
252
+ this.currentParsedData.forEach(data => {
253
+ const tableName = data.tableName || 'data';
254
+ tools.push({
255
+ name: `get_${tableName.toLowerCase()}_data`,
256
+ description: `Get data from ${tableName} table`,
257
+ inputSchema: {
258
+ type: 'object',
259
+ properties: {
260
+ limit: { type: 'number', description: 'Maximum number of rows to return' },
261
+ offset: { type: 'number', description: 'Number of rows to skip' }
262
+ }
263
+ },
264
+ handler: `this.getTableData('${tableName}', args)`
265
+ });
266
+ });
267
+ return tools;
268
+ }
269
+ generateBasicResources() {
270
+ return this.currentParsedData.map((data, index) => ({
271
+ uri: `schema://table_${index}`,
272
+ name: `${data.tableName || 'Data'} Schema`,
273
+ description: `Schema information for ${data.tableName || 'data'} table`,
274
+ mimeType: 'application/json'
275
+ }));
276
+ }
277
+ generateBasicPrompts() {
278
+ const prompts = [];
279
+ this.currentParsedData.forEach(data => {
280
+ const tableName = data.tableName || 'data';
281
+ prompts.push({
282
+ name: `analyze_${tableName.toLowerCase()}`,
283
+ description: `Analyze and summarize ${tableName} data`,
284
+ arguments: [
285
+ { name: 'focus', description: 'What aspect to focus on in the analysis' }
286
+ ],
287
+ template: `Please analyze the ${tableName} data focusing on {{focus}}. The table has ${data.metadata.rowCount} rows and includes columns: ${data.headers.join(', ')}.`
288
+ });
289
+ });
290
+ return prompts;
291
+ }
292
+ async run() {
293
+ const transport = new stdio_js_1.StdioServerTransport();
294
+ await this.server.connect(transport);
295
+ console.error('QuickMCP Generator server running on stdio');
296
+ }
297
+ }
298
+ const server = new QuickMCPServer();
299
+ server.run().catch(console.error);
300
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ParsedData } from '../types';
2
+ export declare class CsvParser {
3
+ parse(filePath: string): Promise<ParsedData>;
4
+ private inferDataTypes;
5
+ private inferColumnType;
6
+ }
7
+ //# sourceMappingURL=CsvParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CsvParser.d.ts","sourceRoot":"","sources":["../../src/parsers/CsvParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,SAAS;IACd,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgClD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;CAkBxB"}