@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
+ "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
+ const parsers_1 = require("./parsers");
37
+ const MCPServerGenerator_1 = require("./generators/MCPServerGenerator");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ async function testApplication() {
41
+ //console.log('🚀 Testing MCP Server Generator Application');
42
+ try {
43
+ // Test 1: Parse CSV data
44
+ //console.log('\n1. Testing CSV parsing...');
45
+ const parser = new parsers_1.DataSourceParser();
46
+ const dataSource = {
47
+ type: 'csv',
48
+ name: 'test-data',
49
+ filePath: path.join(__dirname, 'test-data.csv')
50
+ };
51
+ const parsedData = await parser.parse(dataSource);
52
+ console.log('✅ CSV parsing successful');
53
+ console.log(` - Found ${parsedData.length} table(s)`);
54
+ console.log(` - Headers: ${parsedData[0].headers.join(', ')}`);
55
+ console.log(` - Rows: ${parsedData[0].rows.length}`);
56
+ console.log(` - Data types: ${JSON.stringify(parsedData[0].metadata.dataTypes, null, 2)}`);
57
+ // Test 2: Generate MCP Server
58
+ console.log('\n2. Testing MCP server generation...');
59
+ const generator = new MCPServerGenerator_1.MCPServerGenerator();
60
+ const config = generator.generateConfigFromData('employee-data-server', 'MCP server for employee data analysis and querying', parsedData);
61
+ console.log('✅ MCP server config generated');
62
+ console.log(` - Tools: ${config.tools.length}`);
63
+ console.log(` - Resources: ${config.resources.length}`);
64
+ console.log(` - Prompts: ${config.prompts.length}`);
65
+ // Test 3: Generate server code
66
+ console.log('\n3. Testing server code generation...');
67
+ const serverCode = generator.generateServer(config, parsedData);
68
+ const packageJson = generator.generatePackageJson(config);
69
+ // Write generated files
70
+ const outputDir = './generated-test-server';
71
+ if (!fs.existsSync(outputDir)) {
72
+ fs.mkdirSync(outputDir, { recursive: true });
73
+ }
74
+ fs.writeFileSync(path.join(outputDir, 'index.ts'), serverCode);
75
+ fs.writeFileSync(path.join(outputDir, 'package.json'), packageJson);
76
+ console.log('✅ Server code generated successfully');
77
+ console.log(` - Generated files in: ${outputDir}`);
78
+ console.log(` - index.ts: ${(serverCode.length / 1024).toFixed(1)}KB`);
79
+ // Test 4: Validate generated tools
80
+ console.log('\n4. Testing generated tools...');
81
+ const toolNames = config.tools.map(t => t.name);
82
+ const expectedTools = ['search_table_0', 'get_all_table_0', 'filter_table_0_by_name', 'filter_table_0_by_age', 'filter_table_0_by_city', 'filter_table_0_by_salary'];
83
+ const hasExpectedTools = expectedTools.every(tool => toolNames.some(t => t.includes(tool.split('_').slice(-1)[0])));
84
+ if (hasExpectedTools) {
85
+ console.log('✅ Generated tools validation passed');
86
+ }
87
+ else {
88
+ console.log('❌ Generated tools validation failed');
89
+ console.log(` Expected tools containing: ${expectedTools.join(', ')}`);
90
+ console.log(` Generated tools: ${toolNames.join(', ')}`);
91
+ }
92
+ // Test 5: Validate generated resources
93
+ console.log('\n5. Testing generated resources...');
94
+ const resourceUris = config.resources.map(r => r.uri);
95
+ const expectedResources = ['schema://table_0', 'data://table_0/sample'];
96
+ const hasExpectedResources = expectedResources.every(uri => resourceUris.includes(uri));
97
+ if (hasExpectedResources) {
98
+ console.log('✅ Generated resources validation passed');
99
+ }
100
+ else {
101
+ console.log('❌ Generated resources validation failed');
102
+ console.log(` Expected: ${expectedResources.join(', ')}`);
103
+ console.log(` Generated: ${resourceUris.join(', ')}`);
104
+ }
105
+ console.log('\n🎉 All tests completed successfully!');
106
+ console.log('\nGenerated MCP Server Summary:');
107
+ console.log(` - Name: ${config.name}`);
108
+ console.log(` - Description: ${config.description}`);
109
+ console.log(` - Tools: ${config.tools.length}`);
110
+ console.log(` - Resources: ${config.resources.length}`);
111
+ console.log(` - Prompts: ${config.prompts.length}`);
112
+ }
113
+ catch (error) {
114
+ console.error('❌ Test failed:', error);
115
+ process.exit(1);
116
+ }
117
+ }
118
+ testApplication();
119
+ //# sourceMappingURL=test-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-app.js","sourceRoot":"","sources":["../src/test-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-new-architecture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-new-architecture.d.ts","sourceRoot":"","sources":["../src/test-new-architecture.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const MCPServerGenerator_1 = require("./generators/MCPServerGenerator");
5
+ const integrated_mcp_server_new_1 = require("./integrated-mcp-server-new");
6
+ async function testNewArchitecture() {
7
+ try {
8
+ console.log('🚀 Testing new SQLite-based MCP architecture...\n');
9
+ // 1. Create generator and test server creation
10
+ console.log('1️⃣ Creating MCPServerGenerator...');
11
+ const generator = new MCPServerGenerator_1.MCPServerGenerator();
12
+ // 2. Create a test exception monitor server
13
+ console.log('2️⃣ Creating test exception server...');
14
+ const testData = {
15
+ exception_records: [
16
+ { Id: 1, Application: 'TestApp', Message: 'Division by zero', Source: 'calc.cs', TimeCreated: '2024-01-01T10:00:00Z' },
17
+ { Id: 2, Application: 'TestApp', Message: 'Null reference', Source: 'process.cs', TimeCreated: '2024-01-01T11:00:00Z' },
18
+ { Id: 3, Application: 'WebApp', Message: 'Connection timeout', Source: 'db.cs', TimeCreated: '2024-01-01T12:00:00Z' }
19
+ ]
20
+ };
21
+ const dbConfig = {
22
+ type: 'mssql',
23
+ server: 'localhost',
24
+ port: 1434,
25
+ database: 'exceptionmonitor',
26
+ username: 'sa',
27
+ password: 'StrongPassword123!',
28
+ encrypt: false,
29
+ trustServerCertificate: true
30
+ };
31
+ const result = await generator.generateServer('test-exceptions', 'Test Exception Monitor', testData, dbConfig);
32
+ if (result.success) {
33
+ console.log('✅ Server created successfully:', result.message);
34
+ }
35
+ else {
36
+ console.log('❌ Server creation failed:', result.message);
37
+ return;
38
+ }
39
+ // 3. Check stats
40
+ console.log('3️⃣ Checking stats...');
41
+ const stats = generator.getStats();
42
+ console.log(`📊 Stats: ${stats.servers} servers, ${stats.tools} tools, ${stats.resources} resources`);
43
+ // 4. List all tools
44
+ console.log('4️⃣ Listing all tools...');
45
+ const allTools = generator.getAllTools();
46
+ console.log(`🔧 Found ${allTools.length} tools:`);
47
+ allTools.forEach(tool => {
48
+ console.log(` - ${tool.name} (${tool.operation}): ${tool.description}`);
49
+ });
50
+ // 5. Start integrated MCP server
51
+ console.log('5️⃣ Starting IntegratedMCPServer...');
52
+ const integratedServer = new integrated_mcp_server_new_1.IntegratedMCPServer();
53
+ // Start server on port 3002 to avoid conflicts
54
+ setTimeout(async () => {
55
+ await integratedServer.start(3002);
56
+ }, 1000);
57
+ console.log('\n✅ New architecture test completed successfully!');
58
+ console.log('🌐 IntegratedMCPServer running on http://localhost:3002');
59
+ console.log('🔗 Bridge can now connect to /api/mcp-stdio endpoint');
60
+ console.log('\n📋 Summary:');
61
+ console.log(` • SQLite database: data/quickmcp.sqlite`);
62
+ console.log(` • Virtual servers: ${stats.servers}`);
63
+ console.log(` • Dynamic tools: ${stats.tools}`);
64
+ console.log(` • Dynamic resources: ${stats.resources}`);
65
+ console.log(` • No physical files generated! ✨`);
66
+ }
67
+ catch (error) {
68
+ console.error('❌ Test failed:', error);
69
+ }
70
+ }
71
+ testNewArchitecture();
72
+ //# sourceMappingURL=test-new-architecture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-new-architecture.js","sourceRoot":"","sources":["../src/test-new-architecture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface MCPMessage {
2
+ jsonrpc: string;
3
+ id?: number;
4
+ method?: string;
5
+ params?: any;
6
+ result?: any;
7
+ error?: {
8
+ code: number;
9
+ message: string;
10
+ data?: any;
11
+ };
12
+ }
13
+ export declare abstract class BaseTransport {
14
+ protected messageHandlers: Map<string, (message: MCPMessage) => void>;
15
+ abstract start(port?: number): Promise<void>;
16
+ abstract stop(): Promise<void>;
17
+ abstract sendMessage(message: MCPMessage): void;
18
+ onMessage(handler: (message: MCPMessage) => void): void;
19
+ protected notifyHandlers(message: MCPMessage): void;
20
+ }
21
+ //# sourceMappingURL=base-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-transport.d.ts","sourceRoot":"","sources":["../../src/transport/base-transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED,8BAAsB,aAAa;IACjC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,CAAa;IAElF,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAE/C,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIvD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAGpD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseTransport = void 0;
4
+ class BaseTransport {
5
+ constructor() {
6
+ this.messageHandlers = new Map();
7
+ }
8
+ onMessage(handler) {
9
+ this.messageHandlers.set('default', handler);
10
+ }
11
+ notifyHandlers(message) {
12
+ this.messageHandlers.forEach(handler => handler(message));
13
+ }
14
+ }
15
+ exports.BaseTransport = BaseTransport;
16
+ //# sourceMappingURL=base-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-transport.js","sourceRoot":"","sources":["../../src/transport/base-transport.ts"],"names":[],"mappings":";;;AAaA,MAAsB,aAAa;IAAnC;QACY,oBAAe,GAA+C,IAAI,GAAG,EAAE,CAAC;IAapF,CAAC;IAPC,SAAS,CAAC,OAAsC;QAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAES,cAAc,CAAC,OAAmB;QAC1C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;CACF;AAdD,sCAcC"}
@@ -0,0 +1,10 @@
1
+ export { BaseTransport, MCPMessage } from './base-transport';
2
+ export { StdioTransport } from './stdio-transport';
3
+ export { SSETransport } from './sse-transport';
4
+ export { StreamableHTTPTransport } from './streamable-http-transport';
5
+ export type TransportType = 'stdio' | 'sse' | 'streamable-http';
6
+ export interface TransportConfig {
7
+ type: TransportType;
8
+ port?: number;
9
+ }
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamableHTTPTransport = exports.SSETransport = exports.StdioTransport = exports.BaseTransport = void 0;
4
+ var base_transport_1 = require("./base-transport");
5
+ Object.defineProperty(exports, "BaseTransport", { enumerable: true, get: function () { return base_transport_1.BaseTransport; } });
6
+ var stdio_transport_1 = require("./stdio-transport");
7
+ Object.defineProperty(exports, "StdioTransport", { enumerable: true, get: function () { return stdio_transport_1.StdioTransport; } });
8
+ var sse_transport_1 = require("./sse-transport");
9
+ Object.defineProperty(exports, "SSETransport", { enumerable: true, get: function () { return sse_transport_1.SSETransport; } });
10
+ var streamable_http_transport_1 = require("./streamable-http-transport");
11
+ Object.defineProperty(exports, "StreamableHTTPTransport", { enumerable: true, get: function () { return streamable_http_transport_1.StreamableHTTPTransport; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAApD,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { BaseTransport, MCPMessage } from './base-transport';
2
+ export declare class SSETransport extends BaseTransport {
3
+ private app;
4
+ private server;
5
+ private clients;
6
+ private port;
7
+ constructor(port?: number);
8
+ private setupRoutes;
9
+ start(port?: number): Promise<void>;
10
+ stop(): Promise<void>;
11
+ sendMessage(message: MCPMessage): void;
12
+ }
13
+ //# sourceMappingURL=sse-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-transport.d.ts","sourceRoot":"","sources":["../../src/transport/sse-transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG7D,qBAAa,YAAa,SAAQ,aAAa;IAC7C,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,CAAC,EAAE,MAAM;IAOzB,OAAO,CAAC,WAAW;IA2Db,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAQvC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SSETransport = void 0;
7
+ const express_1 = __importDefault(require("express"));
8
+ const base_transport_1 = require("./base-transport");
9
+ class SSETransport extends base_transport_1.BaseTransport {
10
+ constructor(port) {
11
+ super();
12
+ this.server = null;
13
+ this.clients = new Set();
14
+ this.port = 3001;
15
+ this.port = port || 3001;
16
+ this.app = (0, express_1.default)();
17
+ this.setupRoutes();
18
+ }
19
+ setupRoutes() {
20
+ this.app.use(express_1.default.json());
21
+ // SSE endpoint for server-to-client communication
22
+ this.app.get('/sse', (req, res) => {
23
+ console.error('[SSE] Client connected to event stream');
24
+ res.writeHead(200, {
25
+ 'Content-Type': 'text/event-stream',
26
+ 'Cache-Control': 'no-cache',
27
+ 'Connection': 'keep-alive',
28
+ 'Access-Control-Allow-Origin': '*',
29
+ 'Access-Control-Allow-Headers': 'Cache-Control'
30
+ });
31
+ this.clients.add(res);
32
+ // Send initial connection event
33
+ res.write(`data: ${JSON.stringify({ type: 'connected' })}\n\n`);
34
+ // Keep connection alive with heartbeat
35
+ const heartbeat = setInterval(() => {
36
+ res.write(`data: ${JSON.stringify({ type: 'heartbeat', timestamp: Date.now() })}\n\n`);
37
+ }, 30000);
38
+ req.on('close', () => {
39
+ console.error('[SSE] Client disconnected from event stream');
40
+ clearInterval(heartbeat);
41
+ this.clients.delete(res);
42
+ });
43
+ req.on('error', () => {
44
+ console.error('[SSE] Client connection error');
45
+ clearInterval(heartbeat);
46
+ this.clients.delete(res);
47
+ });
48
+ });
49
+ // POST endpoint for client-to-server communication
50
+ this.app.post('/message', (req, res) => {
51
+ const message = req.body;
52
+ console.error(`[SSE] Received via POST: ${message.method || 'response'} (id: ${message.id})`);
53
+ // Process the message and get response
54
+ this.notifyHandlers(message);
55
+ // For MCP, just acknowledge receipt - actual response goes via SSE
56
+ res.json({ received: true });
57
+ });
58
+ // CORS preflight
59
+ this.app.options('/message', (req, res) => {
60
+ res.header('Access-Control-Allow-Origin', '*');
61
+ res.header('Access-Control-Allow-Methods', 'POST, OPTIONS');
62
+ res.header('Access-Control-Allow-Headers', 'Content-Type');
63
+ res.sendStatus(200);
64
+ });
65
+ }
66
+ async start(port) {
67
+ if (port)
68
+ this.port = port;
69
+ return new Promise((resolve, reject) => {
70
+ this.server = this.app.listen(this.port, () => {
71
+ console.error(`[SSE] Transport started on port ${this.port}`);
72
+ console.error(`[SSE] Endpoints: GET /sse (event stream), POST /message (commands)`);
73
+ resolve();
74
+ });
75
+ this.server.on('error', reject);
76
+ });
77
+ }
78
+ async stop() {
79
+ return new Promise((resolve) => {
80
+ // Close all SSE connections
81
+ this.clients.forEach(client => {
82
+ client.write(`data: ${JSON.stringify({ type: 'closing' })}\n\n`);
83
+ client.end();
84
+ });
85
+ this.clients.clear();
86
+ if (this.server) {
87
+ this.server.close(() => {
88
+ console.error('[SSE] Transport stopped');
89
+ resolve();
90
+ });
91
+ }
92
+ else {
93
+ resolve();
94
+ }
95
+ });
96
+ }
97
+ sendMessage(message) {
98
+ const eventData = `data: ${JSON.stringify(message)}\n\n`;
99
+ console.error(`[SSE] Broadcasting to ${this.clients.size} clients: ${message.result ? 'success' : message.error ? 'error' : 'request'}`);
100
+ this.clients.forEach(client => {
101
+ client.write(eventData);
102
+ });
103
+ }
104
+ }
105
+ exports.SSETransport = SSETransport;
106
+ //# sourceMappingURL=sse-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-transport.js","sourceRoot":"","sources":["../../src/transport/sse-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { BaseTransport, MCPMessage } from './base-transport';
2
+ export declare class StdioTransport extends BaseTransport {
3
+ private buffer;
4
+ start(): Promise<void>;
5
+ stop(): Promise<void>;
6
+ sendMessage(message: MCPMessage): void;
7
+ }
8
+ //# sourceMappingURL=stdio-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,qBAAa,cAAe,SAAQ,aAAa;IAC/C,OAAO,CAAC,MAAM,CAAM;IAEd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAIvC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StdioTransport = void 0;
4
+ const base_transport_1 = require("./base-transport");
5
+ class StdioTransport extends base_transport_1.BaseTransport {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.buffer = '';
9
+ }
10
+ async start() {
11
+ process.stdin.on('data', (data) => {
12
+ this.buffer += data.toString();
13
+ const lines = this.buffer.split('\n');
14
+ this.buffer = lines.pop() || '';
15
+ for (const line of lines) {
16
+ if (line.trim()) {
17
+ try {
18
+ const message = JSON.parse(line);
19
+ console.error(`[STDIO] Received: ${message.method || 'response'} (id: ${message.id})`);
20
+ this.notifyHandlers(message);
21
+ }
22
+ catch (error) {
23
+ console.error('[STDIO] Error parsing message:', error);
24
+ }
25
+ }
26
+ }
27
+ });
28
+ process.stdin.on('end', () => {
29
+ console.error('[STDIO] STDIN ended');
30
+ process.exit(0);
31
+ });
32
+ process.on('SIGINT', () => {
33
+ console.error('[STDIO] Interrupted');
34
+ process.exit(0);
35
+ });
36
+ process.on('SIGTERM', () => {
37
+ console.error('[STDIO] Terminated');
38
+ process.exit(0);
39
+ });
40
+ process.stdin.resume();
41
+ console.error('[STDIO] Transport started');
42
+ }
43
+ async stop() {
44
+ process.stdin.pause();
45
+ console.error('[STDIO] Transport stopped');
46
+ }
47
+ sendMessage(message) {
48
+ console.error(`[STDIO] Sending: ${message.result ? 'success' : message.error ? 'error' : 'request'}`);
49
+ process.stdout.write(JSON.stringify(message) + '\n');
50
+ }
51
+ }
52
+ exports.StdioTransport = StdioTransport;
53
+ //# sourceMappingURL=stdio-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAE7D,MAAa,cAAe,SAAQ,8BAAa;IAAjD;;QACU,WAAM,GAAG,EAAE,CAAC;IAiDtB,CAAC;IA/CC,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,MAAM,IAAI,UAAU,SAAS,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBACvF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,OAAmB;QAC7B,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;CACF;AAlDD,wCAkDC"}
@@ -0,0 +1,15 @@
1
+ import { BaseTransport, MCPMessage } from './base-transport';
2
+ export declare class StreamableHTTPTransport extends BaseTransport {
3
+ private app;
4
+ private server;
5
+ private port;
6
+ private sessions;
7
+ constructor(port?: number);
8
+ private setupRoutes;
9
+ private generateSessionId;
10
+ private processMessage;
11
+ start(port?: number): Promise<void>;
12
+ stop(): Promise<void>;
13
+ sendMessage(message: MCPMessage): void;
14
+ }
15
+ //# sourceMappingURL=streamable-http-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamable-http-transport.d.ts","sourceRoot":"","sources":["../../src/transport/streamable-http-transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG7D,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,QAAQ,CAA+B;gBAEnC,IAAI,CAAC,EAAE,MAAM;IAOzB,OAAO,CAAC,WAAW;IAqFnB,OAAO,CAAC,iBAAiB;YAIX,cAAc;IAwBtB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAUvC"}