universal-db-mcp 0.2.0 → 0.3.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/CONTRIBUTING.md CHANGED
@@ -51,6 +51,7 @@
51
51
  - **PostgreSQL** (`src/adapters/postgres.ts`) - 复杂的 Schema 查询
52
52
  - **Redis** (`src/adapters/redis.ts`) - NoSQL 数据库的适配
53
53
  - **Oracle** (`src/adapters/oracle.ts`) - 企业级数据库的完整实现
54
+ - **达梦** (`src/adapters/dm.ts`) - 国产数据库适配,兼容 Oracle
54
55
 
55
56
  ### 示例结构
56
57
 
package/EXAMPLES.md CHANGED
@@ -273,6 +273,82 @@
273
273
  2. 生成 SQL: `SELECT DEPARTMENT_ID, COUNT(*) as EMP_COUNT FROM EMPLOYEES GROUP BY DEPARTMENT_ID`
274
274
  3. 执行并返回结果
275
275
 
276
+
277
+
278
+ ## 达梦 使用示例
279
+
280
+ ### 基础配置(只读模式)
281
+
282
+ ```json
283
+ {
284
+ "mcpServers": {
285
+ "dm-db": {
286
+ "command": "npx",
287
+ "args": [
288
+ "universal-db-mcp",
289
+ "--type", "dm",
290
+ "--host", "localhost",
291
+ "--port", "5236",
292
+ "--user", "SYSDBA",
293
+ "--password", "SYSDBA",
294
+ "--database", "DAMENG"
295
+ ]
296
+ }
297
+ }
298
+ }
299
+ ```
300
+
301
+ **注意**: 达梦数据库驱动 `dmdb` 会作为可选依赖自动安装。如果安装失败,请手动运行:
302
+
303
+ ```bash
304
+ npm install -g dmdb
305
+ ```
306
+
307
+ ### 连接远程达梦数据库
308
+
309
+ ```json
310
+ {
311
+ "mcpServers": {
312
+ "dm-prod": {
313
+ "command": "npx",
314
+ "args": [
315
+ "universal-db-mcp",
316
+ "--type", "dm",
317
+ "--host", "dm-server.example.com",
318
+ "--port", "5236",
319
+ "--user", "app_user",
320
+ "--password", "secure_password",
321
+ "--database", "PRODUCTION"
322
+ ]
323
+ }
324
+ }
325
+ }
326
+ ```
327
+
328
+ ### 与 Claude 对话示例
329
+
330
+ **用户**: 查看数据库中的所有表
331
+
332
+ **Claude 会自动**:
333
+
334
+ 1. 调用 `get_schema` 工具
335
+ 2. 返回所有表的列表和基本信息
336
+
337
+ **用户**: 查询部门表中的所有记录
338
+
339
+ **Claude 会自动**:
340
+
341
+ 1. 生成 SQL: `SELECT * FROM DEPT`
342
+ 2. 执行查询并返回结果
343
+
344
+ **用户**: 统计每个部门的员工数量
345
+
346
+ **Claude 会自动**:
347
+
348
+ 1. 理解需求
349
+ 2. 生成 SQL: `SELECT DEPT_ID, COUNT(*) as EMP_COUNT FROM EMPLOYEES GROUP BY DEPT_ID`
350
+ 3. 执行并返回结果
351
+
276
352
  ---
277
353
 
278
354
  ## Claude Desktop 配置示例
package/README.md CHANGED
@@ -16,18 +16,24 @@
16
16
  **MCP 数据库万能连接器** 通过 Model Context Protocol (MCP) 协议,让 Claude Desktop 成为你的数据库助手:
17
17
 
18
18
  ✅ **自然语言查询** - 用中文描述需求,Claude 自动生成并执行 SQL
19
+
19
20
  ✅ **智能表结构理解** - 自动获取数据库 Schema,提供精准建议
20
- ✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle 一键切换
21
+
22
+ ✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle、达梦 一键切换
23
+
21
24
  ✅ **安全第一** - 默认只读模式,防止误操作删库
25
+
22
26
  ✅ **开箱即用** - 无需复杂配置,一行命令启动
23
27
 
28
+
29
+
24
30
  ## 🚀 快速开始
25
31
 
26
32
  ### 前置要求
27
33
 
28
34
  - Node.js >= 20
29
35
  - Claude Desktop 应用
30
- - 至少一个数据库实例(MySQL/PostgreSQL/Redis/Oracle
36
+ - 至少一个数据库实例(MySQL/PostgreSQL/Redis/Oracle/达梦)
31
37
 
32
38
  ### 安装
33
39
 
@@ -100,14 +106,17 @@ Claude 会自动调用数据库工具完成查询!
100
106
 
101
107
  ## 📖 支持的数据库
102
108
 
103
- | 数据库 | 类型参数 | 状态 |
104
- |--------|---------|------|
105
- | MySQL | `--type mysql` | ✅ 已支持 |
106
- | PostgreSQL | `--type postgres` | ✅ 已支持 |
107
- | Redis | `--type redis` | ✅ 已支持 |
108
- | Oracle | `--type oracle` | ✅ 已支持 |
109
- | MongoDB | `--type mongo` | 🚧 计划中 |
110
- | SQLite | `--type sqlite` | 🚧 计划中 |
109
+ | 数据库 | 类型参数 | 默认端口 | 状态 | 说明 |
110
+ |--------|---------|---------|------|------|
111
+ | MySQL | `--type mysql` | 3306 | ✅ 已支持 | - |
112
+ | PostgreSQL | `--type postgres` | 5432 | ✅ 已支持 | - |
113
+ | Redis | `--type redis` | 6379 | ✅ 已支持 | - |
114
+ | Oracle(12c以上) | `--type oracle` | 1521 | ✅ 已支持 | - |
115
+ | 达梦(DM7/DM8) | `--type dm` | 5236 | ✅ 已支持 | 驱动自动安装 |
116
+ | MongoDB | `--type mongo` | - | 🚧 计划中 | - |
117
+ | SQLite | `--type sqlite` | - | 🚧 计划中 | - |
118
+
119
+ **注意**: 达梦数据库驱动 `dmdb` 会作为可选依赖自动安装。如果安装失败,请手动运行 `npm install -g dmdb`。
111
120
 
112
121
  ## 🔧 命令行参数
113
122
 
@@ -115,7 +124,7 @@ Claude 会自动调用数据库工具完成查询!
115
124
  universal-db-mcp [选项]
116
125
 
117
126
  选项:
118
- --type <db> 数据库类型 (mysql|postgres|redis|oracle)
127
+ --type <db> 数据库类型 (mysql|postgres|redis|oracle|dm)
119
128
  --host <host> 数据库主机地址 (默认: localhost)
120
129
  --port <port> 数据库端口
121
130
  --user <user> 用户名
@@ -135,7 +144,8 @@ src/
135
144
  │ ├── mysql.ts
136
145
  │ ├── postgres.ts
137
146
  │ ├── redis.ts
138
- └── oracle.ts
147
+ ├── oracle.ts
148
+ │ └── dm.ts
139
149
  ├── types/ # TypeScript 类型定义
140
150
  │ └── adapter.ts
141
151
  ├── utils/ # 工具函数
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 达梦数据库适配器
3
+ * 达梦数据库高度兼容 Oracle,使用类似的 API 和系统视图
4
+ *
5
+ * dmdb 驱动会作为可选依赖自动安装
6
+ */
7
+ import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
8
+ export declare class DMAdapter implements DbAdapter {
9
+ private connection;
10
+ private config;
11
+ constructor(config: {
12
+ host: string;
13
+ port: number;
14
+ user?: string;
15
+ password?: string;
16
+ database?: string;
17
+ });
18
+ /**
19
+ * 连接到达梦数据库
20
+ */
21
+ connect(): Promise<void>;
22
+ /**
23
+ * 断开数据库连接
24
+ */
25
+ disconnect(): Promise<void>;
26
+ /**
27
+ * 执行 SQL 查询
28
+ */
29
+ executeQuery(query: string, params?: unknown[]): Promise<QueryResult>;
30
+ /**
31
+ * 获取数据库结构信息
32
+ */
33
+ getSchema(): Promise<SchemaInfo>;
34
+ /**
35
+ * 获取单个表的详细信息
36
+ */
37
+ private getTableInfo;
38
+ /**
39
+ * 格式化达梦数据类型
40
+ */
41
+ private formatDMType;
42
+ /**
43
+ * 检查是否为写操作
44
+ */
45
+ isWriteOperation(query: string): boolean;
46
+ }
47
+ //# sourceMappingURL=dm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAyB7B,qBAAa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA4D3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAoDtC;;OAEG;YACW,YAAY;IA2I1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CA+BzC"}
@@ -0,0 +1,336 @@
1
+ /**
2
+ * 达梦数据库适配器
3
+ * 达梦数据库高度兼容 Oracle,使用类似的 API 和系统视图
4
+ *
5
+ * dmdb 驱动会作为可选依赖自动安装
6
+ */
7
+ import { isWriteOperation as checkWriteOperation } from '../utils/safety.js';
8
+ // 动态导入 dmdb,因为它是可选依赖
9
+ let dmdb = null;
10
+ async function loadDMDB() {
11
+ if (dmdb) {
12
+ return dmdb;
13
+ }
14
+ try {
15
+ // @ts-ignore - dmdb 是可选依赖,可能未安装
16
+ const module = await import('dmdb');
17
+ dmdb = module.default || module;
18
+ return dmdb;
19
+ }
20
+ catch (error) {
21
+ throw new Error('达梦数据库驱动未安装。\n' +
22
+ '请运行以下命令安装:npm install dmdb\n' +
23
+ '或者全局安装:npm install -g dmdb');
24
+ }
25
+ }
26
+ export class DMAdapter {
27
+ connection = null;
28
+ config;
29
+ constructor(config) {
30
+ this.config = config;
31
+ }
32
+ /**
33
+ * 连接到达梦数据库
34
+ */
35
+ async connect() {
36
+ try {
37
+ const DM = await loadDMDB();
38
+ // 达梦数据库连接配置
39
+ const connectionConfig = {
40
+ host: this.config.host,
41
+ port: this.config.port || 5236, // 达梦默认端口
42
+ user: this.config.user,
43
+ password: this.config.password,
44
+ database: this.config.database,
45
+ };
46
+ this.connection = await DM.getConnection(connectionConfig);
47
+ // 测试连接
48
+ await this.connection.execute('SELECT 1 FROM DUAL', []);
49
+ }
50
+ catch (error) {
51
+ // 翻译常见错误
52
+ const errorMessage = error instanceof Error ? error.message : String(error);
53
+ if (errorMessage.includes('用户名') || errorMessage.includes('密码')) {
54
+ throw new Error('达梦数据库连接失败: 用户名或密码无效');
55
+ }
56
+ else if (errorMessage.includes('连接') || errorMessage.includes('网络')) {
57
+ throw new Error('达梦数据库连接失败: 无法连接到数据库服务器,请检查主机地址和端口');
58
+ }
59
+ throw new Error(`达梦数据库连接失败: ${errorMessage}`);
60
+ }
61
+ }
62
+ /**
63
+ * 断开数据库连接
64
+ */
65
+ async disconnect() {
66
+ if (this.connection) {
67
+ try {
68
+ await this.connection.close();
69
+ }
70
+ catch (error) {
71
+ // 忽略关闭连接时的错误
72
+ }
73
+ this.connection = null;
74
+ }
75
+ }
76
+ /**
77
+ * 执行 SQL 查询
78
+ */
79
+ async executeQuery(query, params) {
80
+ if (!this.connection) {
81
+ throw new Error('数据库未连接');
82
+ }
83
+ const startTime = Date.now();
84
+ try {
85
+ // 执行查询
86
+ const result = await this.connection.execute(query, params || [], {
87
+ autoCommit: false,
88
+ });
89
+ const executionTime = Date.now() - startTime;
90
+ // 处理查询结果
91
+ if (result.rows && result.rows.length > 0) {
92
+ // SELECT 查询 - 将列名转换为小写
93
+ const rows = result.rows.map((row) => {
94
+ const lowerCaseRow = {};
95
+ for (const [key, value] of Object.entries(row)) {
96
+ lowerCaseRow[key.toLowerCase()] = value;
97
+ }
98
+ return lowerCaseRow;
99
+ });
100
+ return {
101
+ rows,
102
+ executionTime,
103
+ metadata: {
104
+ columnCount: result.metaData?.length || 0,
105
+ },
106
+ };
107
+ }
108
+ else if (result.rowsAffected !== undefined && result.rowsAffected > 0) {
109
+ // DML 操作 (INSERT/UPDATE/DELETE)
110
+ return {
111
+ rows: [],
112
+ affectedRows: result.rowsAffected,
113
+ executionTime,
114
+ };
115
+ }
116
+ else {
117
+ // 其他操作或空结果
118
+ return {
119
+ rows: [],
120
+ executionTime,
121
+ };
122
+ }
123
+ }
124
+ catch (error) {
125
+ const errorMessage = error instanceof Error ? error.message : String(error);
126
+ if (errorMessage.includes('表') || errorMessage.includes('视图')) {
127
+ throw new Error('查询执行失败: 表或视图不存在');
128
+ }
129
+ else if (errorMessage.includes('约束')) {
130
+ throw new Error('查询执行失败: 违反唯一约束');
131
+ }
132
+ throw new Error(`查询执行失败: ${errorMessage}`);
133
+ }
134
+ }
135
+ /**
136
+ * 获取数据库结构信息
137
+ */
138
+ async getSchema() {
139
+ if (!this.connection) {
140
+ throw new Error('数据库未连接');
141
+ }
142
+ try {
143
+ // 获取达梦数据库版本
144
+ const versionResult = await this.connection.execute(`SELECT BANNER FROM V$VERSION WHERE ROWNUM = 1`, []);
145
+ const version = versionResult.rows?.[0]
146
+ ? Object.values(versionResult.rows[0])[0]
147
+ : 'unknown';
148
+ // 获取当前用户
149
+ const userResult = await this.connection.execute('SELECT USER FROM DUAL', []);
150
+ const databaseName = userResult.rows?.[0]
151
+ ? Object.values(userResult.rows[0])[0]
152
+ : 'unknown';
153
+ // 获取所有表
154
+ const tablesResult = await this.connection.execute(`SELECT TABLE_NAME, NUM_ROWS
155
+ FROM USER_TABLES
156
+ ORDER BY TABLE_NAME`, []);
157
+ const tableInfos = [];
158
+ if (tablesResult.rows) {
159
+ for (const tableRow of tablesResult.rows) {
160
+ const tableName = tableRow.TABLE_NAME;
161
+ const tableInfo = await this.getTableInfo(tableName);
162
+ tableInfos.push(tableInfo);
163
+ }
164
+ }
165
+ return {
166
+ databaseType: 'dm',
167
+ databaseName,
168
+ tables: tableInfos,
169
+ version,
170
+ };
171
+ }
172
+ catch (error) {
173
+ throw new Error(`获取数据库结构失败: ${error instanceof Error ? error.message : String(error)}`);
174
+ }
175
+ }
176
+ /**
177
+ * 获取单个表的详细信息
178
+ */
179
+ async getTableInfo(tableName) {
180
+ if (!this.connection) {
181
+ throw new Error('数据库未连接');
182
+ }
183
+ // 获取列信息
184
+ const columnsResult = await this.connection.execute(`SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION,
185
+ DATA_SCALE, NULLABLE, DATA_DEFAULT, COLUMN_ID
186
+ FROM USER_TAB_COLUMNS
187
+ WHERE TABLE_NAME = :1
188
+ ORDER BY COLUMN_ID`, [tableName]);
189
+ const columnInfos = [];
190
+ if (columnsResult.rows) {
191
+ for (const col of columnsResult.rows) {
192
+ const colData = col;
193
+ columnInfos.push({
194
+ name: colData.COLUMN_NAME.toLowerCase(),
195
+ type: this.formatDMType(colData.DATA_TYPE, colData.DATA_LENGTH, colData.DATA_PRECISION, colData.DATA_SCALE),
196
+ nullable: colData.NULLABLE === 'Y',
197
+ defaultValue: colData.DATA_DEFAULT?.trim() || undefined,
198
+ });
199
+ }
200
+ }
201
+ // 获取列注释
202
+ const commentsResult = await this.connection.execute(`SELECT COLUMN_NAME, COMMENTS
203
+ FROM USER_COL_COMMENTS
204
+ WHERE TABLE_NAME = :1
205
+ AND COMMENTS IS NOT NULL`, [tableName]);
206
+ const commentsMap = new Map();
207
+ if (commentsResult.rows) {
208
+ for (const row of commentsResult.rows) {
209
+ const rowData = row;
210
+ commentsMap.set(rowData.COLUMN_NAME.toLowerCase(), rowData.COMMENTS);
211
+ }
212
+ }
213
+ // 将注释添加到列信息中
214
+ for (const col of columnInfos) {
215
+ if (commentsMap.has(col.name)) {
216
+ col.comment = commentsMap.get(col.name);
217
+ }
218
+ }
219
+ // 获取主键
220
+ const primaryKeysResult = await this.connection.execute(`SELECT cols.COLUMN_NAME, cols.POSITION
221
+ FROM USER_CONSTRAINTS cons
222
+ JOIN USER_CONS_COLUMNS cols
223
+ ON cons.CONSTRAINT_NAME = cols.CONSTRAINT_NAME
224
+ WHERE cons.CONSTRAINT_TYPE = 'P'
225
+ AND cons.TABLE_NAME = :1
226
+ ORDER BY cols.POSITION`, [tableName]);
227
+ const primaryKeys = [];
228
+ if (primaryKeysResult.rows) {
229
+ for (const row of primaryKeysResult.rows) {
230
+ primaryKeys.push(row.COLUMN_NAME.toLowerCase());
231
+ }
232
+ }
233
+ // 获取索引信息
234
+ const indexesResult = await this.connection.execute(`SELECT i.INDEX_NAME, i.UNIQUENESS, ic.COLUMN_NAME, ic.COLUMN_POSITION
235
+ FROM USER_INDEXES i
236
+ JOIN USER_IND_COLUMNS ic
237
+ ON i.INDEX_NAME = ic.INDEX_NAME
238
+ WHERE i.TABLE_NAME = :1
239
+ ORDER BY i.INDEX_NAME, ic.COLUMN_POSITION`, [tableName]);
240
+ const indexMap = new Map();
241
+ if (indexesResult.rows) {
242
+ for (const row of indexesResult.rows) {
243
+ const rowData = row;
244
+ const indexName = rowData.INDEX_NAME;
245
+ // 跳过主键索引
246
+ if (indexName.includes('PK_') || indexName.includes('SYS_')) {
247
+ continue;
248
+ }
249
+ if (!indexMap.has(indexName)) {
250
+ indexMap.set(indexName, {
251
+ columns: [],
252
+ unique: rowData.UNIQUENESS === 'UNIQUE',
253
+ });
254
+ }
255
+ indexMap.get(indexName).columns.push(rowData.COLUMN_NAME.toLowerCase());
256
+ }
257
+ }
258
+ const indexInfos = Array.from(indexMap.entries()).map(([name, info]) => ({
259
+ name,
260
+ columns: info.columns,
261
+ unique: info.unique,
262
+ }));
263
+ // 获取表行数估算
264
+ const rowCountResult = await this.connection.execute(`SELECT NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME = :1`, [tableName]);
265
+ const estimatedRows = rowCountResult.rows?.[0]
266
+ ? (rowCountResult.rows[0].NUM_ROWS || 0)
267
+ : 0;
268
+ return {
269
+ name: tableName.toLowerCase(),
270
+ columns: columnInfos,
271
+ primaryKeys,
272
+ indexes: indexInfos,
273
+ estimatedRows,
274
+ };
275
+ }
276
+ /**
277
+ * 格式化达梦数据类型
278
+ */
279
+ formatDMType(dataType, length, precision, scale) {
280
+ switch (dataType) {
281
+ case 'NUMBER':
282
+ case 'NUMERIC':
283
+ case 'DECIMAL':
284
+ if (precision !== null && precision !== undefined) {
285
+ if (scale !== null && scale !== undefined && scale > 0) {
286
+ return `${dataType}(${precision},${scale})`;
287
+ }
288
+ return `${dataType}(${precision})`;
289
+ }
290
+ return dataType;
291
+ case 'VARCHAR':
292
+ case 'VARCHAR2':
293
+ case 'CHAR':
294
+ if (length) {
295
+ return `${dataType}(${length})`;
296
+ }
297
+ return dataType;
298
+ case 'TIMESTAMP':
299
+ if (scale !== null && scale !== undefined) {
300
+ return `TIMESTAMP(${scale})`;
301
+ }
302
+ return 'TIMESTAMP';
303
+ default:
304
+ return dataType;
305
+ }
306
+ }
307
+ /**
308
+ * 检查是否为写操作
309
+ */
310
+ isWriteOperation(query) {
311
+ // 首先使用通用的写操作检测
312
+ if (checkWriteOperation(query)) {
313
+ return true;
314
+ }
315
+ // 添加达梦特定的写操作检测(类似 Oracle)
316
+ const trimmedQuery = query.trim().toUpperCase();
317
+ // MERGE 语句(达梦支持)
318
+ if (trimmedQuery.startsWith('MERGE')) {
319
+ return true;
320
+ }
321
+ // PL/SQL 块(达梦兼容 Oracle PL/SQL)
322
+ if (trimmedQuery.startsWith('BEGIN') || trimmedQuery.startsWith('DECLARE')) {
323
+ return true;
324
+ }
325
+ // CALL 存储过程
326
+ if (trimmedQuery.startsWith('CALL')) {
327
+ return true;
328
+ }
329
+ // 事务控制语句
330
+ if (trimmedQuery.startsWith('COMMIT') || trimmedQuery.startsWith('ROLLBACK')) {
331
+ return true;
332
+ }
333
+ return false;
334
+ }
335
+ }
336
+ //# sourceMappingURL=dm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dm.js","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,12 +8,13 @@ import { MySQLAdapter } from './adapters/mysql.js';
8
8
  import { PostgreSQLAdapter } from './adapters/postgres.js';
9
9
  import { RedisAdapter } from './adapters/redis.js';
10
10
  import { OracleAdapter } from './adapters/oracle.js';
11
+ import { DMAdapter } from './adapters/dm.js';
11
12
  const program = new Command();
12
13
  program
13
14
  .name('universal-db-mcp')
14
15
  .description('MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库')
15
16
  .version('0.1.0')
16
- .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle)')
17
+ .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm)')
17
18
  .requiredOption('--host <host>', '数据库主机地址')
18
19
  .requiredOption('--port <port>', '数据库端口', parseInt)
19
20
  .option('--user <user>', '用户名')
@@ -23,8 +24,8 @@ program
23
24
  .action(async (options) => {
24
25
  try {
25
26
  // 验证数据库类型
26
- if (!['mysql', 'postgres', 'redis', 'oracle'].includes(options.type)) {
27
- console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle');
27
+ if (!['mysql', 'postgres', 'redis', 'oracle', 'dm'].includes(options.type)) {
28
+ console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm');
28
29
  process.exit(1);
29
30
  }
30
31
  // 构建配置
@@ -83,6 +84,15 @@ program
83
84
  database: config.database,
84
85
  });
85
86
  break;
87
+ case 'dm':
88
+ adapter = new DMAdapter({
89
+ host: config.host,
90
+ port: config.port,
91
+ user: config.user,
92
+ password: config.password,
93
+ database: config.database,
94
+ });
95
+ break;
86
96
  default:
87
97
  throw new Error(`不支持的数据库类型: ${config.type}`);
88
98
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export interface QueryResult {
49
49
  */
50
50
  export interface SchemaInfo {
51
51
  /** 数据库类型 */
52
- databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle';
52
+ databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm';
53
53
  /** 数据库名称 */
54
54
  databaseName: string;
55
55
  /** 表信息列表 */
@@ -102,7 +102,7 @@ export interface IndexInfo {
102
102
  * 数据库连接配置
103
103
  */
104
104
  export interface DbConfig {
105
- type: 'mysql' | 'postgres' | 'redis' | 'oracle';
105
+ type: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm';
106
106
  host: string;
107
107
  port: number;
108
108
  user?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/types/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtE;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,eAAe;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxD,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW;IACX,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW;IACX,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU;IACV,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/types/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtE;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,eAAe;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC/D,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW;IACX,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW;IACX,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU;IACV,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-db-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -22,6 +22,8 @@
22
22
  "postgresql",
23
23
  "redis",
24
24
  "oracle",
25
+ "dameng",
26
+ "dm",
25
27
  "数据库",
26
28
  "AI"
27
29
  ],
@@ -54,6 +56,9 @@
54
56
  "@types/pg": "^8.11.10",
55
57
  "typescript": "^5.7.3"
56
58
  },
59
+ "optionalDependencies": {
60
+ "dmdb": "^1.0.46190"
61
+ },
57
62
  "engines": {
58
63
  "node": ">=20.0.0"
59
64
  },