universal-db-mcp 0.14.0 → 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/CONTRIBUTING.md +6 -0
- package/EXAMPLES.md +210 -0
- package/README.md +302 -15
- package/dist/adapters/goldendb.d.ts +42 -0
- package/dist/adapters/goldendb.d.ts.map +1 -0
- package/dist/adapters/goldendb.js +173 -0
- package/dist/adapters/goldendb.js.map +1 -0
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/types/adapter.d.ts +2 -2
- package/dist/types/adapter.d.ts.map +1 -1
- package/package.json +3 -1
package/CONTRIBUTING.md
CHANGED
|
@@ -52,12 +52,18 @@
|
|
|
52
52
|
- **Redis** (`src/adapters/redis.ts`) - NoSQL 数据库的适配
|
|
53
53
|
- **Oracle** (`src/adapters/oracle.ts`) - 企业级数据库的完整实现
|
|
54
54
|
- **达梦** (`src/adapters/dm.ts`) - 国产数据库适配,兼容 Oracle
|
|
55
|
+
- **SQL Server** (`src/adapters/sqlserver.ts`) - 微软数据库,支持 Azure SQL
|
|
56
|
+
- **MongoDB** (`src/adapters/mongodb.ts`) - 文档型 NoSQL 数据库
|
|
57
|
+
- **SQLite** (`src/adapters/sqlite.ts`) - 轻量级嵌入式数据库
|
|
58
|
+
- **KingbaseES** (`src/adapters/kingbase.ts`) - 国产数据库,兼容 PostgreSQL
|
|
59
|
+
- **GaussDB** (`src/adapters/gaussdb.ts`) - 华为国产数据库,兼容 PostgreSQL
|
|
55
60
|
- **OceanBase** (`src/adapters/oceanbase.ts`) - 分布式数据库,兼容 MySQL
|
|
56
61
|
- **TiDB** (`src/adapters/tidb.ts`) - 分布式 NewSQL 数据库,兼容 MySQL 5.7
|
|
57
62
|
- **ClickHouse** (`src/adapters/clickhouse.ts`) - 列式 OLAP 数据库,使用 HTTP 协议
|
|
58
63
|
- **PolarDB** (`src/adapters/polardb.ts`) - 云原生数据库,兼容 MySQL
|
|
59
64
|
- **Vastbase** (`src/adapters/vastbase.ts`) - 国产数据库,兼容 PostgreSQL
|
|
60
65
|
- **HighGo** (`src/adapters/highgo.ts`) - 国产数据库,兼容 PostgreSQL
|
|
66
|
+
- **GoldenDB** (`src/adapters/goldendb.ts`) - 国产分布式数据库,兼容 MySQL
|
|
61
67
|
|
|
62
68
|
### 示例结构
|
|
63
69
|
|
package/EXAMPLES.md
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
- [PolarDB 使用示例](#polardb-使用示例)
|
|
21
21
|
- [Vastbase 使用示例](#vastbase-使用示例)
|
|
22
22
|
- [HighGo 使用示例](#highgo-使用示例)
|
|
23
|
+
- [GoldenDB 使用示例](#goldendb-使用示例)
|
|
23
24
|
- [Claude Desktop 配置示例](#claude-desktop-配置示例)
|
|
24
25
|
- [常见使用场景](#常见使用场景)
|
|
25
26
|
|
|
@@ -2337,6 +2338,215 @@ HighGo 作为国产数据库,有一些特色功能:
|
|
|
2337
2338
|
|
|
2338
2339
|
---
|
|
2339
2340
|
|
|
2341
|
+
## GoldenDB 使用示例
|
|
2342
|
+
|
|
2343
|
+
### 基础配置(只读模式)
|
|
2344
|
+
|
|
2345
|
+
```json
|
|
2346
|
+
{
|
|
2347
|
+
"mcpServers": {
|
|
2348
|
+
"goldendb-db": {
|
|
2349
|
+
"command": "npx",
|
|
2350
|
+
"args": [
|
|
2351
|
+
"universal-db-mcp",
|
|
2352
|
+
"--type", "goldendb",
|
|
2353
|
+
"--host", "localhost",
|
|
2354
|
+
"--port", "3306",
|
|
2355
|
+
"--user", "root",
|
|
2356
|
+
"--password", "your_password",
|
|
2357
|
+
"--database", "test"
|
|
2358
|
+
]
|
|
2359
|
+
}
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2362
|
+
```
|
|
2363
|
+
|
|
2364
|
+
### 启用写入模式
|
|
2365
|
+
|
|
2366
|
+
```json
|
|
2367
|
+
{
|
|
2368
|
+
"mcpServers": {
|
|
2369
|
+
"goldendb-write": {
|
|
2370
|
+
"command": "npx",
|
|
2371
|
+
"args": [
|
|
2372
|
+
"universal-db-mcp",
|
|
2373
|
+
"--type", "goldendb",
|
|
2374
|
+
"--host", "localhost",
|
|
2375
|
+
"--port", "3306",
|
|
2376
|
+
"--user", "root",
|
|
2377
|
+
"--password", "your_password",
|
|
2378
|
+
"--database", "mydb",
|
|
2379
|
+
"--danger-allow-write"
|
|
2380
|
+
]
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2383
|
+
}
|
|
2384
|
+
```
|
|
2385
|
+
|
|
2386
|
+
### 连接 GoldenDB 分布式集群
|
|
2387
|
+
|
|
2388
|
+
```json
|
|
2389
|
+
{
|
|
2390
|
+
"mcpServers": {
|
|
2391
|
+
"goldendb-cluster": {
|
|
2392
|
+
"command": "npx",
|
|
2393
|
+
"args": [
|
|
2394
|
+
"universal-db-mcp",
|
|
2395
|
+
"--type", "goldendb",
|
|
2396
|
+
"--host", "goldendb-cluster.example.com",
|
|
2397
|
+
"--port", "3306",
|
|
2398
|
+
"--user", "your_username",
|
|
2399
|
+
"--password", "your_password",
|
|
2400
|
+
"--database", "production"
|
|
2401
|
+
]
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
2404
|
+
}
|
|
2405
|
+
```
|
|
2406
|
+
|
|
2407
|
+
### 与 Claude 对话示例
|
|
2408
|
+
|
|
2409
|
+
**用户**: 查看数据库中有哪些表?
|
|
2410
|
+
|
|
2411
|
+
**Claude 会自动**:
|
|
2412
|
+
1. 调用 `get_schema` 工具
|
|
2413
|
+
2. 执行 `SHOW TABLES` 查询
|
|
2414
|
+
3. 返回表列表
|
|
2415
|
+
|
|
2416
|
+
**用户**: 查看 transactions 表的结构
|
|
2417
|
+
|
|
2418
|
+
**Claude 会自动**:
|
|
2419
|
+
1. 调用 `get_table_info` 工具
|
|
2420
|
+
2. 执行 `SHOW FULL COLUMNS FROM transactions`
|
|
2421
|
+
3. 返回列信息、主键、索引等详细信息
|
|
2422
|
+
|
|
2423
|
+
**用户**: 统计每个用户的交易总额
|
|
2424
|
+
|
|
2425
|
+
**Claude 会自动**:
|
|
2426
|
+
1. 理解需求
|
|
2427
|
+
2. 生成 SQL: `SELECT user_id, SUM(amount) as total_amount FROM transactions GROUP BY user_id ORDER BY total_amount DESC`
|
|
2428
|
+
3. 执行并返回结果
|
|
2429
|
+
|
|
2430
|
+
**用户**: 查找最近 24 小时的大额交易(金额超过 10000)
|
|
2431
|
+
|
|
2432
|
+
**Claude 会自动**:
|
|
2433
|
+
1. 生成 SQL: `SELECT * FROM transactions WHERE amount > 10000 AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR) ORDER BY amount DESC`
|
|
2434
|
+
2. 执行并返回结果
|
|
2435
|
+
|
|
2436
|
+
### 注意事项
|
|
2437
|
+
|
|
2438
|
+
1. **默认端口**: 3306(与 MySQL 相同)
|
|
2439
|
+
2. **兼容性**: 完全兼容 MySQL 5.7/8.0 协议
|
|
2440
|
+
3. **驱动**: 使用 MySQL 的 `mysql2` 驱动
|
|
2441
|
+
4. **国产数据库**: 中兴通讯开发,支持国产化替代
|
|
2442
|
+
5. **分布式特性**:
|
|
2443
|
+
- 支持分布式事务
|
|
2444
|
+
- 支持水平扩展
|
|
2445
|
+
- 支持高可用集群
|
|
2446
|
+
- 支持读写分离
|
|
2447
|
+
|
|
2448
|
+
### 支持的版本
|
|
2449
|
+
|
|
2450
|
+
- ✅ GoldenDB 2.x
|
|
2451
|
+
- ✅ GoldenDB 3.x
|
|
2452
|
+
- ✅ 其他兼容 MySQL 的版本
|
|
2453
|
+
|
|
2454
|
+
### 常见使用场景
|
|
2455
|
+
|
|
2456
|
+
#### 1. 电信行业应用
|
|
2457
|
+
|
|
2458
|
+
GoldenDB 在电信行业有广泛应用:
|
|
2459
|
+
|
|
2460
|
+
```
|
|
2461
|
+
用户: 查询用户通话记录
|
|
2462
|
+
|
|
2463
|
+
Claude 会:
|
|
2464
|
+
1. 查询通话记录表
|
|
2465
|
+
2. 按用户分组统计
|
|
2466
|
+
3. 返回分析结果
|
|
2467
|
+
```
|
|
2468
|
+
|
|
2469
|
+
#### 2. 金融交易系统
|
|
2470
|
+
|
|
2471
|
+
```
|
|
2472
|
+
用户: 查询今日交易流水
|
|
2473
|
+
|
|
2474
|
+
Claude 会:
|
|
2475
|
+
1. 查询交易表
|
|
2476
|
+
2. 过滤今日数据
|
|
2477
|
+
3. 返回交易明细
|
|
2478
|
+
```
|
|
2479
|
+
|
|
2480
|
+
#### 3. 分布式场景
|
|
2481
|
+
|
|
2482
|
+
```
|
|
2483
|
+
用户: 查询分布式表的数据
|
|
2484
|
+
|
|
2485
|
+
Claude 会:
|
|
2486
|
+
1. 连接到 GoldenDB 集群
|
|
2487
|
+
2. 执行分布式查询
|
|
2488
|
+
3. 自动聚合结果
|
|
2489
|
+
```
|
|
2490
|
+
|
|
2491
|
+
#### 4. 高并发场景
|
|
2492
|
+
|
|
2493
|
+
```
|
|
2494
|
+
用户: 查询实时订单数据
|
|
2495
|
+
|
|
2496
|
+
Claude 会:
|
|
2497
|
+
1. 利用 GoldenDB 的高并发能力
|
|
2498
|
+
2. 快速返回查询结果
|
|
2499
|
+
3. 保证数据一致性
|
|
2500
|
+
```
|
|
2501
|
+
|
|
2502
|
+
### GoldenDB 特色功能
|
|
2503
|
+
|
|
2504
|
+
GoldenDB 作为国产分布式数据库,有一些特色功能:
|
|
2505
|
+
|
|
2506
|
+
- **MySQL 兼容**: 完全兼容 MySQL 5.7/8.0 协议和语法
|
|
2507
|
+
- **分布式架构**: 支持分布式事务和水平扩展
|
|
2508
|
+
- **高可用**: 支持主备切换和故障转移
|
|
2509
|
+
- **读写分离**: 支持读写分离架构
|
|
2510
|
+
- **弹性扩展**: 支持在线扩容和缩容
|
|
2511
|
+
- **国产化**: 支持国产操作系统和芯片
|
|
2512
|
+
- **电信级**: 满足电信级可靠性要求
|
|
2513
|
+
|
|
2514
|
+
**注意**: 这些特色功能可能需要特定的配置或 SQL 语法,Claude 会根据标准 MySQL 语法生成查询。
|
|
2515
|
+
|
|
2516
|
+
### GoldenDB 最佳实践
|
|
2517
|
+
|
|
2518
|
+
1. **表设计**:
|
|
2519
|
+
- 使用合适的分片键
|
|
2520
|
+
- 合理设计主键和索引
|
|
2521
|
+
- 考虑数据分布均衡
|
|
2522
|
+
- 避免跨分片查询
|
|
2523
|
+
|
|
2524
|
+
2. **查询优化**:
|
|
2525
|
+
- 使用 EXPLAIN 分析查询计划
|
|
2526
|
+
- 创建合适的索引
|
|
2527
|
+
- 避免 SELECT *
|
|
2528
|
+
- 使用 LIMIT 限制返回结果
|
|
2529
|
+
|
|
2530
|
+
3. **分布式事务**:
|
|
2531
|
+
- 合理使用分布式事务
|
|
2532
|
+
- 避免长事务
|
|
2533
|
+
- 注意事务隔离级别
|
|
2534
|
+
- 处理分布式死锁
|
|
2535
|
+
|
|
2536
|
+
4. **监控维护**:
|
|
2537
|
+
- 监控集群状态
|
|
2538
|
+
- 关注分片数据分布
|
|
2539
|
+
- 定期检查慢查询
|
|
2540
|
+
- 定期备份数据
|
|
2541
|
+
|
|
2542
|
+
5. **安全建议**:
|
|
2543
|
+
- 使用强密码
|
|
2544
|
+
- 限制网络访问
|
|
2545
|
+
- 启用 SSL 连接
|
|
2546
|
+
- 定期审计日志
|
|
2547
|
+
|
|
2548
|
+
---
|
|
2549
|
+
|
|
2340
2550
|
## Claude Desktop 配置示例
|
|
2341
2551
|
|
|
2342
2552
|
### 同时连接多个数据库
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
✅ **智能表结构理解** - 自动获取数据库 Schema,提供精准建议
|
|
21
21
|
|
|
22
|
-
✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle、达梦、SQL Server、MongoDB、SQLite、KingbaseES、GaussDB/OpenGauss、OceanBase、TiDB、ClickHouse、PolarDB、Vastbase、HighGo 一键切换
|
|
22
|
+
✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle、达梦、SQL Server、MongoDB、SQLite、KingbaseES、GaussDB/OpenGauss、OceanBase、TiDB、ClickHouse、PolarDB、Vastbase、HighGo、GoldenDB 一键切换
|
|
23
23
|
|
|
24
24
|
✅ **安全第一** - 默认只读模式,防止误操作删库
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
- Node.js >= 20
|
|
35
35
|
- Claude Desktop 应用
|
|
36
|
-
- 至少一个数据库实例(MySQL/PostgreSQL/Redis/Oracle/达梦/SQL Server/MongoDB/SQLite/KingbaseES/GaussDB/OceanBase/TiDB/ClickHouse/PolarDB/Vastbase/HighGo)
|
|
36
|
+
- 至少一个数据库实例(MySQL/PostgreSQL/Redis/Oracle/达梦/SQL Server/MongoDB/SQLite/KingbaseES/GaussDB/OceanBase/TiDB/ClickHouse/PolarDB/Vastbase/HighGo/GoldenDB)
|
|
37
37
|
|
|
38
38
|
### 安装
|
|
39
39
|
|
|
@@ -56,12 +56,12 @@ npx universal-db-mcp
|
|
|
56
56
|
|
|
57
57
|
添加以下配置:
|
|
58
58
|
|
|
59
|
-
#### MySQL 示例
|
|
59
|
+
#### 1. MySQL 示例
|
|
60
60
|
|
|
61
61
|
```json
|
|
62
62
|
{
|
|
63
63
|
"mcpServers": {
|
|
64
|
-
"
|
|
64
|
+
"mysql-db": {
|
|
65
65
|
"command": "npx",
|
|
66
66
|
"args": [
|
|
67
67
|
"universal-db-mcp",
|
|
@@ -77,7 +77,152 @@ npx universal-db-mcp
|
|
|
77
77
|
}
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
####
|
|
80
|
+
#### 2. PostgreSQL 示例
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"postgres-db": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": [
|
|
88
|
+
"universal-db-mcp",
|
|
89
|
+
"--type", "postgres",
|
|
90
|
+
"--host", "localhost",
|
|
91
|
+
"--port", "5432",
|
|
92
|
+
"--user", "postgres",
|
|
93
|
+
"--password", "your_password",
|
|
94
|
+
"--database", "your_database"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### 3. Redis 示例
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"redis-db": {
|
|
107
|
+
"command": "npx",
|
|
108
|
+
"args": [
|
|
109
|
+
"universal-db-mcp",
|
|
110
|
+
"--type", "redis",
|
|
111
|
+
"--host", "localhost",
|
|
112
|
+
"--port", "6379",
|
|
113
|
+
"--password", "your_password"
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**注意**:Redis 不需要 `--database` 参数,可以通过 `--database` 指定数据库编号(0-15)。
|
|
121
|
+
|
|
122
|
+
#### 4. Oracle 示例
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"mcpServers": {
|
|
127
|
+
"oracle-db": {
|
|
128
|
+
"command": "npx",
|
|
129
|
+
"args": [
|
|
130
|
+
"universal-db-mcp",
|
|
131
|
+
"--type", "oracle",
|
|
132
|
+
"--host", "localhost",
|
|
133
|
+
"--port", "1521",
|
|
134
|
+
"--user", "system",
|
|
135
|
+
"--password", "your_password",
|
|
136
|
+
"--database", "ORCL"
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**说明**:
|
|
144
|
+
- Oracle 12c 及以上版本
|
|
145
|
+
- 默认端口为 1521
|
|
146
|
+
- `--database` 参数为服务名(Service Name)
|
|
147
|
+
|
|
148
|
+
#### 5. 达梦(DM)示例
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"mcpServers": {
|
|
153
|
+
"dm-db": {
|
|
154
|
+
"command": "npx",
|
|
155
|
+
"args": [
|
|
156
|
+
"universal-db-mcp",
|
|
157
|
+
"--type", "dm",
|
|
158
|
+
"--host", "localhost",
|
|
159
|
+
"--port", "5236",
|
|
160
|
+
"--user", "SYSDBA",
|
|
161
|
+
"--password", "your_password",
|
|
162
|
+
"--database", "DAMENG"
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**说明**:
|
|
170
|
+
- 达梦数据库 DM7/DM8
|
|
171
|
+
- 默认端口为 5236
|
|
172
|
+
- 驱动会自动安装
|
|
173
|
+
|
|
174
|
+
#### 6. SQL Server 示例
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"mcpServers": {
|
|
179
|
+
"sqlserver-db": {
|
|
180
|
+
"command": "npx",
|
|
181
|
+
"args": [
|
|
182
|
+
"universal-db-mcp",
|
|
183
|
+
"--type", "sqlserver",
|
|
184
|
+
"--host", "localhost",
|
|
185
|
+
"--port", "1433",
|
|
186
|
+
"--user", "sa",
|
|
187
|
+
"--password", "your_password",
|
|
188
|
+
"--database", "master"
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**说明**:
|
|
196
|
+
- 支持 SQL Server 2012 及以上版本
|
|
197
|
+
- 支持 Azure SQL Database
|
|
198
|
+
- 默认端口为 1433
|
|
199
|
+
|
|
200
|
+
#### 7. MongoDB 示例
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"mcpServers": {
|
|
205
|
+
"mongodb-db": {
|
|
206
|
+
"command": "npx",
|
|
207
|
+
"args": [
|
|
208
|
+
"universal-db-mcp",
|
|
209
|
+
"--type", "mongodb",
|
|
210
|
+
"--host", "localhost",
|
|
211
|
+
"--port", "27017",
|
|
212
|
+
"--user", "admin",
|
|
213
|
+
"--password", "your_password",
|
|
214
|
+
"--database", "test"
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**说明**:
|
|
222
|
+
- 支持 MongoDB 4.0 及以上版本
|
|
223
|
+
- 默认端口为 27017
|
|
224
|
+
|
|
225
|
+
#### 8. SQLite 示例
|
|
81
226
|
|
|
82
227
|
```json
|
|
83
228
|
{
|
|
@@ -100,7 +245,7 @@ npx universal-db-mcp
|
|
|
100
245
|
- Windows 路径示例:`"C:\\Users\\YourName\\data\\mydb.db"`
|
|
101
246
|
- macOS/Linux 路径示例:`"/Users/YourName/data/mydb.db"`
|
|
102
247
|
|
|
103
|
-
#### KingbaseES 示例
|
|
248
|
+
#### 9. KingbaseES 示例
|
|
104
249
|
|
|
105
250
|
```json
|
|
106
251
|
{
|
|
@@ -126,7 +271,7 @@ npx universal-db-mcp
|
|
|
126
271
|
- 默认端口为 54321
|
|
127
272
|
- 使用与 PostgreSQL 相同的驱动(pg)
|
|
128
273
|
|
|
129
|
-
#### GaussDB / OpenGauss 示例
|
|
274
|
+
#### 10. GaussDB / OpenGauss 示例
|
|
130
275
|
|
|
131
276
|
```json
|
|
132
277
|
{
|
|
@@ -153,7 +298,7 @@ npx universal-db-mcp
|
|
|
153
298
|
- 可以使用 `--type gaussdb` 或 `--type opengauss`
|
|
154
299
|
- 使用与 PostgreSQL 相同的驱动(pg)
|
|
155
300
|
|
|
156
|
-
#### OceanBase 示例
|
|
301
|
+
#### 11. OceanBase 示例
|
|
157
302
|
|
|
158
303
|
```json
|
|
159
304
|
{
|
|
@@ -180,7 +325,7 @@ npx universal-db-mcp
|
|
|
180
325
|
- 用户名格式:`用户名@租户名`(如 `root@test`)
|
|
181
326
|
- 使用与 MySQL 相同的驱动(mysql2)
|
|
182
327
|
|
|
183
|
-
#### TiDB 示例
|
|
328
|
+
#### 12. TiDB 示例
|
|
184
329
|
|
|
185
330
|
```json
|
|
186
331
|
{
|
|
@@ -207,7 +352,7 @@ npx universal-db-mcp
|
|
|
207
352
|
- 支持分布式事务和水平扩展
|
|
208
353
|
- 使用与 MySQL 相同的驱动(mysql2)
|
|
209
354
|
|
|
210
|
-
#### ClickHouse 示例
|
|
355
|
+
#### 13. ClickHouse 示例
|
|
211
356
|
|
|
212
357
|
```json
|
|
213
358
|
{
|
|
@@ -234,7 +379,7 @@ npx universal-db-mcp
|
|
|
234
379
|
- 默认用户为 default,默认数据库为 default
|
|
235
380
|
- 适合大数据分析和实时查询场景
|
|
236
381
|
|
|
237
|
-
#### PolarDB 示例
|
|
382
|
+
#### 14. PolarDB 示例
|
|
238
383
|
|
|
239
384
|
```json
|
|
240
385
|
{
|
|
@@ -261,7 +406,7 @@ npx universal-db-mcp
|
|
|
261
406
|
- 支持一写多读架构,读写分离
|
|
262
407
|
- 使用与 MySQL 相同的驱动(mysql2)
|
|
263
408
|
|
|
264
|
-
#### Vastbase 示例
|
|
409
|
+
#### 15. Vastbase 示例
|
|
265
410
|
|
|
266
411
|
```json
|
|
267
412
|
{
|
|
@@ -288,7 +433,7 @@ npx universal-db-mcp
|
|
|
288
433
|
- 默认端口为 5432
|
|
289
434
|
- 使用与 PostgreSQL 相同的驱动(pg)
|
|
290
435
|
|
|
291
|
-
#### HighGo 示例
|
|
436
|
+
#### 16. HighGo 示例
|
|
292
437
|
|
|
293
438
|
```json
|
|
294
439
|
{
|
|
@@ -315,6 +460,146 @@ npx universal-db-mcp
|
|
|
315
460
|
- 默认端口为 5866
|
|
316
461
|
- 使用与 PostgreSQL 相同的驱动(pg)
|
|
317
462
|
|
|
463
|
+
#### 17. GoldenDB 示例
|
|
464
|
+
|
|
465
|
+
```json
|
|
466
|
+
{
|
|
467
|
+
"mcpServers": {
|
|
468
|
+
"goldendb-db": {
|
|
469
|
+
"command": "npx",
|
|
470
|
+
"args": [
|
|
471
|
+
"universal-db-mcp",
|
|
472
|
+
"--type", "goldendb",
|
|
473
|
+
"--host", "localhost",
|
|
474
|
+
"--port", "3306",
|
|
475
|
+
"--user", "root",
|
|
476
|
+
"--password", "your_password",
|
|
477
|
+
"--database", "test"
|
|
478
|
+
]
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**说明**:
|
|
485
|
+
- GoldenDB 是中兴通讯的国产分布式数据库
|
|
486
|
+
- 完全兼容 MySQL 5.7/8.0 协议
|
|
487
|
+
- 默认端口为 3306
|
|
488
|
+
- 使用与 MySQL 相同的驱动(mysql2)
|
|
489
|
+
- 支持分布式事务和水平扩展
|
|
490
|
+
|
|
491
|
+
### 配置 Cherry Studio
|
|
492
|
+
|
|
493
|
+
Cherry Studio 也支持 MCP 协议。在 Cherry Studio 中配置 MCP 主要是配置命令。
|
|
494
|
+
|
|
495
|
+
以下是所有 17 个数据库的 Cherry Studio 配置命令:
|
|
496
|
+
|
|
497
|
+
#### 1. MySQL
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
npx universal-db-mcp@latest --type mysql --host localhost --port 3306 --user root --password your_password --database your_database
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
#### 2. PostgreSQL
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
npx universal-db-mcp@latest --type postgres --host localhost --port 5432 --user postgres --password your_password --database your_database
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
#### 3. Redis
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
npx universal-db-mcp@latest --type redis --host localhost --port 6379 --password your_password
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
#### 4. Oracle
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
npx universal-db-mcp@latest --type oracle --host localhost --port 1521 --user system --password your_password --database ORCL
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
#### 5. 达梦(DM)
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
npx universal-db-mcp@latest --type dm --host localhost --port 5236 --user SYSDBA --password your_password --database DAMENG
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
#### 6. SQL Server
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
npx universal-db-mcp@latest --type sqlserver --host localhost --port 1433 --user sa --password your_password --database master
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
#### 7. MongoDB
|
|
534
|
+
|
|
535
|
+
```bash
|
|
536
|
+
npx universal-db-mcp@latest --type mongodb --host localhost --port 27017 --user admin --password your_password --database test
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
#### 8. SQLite
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
npx universal-db-mcp@latest --type sqlite --file /path/to/your/database.db
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
#### 9. KingbaseES
|
|
546
|
+
|
|
547
|
+
```bash
|
|
548
|
+
npx universal-db-mcp@latest --type kingbase --host localhost --port 54321 --user system --password your_password --database test
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
#### 10. GaussDB / OpenGauss
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
npx universal-db-mcp@latest --type gaussdb --host localhost --port 5432 --user gaussdb --password your_password --database postgres
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
#### 11. OceanBase
|
|
558
|
+
|
|
559
|
+
```bash
|
|
560
|
+
npx universal-db-mcp@latest --type oceanbase --host localhost --port 2881 --user root@test --password your_password --database test
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
#### 12. TiDB
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
npx universal-db-mcp@latest --type tidb --host localhost --port 4000 --user root --password your_password --database test
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
#### 13. ClickHouse
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
npx universal-db-mcp@latest --type clickhouse --host localhost --port 8123 --user default --password "" --database default
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
#### 14. PolarDB
|
|
576
|
+
|
|
577
|
+
```bash
|
|
578
|
+
npx universal-db-mcp@latest --type polardb --host pc-xxxxx.mysql.polardb.rds.aliyuncs.com --port 3306 --user your_username --password your_password --database your_database
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
#### 15. Vastbase
|
|
582
|
+
|
|
583
|
+
```bash
|
|
584
|
+
npx universal-db-mcp@latest --type vastbase --host localhost --port 5432 --user vastbase --password your_password --database postgres
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
#### 16. HighGo
|
|
588
|
+
|
|
589
|
+
```bash
|
|
590
|
+
npx universal-db-mcp@latest --type highgo --host localhost --port 5866 --user highgo --password your_password --database highgo
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
#### 17. GoldenDB
|
|
594
|
+
|
|
595
|
+
```bash
|
|
596
|
+
npx universal-db-mcp@latest --type goldendb --host localhost --port 3306 --user root --password your_password --database test
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
**注意**:
|
|
600
|
+
- 将命令中的参数替换为你的实际数据库连接信息
|
|
601
|
+
- 如需启用写入模式,在命令前添加 `--danger-allow-write` 参数
|
|
602
|
+
|
|
318
603
|
### 启动使用
|
|
319
604
|
|
|
320
605
|
1. 重启 Claude Desktop
|
|
@@ -364,6 +649,7 @@ Claude 会自动调用数据库工具完成查询!
|
|
|
364
649
|
| PolarDB | `--type polardb` | 3306 | ✅ 已支持 | 阿里云云原生数据库,兼容 MySQL |
|
|
365
650
|
| Vastbase | `--type vastbase` | 5432 | ✅ 已支持 | 海量数据国产数据库,兼容 PostgreSQL |
|
|
366
651
|
| HighGo | `--type highgo` | 5866 | ✅ 已支持 | 瀚高国产数据库,兼容 PostgreSQL |
|
|
652
|
+
| GoldenDB | `--type goldendb` | 3306 | ✅ 已支持 | 中兴分布式数据库,兼容 MySQL |
|
|
367
653
|
|
|
368
654
|
**注意**:
|
|
369
655
|
- 达梦数据库驱动 `dmdb` 会作为可选依赖自动安装。如果安装失败,请手动运行 `npm install -g dmdb`。
|
|
@@ -375,7 +661,7 @@ Claude 会自动调用数据库工具完成查询!
|
|
|
375
661
|
universal-db-mcp [选项]
|
|
376
662
|
|
|
377
663
|
选项:
|
|
378
|
-
--type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss|oceanbase|tidb|clickhouse|polardb|vastbase|highgo)
|
|
664
|
+
--type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss|oceanbase|tidb|clickhouse|polardb|vastbase|highgo|goldendb)
|
|
379
665
|
--host <host> 数据库主机地址 (默认: localhost)
|
|
380
666
|
--port <port> 数据库端口
|
|
381
667
|
--user <user> 用户名
|
|
@@ -408,7 +694,8 @@ src/
|
|
|
408
694
|
│ ├── clickhouse.ts
|
|
409
695
|
│ ├── polardb.ts
|
|
410
696
|
│ ├── vastbase.ts
|
|
411
|
-
│
|
|
697
|
+
│ ├── highgo.ts
|
|
698
|
+
│ └── goldendb.ts
|
|
412
699
|
├── types/ # TypeScript 类型定义
|
|
413
700
|
│ └── adapter.ts
|
|
414
701
|
├── utils/ # 工具函数
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoldenDB 数据库适配器
|
|
3
|
+
* 使用 mysql2 驱动实现 DbAdapter 接口
|
|
4
|
+
* GoldenDB 兼容 MySQL 协议
|
|
5
|
+
*/
|
|
6
|
+
import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
|
|
7
|
+
export declare class GoldenDBAdapter implements DbAdapter {
|
|
8
|
+
private connection;
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config: {
|
|
11
|
+
host: string;
|
|
12
|
+
port: number;
|
|
13
|
+
user?: string;
|
|
14
|
+
password?: string;
|
|
15
|
+
database?: string;
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* 连接到 GoldenDB 数据库
|
|
19
|
+
*/
|
|
20
|
+
connect(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* 断开数据库连接
|
|
23
|
+
*/
|
|
24
|
+
disconnect(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 执行 SQL 查询
|
|
27
|
+
*/
|
|
28
|
+
executeQuery(query: string, params?: unknown[]): Promise<QueryResult>;
|
|
29
|
+
/**
|
|
30
|
+
* 获取数据库结构信息
|
|
31
|
+
*/
|
|
32
|
+
getSchema(): Promise<SchemaInfo>;
|
|
33
|
+
/**
|
|
34
|
+
* 获取单个表的详细信息
|
|
35
|
+
*/
|
|
36
|
+
private getTableInfo;
|
|
37
|
+
/**
|
|
38
|
+
* 检查是否为写操作
|
|
39
|
+
*/
|
|
40
|
+
isWriteOperation(query: string): boolean;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=goldendb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goldendb.d.ts","sourceRoot":"","sources":["../../src/adapters/goldendb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,UAAU,CAAiC;IACnD,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;IAoB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAwCtC;;OAEG;YACW,YAAY;IAuE1B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoldenDB 数据库适配器
|
|
3
|
+
* 使用 mysql2 驱动实现 DbAdapter 接口
|
|
4
|
+
* GoldenDB 兼容 MySQL 协议
|
|
5
|
+
*/
|
|
6
|
+
import mysql from 'mysql2/promise';
|
|
7
|
+
import { isWriteOperation as checkWriteOperation } from '../utils/safety.js';
|
|
8
|
+
export class GoldenDBAdapter {
|
|
9
|
+
connection = null;
|
|
10
|
+
config;
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 连接到 GoldenDB 数据库
|
|
16
|
+
*/
|
|
17
|
+
async connect() {
|
|
18
|
+
try {
|
|
19
|
+
this.connection = await mysql.createConnection({
|
|
20
|
+
host: this.config.host,
|
|
21
|
+
port: this.config.port,
|
|
22
|
+
user: this.config.user,
|
|
23
|
+
password: this.config.password,
|
|
24
|
+
database: this.config.database,
|
|
25
|
+
multipleStatements: false,
|
|
26
|
+
});
|
|
27
|
+
// 测试连接
|
|
28
|
+
await this.connection.ping();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new Error(`GoldenDB 连接失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 断开数据库连接
|
|
36
|
+
*/
|
|
37
|
+
async disconnect() {
|
|
38
|
+
if (this.connection) {
|
|
39
|
+
await this.connection.end();
|
|
40
|
+
this.connection = null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 执行 SQL 查询
|
|
45
|
+
*/
|
|
46
|
+
async executeQuery(query, params) {
|
|
47
|
+
if (!this.connection) {
|
|
48
|
+
throw new Error('数据库未连接');
|
|
49
|
+
}
|
|
50
|
+
const startTime = Date.now();
|
|
51
|
+
try {
|
|
52
|
+
const [rows, fields] = await this.connection.execute(query, params);
|
|
53
|
+
const executionTime = Date.now() - startTime;
|
|
54
|
+
// 处理不同类型的查询结果
|
|
55
|
+
if (Array.isArray(rows)) {
|
|
56
|
+
return {
|
|
57
|
+
rows: rows,
|
|
58
|
+
executionTime,
|
|
59
|
+
metadata: {
|
|
60
|
+
fieldCount: fields?.length || 0,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// INSERT/UPDATE/DELETE 等操作
|
|
66
|
+
const result = rows;
|
|
67
|
+
return {
|
|
68
|
+
rows: [],
|
|
69
|
+
affectedRows: result.affectedRows,
|
|
70
|
+
executionTime,
|
|
71
|
+
metadata: {
|
|
72
|
+
insertId: result.insertId,
|
|
73
|
+
changedRows: result.changedRows,
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
throw new Error(`查询执行失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 获取数据库结构信息
|
|
84
|
+
*/
|
|
85
|
+
async getSchema() {
|
|
86
|
+
if (!this.connection) {
|
|
87
|
+
throw new Error('数据库未连接');
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
// 获取数据库版本
|
|
91
|
+
const [versionRows] = await this.connection.query('SELECT VERSION() as version');
|
|
92
|
+
const version = versionRows[0]?.version || 'unknown';
|
|
93
|
+
// 获取当前数据库名
|
|
94
|
+
const [dbRows] = await this.connection.query('SELECT DATABASE() as db');
|
|
95
|
+
const databaseName = dbRows[0]?.db || this.config.database || 'unknown';
|
|
96
|
+
// 获取所有表
|
|
97
|
+
const [tables] = await this.connection.query('SHOW TABLES');
|
|
98
|
+
const tableInfos = [];
|
|
99
|
+
for (const tableRow of tables) {
|
|
100
|
+
const tableName = Object.values(tableRow)[0];
|
|
101
|
+
const tableInfo = await this.getTableInfo(tableName);
|
|
102
|
+
tableInfos.push(tableInfo);
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
databaseType: 'goldendb',
|
|
106
|
+
databaseName,
|
|
107
|
+
tables: tableInfos,
|
|
108
|
+
version,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
throw new Error(`获取数据库结构失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 获取单个表的详细信息
|
|
117
|
+
*/
|
|
118
|
+
async getTableInfo(tableName) {
|
|
119
|
+
if (!this.connection) {
|
|
120
|
+
throw new Error('数据库未连接');
|
|
121
|
+
}
|
|
122
|
+
// 获取列信息
|
|
123
|
+
const [columns] = await this.connection.query('SHOW FULL COLUMNS FROM ??', [tableName]);
|
|
124
|
+
const columnInfos = columns.map((col) => ({
|
|
125
|
+
name: col.Field,
|
|
126
|
+
type: col.Type,
|
|
127
|
+
nullable: col.Null === 'YES',
|
|
128
|
+
defaultValue: col.Default,
|
|
129
|
+
comment: col.Comment || undefined,
|
|
130
|
+
}));
|
|
131
|
+
// 获取主键
|
|
132
|
+
const primaryKeys = columns
|
|
133
|
+
.filter((col) => col.Key === 'PRI')
|
|
134
|
+
.map((col) => col.Field);
|
|
135
|
+
// 获取索引信息
|
|
136
|
+
const [indexes] = await this.connection.query('SHOW INDEX FROM ??', [tableName]);
|
|
137
|
+
const indexMap = new Map();
|
|
138
|
+
for (const idx of indexes) {
|
|
139
|
+
const indexName = idx.Key_name;
|
|
140
|
+
if (indexName === 'PRIMARY')
|
|
141
|
+
continue; // 跳过主键索引
|
|
142
|
+
if (!indexMap.has(indexName)) {
|
|
143
|
+
indexMap.set(indexName, {
|
|
144
|
+
columns: [],
|
|
145
|
+
unique: idx.Non_unique === 0,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
indexMap.get(indexName).columns.push(idx.Column_name);
|
|
149
|
+
}
|
|
150
|
+
const indexInfos = Array.from(indexMap.entries()).map(([name, info]) => ({
|
|
151
|
+
name,
|
|
152
|
+
columns: info.columns,
|
|
153
|
+
unique: info.unique,
|
|
154
|
+
}));
|
|
155
|
+
// 获取表行数估算
|
|
156
|
+
const [statusRows] = await this.connection.query('SHOW TABLE STATUS WHERE Name = ?', [tableName]);
|
|
157
|
+
const estimatedRows = statusRows[0]?.Rows || 0;
|
|
158
|
+
return {
|
|
159
|
+
name: tableName,
|
|
160
|
+
columns: columnInfos,
|
|
161
|
+
primaryKeys,
|
|
162
|
+
indexes: indexInfos,
|
|
163
|
+
estimatedRows,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* 检查是否为写操作
|
|
168
|
+
*/
|
|
169
|
+
isWriteOperation(query) {
|
|
170
|
+
return checkWriteOperation(query);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=goldendb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goldendb.js","sourceRoot":"","sources":["../../src/adapters/goldendb.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,12 +20,13 @@ import { ClickHouseAdapter } from './adapters/clickhouse.js';
|
|
|
20
20
|
import { PolarDBAdapter } from './adapters/polardb.js';
|
|
21
21
|
import { VastbaseAdapter } from './adapters/vastbase.js';
|
|
22
22
|
import { HighGoAdapter } from './adapters/highgo.js';
|
|
23
|
+
import { GoldenDBAdapter } from './adapters/goldendb.js';
|
|
23
24
|
const program = new Command();
|
|
24
25
|
program
|
|
25
26
|
.name('universal-db-mcp')
|
|
26
27
|
.description('MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库')
|
|
27
28
|
.version('0.1.0')
|
|
28
|
-
.requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss|oceanbase|tidb|clickhouse|polardb|vastbase|highgo)')
|
|
29
|
+
.requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss|oceanbase|tidb|clickhouse|polardb|vastbase|highgo|goldendb)')
|
|
29
30
|
.option('--host <host>', '数据库主机地址')
|
|
30
31
|
.option('--port <port>', '数据库端口', parseInt)
|
|
31
32
|
.option('--user <user>', '用户名')
|
|
@@ -37,8 +38,8 @@ program
|
|
|
37
38
|
.action(async (options) => {
|
|
38
39
|
try {
|
|
39
40
|
// 验证数据库类型
|
|
40
|
-
if (!['mysql', 'postgres', 'redis', 'oracle', 'dm', 'sqlserver', 'mssql', 'mongodb', 'sqlite', 'kingbase', 'gaussdb', 'opengauss', 'oceanbase', 'tidb', 'clickhouse', 'polardb', 'vastbase', 'highgo'].includes(options.type)) {
|
|
41
|
-
console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm, sqlserver (或 mssql), mongodb, sqlite, kingbase, gaussdb (或 opengauss), oceanbase, tidb, clickhouse, polardb, vastbase, highgo');
|
|
41
|
+
if (!['mysql', 'postgres', 'redis', 'oracle', 'dm', 'sqlserver', 'mssql', 'mongodb', 'sqlite', 'kingbase', 'gaussdb', 'opengauss', 'oceanbase', 'tidb', 'clickhouse', 'polardb', 'vastbase', 'highgo', 'goldendb'].includes(options.type)) {
|
|
42
|
+
console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm, sqlserver (或 mssql), mongodb, sqlite, kingbase, gaussdb (或 opengauss), oceanbase, tidb, clickhouse, polardb, vastbase, highgo, goldendb');
|
|
42
43
|
process.exit(1);
|
|
43
44
|
}
|
|
44
45
|
// 规范化 SQL Server 和 GaussDB 别名
|
|
@@ -231,6 +232,15 @@ program
|
|
|
231
232
|
database: config.database,
|
|
232
233
|
});
|
|
233
234
|
break;
|
|
235
|
+
case 'goldendb':
|
|
236
|
+
adapter = new GoldenDBAdapter({
|
|
237
|
+
host: config.host,
|
|
238
|
+
port: config.port,
|
|
239
|
+
user: config.user,
|
|
240
|
+
password: config.password,
|
|
241
|
+
database: config.database,
|
|
242
|
+
});
|
|
243
|
+
break;
|
|
234
244
|
default:
|
|
235
245
|
throw new Error(`不支持的数据库类型: ${config.type}`);
|
|
236
246
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/adapter.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export interface QueryResult {
|
|
|
49
49
|
*/
|
|
50
50
|
export interface SchemaInfo {
|
|
51
51
|
/** 数据库类型 */
|
|
52
|
-
databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb' | 'oceanbase' | 'tidb' | 'clickhouse' | 'polardb' | 'vastbase' | 'highgo';
|
|
52
|
+
databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb' | 'oceanbase' | 'tidb' | 'clickhouse' | 'polardb' | 'vastbase' | 'highgo' | 'goldendb';
|
|
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' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb' | 'oceanbase' | 'tidb' | 'clickhouse' | 'polardb' | 'vastbase' | 'highgo';
|
|
105
|
+
type: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb' | 'oceanbase' | 'tidb' | 'clickhouse' | 'polardb' | 'vastbase' | 'highgo' | 'goldendb';
|
|
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,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/types/adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "universal-db-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"海量数据",
|
|
46
46
|
"highgo",
|
|
47
47
|
"瀚高",
|
|
48
|
+
"goldendb",
|
|
49
|
+
"中兴",
|
|
48
50
|
"列式数据库",
|
|
49
51
|
"蚂蚁金服",
|
|
50
52
|
"华为高斯",
|