@jessejoris/mcp-mysql-via-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PRD.md +364 -0
- package/README.md +202 -0
- package/bin/mcp-mysql-via-api.js +4 -0
- package/dist/api-client/mysqlApiClient.d.ts +46 -0
- package/dist/api-client/mysqlApiClient.js +318 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.js +56 -0
- package/dist/formatters/jsonResponse.d.ts +48 -0
- package/dist/formatters/jsonResponse.js +86 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +25 -0
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.js +75 -0
- package/dist/permissions/permissionManager.d.ts +25 -0
- package/dist/permissions/permissionManager.js +199 -0
- package/dist/server/apiServer.d.ts +7 -0
- package/dist/server/apiServer.js +1502 -0
- package/dist/server/dbPool.d.ts +12 -0
- package/dist/server/dbPool.js +53 -0
- package/dist/server/standalone.d.ts +1 -0
- package/dist/server/standalone.js +19 -0
- package/dist/tools/toolDefinitions.d.ts +5 -0
- package/dist/tools/toolDefinitions.js +725 -0
- package/dist/tools/toolHandlers.d.ts +16 -0
- package/dist/tools/toolHandlers.js +285 -0
- package/dist/types/index.d.ts +184 -0
- package/dist/types/index.js +5 -0
- package/package.json +64 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Pool } from "mysql2/promise";
|
|
2
|
+
export declare class DatabasePoolManager {
|
|
3
|
+
private static instance;
|
|
4
|
+
private pool;
|
|
5
|
+
private mockDriver;
|
|
6
|
+
private constructor();
|
|
7
|
+
static getInstance(): DatabasePoolManager;
|
|
8
|
+
setMockDriver(driver: any): void;
|
|
9
|
+
getPool(): Pool;
|
|
10
|
+
closePool(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare const dbPoolManager: DatabasePoolManager;
|
|
@@ -0,0 +1,53 @@
|
|
|
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.dbPoolManager = exports.DatabasePoolManager = void 0;
|
|
7
|
+
const promise_1 = __importDefault(require("mysql2/promise"));
|
|
8
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
9
|
+
dotenv_1.default.config();
|
|
10
|
+
class DatabasePoolManager {
|
|
11
|
+
static instance;
|
|
12
|
+
pool = null;
|
|
13
|
+
mockDriver = null;
|
|
14
|
+
constructor() { }
|
|
15
|
+
static getInstance() {
|
|
16
|
+
if (!DatabasePoolManager.instance) {
|
|
17
|
+
DatabasePoolManager.instance = new DatabasePoolManager();
|
|
18
|
+
}
|
|
19
|
+
return DatabasePoolManager.instance;
|
|
20
|
+
}
|
|
21
|
+
setMockDriver(driver) {
|
|
22
|
+
this.mockDriver = driver;
|
|
23
|
+
}
|
|
24
|
+
getPool() {
|
|
25
|
+
if (this.mockDriver) {
|
|
26
|
+
return this.mockDriver;
|
|
27
|
+
}
|
|
28
|
+
if (!this.pool) {
|
|
29
|
+
const config = {
|
|
30
|
+
host: process.env.DB_HOST || "localhost",
|
|
31
|
+
port: parseInt(process.env.DB_PORT || "3306", 10),
|
|
32
|
+
user: process.env.DB_USER || "root",
|
|
33
|
+
password: process.env.DB_PASSWORD || "",
|
|
34
|
+
database: process.env.DB_NAME || "test",
|
|
35
|
+
waitForConnections: true,
|
|
36
|
+
connectionLimit: parseInt(process.env.DB_CONNECTION_LIMIT || "10", 10),
|
|
37
|
+
queueLimit: 0,
|
|
38
|
+
enableKeepAlive: true,
|
|
39
|
+
keepAliveInitialDelay: 10000,
|
|
40
|
+
};
|
|
41
|
+
this.pool = promise_1.default.createPool(config);
|
|
42
|
+
}
|
|
43
|
+
return this.pool;
|
|
44
|
+
}
|
|
45
|
+
async closePool() {
|
|
46
|
+
if (this.pool) {
|
|
47
|
+
await this.pool.end();
|
|
48
|
+
this.pool = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DatabasePoolManager = DatabasePoolManager;
|
|
53
|
+
exports.dbPoolManager = DatabasePoolManager.getInstance();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
const apiServer_js_1 = require("./apiServer.js");
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const port = parseInt(process.env.PORT || process.env.SERVER_PORT || "3300", 10);
|
|
10
|
+
const apiKey = process.env.MYSQL_API_KEY || "";
|
|
11
|
+
const app = (0, apiServer_js_1.createApiServer)({ apiKey });
|
|
12
|
+
app.listen(port, () => {
|
|
13
|
+
console.log(`=================================================`);
|
|
14
|
+
console.log(` MySQL MCP API Server running on port ${port}`);
|
|
15
|
+
console.log(` Authentication: ${apiKey ? "Enabled (API Key required)" : "Open (No API Key)"}`);
|
|
16
|
+
console.log(` Endpoints: http://localhost:${port}/api/...`);
|
|
17
|
+
console.log(` Health: http://localhost:${port}/health`);
|
|
18
|
+
console.log(`=================================================`);
|
|
19
|
+
});
|