universal-db-mcp 0.6.0 → 0.8.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/EXAMPLES.md CHANGED
@@ -12,6 +12,8 @@
12
12
  - [SQL Server 使用示例](#sql-server-使用示例)
13
13
  - [MongoDB 使用示例](#mongodb-使用示例)
14
14
  - [SQLite 使用示例](#sqlite-使用示例)
15
+ - [KingbaseES 使用示例](#kingbasees-使用示例)
16
+ - [GaussDB / OpenGauss 使用示例](#gaussdb--opengauss-使用示例)
15
17
  - [Claude Desktop 配置示例](#claude-desktop-配置示例)
16
18
  - [常见使用场景](#常见使用场景)
17
19
 
@@ -817,6 +819,328 @@ Claude 会:
817
819
 
818
820
  ---
819
821
 
822
+ ## KingbaseES 使用示例
823
+
824
+ ### 基础配置(只读模式)
825
+
826
+ ```json
827
+ {
828
+ "mcpServers": {
829
+ "kingbase-db": {
830
+ "command": "npx",
831
+ "args": [
832
+ "universal-db-mcp",
833
+ "--type", "kingbase",
834
+ "--host", "localhost",
835
+ "--port", "54321",
836
+ "--user", "system",
837
+ "--password", "your_password",
838
+ "--database", "test"
839
+ ]
840
+ }
841
+ }
842
+ }
843
+ ```
844
+
845
+ ### 启用写入模式
846
+
847
+ ```json
848
+ {
849
+ "mcpServers": {
850
+ "kingbase-write": {
851
+ "command": "npx",
852
+ "args": [
853
+ "universal-db-mcp",
854
+ "--type", "kingbase",
855
+ "--host", "localhost",
856
+ "--port", "54321",
857
+ "--user", "system",
858
+ "--password", "your_password",
859
+ "--database", "mydb",
860
+ "--danger-allow-write"
861
+ ]
862
+ }
863
+ }
864
+ }
865
+ ```
866
+
867
+ ### 连接远程 KingbaseES
868
+
869
+ ```json
870
+ {
871
+ "mcpServers": {
872
+ "kingbase-prod": {
873
+ "command": "npx",
874
+ "args": [
875
+ "universal-db-mcp",
876
+ "--type", "kingbase",
877
+ "--host", "kingbase.example.com",
878
+ "--port", "54321",
879
+ "--user", "readonly_user",
880
+ "--password", "secure_password",
881
+ "--database", "production"
882
+ ]
883
+ }
884
+ }
885
+ }
886
+ ```
887
+
888
+ ### 与 Claude 对话示例
889
+
890
+ **用户**: 查看数据库中有哪些表?
891
+
892
+ **Claude 会自动**:
893
+ 1. 调用 `get_schema` 工具
894
+ 2. 执行查询获取 public schema 下的所有表
895
+ 3. 返回表列表
896
+
897
+ **用户**: 查看 users 表的结构
898
+
899
+ **Claude 会自动**:
900
+ 1. 调用 `get_table_info` 工具
901
+ 2. 返回列信息、主键、索引等详细信息
902
+
903
+ **用户**: 统计每个部门的员工数量
904
+
905
+ **Claude 会自动**:
906
+ 1. 理解需求
907
+ 2. 生成 SQL: `SELECT department_id, COUNT(*) as count FROM employees GROUP BY department_id ORDER BY count DESC`
908
+ 3. 执行并返回结果
909
+
910
+ **用户**: 查找最近一周创建的订单
911
+
912
+ **Claude 会自动**:
913
+ 1. 生成 SQL: `SELECT * FROM orders WHERE created_at >= CURRENT_DATE - INTERVAL '7 days' ORDER BY created_at DESC`
914
+ 2. 执行并返回结果
915
+
916
+ ### 注意事项
917
+
918
+ 1. **默认端口**: KingbaseES 默认端口为 54321
919
+ 2. **兼容性**: 基于 PostgreSQL 开发,兼容 PostgreSQL 协议和 SQL 语法
920
+ 3. **驱动**: 使用 PostgreSQL 的 `pg` 驱动
921
+ 4. **Schema**: 默认查询 public schema 下的表
922
+ 5. **参数化查询**: 支持 `$1, $2, ...` 占位符
923
+ 6. **国产化**: 适用于国产化替代场景
924
+
925
+ ### 支持的 KingbaseES 版本
926
+
927
+ - ✅ KingbaseES V8
928
+ - ✅ KingbaseES V9
929
+ - ✅ 其他兼容 PostgreSQL 协议的版本
930
+
931
+ ### 常见使用场景
932
+
933
+ #### 1. 国产化数据库迁移
934
+
935
+ 从 PostgreSQL 迁移到 KingbaseES:
936
+
937
+ ```
938
+ 用户: 帮我分析现有表结构,准备迁移到 KingbaseES
939
+
940
+ Claude 会:
941
+ 1. 获取完整的 Schema 信息
942
+ 2. 分析表结构、索引、约束
943
+ 3. 提供迁移建议
944
+ ```
945
+
946
+ #### 2. 数据分析和报表
947
+
948
+ ```
949
+ 用户: 统计最近一个月的销售数据
950
+
951
+ Claude 会:
952
+ 1. 理解需求
953
+ 2. 生成复杂的聚合查询
954
+ 3. 返回分析结果
955
+ ```
956
+
957
+ #### 3. 开发和测试
958
+
959
+ ```
960
+ 用户: 在测试环境创建测试数据
961
+
962
+ Claude 会(在写入模式下):
963
+ 1. 生成 INSERT 语句
964
+ 2. 执行并验证结果
965
+ ```
966
+
967
+ ---
968
+
969
+ ## GaussDB / OpenGauss 使用示例
970
+
971
+ ### 基础配置(只读模式)
972
+
973
+ ```json
974
+ {
975
+ "mcpServers": {
976
+ "gaussdb-db": {
977
+ "command": "npx",
978
+ "args": [
979
+ "universal-db-mcp",
980
+ "--type", "gaussdb",
981
+ "--host", "localhost",
982
+ "--port", "5432",
983
+ "--user", "gaussdb",
984
+ "--password", "your_password",
985
+ "--database", "postgres"
986
+ ]
987
+ }
988
+ }
989
+ }
990
+ ```
991
+
992
+ **提示**: 也可以使用 `--type opengauss` 作为别名。
993
+
994
+ ### 启用写入模式
995
+
996
+ ```json
997
+ {
998
+ "mcpServers": {
999
+ "gaussdb-write": {
1000
+ "command": "npx",
1001
+ "args": [
1002
+ "universal-db-mcp",
1003
+ "--type", "gaussdb",
1004
+ "--host", "localhost",
1005
+ "--port", "5432",
1006
+ "--user", "gaussdb",
1007
+ "--password", "your_password",
1008
+ "--database", "mydb",
1009
+ "--danger-allow-write"
1010
+ ]
1011
+ }
1012
+ }
1013
+ }
1014
+ ```
1015
+
1016
+ ### 连接华为云 GaussDB
1017
+
1018
+ ```json
1019
+ {
1020
+ "mcpServers": {
1021
+ "gaussdb-cloud": {
1022
+ "command": "npx",
1023
+ "args": [
1024
+ "universal-db-mcp",
1025
+ "--type", "gaussdb",
1026
+ "--host", "gaussdb.cn-north-4.myhuaweicloud.com",
1027
+ "--port", "5432",
1028
+ "--user", "dbuser",
1029
+ "--password", "secure_password",
1030
+ "--database", "production"
1031
+ ]
1032
+ }
1033
+ }
1034
+ }
1035
+ ```
1036
+
1037
+ ### 与 Claude 对话示例
1038
+
1039
+ **用户**: 查看数据库中有哪些表?
1040
+
1041
+ **Claude 会自动**:
1042
+ 1. 调用 `get_schema` 工具
1043
+ 2. 执行查询获取 public schema 下的所有表
1044
+ 3. 返回表列表
1045
+
1046
+ **用户**: 查看 products 表的结构
1047
+
1048
+ **Claude 会自动**:
1049
+ 1. 调用 `get_table_info` 工具
1050
+ 2. 返回列信息、主键、索引等详细信息
1051
+
1052
+ **用户**: 统计每个类别的产品数量
1053
+
1054
+ **Claude 会自动**:
1055
+ 1. 理解需求
1056
+ 2. 生成 SQL: `SELECT category, COUNT(*) as count FROM products GROUP BY category ORDER BY count DESC`
1057
+ 3. 执行并返回结果
1058
+
1059
+ **用户**: 查找价格最高的 10 个产品
1060
+
1061
+ **Claude 会自动**:
1062
+ 1. 生成 SQL: `SELECT * FROM products ORDER BY price DESC LIMIT 10`
1063
+ 2. 执行并返回结果
1064
+
1065
+ ### 注意事项
1066
+
1067
+ 1. **默认端口**: GaussDB/OpenGauss 默认端口为 5432(与 PostgreSQL 相同)
1068
+ 2. **兼容性**: 基于 PostgreSQL 9.2 开发,兼容 PostgreSQL 协议和大部分 SQL 语法
1069
+ 3. **驱动**: 使用 PostgreSQL 的 `pg` 驱动
1070
+ 4. **Schema**: 默认查询 public schema 下的表
1071
+ 5. **参数化查询**: 支持 `$1, $2, ...` 占位符
1072
+ 6. **国产化**: 华为自研数据库,适用于国产化替代场景
1073
+ 7. **开源版本**: OpenGauss 是 GaussDB 的开源版本
1074
+
1075
+ ### 支持的版本
1076
+
1077
+ - ✅ GaussDB 100/200/300 系列
1078
+ - ✅ OpenGauss 2.x / 3.x / 5.x
1079
+ - ✅ 其他兼容 PostgreSQL 协议的版本
1080
+
1081
+ ### 常见使用场景
1082
+
1083
+ #### 1. 华为云数据库管理
1084
+
1085
+ 连接华为云 GaussDB 进行数据查询和分析:
1086
+
1087
+ ```
1088
+ 用户: 帮我分析最近一周的用户增长趋势
1089
+
1090
+ Claude 会:
1091
+ 1. 查询用户表
1092
+ 2. 按日期分组统计
1093
+ 3. 生成趋势分析报告
1094
+ ```
1095
+
1096
+ #### 2. 国产化数据库迁移
1097
+
1098
+ 从 PostgreSQL 迁移到 GaussDB:
1099
+
1100
+ ```
1101
+ 用户: 帮我分析现有表结构,准备迁移到 GaussDB
1102
+
1103
+ Claude 会:
1104
+ 1. 获取完整的 Schema 信息
1105
+ 2. 分析表结构、索引、约束
1106
+ 3. 提供迁移建议和兼容性分析
1107
+ ```
1108
+
1109
+ #### 3. 性能优化
1110
+
1111
+ ```
1112
+ 用户: 这个查询很慢,帮我优化
1113
+
1114
+ Claude 会:
1115
+ 1. 分析查询语句
1116
+ 2. 检查索引情况
1117
+ 3. 提供优化建议(添加索引、重写查询等)
1118
+ ```
1119
+
1120
+ #### 4. 数据分析和报表
1121
+
1122
+ ```
1123
+ 用户: 生成本月销售报表
1124
+
1125
+ Claude 会:
1126
+ 1. 理解需求
1127
+ 2. 生成复杂的聚合查询
1128
+ 3. 返回格式化的分析结果
1129
+ ```
1130
+
1131
+ ### GaussDB 特色功能
1132
+
1133
+ 虽然使用 PostgreSQL 协议,但 GaussDB 有一些特色功能:
1134
+
1135
+ - **列存储**: 支持列存储表(需要特定语法)
1136
+ - **分区表**: 增强的分区表功能
1137
+ - **并行查询**: 更强的并行查询能力
1138
+ - **AI 能力**: 内置 AI 引擎(部分版本)
1139
+
1140
+ **注意**: 这些特色功能可能需要特定的 SQL 语法,Claude 会根据标准 PostgreSQL 语法生成查询。
1141
+
1142
+ ---
1143
+
820
1144
  ## Claude Desktop 配置示例
821
1145
 
822
1146
  ### 同时连接多个数据库
@@ -879,6 +1203,30 @@ Claude 会:
879
1203
  "--type", "sqlite",
880
1204
  "--file", "/Users/yourname/data/local.db"
881
1205
  ]
1206
+ },
1207
+ "kingbase-db": {
1208
+ "command": "npx",
1209
+ "args": [
1210
+ "universal-db-mcp",
1211
+ "--type", "kingbase",
1212
+ "--host", "localhost",
1213
+ "--port", "54321",
1214
+ "--user", "system",
1215
+ "--password", "your_password",
1216
+ "--database", "test"
1217
+ ]
1218
+ },
1219
+ "gaussdb-db": {
1220
+ "command": "npx",
1221
+ "args": [
1222
+ "universal-db-mcp",
1223
+ "--type", "gaussdb",
1224
+ "--host", "localhost",
1225
+ "--port", "5432",
1226
+ "--user", "gaussdb",
1227
+ "--password", "your_password",
1228
+ "--database", "postgres"
1229
+ ]
882
1230
  }
883
1231
  }
884
1232
  }
@@ -891,6 +1239,8 @@ Claude 会:
891
1239
  - "检查 Redis 缓存中的..."
892
1240
  - "在 Oracle 数据仓库中统计..."
893
1241
  - "从 SQLite 本地数据库查询..."
1242
+ - "在 KingbaseES 数据库中查询..."
1243
+ - "从 GaussDB 数据库获取..."
894
1244
 
895
1245
  ---
896
1246
 
package/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  ✅ **智能表结构理解** - 自动获取数据库 Schema,提供精准建议
21
21
 
22
- ✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle、达梦、SQL Server、MongoDB、SQLite 一键切换
22
+ ✅ **多数据库支持** - MySQL、PostgreSQL、Redis、Oracle、达梦、SQL Server、MongoDB、SQLite、KingbaseES、GaussDB/OpenGauss 一键切换
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)
36
+ - 至少一个数据库实例(MySQL/PostgreSQL/Redis/Oracle/达梦/SQL Server/MongoDB/SQLite/KingbaseES/GaussDB
37
37
 
38
38
  ### 安装
39
39
 
@@ -100,6 +100,59 @@ npx universal-db-mcp
100
100
  - Windows 路径示例:`"C:\\Users\\YourName\\data\\mydb.db"`
101
101
  - macOS/Linux 路径示例:`"/Users/YourName/data/mydb.db"`
102
102
 
103
+ #### KingbaseES 示例
104
+
105
+ ```json
106
+ {
107
+ "mcpServers": {
108
+ "kingbase-db": {
109
+ "command": "npx",
110
+ "args": [
111
+ "universal-db-mcp",
112
+ "--type", "kingbase",
113
+ "--host", "localhost",
114
+ "--port", "54321",
115
+ "--user", "system",
116
+ "--password", "your_password",
117
+ "--database", "test"
118
+ ]
119
+ }
120
+ }
121
+ }
122
+ ```
123
+
124
+ **说明**:
125
+ - KingbaseES 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
126
+ - 默认端口为 54321
127
+ - 使用与 PostgreSQL 相同的驱动(pg)
128
+
129
+ #### GaussDB / OpenGauss 示例
130
+
131
+ ```json
132
+ {
133
+ "mcpServers": {
134
+ "gaussdb-db": {
135
+ "command": "npx",
136
+ "args": [
137
+ "universal-db-mcp",
138
+ "--type", "gaussdb",
139
+ "--host", "localhost",
140
+ "--port", "5432",
141
+ "--user", "gaussdb",
142
+ "--password", "your_password",
143
+ "--database", "postgres"
144
+ ]
145
+ }
146
+ }
147
+ }
148
+ ```
149
+
150
+ **说明**:
151
+ - GaussDB 和 OpenGauss 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
152
+ - 默认端口为 5432
153
+ - 可以使用 `--type gaussdb` 或 `--type opengauss`
154
+ - 使用与 PostgreSQL 相同的驱动(pg)
155
+
103
156
  ### 启动使用
104
157
 
105
158
  1. 重启 Claude Desktop
@@ -141,6 +194,8 @@ Claude 会自动调用数据库工具完成查询!
141
194
  | SQL Server (2012+) | `--type sqlserver` 或 `--type mssql` | 1433 | ✅ 已支持 | 支持 Azure SQL Database |
142
195
  | MongoDB | `--type mongodb` | 27017 | ✅ 已支持 | 支持 MongoDB 4.0+ |
143
196
  | SQLite | `--type sqlite` | - | ✅ 已支持 | 本地文件数据库 |
197
+ | KingbaseES(人大金仓) | `--type kingbase` | 54321 | ✅ 已支持 | 兼容 PostgreSQL 协议 |
198
+ | GaussDB / OpenGauss | `--type gaussdb` 或 `--type opengauss` | 5432 | ✅ 已支持 | 华为高斯数据库,兼容 PostgreSQL |
144
199
 
145
200
  **注意**:
146
201
  - 达梦数据库驱动 `dmdb` 会作为可选依赖自动安装。如果安装失败,请手动运行 `npm install -g dmdb`。
@@ -152,7 +207,7 @@ Claude 会自动调用数据库工具完成查询!
152
207
  universal-db-mcp [选项]
153
208
 
154
209
  选项:
155
- --type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite)
210
+ --type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss)
156
211
  --host <host> 数据库主机地址 (默认: localhost)
157
212
  --port <port> 数据库端口
158
213
  --user <user> 用户名
@@ -177,7 +232,9 @@ src/
177
232
  │ ├── dm.ts
178
233
  │ ├── sqlserver.ts
179
234
  │ ├── mongodb.ts
180
- └── sqlite.ts
235
+ ├── sqlite.ts
236
+ │ ├── kingbase.ts
237
+ │ └── gaussdb.ts
181
238
  ├── types/ # TypeScript 类型定义
182
239
  │ └── adapter.ts
183
240
  ├── utils/ # 工具函数
@@ -0,0 +1,42 @@
1
+ /**
2
+ * GaussDB / OpenGauss 数据库适配器
3
+ * 使用 pg 驱动实现 DbAdapter 接口
4
+ * GaussDB 和 OpenGauss 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
5
+ */
6
+ import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
7
+ export declare class GaussDBAdapter implements DbAdapter {
8
+ private client;
9
+ private config;
10
+ constructor(config: {
11
+ host: string;
12
+ port: number;
13
+ user?: string;
14
+ password?: string;
15
+ database?: string;
16
+ });
17
+ /**
18
+ * 连接到 GaussDB / OpenGauss 数据库
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=gaussdb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gaussdb.d.ts","sourceRoot":"","sources":["../../src/adapters/gaussdb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,MAAM,CAA0B;IACxC,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;IAqB9B;;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;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IA4CtC;;OAEG;YACW,YAAY;IA2G1B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * GaussDB / OpenGauss 数据库适配器
3
+ * 使用 pg 驱动实现 DbAdapter 接口
4
+ * GaussDB 和 OpenGauss 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
5
+ */
6
+ import pg from 'pg';
7
+ import { isWriteOperation as checkWriteOperation } from '../utils/safety.js';
8
+ const { Client } = pg;
9
+ export class GaussDBAdapter {
10
+ client = null;
11
+ config;
12
+ constructor(config) {
13
+ this.config = config;
14
+ }
15
+ /**
16
+ * 连接到 GaussDB / OpenGauss 数据库
17
+ */
18
+ async connect() {
19
+ try {
20
+ this.client = new Client({
21
+ host: this.config.host,
22
+ port: this.config.port,
23
+ user: this.config.user,
24
+ password: this.config.password,
25
+ database: this.config.database,
26
+ });
27
+ await this.client.connect();
28
+ // 测试连接
29
+ await this.client.query('SELECT 1');
30
+ }
31
+ catch (error) {
32
+ throw new Error(`GaussDB 连接失败: ${error instanceof Error ? error.message : String(error)}`);
33
+ }
34
+ }
35
+ /**
36
+ * 断开数据库连接
37
+ */
38
+ async disconnect() {
39
+ if (this.client) {
40
+ await this.client.end();
41
+ this.client = null;
42
+ }
43
+ }
44
+ /**
45
+ * 执行 SQL 查询
46
+ */
47
+ async executeQuery(query, params) {
48
+ if (!this.client) {
49
+ throw new Error('数据库未连接');
50
+ }
51
+ const startTime = Date.now();
52
+ try {
53
+ const result = await this.client.query(query, params);
54
+ const executionTime = Date.now() - startTime;
55
+ return {
56
+ rows: result.rows,
57
+ affectedRows: result.rowCount || 0,
58
+ executionTime,
59
+ metadata: {
60
+ command: result.command,
61
+ fields: result.fields?.map(f => ({
62
+ name: f.name,
63
+ dataTypeID: f.dataTypeID,
64
+ })),
65
+ },
66
+ };
67
+ }
68
+ catch (error) {
69
+ throw new Error(`查询执行失败: ${error instanceof Error ? error.message : String(error)}`);
70
+ }
71
+ }
72
+ /**
73
+ * 获取数据库结构信息
74
+ */
75
+ async getSchema() {
76
+ if (!this.client) {
77
+ throw new Error('数据库未连接');
78
+ }
79
+ try {
80
+ // 获取数据库版本
81
+ const versionResult = await this.client.query('SELECT version()');
82
+ const version = versionResult.rows[0]?.version || 'unknown';
83
+ // 获取当前数据库名
84
+ const dbResult = await this.client.query('SELECT current_database()');
85
+ const databaseName = dbResult.rows[0]?.current_database || this.config.database || 'unknown';
86
+ // 获取所有表(仅 public schema)
87
+ const tablesResult = await this.client.query(`
88
+ SELECT table_name
89
+ FROM information_schema.tables
90
+ WHERE table_schema = 'public'
91
+ AND table_type = 'BASE TABLE'
92
+ ORDER BY table_name
93
+ `);
94
+ const tableInfos = [];
95
+ for (const row of tablesResult.rows) {
96
+ const tableName = row.table_name;
97
+ const tableInfo = await this.getTableInfo(tableName);
98
+ tableInfos.push(tableInfo);
99
+ }
100
+ return {
101
+ databaseType: 'gaussdb',
102
+ databaseName,
103
+ tables: tableInfos,
104
+ version,
105
+ };
106
+ }
107
+ catch (error) {
108
+ throw new Error(`获取数据库结构失败: ${error instanceof Error ? error.message : String(error)}`);
109
+ }
110
+ }
111
+ /**
112
+ * 获取单个表的详细信息
113
+ */
114
+ async getTableInfo(tableName) {
115
+ if (!this.client) {
116
+ throw new Error('数据库未连接');
117
+ }
118
+ // 获取列信息
119
+ const columnsResult = await this.client.query(`
120
+ SELECT
121
+ column_name,
122
+ data_type,
123
+ is_nullable,
124
+ column_default,
125
+ character_maximum_length,
126
+ numeric_precision,
127
+ numeric_scale
128
+ FROM information_schema.columns
129
+ WHERE table_schema = 'public'
130
+ AND table_name = $1
131
+ ORDER BY ordinal_position
132
+ `, [tableName]);
133
+ const columnInfos = columnsResult.rows.map((col) => {
134
+ let dataType = col.data_type;
135
+ // 添加长度/精度信息
136
+ if (col.character_maximum_length) {
137
+ dataType += `(${col.character_maximum_length})`;
138
+ }
139
+ else if (col.numeric_precision) {
140
+ dataType += `(${col.numeric_precision}${col.numeric_scale ? `,${col.numeric_scale}` : ''})`;
141
+ }
142
+ return {
143
+ name: col.column_name,
144
+ type: dataType,
145
+ nullable: col.is_nullable === 'YES',
146
+ defaultValue: col.column_default || undefined,
147
+ };
148
+ });
149
+ // 获取主键
150
+ const pkResult = await this.client.query(`
151
+ SELECT a.attname
152
+ FROM pg_index i
153
+ JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
154
+ WHERE i.indrelid = $1::regclass
155
+ AND i.indisprimary
156
+ `, [tableName]);
157
+ const primaryKeys = pkResult.rows.map(row => row.attname);
158
+ // 获取索引信息
159
+ const indexResult = await this.client.query(`
160
+ SELECT
161
+ i.relname as index_name,
162
+ a.attname as column_name,
163
+ ix.indisunique as is_unique
164
+ FROM pg_class t
165
+ JOIN pg_index ix ON t.oid = ix.indrelid
166
+ JOIN pg_class i ON i.oid = ix.indexrelid
167
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
168
+ WHERE t.relname = $1
169
+ AND t.relkind = 'r'
170
+ AND NOT ix.indisprimary
171
+ ORDER BY i.relname, a.attnum
172
+ `, [tableName]);
173
+ const indexMap = new Map();
174
+ for (const idx of indexResult.rows) {
175
+ const indexName = idx.index_name;
176
+ if (!indexMap.has(indexName)) {
177
+ indexMap.set(indexName, {
178
+ columns: [],
179
+ unique: idx.is_unique,
180
+ });
181
+ }
182
+ indexMap.get(indexName).columns.push(idx.column_name);
183
+ }
184
+ const indexInfos = Array.from(indexMap.entries()).map(([name, info]) => ({
185
+ name,
186
+ columns: info.columns,
187
+ unique: info.unique,
188
+ }));
189
+ // 获取表行数估算
190
+ const statsResult = await this.client.query(`
191
+ SELECT reltuples::bigint as estimate
192
+ FROM pg_class
193
+ WHERE relname = $1
194
+ `, [tableName]);
195
+ const estimatedRows = Number(statsResult.rows[0]?.estimate || 0);
196
+ return {
197
+ name: tableName,
198
+ columns: columnInfos,
199
+ primaryKeys,
200
+ indexes: indexInfos,
201
+ estimatedRows,
202
+ };
203
+ }
204
+ /**
205
+ * 检查是否为写操作
206
+ */
207
+ isWriteOperation(query) {
208
+ return checkWriteOperation(query);
209
+ }
210
+ }
211
+ //# sourceMappingURL=gaussdb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gaussdb.js","sourceRoot":"","sources":["../../src/adapters/gaussdb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * KingbaseES(人大金仓)数据库适配器
3
+ * 使用 pg 驱动实现 DbAdapter 接口
4
+ * KingbaseES 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
5
+ */
6
+ import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
7
+ export declare class KingbaseAdapter implements DbAdapter {
8
+ private client;
9
+ private config;
10
+ constructor(config: {
11
+ host: string;
12
+ port: number;
13
+ user?: string;
14
+ password?: string;
15
+ database?: string;
16
+ });
17
+ /**
18
+ * 连接到 KingbaseES 数据库
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=kingbase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kingbase.d.ts","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,MAAM,CAA0B;IACxC,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;IAqB9B;;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;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IA4CtC;;OAEG;YACW,YAAY;IA2G1B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * KingbaseES(人大金仓)数据库适配器
3
+ * 使用 pg 驱动实现 DbAdapter 接口
4
+ * KingbaseES 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
5
+ */
6
+ import pg from 'pg';
7
+ import { isWriteOperation as checkWriteOperation } from '../utils/safety.js';
8
+ const { Client } = pg;
9
+ export class KingbaseAdapter {
10
+ client = null;
11
+ config;
12
+ constructor(config) {
13
+ this.config = config;
14
+ }
15
+ /**
16
+ * 连接到 KingbaseES 数据库
17
+ */
18
+ async connect() {
19
+ try {
20
+ this.client = new Client({
21
+ host: this.config.host,
22
+ port: this.config.port,
23
+ user: this.config.user,
24
+ password: this.config.password,
25
+ database: this.config.database,
26
+ });
27
+ await this.client.connect();
28
+ // 测试连接
29
+ await this.client.query('SELECT 1');
30
+ }
31
+ catch (error) {
32
+ throw new Error(`KingbaseES 连接失败: ${error instanceof Error ? error.message : String(error)}`);
33
+ }
34
+ }
35
+ /**
36
+ * 断开数据库连接
37
+ */
38
+ async disconnect() {
39
+ if (this.client) {
40
+ await this.client.end();
41
+ this.client = null;
42
+ }
43
+ }
44
+ /**
45
+ * 执行 SQL 查询
46
+ */
47
+ async executeQuery(query, params) {
48
+ if (!this.client) {
49
+ throw new Error('数据库未连接');
50
+ }
51
+ const startTime = Date.now();
52
+ try {
53
+ const result = await this.client.query(query, params);
54
+ const executionTime = Date.now() - startTime;
55
+ return {
56
+ rows: result.rows,
57
+ affectedRows: result.rowCount || 0,
58
+ executionTime,
59
+ metadata: {
60
+ command: result.command,
61
+ fields: result.fields?.map(f => ({
62
+ name: f.name,
63
+ dataTypeID: f.dataTypeID,
64
+ })),
65
+ },
66
+ };
67
+ }
68
+ catch (error) {
69
+ throw new Error(`查询执行失败: ${error instanceof Error ? error.message : String(error)}`);
70
+ }
71
+ }
72
+ /**
73
+ * 获取数据库结构信息
74
+ */
75
+ async getSchema() {
76
+ if (!this.client) {
77
+ throw new Error('数据库未连接');
78
+ }
79
+ try {
80
+ // 获取数据库版本
81
+ const versionResult = await this.client.query('SELECT version()');
82
+ const version = versionResult.rows[0]?.version || 'unknown';
83
+ // 获取当前数据库名
84
+ const dbResult = await this.client.query('SELECT current_database()');
85
+ const databaseName = dbResult.rows[0]?.current_database || this.config.database || 'unknown';
86
+ // 获取所有表(仅 public schema)
87
+ const tablesResult = await this.client.query(`
88
+ SELECT table_name
89
+ FROM information_schema.tables
90
+ WHERE table_schema = 'public'
91
+ AND table_type = 'BASE TABLE'
92
+ ORDER BY table_name
93
+ `);
94
+ const tableInfos = [];
95
+ for (const row of tablesResult.rows) {
96
+ const tableName = row.table_name;
97
+ const tableInfo = await this.getTableInfo(tableName);
98
+ tableInfos.push(tableInfo);
99
+ }
100
+ return {
101
+ databaseType: 'kingbase',
102
+ databaseName,
103
+ tables: tableInfos,
104
+ version,
105
+ };
106
+ }
107
+ catch (error) {
108
+ throw new Error(`获取数据库结构失败: ${error instanceof Error ? error.message : String(error)}`);
109
+ }
110
+ }
111
+ /**
112
+ * 获取单个表的详细信息
113
+ */
114
+ async getTableInfo(tableName) {
115
+ if (!this.client) {
116
+ throw new Error('数据库未连接');
117
+ }
118
+ // 获取列信息
119
+ const columnsResult = await this.client.query(`
120
+ SELECT
121
+ column_name,
122
+ data_type,
123
+ is_nullable,
124
+ column_default,
125
+ character_maximum_length,
126
+ numeric_precision,
127
+ numeric_scale
128
+ FROM information_schema.columns
129
+ WHERE table_schema = 'public'
130
+ AND table_name = $1
131
+ ORDER BY ordinal_position
132
+ `, [tableName]);
133
+ const columnInfos = columnsResult.rows.map((col) => {
134
+ let dataType = col.data_type;
135
+ // 添加长度/精度信息
136
+ if (col.character_maximum_length) {
137
+ dataType += `(${col.character_maximum_length})`;
138
+ }
139
+ else if (col.numeric_precision) {
140
+ dataType += `(${col.numeric_precision}${col.numeric_scale ? `,${col.numeric_scale}` : ''})`;
141
+ }
142
+ return {
143
+ name: col.column_name,
144
+ type: dataType,
145
+ nullable: col.is_nullable === 'YES',
146
+ defaultValue: col.column_default || undefined,
147
+ };
148
+ });
149
+ // 获取主键
150
+ const pkResult = await this.client.query(`
151
+ SELECT a.attname
152
+ FROM pg_index i
153
+ JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
154
+ WHERE i.indrelid = $1::regclass
155
+ AND i.indisprimary
156
+ `, [tableName]);
157
+ const primaryKeys = pkResult.rows.map(row => row.attname);
158
+ // 获取索引信息
159
+ const indexResult = await this.client.query(`
160
+ SELECT
161
+ i.relname as index_name,
162
+ a.attname as column_name,
163
+ ix.indisunique as is_unique
164
+ FROM pg_class t
165
+ JOIN pg_index ix ON t.oid = ix.indrelid
166
+ JOIN pg_class i ON i.oid = ix.indexrelid
167
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
168
+ WHERE t.relname = $1
169
+ AND t.relkind = 'r'
170
+ AND NOT ix.indisprimary
171
+ ORDER BY i.relname, a.attnum
172
+ `, [tableName]);
173
+ const indexMap = new Map();
174
+ for (const idx of indexResult.rows) {
175
+ const indexName = idx.index_name;
176
+ if (!indexMap.has(indexName)) {
177
+ indexMap.set(indexName, {
178
+ columns: [],
179
+ unique: idx.is_unique,
180
+ });
181
+ }
182
+ indexMap.get(indexName).columns.push(idx.column_name);
183
+ }
184
+ const indexInfos = Array.from(indexMap.entries()).map(([name, info]) => ({
185
+ name,
186
+ columns: info.columns,
187
+ unique: info.unique,
188
+ }));
189
+ // 获取表行数估算
190
+ const statsResult = await this.client.query(`
191
+ SELECT reltuples::bigint as estimate
192
+ FROM pg_class
193
+ WHERE relname = $1
194
+ `, [tableName]);
195
+ const estimatedRows = Number(statsResult.rows[0]?.estimate || 0);
196
+ return {
197
+ name: tableName,
198
+ columns: columnInfos,
199
+ primaryKeys,
200
+ indexes: indexInfos,
201
+ estimatedRows,
202
+ };
203
+ }
204
+ /**
205
+ * 检查是否为写操作
206
+ */
207
+ isWriteOperation(query) {
208
+ return checkWriteOperation(query);
209
+ }
210
+ }
211
+ //# sourceMappingURL=kingbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kingbase.js","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,12 +12,14 @@ import { DMAdapter } from './adapters/dm.js';
12
12
  import { SQLServerAdapter } from './adapters/sqlserver.js';
13
13
  import { MongoDBAdapter } from './adapters/mongodb.js';
14
14
  import { SQLiteAdapter } from './adapters/sqlite.js';
15
+ import { KingbaseAdapter } from './adapters/kingbase.js';
16
+ import { GaussDBAdapter } from './adapters/gaussdb.js';
15
17
  const program = new Command();
16
18
  program
17
19
  .name('universal-db-mcp')
18
20
  .description('MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库')
19
21
  .version('0.1.0')
20
- .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite)')
22
+ .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase|gaussdb|opengauss)')
21
23
  .option('--host <host>', '数据库主机地址')
22
24
  .option('--port <port>', '数据库端口', parseInt)
23
25
  .option('--user <user>', '用户名')
@@ -29,15 +31,18 @@ program
29
31
  .action(async (options) => {
30
32
  try {
31
33
  // 验证数据库类型
32
- if (!['mysql', 'postgres', 'redis', 'oracle', 'dm', 'sqlserver', 'mssql', 'mongodb', 'sqlite'].includes(options.type)) {
33
- console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm, sqlserver (或 mssql), mongodb, sqlite');
34
+ if (!['mysql', 'postgres', 'redis', 'oracle', 'dm', 'sqlserver', 'mssql', 'mongodb', 'sqlite', 'kingbase', 'gaussdb', 'opengauss'].includes(options.type)) {
35
+ console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm, sqlserver (或 mssql), mongodb, sqlite, kingbase, gaussdb (或 opengauss)');
34
36
  process.exit(1);
35
37
  }
36
- // 规范化 SQL Server 别名
38
+ // 规范化 SQL Server 和 GaussDB 别名
37
39
  let dbType = options.type;
38
40
  if (dbType === 'mssql') {
39
41
  dbType = 'sqlserver';
40
42
  }
43
+ if (dbType === 'opengauss') {
44
+ dbType = 'gaussdb';
45
+ }
41
46
  // SQLite 特殊处理:需要文件路径而不是 host/port
42
47
  if (dbType === 'sqlite') {
43
48
  if (!options.file) {
@@ -148,6 +153,24 @@ program
148
153
  readonly: !config.allowWrite,
149
154
  });
150
155
  break;
156
+ case 'kingbase':
157
+ adapter = new KingbaseAdapter({
158
+ host: config.host,
159
+ port: config.port,
160
+ user: config.user,
161
+ password: config.password,
162
+ database: config.database,
163
+ });
164
+ break;
165
+ case 'gaussdb':
166
+ adapter = new GaussDBAdapter({
167
+ host: config.host,
168
+ port: config.port,
169
+ user: config.user,
170
+ password: config.password,
171
+ database: config.database,
172
+ });
173
+ break;
151
174
  default:
152
175
  throw new Error(`不支持的数据库类型: ${config.type}`);
153
176
  }
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;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,eAAe,EAAE,uEAAuE,CAAC;KACxG,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC;KAClC,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC;KACrC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC;KACxC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,4BAA4B,EAAE,0BAA0B,CAAC;KAChE,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,KAAK,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,UAAU;QACV,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtH,OAAO,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;YACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,oBAAoB;QACpB,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QAED,kCAAkC;QAClC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAa;YACvB,IAAI,EAAE,MAA+F;YACrG,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,UAAU,EAAE,OAAO,CAAC,gBAAgB;SACrC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElB,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE7C,eAAe;QACf,IAAI,OAAkB,CAAC;QAEvB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,YAAY,CAAC;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,UAAU;gBACb,OAAO,GAAG,IAAI,iBAAiB,CAAC;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,YAAY,CAAC;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,aAAa,CAAC;oBAC1B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,IAAI;gBACP,OAAO,GAAG,IAAI,SAAS,CAAC;oBACtB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,WAAW;gBACd,OAAO,GAAG,IAAI,gBAAgB,CAAC;oBAC7B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,SAAS;gBACZ,OAAO,GAAG,IAAI,cAAc,CAAC;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,aAAa,CAAC;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAS;oBAC1B,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC7B,CAAC,CAAC;gBACH,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,cAAc;QACd,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,SAAS;QACT,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
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;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,eAAe,EAAE,kGAAkG,CAAC;KACnI,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC;KAClC,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC;KACrC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC;KACxC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,4BAA4B,EAAE,0BAA0B,CAAC;KAChE,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,KAAK,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,UAAU;QACV,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1J,OAAO,CAAC,KAAK,CAAC,kIAAkI,CAAC,CAAC;YAClJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,8BAA8B;QAC9B,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,kCAAkC;QAClC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAa;YACvB,IAAI,EAAE,MAAwH;YAC9H,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,UAAU,EAAE,OAAO,CAAC,gBAAgB;SACrC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElB,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE7C,eAAe;QACf,IAAI,OAAkB,CAAC;QAEvB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,YAAY,CAAC;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,UAAU;gBACb,OAAO,GAAG,IAAI,iBAAiB,CAAC;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,YAAY,CAAC;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,aAAa,CAAC;oBAC1B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,IAAI;gBACP,OAAO,GAAG,IAAI,SAAS,CAAC;oBACtB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,WAAW;gBACd,OAAO,GAAG,IAAI,gBAAgB,CAAC;oBAC7B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,SAAS;gBACZ,OAAO,GAAG,IAAI,cAAc,CAAC;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,aAAa,CAAC;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAS;oBAC1B,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC7B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,UAAU;gBACb,OAAO,GAAG,IAAI,eAAe,CAAC;oBAC5B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,SAAS;gBACZ,OAAO,GAAG,IAAI,cAAc,CAAC;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAK;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,cAAc;QACd,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,SAAS;QACT,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -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';
52
+ databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb';
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';
105
+ type: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase' | 'gaussdb';
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,CAAC;IACpG,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,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,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,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7H,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,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACrH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,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.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -30,6 +30,12 @@
30
30
  "mongodb",
31
31
  "mongo",
32
32
  "sqlite",
33
+ "kingbase",
34
+ "kingbasees",
35
+ "gaussdb",
36
+ "opengauss",
37
+ "华为高斯",
38
+ "人大金仓",
33
39
  "数据库",
34
40
  "AI"
35
41
  ],