@cicctencent/agent-server 0.2.74 → 0.2.75

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.
Files changed (87) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +90 -6
  3. package/dist/cjs/agent/agent-server.js.map +1 -1
  4. package/dist/cjs/connectors/calendar-adapter.d.ts +4 -11
  5. package/dist/cjs/connectors/calendar-adapter.d.ts.map +1 -1
  6. package/dist/cjs/connectors/calendar-adapter.js +84 -115
  7. package/dist/cjs/connectors/calendar-adapter.js.map +1 -1
  8. package/dist/cjs/connectors/db-adapter.d.ts +5 -22
  9. package/dist/cjs/connectors/db-adapter.d.ts.map +1 -1
  10. package/dist/cjs/connectors/db-adapter.js +316 -119
  11. package/dist/cjs/connectors/db-adapter.js.map +1 -1
  12. package/dist/cjs/connectors/email-adapter.d.ts +12 -14
  13. package/dist/cjs/connectors/email-adapter.d.ts.map +1 -1
  14. package/dist/cjs/connectors/email-adapter.js +286 -127
  15. package/dist/cjs/connectors/email-adapter.js.map +1 -1
  16. package/dist/cjs/connectors/fs-adapter.d.ts +3 -9
  17. package/dist/cjs/connectors/fs-adapter.d.ts.map +1 -1
  18. package/dist/cjs/connectors/fs-adapter.js +77 -87
  19. package/dist/cjs/connectors/fs-adapter.js.map +1 -1
  20. package/dist/cjs/connectors/http-adapter.d.ts +14 -18
  21. package/dist/cjs/connectors/http-adapter.d.ts.map +1 -1
  22. package/dist/cjs/connectors/http-adapter.js +260 -135
  23. package/dist/cjs/connectors/http-adapter.js.map +1 -1
  24. package/dist/cjs/connectors/index.d.ts +4 -2
  25. package/dist/cjs/connectors/index.d.ts.map +1 -1
  26. package/dist/cjs/connectors/index.js +137 -1
  27. package/dist/cjs/connectors/index.js.map +1 -1
  28. package/dist/cjs/connectors/mcp-adapter.d.ts +9 -17
  29. package/dist/cjs/connectors/mcp-adapter.d.ts.map +1 -1
  30. package/dist/cjs/connectors/mcp-adapter.js +186 -136
  31. package/dist/cjs/connectors/mcp-adapter.js.map +1 -1
  32. package/dist/cjs/connectors/mq-adapter.d.ts +10 -15
  33. package/dist/cjs/connectors/mq-adapter.d.ts.map +1 -1
  34. package/dist/cjs/connectors/mq-adapter.js +264 -142
  35. package/dist/cjs/connectors/mq-adapter.js.map +1 -1
  36. package/dist/cjs/index.d.ts +1 -1
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/index.js +4 -3
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/spi/types.d.ts +2 -0
  41. package/dist/cjs/spi/types.d.ts.map +1 -1
  42. package/dist/cjs/types.d.ts +170 -10
  43. package/dist/cjs/types.d.ts.map +1 -1
  44. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  45. package/dist/esm/agent/agent-server.js +90 -6
  46. package/dist/esm/agent/agent-server.js.map +1 -1
  47. package/dist/esm/connectors/calendar-adapter.d.ts +4 -11
  48. package/dist/esm/connectors/calendar-adapter.d.ts.map +1 -1
  49. package/dist/esm/connectors/calendar-adapter.js +84 -115
  50. package/dist/esm/connectors/calendar-adapter.js.map +1 -1
  51. package/dist/esm/connectors/db-adapter.d.ts +5 -22
  52. package/dist/esm/connectors/db-adapter.d.ts.map +1 -1
  53. package/dist/esm/connectors/db-adapter.js +315 -118
  54. package/dist/esm/connectors/db-adapter.js.map +1 -1
  55. package/dist/esm/connectors/email-adapter.d.ts +12 -14
  56. package/dist/esm/connectors/email-adapter.d.ts.map +1 -1
  57. package/dist/esm/connectors/email-adapter.js +253 -127
  58. package/dist/esm/connectors/email-adapter.js.map +1 -1
  59. package/dist/esm/connectors/fs-adapter.d.ts +3 -9
  60. package/dist/esm/connectors/fs-adapter.d.ts.map +1 -1
  61. package/dist/esm/connectors/fs-adapter.js +77 -87
  62. package/dist/esm/connectors/fs-adapter.js.map +1 -1
  63. package/dist/esm/connectors/http-adapter.d.ts +14 -18
  64. package/dist/esm/connectors/http-adapter.d.ts.map +1 -1
  65. package/dist/esm/connectors/http-adapter.js +260 -135
  66. package/dist/esm/connectors/http-adapter.js.map +1 -1
  67. package/dist/esm/connectors/index.d.ts +4 -2
  68. package/dist/esm/connectors/index.d.ts.map +1 -1
  69. package/dist/esm/connectors/index.js +136 -1
  70. package/dist/esm/connectors/index.js.map +1 -1
  71. package/dist/esm/connectors/mcp-adapter.d.ts +9 -17
  72. package/dist/esm/connectors/mcp-adapter.d.ts.map +1 -1
  73. package/dist/esm/connectors/mcp-adapter.js +153 -136
  74. package/dist/esm/connectors/mcp-adapter.js.map +1 -1
  75. package/dist/esm/connectors/mq-adapter.d.ts +10 -15
  76. package/dist/esm/connectors/mq-adapter.d.ts.map +1 -1
  77. package/dist/esm/connectors/mq-adapter.js +230 -141
  78. package/dist/esm/connectors/mq-adapter.js.map +1 -1
  79. package/dist/esm/index.d.ts +1 -1
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +1 -1
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/spi/types.d.ts +2 -0
  84. package/dist/esm/spi/types.d.ts.map +1 -1
  85. package/dist/esm/types.d.ts +170 -10
  86. package/dist/esm/types.d.ts.map +1 -1
  87. package/package.json +7 -3
@@ -1,29 +1,12 @@
1
- /**
2
- * 数据库适配器
3
- *
4
- * 支持 MySQL / PostgreSQL(通过 TypeORM DataSource)和 MongoDB(动态 require)。
5
- * testConnection 连接并列出表,discoverTools 为每张表生成 query / describe 工具。
6
- */
7
1
  import type { DataSourceConfig, DiscoveredTool, ConnectionTestResult, DataSourceAdapter, MCPServerConfig } from '../types.js';
8
2
  export declare class DatabaseAdapter implements DataSourceAdapter {
9
3
  readonly type: "database";
4
+ readonly label = "\u6570\u636E\u5E93";
5
+ readonly drivers: string[];
6
+ private delegate;
10
7
  testConnection(config: DataSourceConfig): Promise<ConnectionTestResult>;
11
8
  discoverTools(config: DataSourceConfig): Promise<DiscoveredTool[]>;
12
- generateManifest(config: DataSourceConfig): Promise<{
13
- tools: DiscoveredTool[];
14
- metadata: {
15
- dbType: "mysql" | "postgres" | "mongodb";
16
- database: string;
17
- host: string;
18
- tableCount: number;
19
- };
20
- }>;
21
- generateMCPServerConfigs(config: DataSourceConfig): Promise<MCPServerConfig[]>;
22
- /** 列出所有表 */
23
- private listTables;
24
- /** 列出 SQL 表(MySQL / PostgreSQL) */
25
- private listSQLTables;
26
- /** 列出 MongoDB 集合 */
27
- private listMongoCollections;
9
+ generateManifest(config: DataSourceConfig, _tools?: DiscoveredTool[]): Record<string, unknown>;
10
+ generateMCPServerConfigs(config: DataSourceConfig, tools?: DiscoveredTool[]): MCPServerConfig[];
28
11
  }
29
12
  //# sourceMappingURL=db-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/db-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAgB,YAAW,iBAAiB;IACrD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAE9B,cAAc,CAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAiB1B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0ClE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;;IAazC,wBAAwB,CAC1B,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAqB7B,YAAY;YACE,UAAU;IAOxB,mCAAmC;YACrB,aAAa;IAgC3B,oBAAoB;YACN,oBAAoB;CA8BrC"}
1
+ {"version":3,"file":"db-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/db-adapter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AAerB,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,KAAK,wBAAS;IACvB,QAAQ,CAAC,OAAO,WAAoC;IAEpD,OAAO,CAAC,QAAQ;IAKhB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIvE,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIlE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqB9F,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE;CAoBhG"}
@@ -1,155 +1,352 @@
1
+ /**
2
+ * 数据库适配器
3
+ *
4
+ * 支持 MySQL / PostgreSQL(TypeORM)与 MongoDB(mongodb 驱动)。
5
+ * 默认只读:生成 list_tables / execute_query(SELECT) / query_{table} / describe_{table} 工具,
6
+ * 工具通过 executorType 路由到 work-client 运行时执行器(见 mcp.service)。
7
+ *
8
+ * 字段读取兼容规范键(dbType/host/port/...)与历史别名(dbDriver/dbHost/...)。
9
+ */
10
+ import { DataSource } from 'typeorm';
11
+ /** 读取数据库配置(规范键优先,回退历史别名) */
12
+ function readDbConfig(config) {
13
+ return {
14
+ dbType: (config.dbType || config.dbDriver || 'mysql'),
15
+ host: config.host || config.dbHost,
16
+ port: config.port || config.dbPort,
17
+ username: config.username || config.dbUser,
18
+ password: config.password || config.dbPassword,
19
+ database: config.database || config.dbName,
20
+ extraOptions: config.extraOptions || config.dbOptions,
21
+ };
22
+ }
1
23
  export class DatabaseAdapter {
2
24
  type = 'database';
3
- async testConnection(config) {
4
- try {
5
- const tables = await this.listTables(config);
6
- return {
7
- success: true,
8
- message: `连接成功,发现 ${tables.length} 张表`,
9
- resources: tables,
10
- };
11
- }
12
- catch (err) {
13
- return {
14
- success: false,
15
- message: '连接失败',
16
- error: err.message,
17
- };
18
- }
25
+ label = '数据库';
26
+ drivers = ['mysql', 'postgres', 'mongodb'];
27
+ delegate(config) {
28
+ const { dbType } = readDbConfig(config);
29
+ return dbType === 'mongodb' ? new MongoDbAdapter() : new RelationalDbAdapter();
19
30
  }
20
- async discoverTools(config) {
21
- const tables = await this.listTables(config);
22
- const tools = [];
23
- for (const table of tables) {
24
- tools.push({
25
- name: `db_${table}_query`,
26
- description: `查询 ${table} 表数据,支持 WHERE 条件、LIMIT 限制`,
27
- inputSchema: {
28
- type: 'object',
29
- properties: {
30
- where: {
31
- type: 'string',
32
- description: 'WHERE 条件(不含 WHERE 关键字)',
33
- },
34
- limit: {
35
- type: 'number',
36
- description: '返回行数限制',
37
- default: 100,
38
- },
39
- offset: {
40
- type: 'number',
41
- description: '偏移量',
42
- default: 0,
43
- },
44
- },
45
- },
46
- });
47
- tools.push({
48
- name: `db_${table}_describe`,
49
- description: `获取 ${table} 表结构信息(列名、类型等)`,
50
- inputSchema: {
51
- type: 'object',
52
- properties: {},
53
- },
54
- });
55
- }
56
- return tools;
31
+ testConnection(config) {
32
+ return this.delegate(config).testConnection(config);
33
+ }
34
+ discoverTools(config) {
35
+ return this.delegate(config).discoverTools(config);
57
36
  }
58
- async generateManifest(config) {
59
- const tools = await this.discoverTools(config);
37
+ generateManifest(config, _tools) {
38
+ const c = readDbConfig(config);
60
39
  return {
61
- tools,
62
- metadata: {
63
- dbType: config.dbType,
64
- database: config.database,
65
- host: config.host,
66
- tableCount: tools.length / 2,
40
+ name: config.name,
41
+ description: config.description || `${c.dbType} 数据库连接器 — ${c.database}`,
42
+ category: 'data',
43
+ version: '1.0.0',
44
+ icon: 'database',
45
+ enabled: true,
46
+ dataSourceType: 'database',
47
+ dataSourceConfig: {
48
+ dbType: c.dbType,
49
+ host: c.host,
50
+ port: c.port,
51
+ username: c.username,
52
+ password: c.password || '',
53
+ database: c.database,
67
54
  },
68
55
  };
69
56
  }
70
- async generateMCPServerConfigs(config) {
71
- const tools = await this.discoverTools(config);
57
+ generateMCPServerConfigs(config, tools) {
58
+ const discovered = tools && tools.length > 0 ? tools : undefined;
72
59
  return [
73
60
  {
74
- name: `db-${config.name || config.database}`,
61
+ name: `db-${config.name || 'default'}`,
75
62
  transport: 'stdio',
76
63
  command: 'node',
77
- args: ['-e', `/* MCP server for ${config.database} */`],
64
+ args: ['-e', '/* MCP server for database */'],
78
65
  env: {
79
- DB_TYPE: config.dbType || 'mysql',
80
- DB_HOST: config.host || '',
81
- DB_PORT: String(config.port || 3306),
82
- DB_NAME: config.database || '',
83
- DB_USER: config.username || '',
84
- DB_PASS: config.password || '',
66
+ DB_TYPE: readDbConfig(config).dbType,
67
+ DB_HOST: readDbConfig(config).host || '',
68
+ DB_PORT: String(readDbConfig(config).port || 3306),
69
+ DB_NAME: readDbConfig(config).database || '',
70
+ DB_USER: readDbConfig(config).username || '',
71
+ DB_PASS: readDbConfig(config).password || '',
85
72
  },
86
- tools,
73
+ tools: discovered || [],
87
74
  },
88
75
  ];
89
76
  }
90
- /** 列出所有表 */
91
- async listTables(config) {
92
- if (config.dbType === 'mongodb') {
93
- return this.listMongoCollections(config);
94
- }
95
- return this.listSQLTables(config);
96
- }
97
- /** 列出 SQL 表(MySQL / PostgreSQL) */
98
- async listSQLTables(config) {
99
- const { DataSource } = await import('typeorm');
100
- const dbType = config.dbType === 'postgres' ? 'postgres' : 'mysql';
101
- const ds = new DataSource({
102
- type: dbType,
103
- host: config.host,
104
- port: config.port,
105
- username: config.username,
106
- password: config.password,
107
- database: config.database,
108
- extra: config.extraOptions,
77
+ }
78
+ // ===== 关系型数据库(MySQL / PostgreSQL)=====
79
+ class RelationalDbAdapter {
80
+ type = 'database';
81
+ label = '关系型数据库(MySQL / PostgreSQL)';
82
+ drivers = ['mysql', 'postgres'];
83
+ createDataSource(config) {
84
+ const c = readDbConfig(config);
85
+ const driver = c.dbType === 'postgres' ? 'postgres' : 'mysql';
86
+ return new DataSource({
87
+ type: driver,
88
+ host: c.host || 'localhost',
89
+ port: c.port || (driver === 'postgres' ? 5432 : 3306),
90
+ username: c.username,
91
+ password: c.password,
92
+ database: c.database,
93
+ extra: c.extraOptions,
109
94
  synchronize: false,
110
- entities: [],
95
+ logging: false,
96
+ connectTimeout: 10000,
111
97
  });
98
+ }
99
+ async testConnection(config) {
100
+ const ds = this.createDataSource(config);
101
+ const start = Date.now();
112
102
  try {
113
103
  await ds.initialize();
114
- const query = dbType === 'postgres'
115
- ? "SELECT tablename FROM pg_tables WHERE schemaname = 'public'"
116
- : 'SHOW TABLES';
117
- const result = await ds.query(query);
118
- return result.map((row) => dbType === 'postgres' ? row.tablename : Object.values(row)[0]);
119
- }
120
- finally {
121
- if (ds.isInitialized) {
122
- await ds.destroy();
104
+ const latency = Date.now() - start;
105
+ const c = readDbConfig(config);
106
+ const tables = await this.listTables(ds, config);
107
+ const info = { tableCount: tables.length };
108
+ try {
109
+ const result = await ds.query(c.dbType === 'postgres' ? 'SELECT version()' : 'SELECT VERSION() as version');
110
+ if (result?.[0])
111
+ info.version = result[0].version || result[0]['VERSION()'] || '';
123
112
  }
113
+ catch { /* ignore */ }
114
+ await ds.destroy();
115
+ return { success: true, message: `连接成功,发现 ${tables.length} 张表`, resources: tables, latency, info };
116
+ }
117
+ catch (err) {
118
+ if (ds.isInitialized)
119
+ await ds.destroy().catch(() => { });
120
+ return { success: false, message: '连接失败', error: err.message, latency: Date.now() - start };
124
121
  }
125
122
  }
126
- /** 列出 MongoDB 集合 */
127
- async listMongoCollections(config) {
128
- let MongoClient;
123
+ async discoverTools(config) {
124
+ const ds = this.createDataSource(config);
125
+ const c = readDbConfig(config);
129
126
  try {
130
- MongoClient = require('mongodb').MongoClient;
127
+ await ds.initialize();
128
+ const tables = await this.listTables(ds, config);
129
+ const tools = [];
130
+ tools.push({
131
+ name: 'list_tables',
132
+ description: `列出 ${c.database || config.name} 数据库中的所有表`,
133
+ inputSchema: { type: 'object', properties: {} },
134
+ executorType: 'db-list-tables',
135
+ executorMeta: { dbName: c.database },
136
+ });
137
+ tools.push({
138
+ name: 'execute_query',
139
+ description: `在 ${c.database || config.name} 上执行只读 SQL 查询(仅允许 SELECT)`,
140
+ inputSchema: {
141
+ type: 'object',
142
+ properties: {
143
+ sql: { type: 'string', description: 'SQL 查询语句(仅允许 SELECT)' },
144
+ params: { type: 'string', description: '参数化查询的绑定参数(JSON 数组,可选)' },
145
+ },
146
+ required: ['sql'],
147
+ },
148
+ executorType: 'db-execute',
149
+ executorMeta: { dbName: c.database, readOnly: true },
150
+ });
151
+ for (const tableName of tables) {
152
+ const safeName = tableName.replace(/[^a-zA-Z0-9_]/g, '_');
153
+ const columns = await this.listColumns(ds, config, tableName);
154
+ tools.push({
155
+ name: `query_${safeName}`,
156
+ description: `查询 ${tableName} 表数据(支持 WHERE 条件、排序、分页)`,
157
+ inputSchema: {
158
+ type: 'object',
159
+ properties: {
160
+ where: { type: 'string', description: 'WHERE 条件(如 "status = \'active\'"),可选' },
161
+ order_by: { type: 'string', description: '排序字段和方向(如 "created_at DESC"),可选' },
162
+ limit: { type: 'number', description: '返回行数限制,默认 50' },
163
+ offset: { type: 'number', description: '偏移量,用于分页,默认 0' },
164
+ columns: {
165
+ type: 'string',
166
+ description: `选择列(逗号分隔),默认 *。可用列: ${columns.map(co => co.comment ? `${co.name}(${co.comment})` : co.name).join(', ')}`,
167
+ },
168
+ },
169
+ },
170
+ executorType: 'db-query',
171
+ executorMeta: { tableName, dbName: c.database, columns },
172
+ });
173
+ tools.push({
174
+ name: `describe_${safeName}`,
175
+ description: `查看 ${tableName} 表的结构(列名、类型、约束、字段注释)`,
176
+ inputSchema: { type: 'object', properties: {} },
177
+ executorType: 'db-describe',
178
+ executorMeta: { tableName, dbName: c.database },
179
+ });
180
+ }
181
+ await ds.destroy();
182
+ return tools;
131
183
  }
132
- catch {
133
- throw new Error('mongodb 包未安装,请运行 npm install mongodb');
184
+ catch (e) {
185
+ if (ds.isInitialized)
186
+ await ds.destroy().catch(() => { });
187
+ throw new Error(`Schema 发现失败: ${e?.message || e}`);
134
188
  }
135
- const url = `mongodb://${config.host}:${config.port || 27017}`;
136
- const client = new MongoClient(url, {
137
- auth: config.username && config.password
138
- ? {
139
- username: config.username,
140
- password: config.password,
141
- }
142
- : undefined,
189
+ }
190
+ generateManifest(config, tools) {
191
+ return new DatabaseAdapter().generateManifest(config, tools);
192
+ }
193
+ generateMCPServerConfigs(config, tools) {
194
+ return new DatabaseAdapter().generateMCPServerConfigs(config, tools);
195
+ }
196
+ async listTables(ds, config) {
197
+ const c = readDbConfig(config);
198
+ if (c.dbType === 'postgres') {
199
+ const result = await ds.query(`SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name`);
200
+ return result.map((r) => r.table_name);
201
+ }
202
+ const result = await ds.query(`SELECT TABLE_NAME as table_name FROM information_schema.tables WHERE table_schema = ? ORDER BY TABLE_NAME`, [c.database]);
203
+ return result.map((r) => r.table_name || r.TABLE_NAME);
204
+ }
205
+ async listColumns(ds, config, tableName) {
206
+ const c = readDbConfig(config);
207
+ if (c.dbType === 'postgres') {
208
+ const result = await ds.query(`SELECT c.column_name, c.data_type, c.is_nullable,
209
+ col_description(pgc.oid, c.ordinal_position) AS column_comment
210
+ FROM information_schema.columns c
211
+ LEFT JOIN pg_catalog.pg_class pgc ON pgc.relname = c.table_name
212
+ LEFT JOIN pg_catalog.pg_namespace pgn ON pgn.oid = pgc.relnamespace AND pgn.nspname = c.table_schema
213
+ WHERE c.table_schema = 'public' AND c.table_name = $1
214
+ ORDER BY c.ordinal_position`, [tableName]);
215
+ return result.map((r) => ({
216
+ name: r.column_name,
217
+ type: r.data_type,
218
+ nullable: r.is_nullable === 'YES',
219
+ ...(r.column_comment ? { comment: r.column_comment } : {}),
220
+ }));
221
+ }
222
+ const result = await ds.query(`SELECT COLUMN_NAME as column_name, DATA_TYPE as data_type, IS_NULLABLE as is_nullable, COLUMN_COMMENT as column_comment FROM information_schema.columns WHERE table_schema = ? AND table_name = ? ORDER BY ORDINAL_POSITION`, [c.database, tableName]);
223
+ return result.map((r) => {
224
+ const comment = r.column_comment || r.COLUMN_COMMENT || '';
225
+ return {
226
+ name: r.column_name || r.COLUMN_NAME,
227
+ type: r.data_type || r.DATA_TYPE,
228
+ nullable: (r.is_nullable || r.IS_NULLABLE) === 'YES',
229
+ ...(comment ? { comment } : {}),
230
+ };
143
231
  });
232
+ }
233
+ }
234
+ // ===== MongoDB 适配器 =====
235
+ class MongoDbAdapter {
236
+ type = 'database';
237
+ label = 'MongoDB';
238
+ drivers = ['mongodb'];
239
+ getConnectionString(config) {
240
+ const c = readDbConfig(config);
241
+ const host = c.host || 'localhost';
242
+ const port = c.port || 27017;
243
+ const user = c.username ? `${encodeURIComponent(c.username)}:${encodeURIComponent(c.password || '')}@` : '';
244
+ return `mongodb://${user}${host}:${port}/${c.database || 'test'}`;
245
+ }
246
+ async testConnection(config) {
247
+ const start = Date.now();
248
+ const c = readDbConfig(config);
249
+ let client;
144
250
  try {
251
+ // @ts-ignore optional dependency (mongodb)
252
+ const { MongoClient } = await import('mongodb');
253
+ client = new MongoClient(this.getConnectionString(config), {
254
+ serverSelectionTimeoutMS: 10000,
255
+ connectTimeoutMS: 10000,
256
+ });
145
257
  await client.connect();
146
- const db = client.db(config.database);
258
+ const latency = Date.now() - start;
259
+ const db = client.db(c.database || 'test');
147
260
  const collections = await db.listCollections().toArray();
148
- return collections.map((c) => c.name);
261
+ const info = { collectionCount: collections.length };
262
+ try {
263
+ const serverInfo = await db.admin().serverInfo();
264
+ info.version = serverInfo.version;
265
+ }
266
+ catch { /* ignore */ }
267
+ await client.close();
268
+ return { success: true, message: `连接成功,发现 ${collections.length} 个集合`, resources: collections.map(c => c.name), latency, info };
149
269
  }
150
- finally {
270
+ catch (e) {
271
+ if (client)
272
+ await client.close().catch(() => { });
273
+ return { success: false, message: '连接失败', error: e?.message || '连接失败', latency: Date.now() - start };
274
+ }
275
+ }
276
+ async discoverTools(config) {
277
+ const c = readDbConfig(config);
278
+ // @ts-ignore optional dependency (mongodb)
279
+ const { MongoClient } = await import('mongodb');
280
+ const client = new MongoClient(this.getConnectionString(config), { serverSelectionTimeoutMS: 10000 });
281
+ try {
282
+ await client.connect();
283
+ const db = client.db(c.database || 'test');
284
+ const collections = await db.listCollections().toArray();
285
+ const tools = [];
286
+ tools.push({
287
+ name: 'list_collections',
288
+ description: `列出 ${c.database || config.name} 数据库中的所有集合`,
289
+ inputSchema: { type: 'object', properties: {} },
290
+ executorType: 'db-list-tables',
291
+ executorMeta: { dbName: c.database, driver: 'mongodb' },
292
+ });
293
+ tools.push({
294
+ name: 'execute_query',
295
+ description: `在 ${c.database || config.name} 上执行 MongoDB 查询(JSON 格式)`,
296
+ inputSchema: {
297
+ type: 'object',
298
+ properties: {
299
+ collection: { type: 'string', description: '集合名称' },
300
+ filter: { type: 'string', description: '查询过滤条件(JSON 对象),默认 {}' },
301
+ projection: { type: 'string', description: '字段投影(JSON 对象),可选' },
302
+ sort: { type: 'string', description: '排序(JSON 对象),可选' },
303
+ limit: { type: 'number', description: '返回数量限制,默认 50' },
304
+ skip: { type: 'number', description: '跳过数量,默认 0' },
305
+ },
306
+ required: ['collection'],
307
+ },
308
+ executorType: 'db-execute',
309
+ executorMeta: { dbName: c.database, driver: 'mongodb', readOnly: true },
310
+ });
311
+ for (const coll of collections) {
312
+ const collName = coll.name;
313
+ const safeName = collName.replace(/[^a-zA-Z0-9_]/g, '_');
314
+ let fields = '';
315
+ try {
316
+ const sample = await db.collection(collName).findOne();
317
+ if (sample)
318
+ fields = Object.keys(sample).join(', ');
319
+ }
320
+ catch { /* ignore */ }
321
+ tools.push({
322
+ name: `query_${safeName}`,
323
+ description: `查询 ${collName} 集合${fields ? `(字段: ${fields})` : ''}`,
324
+ inputSchema: {
325
+ type: 'object',
326
+ properties: {
327
+ filter: { type: 'string', description: '查询过滤条件(JSON 对象),默认 {}' },
328
+ projection: { type: 'string', description: '字段投影(JSON 对象),可选' },
329
+ sort: { type: 'string', description: '排序(JSON 对象),可选' },
330
+ limit: { type: 'number', description: '返回数量限制,默认 50' },
331
+ },
332
+ },
333
+ executorType: 'db-query',
334
+ executorMeta: { tableName: collName, dbName: c.database, driver: 'mongodb' },
335
+ });
336
+ }
151
337
  await client.close();
338
+ return tools;
339
+ }
340
+ catch (e) {
341
+ await client.close().catch(() => { });
342
+ throw new Error(`MongoDB Schema 发现失败: ${e?.message || e}`);
152
343
  }
153
344
  }
345
+ generateManifest(config, tools) {
346
+ return new DatabaseAdapter().generateManifest(config, tools);
347
+ }
348
+ generateMCPServerConfigs(config, tools) {
349
+ return new DatabaseAdapter().generateMCPServerConfigs(config, tools);
350
+ }
154
351
  }
155
352
  //# sourceMappingURL=db-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-adapter.js","sourceRoot":"","sources":["../../../src/connectors/db-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-adapter.js","sourceRoot":"","sources":["../../../src/connectors/db-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,22 @@
1
1
  /**
2
2
  * 邮箱适配器
3
3
  *
4
- * 支持 IMAP(收信)+ SMTP(发信),使用动态 require 加载 imapflow
5
- * testConnection 测试 IMAP/SMTP 连接,discoverTools 生成邮件相关工具。
4
+ * 支持 IMAP+SMTP、Exchange Online (Microsoft Graph)、Exchange 自建 (EWS)
5
+ * 工具通过 executorType(email-*) 路由到 work-client 运行时执行器(见 mcp.service)。
6
+ *
7
+ * 字段读取兼容规范键(emailProtocol / smtp* / imap* / exchange* / ews*)。
6
8
  */
7
9
  import type { DataSourceConfig, DiscoveredTool, ConnectionTestResult, DataSourceAdapter, MCPServerConfig } from '../types.js';
8
10
  export declare class EmailAdapter implements DataSourceAdapter {
9
11
  readonly type: "email";
12
+ readonly label = "\u90AE\u7BB1";
13
+ readonly drivers: string[];
10
14
  testConnection(config: DataSourceConfig): Promise<ConnectionTestResult>;
11
- discoverTools(config: DataSourceConfig): Promise<DiscoveredTool[]>;
12
- generateManifest(config: DataSourceConfig): Promise<{
13
- tools: DiscoveredTool[];
14
- metadata: {
15
- emailAddress: string;
16
- imapHost: string;
17
- smtpHost: string;
18
- };
19
- }>;
20
- generateMCPServerConfigs(config: DataSourceConfig): Promise<MCPServerConfig[]>;
21
- /** 动态加载 imapflow */
22
- private loadImapFlow;
15
+ private testImap;
16
+ private testExchange;
17
+ private testEws;
18
+ discoverTools(_config: DataSourceConfig): Promise<DiscoveredTool[]>;
19
+ generateManifest(config: DataSourceConfig, _tools?: DiscoveredTool[]): Record<string, unknown>;
20
+ generateMCPServerConfigs(_config: DataSourceConfig, tools?: DiscoveredTool[]): MCPServerConfig[];
23
21
  }
24
22
  //# sourceMappingURL=email-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/email-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAa,YAAW,iBAAiB;IAClD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3B,cAAc,CAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IA4C1B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoGlE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;IAYzC,wBAAwB,CAC1B,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAsB7B,oBAAoB;YACN,YAAY;CAQ7B"}
1
+ {"version":3,"file":"email-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/email-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AAqCrB,qBAAa,YAAa,YAAW,iBAAiB;IACpD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,KAAK,kBAAQ;IACtB,QAAQ,CAAC,OAAO,WAAwC;IAElD,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAS/D,QAAQ;YAoCR,YAAY;YA4CZ,OAAO;IAmCf,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+FzE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA8C9F,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE;CAWjG"}