@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.
- package/README.md +553 -0
- package/dist/client/MCPClient.d.ts +24 -0
- package/dist/client/MCPClient.d.ts.map +1 -0
- package/dist/client/MCPClient.js +211 -0
- package/dist/client/MCPClient.js.map +1 -0
- package/dist/client/MCPClientUnified.d.ts +31 -0
- package/dist/client/MCPClientUnified.d.ts.map +1 -0
- package/dist/client/MCPClientUnified.js +275 -0
- package/dist/client/MCPClientUnified.js.map +1 -0
- package/dist/client/MCPTestRunner.d.ts +44 -0
- package/dist/client/MCPTestRunner.d.ts.map +1 -0
- package/dist/client/MCPTestRunner.js +220 -0
- package/dist/client/MCPTestRunner.js.map +1 -0
- package/dist/client/MCPTestRunnerUnified.d.ts +48 -0
- package/dist/client/MCPTestRunnerUnified.d.ts.map +1 -0
- package/dist/client/MCPTestRunnerUnified.js +183 -0
- package/dist/client/MCPTestRunnerUnified.js.map +1 -0
- package/dist/database/json-manager.d.ts +55 -0
- package/dist/database/json-manager.d.ts.map +1 -0
- package/dist/database/json-manager.js +128 -0
- package/dist/database/json-manager.js.map +1 -0
- package/dist/database/sqlite-manager.d.ts +53 -0
- package/dist/database/sqlite-manager.d.ts.map +1 -0
- package/dist/database/sqlite-manager.js +193 -0
- package/dist/database/sqlite-manager.js.map +1 -0
- package/dist/dynamic-mcp-executor.d.ts +14 -0
- package/dist/dynamic-mcp-executor.d.ts.map +1 -0
- package/dist/dynamic-mcp-executor.js +274 -0
- package/dist/dynamic-mcp-executor.js.map +1 -0
- package/dist/generators/MCPServerGenerator-new.d.ts +37 -0
- package/dist/generators/MCPServerGenerator-new.d.ts.map +1 -0
- package/dist/generators/MCPServerGenerator-new.js +287 -0
- package/dist/generators/MCPServerGenerator-new.js.map +1 -0
- package/dist/generators/MCPServerGenerator.d.ts +42 -0
- package/dist/generators/MCPServerGenerator.d.ts.map +1 -0
- package/dist/generators/MCPServerGenerator.js +494 -0
- package/dist/generators/MCPServerGenerator.js.map +1 -0
- package/dist/generators/database/sqlite-manager.d.ts +52 -0
- package/dist/generators/database/sqlite-manager.js +143 -0
- package/dist/generators/generators/MCPServerGenerator.d.ts +37 -0
- package/dist/generators/generators/MCPServerGenerator.js +396 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/integrated-mcp-server-new.d.ts +12 -0
- package/dist/integrated-mcp-server-new.d.ts.map +1 -0
- package/dist/integrated-mcp-server-new.js +253 -0
- package/dist/integrated-mcp-server-new.js.map +1 -0
- package/dist/integrated-mcp-server.d.ts +25 -0
- package/dist/integrated-mcp-server.d.ts.map +1 -0
- package/dist/integrated-mcp-server.js +541 -0
- package/dist/integrated-mcp-server.js.map +1 -0
- package/dist/mcp-inspector-server.d.ts +3 -0
- package/dist/mcp-inspector-server.d.ts.map +1 -0
- package/dist/mcp-inspector-server.js +119 -0
- package/dist/mcp-inspector-server.js.map +1 -0
- package/dist/mcp-sdk-server.d.ts +3 -0
- package/dist/mcp-sdk-server.d.ts.map +1 -0
- package/dist/mcp-sdk-server.js +90 -0
- package/dist/mcp-sdk-server.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +300 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/parsers/CsvParser.d.ts +7 -0
- package/dist/parsers/CsvParser.d.ts.map +1 -0
- package/dist/parsers/CsvParser.js +98 -0
- package/dist/parsers/CsvParser.js.map +1 -0
- package/dist/parsers/DatabaseParser.d.ts +18 -0
- package/dist/parsers/DatabaseParser.d.ts.map +1 -0
- package/dist/parsers/DatabaseParser.js +372 -0
- package/dist/parsers/DatabaseParser.js.map +1 -0
- package/dist/parsers/ExcelParser.d.ts +8 -0
- package/dist/parsers/ExcelParser.d.ts.map +1 -0
- package/dist/parsers/ExcelParser.js +119 -0
- package/dist/parsers/ExcelParser.js.map +1 -0
- package/dist/parsers/index.d.ts +13 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +88 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/parsers/ExcelParser.js +118 -0
- package/dist/parsers/types/index.js +2 -0
- package/dist/quickmcp-unified-bridge.d.ts +13 -0
- package/dist/quickmcp-unified-bridge.d.ts.map +1 -0
- package/dist/quickmcp-unified-bridge.js +176 -0
- package/dist/quickmcp-unified-bridge.js.map +1 -0
- package/dist/server/ServerManager.d.ts +37 -0
- package/dist/server/ServerManager.d.ts.map +1 -0
- package/dist/server/ServerManager.js +376 -0
- package/dist/server/ServerManager.js.map +1 -0
- package/dist/sqlite-manager.js +145 -0
- package/dist/start-new-server.d.ts +3 -0
- package/dist/start-new-server.d.ts.map +1 -0
- package/dist/start-new-server.js +10 -0
- package/dist/start-new-server.js.map +1 -0
- package/dist/test-app.d.ts +2 -0
- package/dist/test-app.d.ts.map +1 -0
- package/dist/test-app.js +119 -0
- package/dist/test-app.js.map +1 -0
- package/dist/test-new-architecture.d.ts +3 -0
- package/dist/test-new-architecture.d.ts.map +1 -0
- package/dist/test-new-architecture.js +72 -0
- package/dist/test-new-architecture.js.map +1 -0
- package/dist/transport/base-transport.d.ts +21 -0
- package/dist/transport/base-transport.d.ts.map +1 -0
- package/dist/transport/base-transport.js +16 -0
- package/dist/transport/base-transport.js.map +1 -0
- package/dist/transport/index.d.ts +10 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +12 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/sse-transport.d.ts +13 -0
- package/dist/transport/sse-transport.d.ts.map +1 -0
- package/dist/transport/sse-transport.js +106 -0
- package/dist/transport/sse-transport.js.map +1 -0
- package/dist/transport/stdio-transport.d.ts +8 -0
- package/dist/transport/stdio-transport.d.ts.map +1 -0
- package/dist/transport/stdio-transport.js +53 -0
- package/dist/transport/stdio-transport.js.map +1 -0
- package/dist/transport/streamable-http-transport.d.ts +15 -0
- package/dist/transport/streamable-http-transport.d.ts.map +1 -0
- package/dist/transport/streamable-http-transport.js +151 -0
- package/dist/transport/streamable-http-transport.js.map +1 -0
- package/dist/types/index.d.ts +64 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/web/client/MCPClient.js +348 -0
- package/dist/web/client/MCPTestRunner.js +317 -0
- package/dist/web/database/json-manager.js +124 -0
- package/dist/web/database/sqlite-manager.js +146 -0
- package/dist/web/dynamic-mcp-executor.js +443 -0
- package/dist/web/generators/MCPServerGenerator-new.js +284 -0
- package/dist/web/generators/MCPServerGenerator.js +566 -0
- package/dist/web/integrated-mcp-server-new.js +394 -0
- package/dist/web/parsers/CsvParser.js +144 -0
- package/dist/web/parsers/DatabaseParser.js +637 -0
- package/dist/web/parsers/ExcelParser.js +180 -0
- package/dist/web/parsers/index.js +152 -0
- package/dist/web/server.d.ts +3 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +790 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/types/index.js +2 -0
- package/dist/web/web/server.js +860 -0
- package/package.json +68 -0
- package/quickmcp-direct-stdio.js +328 -0
- package/src/web/public/app.js +1795 -0
- package/src/web/public/database-tables.html +711 -0
- package/src/web/public/how-to-use.html +571 -0
- package/src/web/public/how-to-use.js +255 -0
- package/src/web/public/images/1-claude-quickmcp-stdio.png +0 -0
- package/src/web/public/images/2-claude-tools.png +0 -0
- package/src/web/public/images/3-claude-developer-settings.png +0 -0
- package/src/web/public/images/4-claude-config.png +0 -0
- package/src/web/public/images/5-claude-config-edit.png +0 -0
- package/src/web/public/index.html +626 -0
- package/src/web/public/manage-servers.html +198 -0
- package/src/web/public/modern-styles.css +946 -0
- package/src/web/public/shared-styles.css +2091 -0
- package/src/web/public/shared.js +93 -0
- package/src/web/public/test-servers.html +302 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLiteManager = void 0;
|
|
4
|
+
var better_sqlite3_1 = require("better-sqlite3");
|
|
5
|
+
var path_1 = require("path");
|
|
6
|
+
var fs_1 = require("fs");
|
|
7
|
+
var SQLiteManager = /** @class */ (function () {
|
|
8
|
+
function SQLiteManager() {
|
|
9
|
+
// Create database directory if it doesn't exist
|
|
10
|
+
var dbDir = path_1.default.join(process.cwd(), 'data');
|
|
11
|
+
if (!fs_1.default.existsSync(dbDir)) {
|
|
12
|
+
fs_1.default.mkdirSync(dbDir, { recursive: true });
|
|
13
|
+
}
|
|
14
|
+
this.dbPath = path_1.default.join(dbDir, 'quickmcp.sqlite');
|
|
15
|
+
this.db = new better_sqlite3_1.default(this.dbPath);
|
|
16
|
+
this.initializeTables();
|
|
17
|
+
}
|
|
18
|
+
SQLiteManager.prototype.initializeTables = function () {
|
|
19
|
+
// Servers table
|
|
20
|
+
this.db.exec("\n CREATE TABLE IF NOT EXISTS servers (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n db_config TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP\n )\n ");
|
|
21
|
+
// Tools table
|
|
22
|
+
this.db.exec("\n CREATE TABLE IF NOT EXISTS tools (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n server_id TEXT NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL,\n input_schema TEXT NOT NULL,\n sql_query TEXT NOT NULL,\n operation TEXT NOT NULL CHECK (operation IN ('SELECT', 'INSERT', 'UPDATE', 'DELETE')),\n created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (server_id) REFERENCES servers (id) ON DELETE CASCADE,\n UNIQUE(server_id, name)\n )\n ");
|
|
23
|
+
// Resources table
|
|
24
|
+
this.db.exec("\n CREATE TABLE IF NOT EXISTS resources (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n server_id TEXT NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL,\n uri_template TEXT NOT NULL,\n sql_query TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (server_id) REFERENCES servers (id) ON DELETE CASCADE,\n UNIQUE(server_id, name)\n )\n ");
|
|
25
|
+
console.error('✅ SQLite database initialized:', this.dbPath);
|
|
26
|
+
};
|
|
27
|
+
// Server operations
|
|
28
|
+
SQLiteManager.prototype.saveServer = function (server) {
|
|
29
|
+
var stmt = this.db.prepare("\n INSERT OR REPLACE INTO servers (id, name, db_config, created_at, updated_at)\n VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)\n ");
|
|
30
|
+
stmt.run(server.id, server.name, JSON.stringify(server.dbConfig), server.createdAt);
|
|
31
|
+
};
|
|
32
|
+
SQLiteManager.prototype.getServer = function (serverId) {
|
|
33
|
+
var stmt = this.db.prepare('SELECT * FROM servers WHERE id = ?');
|
|
34
|
+
var row = stmt.get(serverId);
|
|
35
|
+
if (!row)
|
|
36
|
+
return null;
|
|
37
|
+
return {
|
|
38
|
+
id: row.id,
|
|
39
|
+
name: row.name,
|
|
40
|
+
dbConfig: JSON.parse(row.db_config),
|
|
41
|
+
createdAt: row.created_at
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
SQLiteManager.prototype.getAllServers = function () {
|
|
45
|
+
var stmt = this.db.prepare('SELECT * FROM servers ORDER BY created_at DESC');
|
|
46
|
+
var rows = stmt.all();
|
|
47
|
+
return rows.map(function (row) { return ({
|
|
48
|
+
id: row.id,
|
|
49
|
+
name: row.name,
|
|
50
|
+
dbConfig: JSON.parse(row.db_config),
|
|
51
|
+
createdAt: row.created_at
|
|
52
|
+
}); });
|
|
53
|
+
};
|
|
54
|
+
SQLiteManager.prototype.deleteServer = function (serverId) {
|
|
55
|
+
var stmt = this.db.prepare('DELETE FROM servers WHERE id = ?');
|
|
56
|
+
stmt.run(serverId);
|
|
57
|
+
};
|
|
58
|
+
// Tool operations
|
|
59
|
+
SQLiteManager.prototype.saveTools = function (tools) {
|
|
60
|
+
var stmt = this.db.prepare("\n INSERT OR REPLACE INTO tools (server_id, name, description, input_schema, sql_query, operation)\n VALUES (?, ?, ?, ?, ?, ?)\n ");
|
|
61
|
+
var transaction = this.db.transaction(function (tools) {
|
|
62
|
+
for (var _i = 0, tools_1 = tools; _i < tools_1.length; _i++) {
|
|
63
|
+
var tool = tools_1[_i];
|
|
64
|
+
stmt.run(tool.server_id, tool.name, tool.description, JSON.stringify(tool.inputSchema), tool.sqlQuery, tool.operation);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
transaction(tools);
|
|
68
|
+
};
|
|
69
|
+
SQLiteManager.prototype.getToolsForServer = function (serverId) {
|
|
70
|
+
var stmt = this.db.prepare('SELECT * FROM tools WHERE server_id = ?');
|
|
71
|
+
var rows = stmt.all(serverId);
|
|
72
|
+
return rows.map(function (row) { return ({
|
|
73
|
+
server_id: row.server_id,
|
|
74
|
+
name: row.name,
|
|
75
|
+
description: row.description,
|
|
76
|
+
inputSchema: JSON.parse(row.input_schema),
|
|
77
|
+
sqlQuery: row.sql_query,
|
|
78
|
+
operation: row.operation
|
|
79
|
+
}); });
|
|
80
|
+
};
|
|
81
|
+
SQLiteManager.prototype.getAllTools = function () {
|
|
82
|
+
var stmt = this.db.prepare('SELECT * FROM tools ORDER BY server_id, name');
|
|
83
|
+
var rows = stmt.all();
|
|
84
|
+
return rows.map(function (row) { return ({
|
|
85
|
+
server_id: row.server_id,
|
|
86
|
+
name: row.name,
|
|
87
|
+
description: row.description,
|
|
88
|
+
inputSchema: JSON.parse(row.input_schema),
|
|
89
|
+
sqlQuery: row.sql_query,
|
|
90
|
+
operation: row.operation
|
|
91
|
+
}); });
|
|
92
|
+
};
|
|
93
|
+
// Resource operations
|
|
94
|
+
SQLiteManager.prototype.saveResources = function (resources) {
|
|
95
|
+
var stmt = this.db.prepare("\n INSERT OR REPLACE INTO resources (server_id, name, description, uri_template, sql_query)\n VALUES (?, ?, ?, ?, ?)\n ");
|
|
96
|
+
var transaction = this.db.transaction(function (resources) {
|
|
97
|
+
for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {
|
|
98
|
+
var resource = resources_1[_i];
|
|
99
|
+
stmt.run(resource.server_id, resource.name, resource.description, resource.uri_template, resource.sqlQuery);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
transaction(resources);
|
|
103
|
+
};
|
|
104
|
+
SQLiteManager.prototype.getResourcesForServer = function (serverId) {
|
|
105
|
+
var stmt = this.db.prepare('SELECT * FROM resources WHERE server_id = ?');
|
|
106
|
+
var rows = stmt.all(serverId);
|
|
107
|
+
return rows.map(function (row) { return ({
|
|
108
|
+
server_id: row.server_id,
|
|
109
|
+
name: row.name,
|
|
110
|
+
description: row.description,
|
|
111
|
+
uri_template: row.uri_template,
|
|
112
|
+
sqlQuery: row.sql_query
|
|
113
|
+
}); });
|
|
114
|
+
};
|
|
115
|
+
SQLiteManager.prototype.getAllResources = function () {
|
|
116
|
+
var stmt = this.db.prepare('SELECT * FROM resources ORDER BY server_id, name');
|
|
117
|
+
var rows = stmt.all();
|
|
118
|
+
return rows.map(function (row) { return ({
|
|
119
|
+
server_id: row.server_id,
|
|
120
|
+
name: row.name,
|
|
121
|
+
description: row.description,
|
|
122
|
+
uri_template: row.uri_template,
|
|
123
|
+
sqlQuery: row.sql_query
|
|
124
|
+
}); });
|
|
125
|
+
};
|
|
126
|
+
// Cleanup
|
|
127
|
+
SQLiteManager.prototype.close = function () {
|
|
128
|
+
this.db.close();
|
|
129
|
+
};
|
|
130
|
+
// Statistics
|
|
131
|
+
SQLiteManager.prototype.getStats = function () {
|
|
132
|
+
var serversCount = this.db.prepare('SELECT COUNT(*) as count FROM servers').get();
|
|
133
|
+
var toolsCount = this.db.prepare('SELECT COUNT(*) as count FROM tools').get();
|
|
134
|
+
var resourcesCount = this.db.prepare('SELECT COUNT(*) as count FROM resources').get();
|
|
135
|
+
return {
|
|
136
|
+
servers: serversCount.count,
|
|
137
|
+
tools: toolsCount.count,
|
|
138
|
+
resources: resourcesCount.count
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
return SQLiteManager;
|
|
142
|
+
}());
|
|
143
|
+
exports.SQLiteManager = SQLiteManager;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ServerConfig, ToolDefinition, ResourceDefinition } from '../database/sqlite-manager.js';
|
|
2
|
+
interface ParsedData {
|
|
3
|
+
[tableName: string]: any[];
|
|
4
|
+
}
|
|
5
|
+
export declare class MCPServerGenerator {
|
|
6
|
+
private sqliteManager;
|
|
7
|
+
constructor();
|
|
8
|
+
generateServer(serverId: string, serverName: string, parsedData: ParsedData, dbConfig: any): Promise<{
|
|
9
|
+
success: boolean;
|
|
10
|
+
message: string;
|
|
11
|
+
}>;
|
|
12
|
+
private generateToolsForData;
|
|
13
|
+
private generateResourcesForData;
|
|
14
|
+
private analyzeColumns;
|
|
15
|
+
private generateFilterProperties;
|
|
16
|
+
private generateInputProperties;
|
|
17
|
+
private generateSelectQuery;
|
|
18
|
+
private generateInsertQuery;
|
|
19
|
+
private generateUpdateQuery;
|
|
20
|
+
private generateDeleteQuery;
|
|
21
|
+
private generateCountQuery;
|
|
22
|
+
private sanitizeName;
|
|
23
|
+
getAllServers(): ServerConfig[];
|
|
24
|
+
getServer(serverId: string): ServerConfig | null;
|
|
25
|
+
deleteServer(serverId: string): void;
|
|
26
|
+
getAllTools(): ToolDefinition[];
|
|
27
|
+
getToolsForServer(serverId: string): ToolDefinition[];
|
|
28
|
+
getAllResources(): ResourceDefinition[];
|
|
29
|
+
getResourcesForServer(serverId: string): ResourceDefinition[];
|
|
30
|
+
getStats(): {
|
|
31
|
+
servers: number;
|
|
32
|
+
tools: number;
|
|
33
|
+
resources: number;
|
|
34
|
+
};
|
|
35
|
+
close(): void;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.MCPServerGenerator = void 0;
|
|
51
|
+
var sqlite_manager_js_1 = require("../database/sqlite-manager.js");
|
|
52
|
+
var MCPServerGenerator = /** @class */ (function () {
|
|
53
|
+
function MCPServerGenerator() {
|
|
54
|
+
this.sqliteManager = new sqlite_manager_js_1.SQLiteManager();
|
|
55
|
+
}
|
|
56
|
+
MCPServerGenerator.prototype.generateServer = function (serverId, serverName, parsedData, dbConfig) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
+
var serverConfig, tools, resources;
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
try {
|
|
61
|
+
console.log("\uD83D\uDE80 Generating virtual MCP server: ".concat(serverId));
|
|
62
|
+
// Create server config
|
|
63
|
+
console.log("\uD83D\uDCDD Creating server config with serverId: \"".concat(serverId, "\", serverName: \"").concat(serverName, "\""));
|
|
64
|
+
serverConfig = {
|
|
65
|
+
id: serverId,
|
|
66
|
+
name: serverName,
|
|
67
|
+
dbConfig: dbConfig,
|
|
68
|
+
createdAt: new Date().toISOString()
|
|
69
|
+
};
|
|
70
|
+
console.log('📄 Server config created:', JSON.stringify(serverConfig, null, 2));
|
|
71
|
+
// Save server to SQLite database only
|
|
72
|
+
this.sqliteManager.saveServer(serverConfig);
|
|
73
|
+
console.log("\u2705 Server config saved to SQLite database: ".concat(serverId));
|
|
74
|
+
tools = this.generateToolsForData(serverId, parsedData, dbConfig);
|
|
75
|
+
if (tools.length > 0) {
|
|
76
|
+
this.sqliteManager.saveTools(tools);
|
|
77
|
+
console.log("\u2705 Generated ".concat(tools.length, " tools for server ").concat(serverId));
|
|
78
|
+
}
|
|
79
|
+
resources = this.generateResourcesForData(serverId, parsedData, dbConfig);
|
|
80
|
+
if (resources.length > 0) {
|
|
81
|
+
this.sqliteManager.saveResources(resources);
|
|
82
|
+
console.log("\u2705 Generated ".concat(resources.length, " resources for server ").concat(serverId));
|
|
83
|
+
}
|
|
84
|
+
return [2 /*return*/, {
|
|
85
|
+
success: true,
|
|
86
|
+
message: "Virtual MCP server '".concat(serverId, "' created successfully with ").concat(tools.length, " tools and ").concat(resources.length, " resources")
|
|
87
|
+
}];
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error("\u274C Error generating server ".concat(serverId, ":"), error);
|
|
91
|
+
return [2 /*return*/, {
|
|
92
|
+
success: false,
|
|
93
|
+
message: "Failed to generate server: ".concat(error instanceof Error ? error.message : 'Unknown error')
|
|
94
|
+
}];
|
|
95
|
+
}
|
|
96
|
+
return [2 /*return*/];
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
MCPServerGenerator.prototype.generateToolsForData = function (serverId, parsedData, dbConfig) {
|
|
101
|
+
var tools = [];
|
|
102
|
+
for (var _i = 0, _a = Object.entries(parsedData); _i < _a.length; _i++) {
|
|
103
|
+
var _b = _a[_i], tableName = _b[0], rows = _b[1];
|
|
104
|
+
if (!rows || rows.length === 0)
|
|
105
|
+
continue;
|
|
106
|
+
var columns = this.analyzeColumns(rows);
|
|
107
|
+
var cleanTableName = this.sanitizeName(tableName);
|
|
108
|
+
// GET tool
|
|
109
|
+
tools.push({
|
|
110
|
+
server_id: serverId,
|
|
111
|
+
name: "get_".concat(cleanTableName),
|
|
112
|
+
description: "Get records from ".concat(tableName, " table"),
|
|
113
|
+
inputSchema: {
|
|
114
|
+
type: 'object',
|
|
115
|
+
properties: __assign({ limit: {
|
|
116
|
+
type: 'number',
|
|
117
|
+
description: 'Maximum number of records to return',
|
|
118
|
+
default: 100,
|
|
119
|
+
minimum: 1,
|
|
120
|
+
maximum: 1000
|
|
121
|
+
}, offset: {
|
|
122
|
+
type: 'number',
|
|
123
|
+
description: 'Number of records to skip',
|
|
124
|
+
default: 0,
|
|
125
|
+
minimum: 0
|
|
126
|
+
} }, this.generateFilterProperties(columns)),
|
|
127
|
+
required: []
|
|
128
|
+
},
|
|
129
|
+
sqlQuery: this.generateSelectQuery(tableName, columns, dbConfig.type),
|
|
130
|
+
operation: 'SELECT'
|
|
131
|
+
});
|
|
132
|
+
// CREATE tool
|
|
133
|
+
tools.push({
|
|
134
|
+
server_id: serverId,
|
|
135
|
+
name: "create_".concat(cleanTableName),
|
|
136
|
+
description: "Create a new record in ".concat(tableName, " table"),
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: this.generateInputProperties(columns, true),
|
|
140
|
+
required: columns.filter(function (col) { return !col.nullable && col.name.toLowerCase() !== 'id'; }).map(function (col) { return col.name; })
|
|
141
|
+
},
|
|
142
|
+
sqlQuery: this.generateInsertQuery(tableName, columns, dbConfig.type),
|
|
143
|
+
operation: 'INSERT'
|
|
144
|
+
});
|
|
145
|
+
// UPDATE tool
|
|
146
|
+
if (columns.some(function (col) { return col.name.toLowerCase() === 'id'; })) {
|
|
147
|
+
tools.push({
|
|
148
|
+
server_id: serverId,
|
|
149
|
+
name: "update_".concat(cleanTableName),
|
|
150
|
+
description: "Update a record in ".concat(tableName, " table"),
|
|
151
|
+
inputSchema: {
|
|
152
|
+
type: 'object',
|
|
153
|
+
properties: __assign({ id: {
|
|
154
|
+
type: ['string', 'number'],
|
|
155
|
+
description: 'ID of the record to update'
|
|
156
|
+
} }, this.generateInputProperties(columns, false)),
|
|
157
|
+
required: ['id']
|
|
158
|
+
},
|
|
159
|
+
sqlQuery: this.generateUpdateQuery(tableName, columns, dbConfig.type),
|
|
160
|
+
operation: 'UPDATE'
|
|
161
|
+
});
|
|
162
|
+
// DELETE tool
|
|
163
|
+
tools.push({
|
|
164
|
+
server_id: serverId,
|
|
165
|
+
name: "delete_".concat(cleanTableName),
|
|
166
|
+
description: "Delete a record from ".concat(tableName, " table"),
|
|
167
|
+
inputSchema: {
|
|
168
|
+
type: 'object',
|
|
169
|
+
properties: {
|
|
170
|
+
id: {
|
|
171
|
+
type: ['string', 'number'],
|
|
172
|
+
description: 'ID of the record to delete'
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
required: ['id']
|
|
176
|
+
},
|
|
177
|
+
sqlQuery: this.generateDeleteQuery(tableName, dbConfig.type),
|
|
178
|
+
operation: 'DELETE'
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
// COUNT tool
|
|
182
|
+
tools.push({
|
|
183
|
+
server_id: serverId,
|
|
184
|
+
name: "count_".concat(cleanTableName),
|
|
185
|
+
description: "Get total count of records in ".concat(tableName, " table"),
|
|
186
|
+
inputSchema: {
|
|
187
|
+
type: 'object',
|
|
188
|
+
properties: this.generateFilterProperties(columns),
|
|
189
|
+
required: []
|
|
190
|
+
},
|
|
191
|
+
sqlQuery: this.generateCountQuery(tableName, columns, dbConfig.type),
|
|
192
|
+
operation: 'SELECT'
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return tools;
|
|
196
|
+
};
|
|
197
|
+
MCPServerGenerator.prototype.generateResourcesForData = function (serverId, parsedData, dbConfig) {
|
|
198
|
+
var resources = [];
|
|
199
|
+
for (var _i = 0, _a = Object.entries(parsedData); _i < _a.length; _i++) {
|
|
200
|
+
var _b = _a[_i], tableName = _b[0], rows = _b[1];
|
|
201
|
+
if (!rows || rows.length === 0)
|
|
202
|
+
continue;
|
|
203
|
+
var cleanTableName = this.sanitizeName(tableName);
|
|
204
|
+
resources.push({
|
|
205
|
+
server_id: serverId,
|
|
206
|
+
name: "".concat(cleanTableName, "_list"),
|
|
207
|
+
description: "List all records from ".concat(tableName, " table"),
|
|
208
|
+
uri_template: "".concat(cleanTableName, "://list"),
|
|
209
|
+
sqlQuery: this.generateSelectQuery(tableName, this.analyzeColumns(rows), dbConfig.type, false)
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
return resources;
|
|
213
|
+
};
|
|
214
|
+
MCPServerGenerator.prototype.analyzeColumns = function (rows) {
|
|
215
|
+
if (!rows || rows.length === 0)
|
|
216
|
+
return [];
|
|
217
|
+
var firstRow = rows[0];
|
|
218
|
+
var columns = [];
|
|
219
|
+
var _loop_1 = function (key, value) {
|
|
220
|
+
var type = 'string';
|
|
221
|
+
if (typeof value === 'number') {
|
|
222
|
+
type = Number.isInteger(value) ? 'integer' : 'number';
|
|
223
|
+
}
|
|
224
|
+
else if (typeof value === 'boolean') {
|
|
225
|
+
type = 'boolean';
|
|
226
|
+
}
|
|
227
|
+
else if (value instanceof Date) {
|
|
228
|
+
type = 'string'; // Dates are handled as strings in JSON
|
|
229
|
+
}
|
|
230
|
+
else if (value === null || value === undefined) {
|
|
231
|
+
// Check other rows to determine type
|
|
232
|
+
for (var i = 1; i < Math.min(rows.length, 10); i++) {
|
|
233
|
+
var otherValue = rows[i][key];
|
|
234
|
+
if (otherValue !== null && otherValue !== undefined) {
|
|
235
|
+
if (typeof otherValue === 'number') {
|
|
236
|
+
type = Number.isInteger(otherValue) ? 'integer' : 'number';
|
|
237
|
+
}
|
|
238
|
+
else if (typeof otherValue === 'boolean') {
|
|
239
|
+
type = 'boolean';
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
columns.push({
|
|
246
|
+
name: key,
|
|
247
|
+
type: type,
|
|
248
|
+
nullable: rows.some(function (row) { return row[key] === null || row[key] === undefined; })
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
for (var _i = 0, _a = Object.entries(firstRow); _i < _a.length; _i++) {
|
|
252
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
253
|
+
_loop_1(key, value);
|
|
254
|
+
}
|
|
255
|
+
return columns;
|
|
256
|
+
};
|
|
257
|
+
MCPServerGenerator.prototype.generateFilterProperties = function (columns) {
|
|
258
|
+
var properties = {};
|
|
259
|
+
for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
|
|
260
|
+
var column = columns_1[_i];
|
|
261
|
+
var baseType = column.type === 'integer' ? 'number' : column.type;
|
|
262
|
+
properties["filter_".concat(column.name)] = {
|
|
263
|
+
type: baseType,
|
|
264
|
+
description: "Filter by ".concat(column.name)
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
return properties;
|
|
268
|
+
};
|
|
269
|
+
MCPServerGenerator.prototype.generateInputProperties = function (columns, isCreate) {
|
|
270
|
+
var properties = {};
|
|
271
|
+
for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) {
|
|
272
|
+
var column = columns_2[_i];
|
|
273
|
+
// Skip ID field for create operations
|
|
274
|
+
if (isCreate && column.name.toLowerCase() === 'id')
|
|
275
|
+
continue;
|
|
276
|
+
var baseType = column.type === 'integer' ? 'number' : column.type;
|
|
277
|
+
properties[column.name] = {
|
|
278
|
+
type: baseType,
|
|
279
|
+
description: "".concat(column.name, " field")
|
|
280
|
+
};
|
|
281
|
+
// For nullable fields, make them not required instead of using union types
|
|
282
|
+
if (column.nullable && !isCreate) {
|
|
283
|
+
// Optional field - will not be added to required array
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return properties;
|
|
287
|
+
};
|
|
288
|
+
MCPServerGenerator.prototype.generateSelectQuery = function (tableName, columns, dbType, withParams) {
|
|
289
|
+
if (withParams === void 0) { withParams = true; }
|
|
290
|
+
var columnList = columns.map(function (col) { return "[".concat(col.name, "]"); }).join(', ');
|
|
291
|
+
var query = "SELECT ".concat(columnList, " FROM [").concat(tableName, "]");
|
|
292
|
+
if (withParams) {
|
|
293
|
+
// Filter out problematic columns for WHERE clause (e.g., ntext columns in SQL Server)
|
|
294
|
+
var filterableColumns = columns.filter(function (col) {
|
|
295
|
+
// For SQL Server, exclude large text columns that can't be compared
|
|
296
|
+
if (dbType === 'mssql') {
|
|
297
|
+
// Skip columns that might be ntext, text, or image types
|
|
298
|
+
// These are typically identified by their string type and large content
|
|
299
|
+
return true; // We'll handle this at parameter level instead
|
|
300
|
+
}
|
|
301
|
+
return true;
|
|
302
|
+
});
|
|
303
|
+
var whereConditions = filterableColumns.map(function (col) {
|
|
304
|
+
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
305
|
+
}).join(' AND ');
|
|
306
|
+
query += " WHERE ".concat(whereConditions);
|
|
307
|
+
// Add ORDER BY clause for consistent pagination
|
|
308
|
+
// Find the first suitable column for ordering (prefer id, created_at, or first column)
|
|
309
|
+
var orderColumn = columns.find(function (col) {
|
|
310
|
+
return col.name.toLowerCase() === 'id' ||
|
|
311
|
+
col.name.toLowerCase().includes('created') ||
|
|
312
|
+
col.name.toLowerCase().includes('timestamp');
|
|
313
|
+
}) || columns[0];
|
|
314
|
+
if (orderColumn) {
|
|
315
|
+
query += " ORDER BY [".concat(orderColumn.name, "]");
|
|
316
|
+
}
|
|
317
|
+
if (dbType === 'mssql') {
|
|
318
|
+
// Use OFFSET/FETCH for proper pagination with ORDER BY
|
|
319
|
+
query += ' OFFSET @offset ROWS FETCH NEXT @limit ROWS ONLY';
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
query += ' LIMIT @limit OFFSET @offset';
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return query;
|
|
326
|
+
};
|
|
327
|
+
MCPServerGenerator.prototype.generateInsertQuery = function (tableName, columns, dbType) {
|
|
328
|
+
var insertColumns = columns.filter(function (col) { return col.name.toLowerCase() !== 'id'; });
|
|
329
|
+
var columnNames = insertColumns.map(function (col) { return "[".concat(col.name, "]"); }).join(', ');
|
|
330
|
+
var paramNames = insertColumns.map(function (col) { return "@".concat(col.name); }).join(', ');
|
|
331
|
+
return "INSERT INTO [".concat(tableName, "] (").concat(columnNames, ") VALUES (").concat(paramNames, ")");
|
|
332
|
+
};
|
|
333
|
+
MCPServerGenerator.prototype.generateUpdateQuery = function (tableName, columns, dbType) {
|
|
334
|
+
var updateColumns = columns.filter(function (col) { return col.name.toLowerCase() !== 'id'; });
|
|
335
|
+
var setClause = updateColumns.map(function (col) { return "[".concat(col.name, "] = @").concat(col.name); }).join(', ');
|
|
336
|
+
return "UPDATE [".concat(tableName, "] SET ").concat(setClause, " WHERE [Id] = @id");
|
|
337
|
+
};
|
|
338
|
+
MCPServerGenerator.prototype.generateDeleteQuery = function (tableName, dbType) {
|
|
339
|
+
return "DELETE FROM [".concat(tableName, "] WHERE [Id] = @id");
|
|
340
|
+
};
|
|
341
|
+
MCPServerGenerator.prototype.generateCountQuery = function (tableName, columns, dbType) {
|
|
342
|
+
var query = "SELECT COUNT(*) as total_count FROM [".concat(tableName, "]");
|
|
343
|
+
// Filter out problematic columns for WHERE clause (e.g., ntext columns in SQL Server)
|
|
344
|
+
var filterableColumns = columns.filter(function (col) {
|
|
345
|
+
// For SQL Server, exclude large text columns that can't be compared
|
|
346
|
+
if (dbType === 'mssql') {
|
|
347
|
+
// Skip columns that might be ntext, text, or image types
|
|
348
|
+
// These are typically identified by their string type and large content
|
|
349
|
+
return true; // We'll handle this at parameter level instead
|
|
350
|
+
}
|
|
351
|
+
return true;
|
|
352
|
+
});
|
|
353
|
+
var whereConditions = filterableColumns.map(function (col) {
|
|
354
|
+
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
355
|
+
}).join(' AND ');
|
|
356
|
+
query += " WHERE ".concat(whereConditions);
|
|
357
|
+
return query;
|
|
358
|
+
};
|
|
359
|
+
MCPServerGenerator.prototype.sanitizeName = function (name) {
|
|
360
|
+
return name.toLowerCase()
|
|
361
|
+
.replace(/[^a-z0-9]/g, '_')
|
|
362
|
+
.replace(/_{2,}/g, '_')
|
|
363
|
+
.replace(/^_|_$/g, '');
|
|
364
|
+
};
|
|
365
|
+
// Public methods for management
|
|
366
|
+
MCPServerGenerator.prototype.getAllServers = function () {
|
|
367
|
+
return this.sqliteManager.getAllServers();
|
|
368
|
+
};
|
|
369
|
+
MCPServerGenerator.prototype.getServer = function (serverId) {
|
|
370
|
+
return this.sqliteManager.getServer(serverId);
|
|
371
|
+
};
|
|
372
|
+
MCPServerGenerator.prototype.deleteServer = function (serverId) {
|
|
373
|
+
this.sqliteManager.deleteServer(serverId);
|
|
374
|
+
console.log("\uD83D\uDDD1\uFE0F Deleted server from SQLite database: ".concat(serverId));
|
|
375
|
+
};
|
|
376
|
+
MCPServerGenerator.prototype.getAllTools = function () {
|
|
377
|
+
return this.sqliteManager.getAllTools();
|
|
378
|
+
};
|
|
379
|
+
MCPServerGenerator.prototype.getToolsForServer = function (serverId) {
|
|
380
|
+
return this.sqliteManager.getToolsForServer(serverId);
|
|
381
|
+
};
|
|
382
|
+
MCPServerGenerator.prototype.getAllResources = function () {
|
|
383
|
+
return this.sqliteManager.getAllResources();
|
|
384
|
+
};
|
|
385
|
+
MCPServerGenerator.prototype.getResourcesForServer = function (serverId) {
|
|
386
|
+
return this.sqliteManager.getResourcesForServer(serverId);
|
|
387
|
+
};
|
|
388
|
+
MCPServerGenerator.prototype.getStats = function () {
|
|
389
|
+
return this.sqliteManager.getStats();
|
|
390
|
+
};
|
|
391
|
+
MCPServerGenerator.prototype.close = function () {
|
|
392
|
+
this.sqliteManager.close();
|
|
393
|
+
};
|
|
394
|
+
return MCPServerGenerator;
|
|
395
|
+
}());
|
|
396
|
+
exports.MCPServerGenerator = MCPServerGenerator;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
require("./web/server");
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./parsers"), exports);
|
|
20
|
+
__exportStar(require("./generators/MCPServerGenerator"), exports);
|
|
21
|
+
__exportStar(require("./client/MCPClient"), exports);
|
|
22
|
+
__exportStar(require("./client/MCPTestRunner"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wBAAsB;AAEtB,0CAAwB;AACxB,4CAA0B;AAC1B,kEAAgD;AAChD,qDAAmC;AACnC,yDAAuC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare class IntegratedMCPServer {
|
|
3
|
+
private server;
|
|
4
|
+
private app;
|
|
5
|
+
private executor;
|
|
6
|
+
constructor();
|
|
7
|
+
private setupHandlers;
|
|
8
|
+
private setupWebRoutes;
|
|
9
|
+
start(port?: number): Promise<void>;
|
|
10
|
+
private cleanup;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=integrated-mcp-server-new.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrated-mcp-server-new.d.ts","sourceRoot":"","sources":["../src/integrated-mcp-server-new.ts"],"names":[],"mappings":";AAgBA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,QAAQ,CAAqB;;IAiBrC,OAAO,CAAC,aAAa;IAkFrB,OAAO,CAAC,cAAc;IA8IhB,KAAK,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YA6BjC,OAAO;CAStB"}
|