universal-db-mcp 0.13.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 +7 -0
- package/EXAMPLES.md +420 -0
- package/README.md +330 -14
- 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/adapters/highgo.d.ts +42 -0
- package/dist/adapters/highgo.d.ts.map +1 -0
- package/dist/adapters/highgo.js +207 -0
- package/dist/adapters/highgo.js.map +1 -0
- package/dist/index.js +23 -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 +5 -1
package/CONTRIBUTING.md
CHANGED
|
@@ -52,11 +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
|
|
65
|
+
- **HighGo** (`src/adapters/highgo.ts`) - 国产数据库,兼容 PostgreSQL
|
|
66
|
+
- **GoldenDB** (`src/adapters/goldendb.ts`) - 国产分布式数据库,兼容 MySQL
|
|
60
67
|
|
|
61
68
|
### 示例结构
|
|
62
69
|
|
package/EXAMPLES.md
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
- [ClickHouse 使用示例](#clickhouse-使用示例)
|
|
20
20
|
- [PolarDB 使用示例](#polardb-使用示例)
|
|
21
21
|
- [Vastbase 使用示例](#vastbase-使用示例)
|
|
22
|
+
- [HighGo 使用示例](#highgo-使用示例)
|
|
23
|
+
- [GoldenDB 使用示例](#goldendb-使用示例)
|
|
22
24
|
- [Claude Desktop 配置示例](#claude-desktop-配置示例)
|
|
23
25
|
- [常见使用场景](#常见使用场景)
|
|
24
26
|
|
|
@@ -2127,6 +2129,424 @@ Vastbase 作为国产数据库,有一些特色功能:
|
|
|
2127
2129
|
|
|
2128
2130
|
---
|
|
2129
2131
|
|
|
2132
|
+
## HighGo 使用示例
|
|
2133
|
+
|
|
2134
|
+
### 基础配置(只读模式)
|
|
2135
|
+
|
|
2136
|
+
```json
|
|
2137
|
+
{
|
|
2138
|
+
"mcpServers": {
|
|
2139
|
+
"highgo-db": {
|
|
2140
|
+
"command": "npx",
|
|
2141
|
+
"args": [
|
|
2142
|
+
"universal-db-mcp",
|
|
2143
|
+
"--type", "highgo",
|
|
2144
|
+
"--host", "localhost",
|
|
2145
|
+
"--port", "5866",
|
|
2146
|
+
"--user", "highgo",
|
|
2147
|
+
"--password", "your_password",
|
|
2148
|
+
"--database", "highgo"
|
|
2149
|
+
]
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
```
|
|
2154
|
+
|
|
2155
|
+
### 启用写入模式
|
|
2156
|
+
|
|
2157
|
+
```json
|
|
2158
|
+
{
|
|
2159
|
+
"mcpServers": {
|
|
2160
|
+
"highgo-write": {
|
|
2161
|
+
"command": "npx",
|
|
2162
|
+
"args": [
|
|
2163
|
+
"universal-db-mcp",
|
|
2164
|
+
"--type", "highgo",
|
|
2165
|
+
"--host", "localhost",
|
|
2166
|
+
"--port", "5866",
|
|
2167
|
+
"--user", "highgo",
|
|
2168
|
+
"--password", "your_password",
|
|
2169
|
+
"--database", "mydb",
|
|
2170
|
+
"--danger-allow-write"
|
|
2171
|
+
]
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
```
|
|
2176
|
+
|
|
2177
|
+
### 连接 HighGo 集群
|
|
2178
|
+
|
|
2179
|
+
```json
|
|
2180
|
+
{
|
|
2181
|
+
"mcpServers": {
|
|
2182
|
+
"highgo-cluster": {
|
|
2183
|
+
"command": "npx",
|
|
2184
|
+
"args": [
|
|
2185
|
+
"universal-db-mcp",
|
|
2186
|
+
"--type", "highgo",
|
|
2187
|
+
"--host", "highgo-cluster.example.com",
|
|
2188
|
+
"--port", "5866",
|
|
2189
|
+
"--user", "your_username",
|
|
2190
|
+
"--password", "your_password",
|
|
2191
|
+
"--database", "production"
|
|
2192
|
+
]
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
}
|
|
2196
|
+
```
|
|
2197
|
+
|
|
2198
|
+
### 与 Claude 对话示例
|
|
2199
|
+
|
|
2200
|
+
**用户**: 查看数据库中有哪些表?
|
|
2201
|
+
|
|
2202
|
+
**Claude 会自动**:
|
|
2203
|
+
1. 调用 `get_schema` 工具
|
|
2204
|
+
2. 查询 `information_schema.tables`
|
|
2205
|
+
3. 返回表列表
|
|
2206
|
+
|
|
2207
|
+
**用户**: 查看 products 表的结构
|
|
2208
|
+
|
|
2209
|
+
**Claude 会自动**:
|
|
2210
|
+
1. 调用 `get_table_info` 工具
|
|
2211
|
+
2. 查询 `information_schema.columns`
|
|
2212
|
+
3. 返回列信息、主键、索引等详细信息
|
|
2213
|
+
|
|
2214
|
+
**用户**: 统计每个类别的商品数量
|
|
2215
|
+
|
|
2216
|
+
**Claude 会自动**:
|
|
2217
|
+
1. 理解需求
|
|
2218
|
+
2. 生成 SQL: `SELECT category, COUNT(*) as product_count FROM products GROUP BY category ORDER BY product_count DESC`
|
|
2219
|
+
3. 执行并返回结果
|
|
2220
|
+
|
|
2221
|
+
**用户**: 查找价格超过 1000 元的商品
|
|
2222
|
+
|
|
2223
|
+
**Claude 会自动**:
|
|
2224
|
+
1. 生成 SQL: `SELECT * FROM products WHERE price > 1000 ORDER BY price DESC`
|
|
2225
|
+
2. 执行并返回结果
|
|
2226
|
+
|
|
2227
|
+
### 注意事项
|
|
2228
|
+
|
|
2229
|
+
1. **默认端口**: 5866(HighGo 默认端口)
|
|
2230
|
+
2. **兼容性**: 兼容 PostgreSQL 协议和大部分 SQL 语法
|
|
2231
|
+
3. **驱动**: 使用 PostgreSQL 的 `pg` 驱动
|
|
2232
|
+
4. **国产数据库**: 瀚高公司开发,支持国产化替代
|
|
2233
|
+
5. **企业级特性**:
|
|
2234
|
+
- 支持高可用集群
|
|
2235
|
+
- 支持数据加密
|
|
2236
|
+
- 支持审计日志
|
|
2237
|
+
- 支持备份恢复
|
|
2238
|
+
|
|
2239
|
+
### 支持的版本
|
|
2240
|
+
|
|
2241
|
+
- ✅ HighGo DB 4.x
|
|
2242
|
+
- ✅ HighGo DB 5.x
|
|
2243
|
+
- ✅ HighGo DB 6.x
|
|
2244
|
+
- ✅ 其他兼容 PostgreSQL 的版本
|
|
2245
|
+
|
|
2246
|
+
### 常见使用场景
|
|
2247
|
+
|
|
2248
|
+
#### 1. 国产化替代
|
|
2249
|
+
|
|
2250
|
+
使用 HighGo 替代 PostgreSQL 或 Oracle:
|
|
2251
|
+
|
|
2252
|
+
```
|
|
2253
|
+
用户: 查询订单表中的所有数据
|
|
2254
|
+
|
|
2255
|
+
Claude 会:
|
|
2256
|
+
1. 查询订单表
|
|
2257
|
+
2. 返回结果
|
|
2258
|
+
3. 完全兼容 PostgreSQL 语法
|
|
2259
|
+
```
|
|
2260
|
+
|
|
2261
|
+
#### 2. 企业级应用
|
|
2262
|
+
|
|
2263
|
+
```
|
|
2264
|
+
用户: 查询销售数据,需要关联多个表
|
|
2265
|
+
|
|
2266
|
+
Claude 会:
|
|
2267
|
+
1. 生成复杂的 JOIN 查询
|
|
2268
|
+
2. 利用 HighGo 的查询优化
|
|
2269
|
+
3. 返回结果
|
|
2270
|
+
```
|
|
2271
|
+
|
|
2272
|
+
#### 3. 数据分析
|
|
2273
|
+
|
|
2274
|
+
```
|
|
2275
|
+
用户: 分析最近一季度的销售趋势
|
|
2276
|
+
|
|
2277
|
+
Claude 会:
|
|
2278
|
+
1. 生成聚合查询
|
|
2279
|
+
2. 按时间分组统计
|
|
2280
|
+
3. 生成趋势分析报告
|
|
2281
|
+
```
|
|
2282
|
+
|
|
2283
|
+
#### 4. 高可用场景
|
|
2284
|
+
|
|
2285
|
+
```
|
|
2286
|
+
用户: 连接 HighGo 集群进行查询
|
|
2287
|
+
|
|
2288
|
+
Claude 会:
|
|
2289
|
+
1. 连接到集群地址
|
|
2290
|
+
2. 自动负载均衡
|
|
2291
|
+
3. 保证高可用性
|
|
2292
|
+
```
|
|
2293
|
+
|
|
2294
|
+
### HighGo 特色功能
|
|
2295
|
+
|
|
2296
|
+
HighGo 作为国产数据库,有一些特色功能:
|
|
2297
|
+
|
|
2298
|
+
- **PostgreSQL 兼容**: 兼容 PostgreSQL 9.x/10.x/11.x 协议和语法
|
|
2299
|
+
- **高可用**: 支持主备切换和故障转移
|
|
2300
|
+
- **数据加密**: 支持透明数据加密(TDE)
|
|
2301
|
+
- **审计日志**: 完善的审计日志功能
|
|
2302
|
+
- **国产化**: 支持国产操作系统和芯片
|
|
2303
|
+
- **Oracle 兼容**: 部分版本支持 Oracle 兼容模式
|
|
2304
|
+
|
|
2305
|
+
**注意**: 这些特色功能可能需要特定的配置或 SQL 语法,Claude 会根据标准 PostgreSQL 语法生成查询。
|
|
2306
|
+
|
|
2307
|
+
### HighGo 最佳实践
|
|
2308
|
+
|
|
2309
|
+
1. **表设计**:
|
|
2310
|
+
- 使用合适的数据类型
|
|
2311
|
+
- 合理设计主键和索引
|
|
2312
|
+
- 使用分区表提升性能
|
|
2313
|
+
- 避免过度规范化
|
|
2314
|
+
|
|
2315
|
+
2. **查询优化**:
|
|
2316
|
+
- 使用 EXPLAIN 分析查询计划
|
|
2317
|
+
- 创建合适的索引
|
|
2318
|
+
- 避免 SELECT *
|
|
2319
|
+
- 使用 LIMIT 限制返回结果
|
|
2320
|
+
|
|
2321
|
+
3. **连接管理**:
|
|
2322
|
+
- 使用连接池
|
|
2323
|
+
- 合理设置连接数
|
|
2324
|
+
- 定期检查连接健康状态
|
|
2325
|
+
- 避免长时间持有连接
|
|
2326
|
+
|
|
2327
|
+
4. **监控维护**:
|
|
2328
|
+
- 监控数据库性能指标
|
|
2329
|
+
- 定期执行 VACUUM
|
|
2330
|
+
- 更新统计信息
|
|
2331
|
+
- 定期备份数据
|
|
2332
|
+
|
|
2333
|
+
5. **安全建议**:
|
|
2334
|
+
- 使用强密码
|
|
2335
|
+
- 限制网络访问
|
|
2336
|
+
- 启用 SSL 连接
|
|
2337
|
+
- 定期审计日志
|
|
2338
|
+
|
|
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
|
+
|
|
2130
2550
|
## Claude Desktop 配置示例
|
|
2131
2551
|
|
|
2132
2552
|
### 同时连接多个数据库
|