universal-db-mcp 0.6.0 → 0.7.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,7 @@
12
12
  - [SQL Server 使用示例](#sql-server-使用示例)
13
13
  - [MongoDB 使用示例](#mongodb-使用示例)
14
14
  - [SQLite 使用示例](#sqlite-使用示例)
15
+ - [KingbaseES 使用示例](#kingbasees-使用示例)
15
16
  - [Claude Desktop 配置示例](#claude-desktop-配置示例)
16
17
  - [常见使用场景](#常见使用场景)
17
18
 
@@ -817,6 +818,153 @@ Claude 会:
817
818
 
818
819
  ---
819
820
 
821
+ ## KingbaseES 使用示例
822
+
823
+ ### 基础配置(只读模式)
824
+
825
+ ```json
826
+ {
827
+ "mcpServers": {
828
+ "kingbase-db": {
829
+ "command": "npx",
830
+ "args": [
831
+ "universal-db-mcp",
832
+ "--type", "kingbase",
833
+ "--host", "localhost",
834
+ "--port", "54321",
835
+ "--user", "system",
836
+ "--password", "your_password",
837
+ "--database", "test"
838
+ ]
839
+ }
840
+ }
841
+ }
842
+ ```
843
+
844
+ ### 启用写入模式
845
+
846
+ ```json
847
+ {
848
+ "mcpServers": {
849
+ "kingbase-write": {
850
+ "command": "npx",
851
+ "args": [
852
+ "universal-db-mcp",
853
+ "--type", "kingbase",
854
+ "--host", "localhost",
855
+ "--port", "54321",
856
+ "--user", "system",
857
+ "--password", "your_password",
858
+ "--database", "mydb",
859
+ "--danger-allow-write"
860
+ ]
861
+ }
862
+ }
863
+ }
864
+ ```
865
+
866
+ ### 连接远程 KingbaseES
867
+
868
+ ```json
869
+ {
870
+ "mcpServers": {
871
+ "kingbase-prod": {
872
+ "command": "npx",
873
+ "args": [
874
+ "universal-db-mcp",
875
+ "--type", "kingbase",
876
+ "--host", "kingbase.example.com",
877
+ "--port", "54321",
878
+ "--user", "readonly_user",
879
+ "--password", "secure_password",
880
+ "--database", "production"
881
+ ]
882
+ }
883
+ }
884
+ }
885
+ ```
886
+
887
+ ### 与 Claude 对话示例
888
+
889
+ **用户**: 查看数据库中有哪些表?
890
+
891
+ **Claude 会自动**:
892
+ 1. 调用 `get_schema` 工具
893
+ 2. 执行查询获取 public schema 下的所有表
894
+ 3. 返回表列表
895
+
896
+ **用户**: 查看 users 表的结构
897
+
898
+ **Claude 会自动**:
899
+ 1. 调用 `get_table_info` 工具
900
+ 2. 返回列信息、主键、索引等详细信息
901
+
902
+ **用户**: 统计每个部门的员工数量
903
+
904
+ **Claude 会自动**:
905
+ 1. 理解需求
906
+ 2. 生成 SQL: `SELECT department_id, COUNT(*) as count FROM employees GROUP BY department_id ORDER BY count DESC`
907
+ 3. 执行并返回结果
908
+
909
+ **用户**: 查找最近一周创建的订单
910
+
911
+ **Claude 会自动**:
912
+ 1. 生成 SQL: `SELECT * FROM orders WHERE created_at >= CURRENT_DATE - INTERVAL '7 days' ORDER BY created_at DESC`
913
+ 2. 执行并返回结果
914
+
915
+ ### 注意事项
916
+
917
+ 1. **默认端口**: KingbaseES 默认端口为 54321
918
+ 2. **兼容性**: 基于 PostgreSQL 开发,兼容 PostgreSQL 协议和 SQL 语法
919
+ 3. **驱动**: 使用 PostgreSQL 的 `pg` 驱动
920
+ 4. **Schema**: 默认查询 public schema 下的表
921
+ 5. **参数化查询**: 支持 `$1, $2, ...` 占位符
922
+ 6. **国产化**: 适用于国产化替代场景
923
+
924
+ ### 支持的 KingbaseES 版本
925
+
926
+ - ✅ KingbaseES V8
927
+ - ✅ KingbaseES V9
928
+ - ✅ 其他兼容 PostgreSQL 协议的版本
929
+
930
+ ### 常见使用场景
931
+
932
+ #### 1. 国产化数据库迁移
933
+
934
+ 从 PostgreSQL 迁移到 KingbaseES:
935
+
936
+ ```
937
+ 用户: 帮我分析现有表结构,准备迁移到 KingbaseES
938
+
939
+ Claude 会:
940
+ 1. 获取完整的 Schema 信息
941
+ 2. 分析表结构、索引、约束
942
+ 3. 提供迁移建议
943
+ ```
944
+
945
+ #### 2. 数据分析和报表
946
+
947
+ ```
948
+ 用户: 统计最近一个月的销售数据
949
+
950
+ Claude 会:
951
+ 1. 理解需求
952
+ 2. 生成复杂的聚合查询
953
+ 3. 返回分析结果
954
+ ```
955
+
956
+ #### 3. 开发和测试
957
+
958
+ ```
959
+ 用户: 在测试环境创建测试数据
960
+
961
+ Claude 会(在写入模式下):
962
+ 1. 生成 INSERT 语句
963
+ 2. 执行并验证结果
964
+ ```
965
+
966
+ ---
967
+
820
968
  ## Claude Desktop 配置示例
821
969
 
822
970
  ### 同时连接多个数据库
@@ -879,6 +1027,18 @@ Claude 会:
879
1027
  "--type", "sqlite",
880
1028
  "--file", "/Users/yourname/data/local.db"
881
1029
  ]
1030
+ },
1031
+ "kingbase-db": {
1032
+ "command": "npx",
1033
+ "args": [
1034
+ "universal-db-mcp",
1035
+ "--type", "kingbase",
1036
+ "--host", "localhost",
1037
+ "--port", "54321",
1038
+ "--user", "system",
1039
+ "--password", "your_password",
1040
+ "--database", "test"
1041
+ ]
882
1042
  }
883
1043
  }
884
1044
  }
@@ -891,6 +1051,7 @@ Claude 会:
891
1051
  - "检查 Redis 缓存中的..."
892
1052
  - "在 Oracle 数据仓库中统计..."
893
1053
  - "从 SQLite 本地数据库查询..."
1054
+ - "在 KingbaseES 数据库中查询..."
894
1055
 
895
1056
  ---
896
1057
 
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 一键切换
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
37
37
 
38
38
  ### 安装
39
39
 
@@ -100,6 +100,32 @@ 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
+
103
129
  ### 启动使用
104
130
 
105
131
  1. 重启 Claude Desktop
@@ -141,6 +167,7 @@ Claude 会自动调用数据库工具完成查询!
141
167
  | SQL Server (2012+) | `--type sqlserver` 或 `--type mssql` | 1433 | ✅ 已支持 | 支持 Azure SQL Database |
142
168
  | MongoDB | `--type mongodb` | 27017 | ✅ 已支持 | 支持 MongoDB 4.0+ |
143
169
  | SQLite | `--type sqlite` | - | ✅ 已支持 | 本地文件数据库 |
170
+ | KingbaseES(人大金仓) | `--type kingbase` | 54321 | ✅ 已支持 | 兼容 PostgreSQL 协议 |
144
171
 
145
172
  **注意**:
146
173
  - 达梦数据库驱动 `dmdb` 会作为可选依赖自动安装。如果安装失败,请手动运行 `npm install -g dmdb`。
@@ -152,7 +179,7 @@ Claude 会自动调用数据库工具完成查询!
152
179
  universal-db-mcp [选项]
153
180
 
154
181
  选项:
155
- --type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite)
182
+ --type <db> 数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase)
156
183
  --host <host> 数据库主机地址 (默认: localhost)
157
184
  --port <port> 数据库端口
158
185
  --user <user> 用户名
@@ -177,7 +204,8 @@ src/
177
204
  │ ├── dm.ts
178
205
  │ ├── sqlserver.ts
179
206
  │ ├── mongodb.ts
180
- └── sqlite.ts
207
+ ├── sqlite.ts
208
+ │ └── kingbase.ts
181
209
  ├── types/ # TypeScript 类型定义
182
210
  │ └── adapter.ts
183
211
  ├── utils/ # 工具函数
@@ -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,13 @@ 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';
15
16
  const program = new Command();
16
17
  program
17
18
  .name('universal-db-mcp')
18
19
  .description('MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库')
19
20
  .version('0.1.0')
20
- .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite)')
21
+ .requiredOption('--type <type>', '数据库类型 (mysql|postgres|redis|oracle|dm|sqlserver|mssql|mongodb|sqlite|kingbase)')
21
22
  .option('--host <host>', '数据库主机地址')
22
23
  .option('--port <port>', '数据库端口', parseInt)
23
24
  .option('--user <user>', '用户名')
@@ -29,8 +30,8 @@ program
29
30
  .action(async (options) => {
30
31
  try {
31
32
  // 验证数据库类型
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');
33
+ if (!['mysql', 'postgres', 'redis', 'oracle', 'dm', 'sqlserver', 'mssql', 'mongodb', 'sqlite', 'kingbase'].includes(options.type)) {
34
+ console.error('❌ 错误: 不支持的数据库类型。支持的类型: mysql, postgres, redis, oracle, dm, sqlserver (或 mssql), mongodb, sqlite, kingbase');
34
35
  process.exit(1);
35
36
  }
36
37
  // 规范化 SQL Server 别名
@@ -148,6 +149,15 @@ program
148
149
  readonly: !config.allowWrite,
149
150
  });
150
151
  break;
152
+ case 'kingbase':
153
+ adapter = new KingbaseAdapter({
154
+ host: config.host,
155
+ port: config.port,
156
+ user: config.user,
157
+ password: config.password,
158
+ database: config.database,
159
+ });
160
+ break;
151
161
  default:
152
162
  throw new Error(`不支持的数据库类型: ${config.type}`);
153
163
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export interface QueryResult {
49
49
  */
50
50
  export interface SchemaInfo {
51
51
  /** 数据库类型 */
52
- databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite';
52
+ databaseType: 'mysql' | 'postgres' | 'redis' | 'oracle' | 'dm' | 'sqlserver' | 'mongodb' | 'sqlite' | 'kingbase';
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';
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,CAAC;IACjH,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,CAAC;IACzG,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.7.0",
4
4
  "description": "MCP 数据库万能连接器 - 让 Claude Desktop 直接连接你的数据库",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -30,6 +30,9 @@
30
30
  "mongodb",
31
31
  "mongo",
32
32
  "sqlite",
33
+ "kingbase",
34
+ "kingbasees",
35
+ "人大金仓",
33
36
  "数据库",
34
37
  "AI"
35
38
  ],