@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,13 @@
1
+ export { CsvParser } from './CsvParser';
2
+ export { ExcelParser } from './ExcelParser';
3
+ export { DatabaseParser } from './DatabaseParser';
4
+ import { DataSource, ParsedData } from '../types';
5
+ export declare class DataSourceParser {
6
+ private csvParser;
7
+ private excelParser;
8
+ private databaseParser;
9
+ parse(dataSource: DataSource): Promise<ParsedData[]>;
10
+ private parseJsonData;
11
+ private inferJsonColumnType;
12
+ }
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAwB;IAExC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyB1D,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,mBAAmB;CAuB5B"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataSourceParser = exports.DatabaseParser = exports.ExcelParser = exports.CsvParser = void 0;
4
+ var CsvParser_1 = require("./CsvParser");
5
+ Object.defineProperty(exports, "CsvParser", { enumerable: true, get: function () { return CsvParser_1.CsvParser; } });
6
+ var ExcelParser_1 = require("./ExcelParser");
7
+ Object.defineProperty(exports, "ExcelParser", { enumerable: true, get: function () { return ExcelParser_1.ExcelParser; } });
8
+ var DatabaseParser_1 = require("./DatabaseParser");
9
+ Object.defineProperty(exports, "DatabaseParser", { enumerable: true, get: function () { return DatabaseParser_1.DatabaseParser; } });
10
+ const CsvParser_2 = require("./CsvParser");
11
+ const ExcelParser_2 = require("./ExcelParser");
12
+ const DatabaseParser_2 = require("./DatabaseParser");
13
+ class DataSourceParser {
14
+ constructor() {
15
+ this.csvParser = new CsvParser_2.CsvParser();
16
+ this.excelParser = new ExcelParser_2.ExcelParser();
17
+ this.databaseParser = new DatabaseParser_2.DatabaseParser();
18
+ }
19
+ async parse(dataSource) {
20
+ switch (dataSource.type) {
21
+ case 'csv':
22
+ if (!dataSource.filePath)
23
+ throw new Error('File path required for CSV parsing');
24
+ const csvData = await this.csvParser.parse(dataSource.filePath);
25
+ return [csvData];
26
+ case 'excel':
27
+ if (!dataSource.filePath)
28
+ throw new Error('File path required for Excel parsing');
29
+ const excelData = await this.excelParser.parse(dataSource.filePath);
30
+ return [excelData];
31
+ case 'database':
32
+ if (!dataSource.connection)
33
+ throw new Error('Database connection required for database parsing');
34
+ return await this.databaseParser.parse(dataSource.connection);
35
+ case 'json':
36
+ if (!dataSource.data)
37
+ throw new Error('Data required for JSON parsing');
38
+ return this.parseJsonData(dataSource.data);
39
+ default:
40
+ throw new Error(`Unsupported data source type: ${dataSource.type}`);
41
+ }
42
+ }
43
+ parseJsonData(data) {
44
+ if (!Array.isArray(data) || data.length === 0) {
45
+ throw new Error('JSON data must be a non-empty array');
46
+ }
47
+ const headers = Object.keys(data[0]);
48
+ const rows = data.map(item => headers.map(header => item[header]));
49
+ const dataTypes = {};
50
+ headers.forEach(header => {
51
+ const sample = data.slice(0, 100).map(item => item[header]);
52
+ dataTypes[header] = this.inferJsonColumnType(sample);
53
+ });
54
+ return [{
55
+ tableName: 'data',
56
+ headers,
57
+ rows,
58
+ metadata: {
59
+ rowCount: rows.length,
60
+ columnCount: headers.length,
61
+ dataTypes
62
+ }
63
+ }];
64
+ }
65
+ inferJsonColumnType(values) {
66
+ const nonNullValues = values.filter(v => v !== null && v !== undefined);
67
+ if (nonNullValues.length === 0)
68
+ return 'string';
69
+ const types = nonNullValues.map(v => typeof v);
70
+ const uniqueTypes = [...new Set(types)];
71
+ if (uniqueTypes.length === 1) {
72
+ const type = uniqueTypes[0];
73
+ if (type === 'boolean')
74
+ return 'boolean';
75
+ if (type === 'number') {
76
+ const isInteger = nonNullValues.every(v => Number.isInteger(v));
77
+ return isInteger ? 'integer' : 'number';
78
+ }
79
+ if (type === 'string') {
80
+ const isDate = nonNullValues.every(v => !isNaN(Date.parse(v)));
81
+ return isDate ? 'date' : 'string';
82
+ }
83
+ }
84
+ return 'string';
85
+ }
86
+ }
87
+ exports.DataSourceParser = DataSourceParser;
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ExcelParser = void 0;
37
+ const ExcelJS = __importStar(require("exceljs"));
38
+ class ExcelParser {
39
+ async parse(filePath, sheetName) {
40
+ const workbook = new ExcelJS.Workbook();
41
+ await workbook.xlsx.readFile(filePath);
42
+ const worksheet = sheetName
43
+ ? workbook.getWorksheet(sheetName)
44
+ : workbook.getWorksheet(1); // First worksheet
45
+ if (!worksheet) {
46
+ throw new Error(`Sheet "${sheetName || 'first sheet'}" not found`);
47
+ }
48
+ const rows = [];
49
+ let headers = [];
50
+ worksheet.eachRow((row, rowNumber) => {
51
+ const values = row.values;
52
+ // Remove the first element (it's undefined in ExcelJS)
53
+ const rowData = values.slice(1);
54
+ if (rowNumber === 1) {
55
+ headers = rowData.map(cell => cell?.toString() || '');
56
+ }
57
+ else {
58
+ rows.push(rowData);
59
+ }
60
+ });
61
+ if (headers.length === 0) {
62
+ throw new Error('No data found in the sheet');
63
+ }
64
+ const dataTypes = this.inferDataTypes(rows, headers);
65
+ return {
66
+ tableName: worksheet.name,
67
+ headers,
68
+ rows,
69
+ metadata: {
70
+ rowCount: rows.length,
71
+ columnCount: headers.length,
72
+ dataTypes
73
+ }
74
+ };
75
+ }
76
+ async getSheetNames(filePath) {
77
+ const workbook = new ExcelJS.Workbook();
78
+ await workbook.xlsx.readFile(filePath);
79
+ return workbook.worksheets.map(sheet => sheet.name);
80
+ }
81
+ inferDataTypes(rows, headers) {
82
+ const dataTypes = {};
83
+ headers.forEach((header, index) => {
84
+ const sample = rows.slice(0, 100).map(row => row[index]);
85
+ dataTypes[header] = this.inferColumnType(sample);
86
+ });
87
+ return dataTypes;
88
+ }
89
+ inferColumnType(values) {
90
+ const nonNullValues = values.filter(v => v !== null && v !== undefined && v !== '');
91
+ if (nonNullValues.length === 0)
92
+ return 'string';
93
+ const isNumeric = nonNullValues.every(v => typeof v === 'number' || !isNaN(Number(v)));
94
+ const isInteger = isNumeric && nonNullValues.every(v => {
95
+ const num = typeof v === 'number' ? v : Number(v);
96
+ return Number.isInteger(num);
97
+ });
98
+ const isBoolean = nonNullValues.every(v => v === true || v === false || v === 'true' || v === 'false' || v === 1 || v === 0);
99
+ const isDate = nonNullValues.every(v => {
100
+ if (v instanceof Date)
101
+ return true;
102
+ // ExcelJS automatically converts Excel dates to Date objects
103
+ if (typeof v === 'string')
104
+ return !isNaN(Date.parse(v));
105
+ return false;
106
+ });
107
+ if (isBoolean)
108
+ return 'boolean';
109
+ if (isInteger)
110
+ return 'integer';
111
+ if (isNumeric)
112
+ return 'number';
113
+ if (isDate)
114
+ return 'date';
115
+ return 'string';
116
+ }
117
+ }
118
+ exports.ExcelParser = ExcelParser;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import { TransportType } from './transport';
3
+ declare class QuickMCPBridge {
4
+ private transport;
5
+ private sqliteManager;
6
+ private executor;
7
+ constructor(transportType: TransportType, port?: number);
8
+ start(port?: number): Promise<void>;
9
+ stop(): Promise<void>;
10
+ private handleMessage;
11
+ }
12
+ export { QuickMCPBridge };
13
+ //# sourceMappingURL=quickmcp-unified-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickmcp-unified-bridge.d.ts","sourceRoot":"","sources":["../src/quickmcp-unified-bridge.ts"],"names":[],"mappings":";AAEA,OAAO,EAAoF,aAAa,EAAE,MAAM,aAAa,CAAC;AAI9H,cAAM,cAAc;IAClB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM;IAkBjD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAKb,aAAa;CAgI5B;AAqCD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,176 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.QuickMCPBridge = void 0;
5
+ const transport_1 = require("./transport");
6
+ const sqlite_manager_1 = require("./database/sqlite-manager");
7
+ const dynamic_mcp_executor_1 = require("./dynamic-mcp-executor");
8
+ class QuickMCPBridge {
9
+ constructor(transportType, port) {
10
+ // Initialize transport based on type
11
+ if (transportType === 'sse') {
12
+ this.transport = new transport_1.SSETransport(port);
13
+ }
14
+ else if (transportType === 'streamable-http') {
15
+ this.transport = new transport_1.StreamableHTTPTransport(port);
16
+ }
17
+ else {
18
+ this.transport = new transport_1.StdioTransport();
19
+ }
20
+ // Initialize database and executor
21
+ this.sqliteManager = new sqlite_manager_1.SQLiteManager();
22
+ this.executor = new dynamic_mcp_executor_1.DynamicMCPExecutor();
23
+ // Set up message handler
24
+ this.transport.onMessage(this.handleMessage.bind(this));
25
+ }
26
+ async start(port) {
27
+ await this.transport.start(port);
28
+ console.error(`QuickMCP Bridge started with ${this.transport.constructor.name}`);
29
+ }
30
+ async stop() {
31
+ await this.transport.stop();
32
+ this.sqliteManager.close();
33
+ }
34
+ async handleMessage(message) {
35
+ if (!message.id && message.method) {
36
+ // Notification - no response needed
37
+ if (message.method === 'notifications/initialized') {
38
+ console.error('[QuickMCP] Client initialized');
39
+ }
40
+ return;
41
+ }
42
+ let response = null;
43
+ try {
44
+ switch (message.method) {
45
+ case 'initialize':
46
+ response = {
47
+ jsonrpc: '2.0',
48
+ id: message.id,
49
+ result: {
50
+ protocolVersion: '2024-11-05',
51
+ serverInfo: {
52
+ name: 'quickmcp-unified',
53
+ version: '2.0.0'
54
+ },
55
+ capabilities: {
56
+ tools: { listChanged: true },
57
+ resources: { listChanged: true },
58
+ prompts: { listChanged: true }
59
+ }
60
+ }
61
+ };
62
+ break;
63
+ case 'tools/list':
64
+ const tools = this.sqliteManager.getAllTools();
65
+ const formattedTools = tools.map(tool => ({
66
+ name: `${tool.server_id}__${tool.name}`,
67
+ description: `[${tool.server_id}] ${tool.description}`,
68
+ inputSchema: typeof tool.inputSchema === 'string'
69
+ ? JSON.parse(tool.inputSchema)
70
+ : tool.inputSchema
71
+ }));
72
+ response = {
73
+ jsonrpc: '2.0',
74
+ id: message.id,
75
+ result: { tools: formattedTools }
76
+ };
77
+ break;
78
+ case 'resources/list':
79
+ const resources = this.sqliteManager.getAllResources();
80
+ const formattedResources = resources.map(resource => ({
81
+ name: `${resource.server_id}__${resource.name}`,
82
+ description: `[${resource.server_id}] ${resource.description}`,
83
+ uri: resource.uri_template
84
+ }));
85
+ response = {
86
+ jsonrpc: '2.0',
87
+ id: message.id,
88
+ result: { resources: formattedResources }
89
+ };
90
+ break;
91
+ case 'tools/call':
92
+ console.error(`[QuickMCP] Executing tool: ${message.params?.name}`);
93
+ const toolResult = await this.executor.executeTool(message.params?.name || '', message.params?.arguments || {});
94
+ response = {
95
+ jsonrpc: '2.0',
96
+ id: message.id,
97
+ result: {
98
+ content: [{
99
+ type: 'text',
100
+ text: JSON.stringify(toolResult, null, 2)
101
+ }]
102
+ }
103
+ };
104
+ break;
105
+ case 'resources/read':
106
+ const resourceResult = await this.executor.readResource(message.params?.uri || '');
107
+ response = {
108
+ jsonrpc: '2.0',
109
+ id: message.id,
110
+ result: resourceResult
111
+ };
112
+ break;
113
+ default:
114
+ if (message.id) {
115
+ response = {
116
+ jsonrpc: '2.0',
117
+ id: message.id,
118
+ error: {
119
+ code: -32601,
120
+ message: `Method not found: ${message.method}`
121
+ }
122
+ };
123
+ }
124
+ }
125
+ if (response) {
126
+ this.transport.sendMessage(response);
127
+ }
128
+ }
129
+ catch (error) {
130
+ console.error('[QuickMCP] Error handling message:', error);
131
+ if (message.id) {
132
+ this.transport.sendMessage({
133
+ jsonrpc: '2.0',
134
+ id: message.id,
135
+ error: {
136
+ code: -32603,
137
+ message: `Server error: ${error instanceof Error ? error.message : 'Unknown error'}`
138
+ }
139
+ });
140
+ }
141
+ }
142
+ }
143
+ }
144
+ exports.QuickMCPBridge = QuickMCPBridge;
145
+ // Main execution
146
+ if (require.main === module) {
147
+ // Parse command line arguments
148
+ const args = process.argv.slice(2);
149
+ let transportType = 'stdio';
150
+ if (args.includes('--sse')) {
151
+ transportType = 'sse';
152
+ }
153
+ else if (args.includes('--streamable-http')) {
154
+ transportType = 'streamable-http';
155
+ }
156
+ const portIndex = args.indexOf('--port');
157
+ const port = portIndex !== -1 && args[portIndex + 1]
158
+ ? parseInt(args[portIndex + 1])
159
+ : 3001;
160
+ // Create and start bridge
161
+ const bridge = new QuickMCPBridge(transportType, port);
162
+ bridge.start(port).catch(error => {
163
+ console.error('Failed to start QuickMCP Bridge:', error);
164
+ process.exit(1);
165
+ });
166
+ // Handle graceful shutdown
167
+ process.on('SIGINT', async () => {
168
+ await bridge.stop();
169
+ process.exit(0);
170
+ });
171
+ process.on('SIGTERM', async () => {
172
+ await bridge.stop();
173
+ process.exit(0);
174
+ });
175
+ }
176
+ //# sourceMappingURL=quickmcp-unified-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickmcp-unified-bridge.js","sourceRoot":"","sources":["../src/quickmcp-unified-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { ChildProcess } from 'child_process';
2
+ import { MCPServerConfig, ParsedData } from '../types';
3
+ export interface ServerInstance {
4
+ id: string;
5
+ config: MCPServerConfig;
6
+ serverPath: string;
7
+ process?: ChildProcess;
8
+ status: 'stopped' | 'starting' | 'running' | 'error';
9
+ port?: number;
10
+ lastError?: string;
11
+ createdAt: Date;
12
+ lastStarted?: Date;
13
+ }
14
+ export declare class ServerManager {
15
+ private servers;
16
+ private serverDir;
17
+ constructor(baseDir?: string);
18
+ initialize(): Promise<void>;
19
+ createServer(config: MCPServerConfig, parsedData: ParsedData[], serverCode: string, packageJson: string): Promise<ServerInstance>;
20
+ buildServer(serverId: string): Promise<void>;
21
+ startServer(serverId: string, port?: number): Promise<void>;
22
+ stopServer(serverId: string): Promise<void>;
23
+ restartServer(serverId: string): Promise<void>;
24
+ deleteServer(serverId: string): Promise<void>;
25
+ exportServer(serverId: string): Promise<string>;
26
+ getServerInstance(serverId: string): ServerInstance | undefined;
27
+ getAllServers(): ServerInstance[];
28
+ getRunningServers(): ServerInstance[];
29
+ updateServerConfig(serverId: string, newConfig: Partial<MCPServerConfig>): Promise<void>;
30
+ private loadExistingServers;
31
+ private saveServerMetadata;
32
+ private generateServerId;
33
+ private runCommand;
34
+ private copyDirectory;
35
+ private generateReadme;
36
+ }
37
+ //# sourceMappingURL=ServerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerManager.d.ts","sourceRoot":"","sources":["../../src/server/ServerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,MAA8B;IAI7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,YAAY,CAChB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,UAAU,EAAE,EACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;IA4CpB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D3D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCrD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI/D,aAAa,IAAI,cAAc,EAAE;IAIjC,iBAAiB,IAAI,cAAc,EAAE;IAI/B,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAahF,mBAAmB;YA8BnB,kBAAkB;IAkBhC,OAAO,CAAC,gBAAgB;YAMV,UAAU;YA2BV,aAAa;IAgB3B,OAAO,CAAC,cAAc;CAiDvB"}