@cicctencent/agent-server 0.2.74 → 0.2.76

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 (117) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +149 -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/mcp/api-bridge-client.d.ts.map +1 -1
  41. package/dist/cjs/mcp/api-bridge-client.js +15 -1
  42. package/dist/cjs/mcp/api-bridge-client.js.map +1 -1
  43. package/dist/cjs/mcp/api-bridge-types.d.ts +15 -0
  44. package/dist/cjs/mcp/api-bridge-types.d.ts.map +1 -1
  45. package/dist/cjs/mcp/body-template.d.ts +2 -0
  46. package/dist/cjs/mcp/body-template.d.ts.map +1 -1
  47. package/dist/cjs/mcp/body-template.js +1 -0
  48. package/dist/cjs/mcp/body-template.js.map +1 -1
  49. package/dist/cjs/mcp/template-builder.d.ts.map +1 -1
  50. package/dist/cjs/mcp/template-builder.js +5 -3
  51. package/dist/cjs/mcp/template-builder.js.map +1 -1
  52. package/dist/cjs/prompt/prompt-builder.d.ts.map +1 -1
  53. package/dist/cjs/prompt/prompt-builder.js +6 -16
  54. package/dist/cjs/prompt/prompt-builder.js.map +1 -1
  55. package/dist/cjs/spi/types.d.ts +2 -0
  56. package/dist/cjs/spi/types.d.ts.map +1 -1
  57. package/dist/cjs/types.d.ts +180 -10
  58. package/dist/cjs/types.d.ts.map +1 -1
  59. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  60. package/dist/esm/agent/agent-server.js +149 -6
  61. package/dist/esm/agent/agent-server.js.map +1 -1
  62. package/dist/esm/connectors/calendar-adapter.d.ts +4 -11
  63. package/dist/esm/connectors/calendar-adapter.d.ts.map +1 -1
  64. package/dist/esm/connectors/calendar-adapter.js +84 -115
  65. package/dist/esm/connectors/calendar-adapter.js.map +1 -1
  66. package/dist/esm/connectors/db-adapter.d.ts +5 -22
  67. package/dist/esm/connectors/db-adapter.d.ts.map +1 -1
  68. package/dist/esm/connectors/db-adapter.js +315 -118
  69. package/dist/esm/connectors/db-adapter.js.map +1 -1
  70. package/dist/esm/connectors/email-adapter.d.ts +12 -14
  71. package/dist/esm/connectors/email-adapter.d.ts.map +1 -1
  72. package/dist/esm/connectors/email-adapter.js +253 -127
  73. package/dist/esm/connectors/email-adapter.js.map +1 -1
  74. package/dist/esm/connectors/fs-adapter.d.ts +3 -9
  75. package/dist/esm/connectors/fs-adapter.d.ts.map +1 -1
  76. package/dist/esm/connectors/fs-adapter.js +77 -87
  77. package/dist/esm/connectors/fs-adapter.js.map +1 -1
  78. package/dist/esm/connectors/http-adapter.d.ts +14 -18
  79. package/dist/esm/connectors/http-adapter.d.ts.map +1 -1
  80. package/dist/esm/connectors/http-adapter.js +260 -135
  81. package/dist/esm/connectors/http-adapter.js.map +1 -1
  82. package/dist/esm/connectors/index.d.ts +4 -2
  83. package/dist/esm/connectors/index.d.ts.map +1 -1
  84. package/dist/esm/connectors/index.js +136 -1
  85. package/dist/esm/connectors/index.js.map +1 -1
  86. package/dist/esm/connectors/mcp-adapter.d.ts +9 -17
  87. package/dist/esm/connectors/mcp-adapter.d.ts.map +1 -1
  88. package/dist/esm/connectors/mcp-adapter.js +153 -136
  89. package/dist/esm/connectors/mcp-adapter.js.map +1 -1
  90. package/dist/esm/connectors/mq-adapter.d.ts +10 -15
  91. package/dist/esm/connectors/mq-adapter.d.ts.map +1 -1
  92. package/dist/esm/connectors/mq-adapter.js +230 -141
  93. package/dist/esm/connectors/mq-adapter.js.map +1 -1
  94. package/dist/esm/index.d.ts +1 -1
  95. package/dist/esm/index.d.ts.map +1 -1
  96. package/dist/esm/index.js +1 -1
  97. package/dist/esm/index.js.map +1 -1
  98. package/dist/esm/mcp/api-bridge-client.d.ts.map +1 -1
  99. package/dist/esm/mcp/api-bridge-client.js +15 -1
  100. package/dist/esm/mcp/api-bridge-client.js.map +1 -1
  101. package/dist/esm/mcp/api-bridge-types.d.ts +15 -0
  102. package/dist/esm/mcp/api-bridge-types.d.ts.map +1 -1
  103. package/dist/esm/mcp/body-template.d.ts +2 -0
  104. package/dist/esm/mcp/body-template.d.ts.map +1 -1
  105. package/dist/esm/mcp/body-template.js +1 -1
  106. package/dist/esm/mcp/body-template.js.map +1 -1
  107. package/dist/esm/mcp/template-builder.d.ts.map +1 -1
  108. package/dist/esm/mcp/template-builder.js +5 -3
  109. package/dist/esm/mcp/template-builder.js.map +1 -1
  110. package/dist/esm/prompt/prompt-builder.d.ts.map +1 -1
  111. package/dist/esm/prompt/prompt-builder.js +6 -16
  112. package/dist/esm/prompt/prompt-builder.js.map +1 -1
  113. package/dist/esm/spi/types.d.ts +2 -0
  114. package/dist/esm/spi/types.d.ts.map +1 -1
  115. package/dist/esm/types.d.ts +180 -10
  116. package/dist/esm/types.d.ts.map +1 -1
  117. package/package.json +7 -3
@@ -35,7 +35,7 @@ import { EmailAdapter } from "./email-adapter.js";
35
35
  import { CalendarAdapter } from "./calendar-adapter.js";
36
36
  import { MCPAdapter } from "./mcp-adapter.js";
37
37
  import { MessageQueueAdapter } from "./mq-adapter.js";
38
- // 注册内置适配器(如果尚未注册)
38
+ /** 注册内置适配器(如果尚未注册) */
39
39
  function registerBuiltinAdapters() {
40
40
  if (!adapters.has('database'))
41
41
  registerAdapter(new DatabaseAdapter());
@@ -53,4 +53,139 @@ function registerBuiltinAdapters() {
53
53
  registerAdapter(new MessageQueueAdapter());
54
54
  }
55
55
  registerBuiltinAdapters();
56
+ // ============================================================
57
+ // 数据源类型描述(供前端向导展示)
58
+ // 字段 key 使用兼容别名(dbDriver / fsRootPath / mqUrl / emailProtocol / calendarBackend 等),
59
+ // 这些键在 @cicctencent/agent-server 的 DataSourceConfig 中作为兼容字段保留。
60
+ // ============================================================
61
+ /** 列出所有适配器的显示信息(供前端向导使用) */
62
+ export function listDataSourceTypes() {
63
+ return [
64
+ {
65
+ type: 'database',
66
+ label: '数据库',
67
+ description: '连接 MySQL / PostgreSQL / MongoDB 数据库,自动发现 Schema 并生成查询工具',
68
+ icon: 'database',
69
+ drivers: [
70
+ { value: 'mysql', label: 'MySQL', defaultPort: 3306 },
71
+ { value: 'postgres', label: 'PostgreSQL', defaultPort: 5432 },
72
+ { value: 'mongodb', label: 'MongoDB', defaultPort: 27017 },
73
+ ],
74
+ configFields: [
75
+ { key: 'dbDriver', label: '数据库类型', type: 'select', required: true, options: [
76
+ { value: 'mysql', label: 'MySQL' },
77
+ { value: 'postgres', label: 'PostgreSQL' },
78
+ { value: 'mongodb', label: 'MongoDB' },
79
+ ] },
80
+ { key: 'dbHost', label: '主机地址', type: 'text', placeholder: 'localhost', required: true },
81
+ { key: 'dbPort', label: '端口', type: 'number', placeholder: '3306' },
82
+ { key: 'dbUser', label: '用户名', type: 'text', placeholder: 'root' },
83
+ { key: 'dbPassword', label: '密码', type: 'password', placeholder: '数据库密码' },
84
+ { key: 'dbName', label: '数据库名', type: 'text', placeholder: 'my_database', required: true },
85
+ ],
86
+ },
87
+ {
88
+ type: 'filesystem',
89
+ label: '文件系统',
90
+ description: '访问本地或网络文件系统,提供目录浏览、文件读取和搜索功能',
91
+ icon: 'folder2-open',
92
+ configFields: [
93
+ { key: 'fsRootPath', label: '根目录路径', type: 'path', placeholder: '/path/to/data', required: true },
94
+ { key: 'fsAllowedExtensions', label: '允许的文件扩展名', type: 'tags', placeholder: '如 .csv, .json, .xlsx(留空不限制)' },
95
+ { key: 'fsWritable', label: '允许写入', type: 'select', options: [
96
+ { value: 'false', label: '只读(推荐)' },
97
+ { value: 'true', label: '允许写入' },
98
+ ] },
99
+ ],
100
+ },
101
+ {
102
+ type: 'message-queue',
103
+ label: '消息队列',
104
+ description: '连接 RabbitMQ 或 Kafka,消费和发布消息',
105
+ icon: 'inbox',
106
+ drivers: [
107
+ { value: 'rabbitmq', label: 'RabbitMQ', defaultPort: 5672 },
108
+ { value: 'kafka', label: 'Kafka', defaultPort: 9092 },
109
+ ],
110
+ configFields: [
111
+ { key: 'mqDriver', label: '消息队列类型', type: 'select', required: true, options: [
112
+ { value: 'rabbitmq', label: 'RabbitMQ' },
113
+ { value: 'kafka', label: 'Kafka' },
114
+ ] },
115
+ { key: 'mqUrl', label: '连接 URL', type: 'text', placeholder: 'amqp://localhost:5672 或 localhost:9092', required: true },
116
+ { key: 'mqGroupId', label: '消费者组 ID(Kafka)', type: 'text', placeholder: 'workai' },
117
+ { key: 'mqWritable', label: '允许发布', type: 'select', options: [
118
+ { value: 'false', label: '只读消费(推荐)' },
119
+ { value: 'true', label: '允许发布消息' },
120
+ ] },
121
+ ],
122
+ },
123
+ {
124
+ type: 'http-api',
125
+ label: 'HTTP 服务',
126
+ description: '接入 RESTful API 服务,支持手动定义端点或导入 OpenAPI 文档自动生成工具',
127
+ icon: 'globe2',
128
+ configFields: [
129
+ { key: 'services', label: '服务配置', type: 'json', placeholder: '由向导动态管理' },
130
+ ],
131
+ },
132
+ {
133
+ type: 'mcp',
134
+ label: 'MCP 服务器',
135
+ description: '连接标准 MCP 服务器(stdio/SSE/HTTP),自动发现并注册远程工具',
136
+ icon: 'diagram-3',
137
+ configFields: [
138
+ { key: 'services', label: '服务配置', type: 'json', placeholder: '由向导动态管理' },
139
+ ],
140
+ },
141
+ {
142
+ type: 'email',
143
+ label: '邮箱',
144
+ description: '连接 IMAP+SMTP 或 Exchange (Microsoft 365) 邮箱,提供邮件发送、收取、搜索、回复、标记等 AI 工具',
145
+ icon: 'envelope',
146
+ configFields: [
147
+ { key: 'emailProtocol', label: '邮箱协议', type: 'select', required: true, options: [
148
+ { value: 'imap', label: 'IMAP + SMTP' },
149
+ { value: 'exchange', label: 'Exchange Online (Microsoft 365 Graph API)' },
150
+ { value: 'exchange-ews', label: 'Exchange 自建 (EWS 用户名+密码)' },
151
+ ] },
152
+ { key: 'smtpHost', label: 'SMTP 主机', type: 'text', placeholder: 'smtp.example.com', required: true },
153
+ { key: 'smtpPort', label: 'SMTP 端口', type: 'number', placeholder: '587' },
154
+ { key: 'smtpSecure', label: 'SMTP SSL', type: 'select', options: [
155
+ { value: 'false', label: 'STARTTLS (587)' },
156
+ { value: 'true', label: 'SSL (465)' },
157
+ ] },
158
+ { key: 'smtpUser', label: '邮箱账号', type: 'text', placeholder: 'user@example.com', required: true },
159
+ { key: 'smtpPass', label: '邮箱密码', type: 'password', placeholder: '密码或应用专用密码', required: true },
160
+ { key: 'smtpFrom', label: '发件人显示名', type: 'text', placeholder: 'WorkAgent <noreply@example.com>' },
161
+ { key: 'imapHost', label: 'IMAP 主机', type: 'text', placeholder: 'imap.example.com(留空则同 SMTP)' },
162
+ { key: 'imapPort', label: 'IMAP 端口', type: 'number', placeholder: '993' },
163
+ { key: 'exchangeTenantId', label: 'Azure AD 租户 ID', type: 'text', placeholder: 'tenant-id', required: true },
164
+ { key: 'exchangeClientId', label: 'Azure AD Client ID', type: 'text', placeholder: '应用注册的 Client ID', required: true },
165
+ { key: 'exchangeClientSecret', label: 'Azure AD Client Secret', type: 'password', placeholder: '应用 Client Secret', required: true },
166
+ { key: 'exchangeFromEmail', label: '发件人邮箱', type: 'text', placeholder: 'noreply@company.com', required: true },
167
+ { key: 'ewsUrl', label: 'EWS 服务地址', type: 'text', placeholder: 'mail.company.com', required: true },
168
+ { key: 'ewsUsername', label: '用户名', type: 'text', placeholder: '域名\\用户名 或 邮箱地址', required: true },
169
+ { key: 'ewsPassword', label: '密码', type: 'password', placeholder: '域用户密码', required: true },
170
+ { key: 'ewsFromEmail', label: '发件人邮箱', type: 'text', placeholder: 'user@company.com(留空则同用户名)' },
171
+ ],
172
+ },
173
+ {
174
+ type: 'calendar',
175
+ label: '日历',
176
+ description: '日历事件管理,支持本地存储或 CalDAV 服务器,提供事件创建、查询、更新、删除等 AI 工具',
177
+ icon: 'calendar3',
178
+ configFields: [
179
+ { key: 'calendarBackend', label: '日历后端', type: 'select', required: true, options: [
180
+ { value: 'local', label: '本地存储(推荐)' },
181
+ { value: 'caldav', label: 'CalDAV 服务器' },
182
+ ] },
183
+ { key: 'caldavUrl', label: 'CalDAV URL', type: 'text', placeholder: 'https://cal.example.com/user/' },
184
+ { key: 'caldavUser', label: 'CalDAV 用户名', type: 'text', placeholder: 'username' },
185
+ { key: 'caldavPass', label: 'CalDAV 密码', type: 'password', placeholder: 'password' },
186
+ { key: 'calendarName', label: '日历名称', type: 'text', placeholder: 'My Calendar' },
187
+ ],
188
+ },
189
+ ];
190
+ }
56
191
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yBAAyB;AACzB,+DAA+D;AAI/D,qBAAqB;AAErB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE9D,eAAe;AACf,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,IAAoB;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAcD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,kBAAkB;AAClB,SAAS,uBAAuB;IAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,eAAe,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;QAAE,eAAe,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AACjF,CAAC;AACD,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yBAAyB;AACzB,+DAA+D;AAI/D,qBAAqB;AAErB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE9D,eAAe;AACf,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,IAAoB;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAeD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,sBAAsB;AACtB,SAAS,uBAAuB;IAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,eAAe,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,eAAe,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;QAAE,eAAe,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AACjF,CAAC;AACD,uBAAuB,EAAE,CAAC;AAE1B,+DAA+D;AAC/D,mBAAmB;AACnB,oFAAoF;AACpF,+DAA+D;AAC/D,+DAA+D;AAE/D,4BAA4B;AAC5B,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE;gBACrD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC7D,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE;aAC3D;YACD,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;wBAC1E,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBAClC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC1C,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;qBACvC,EAAC;gBACF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;gBAClE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE;gBAC1E,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC3F;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACjG,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAC3G,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;wBAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;qBACjC,EAAC;aACH;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE;aACtD;YACD,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;wBAC3E,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACxC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;qBACnC,EAAC;gBACF,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,wCAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtH,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE;gBAClF,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;wBAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;wBACrC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACnC,EAAC;aACH;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;aACzE;SACF;QACD;YACE,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;aACzE;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,sEAAsE;YACnF,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;wBAC9E,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;wBACvC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,2CAA2C,EAAE;wBACzE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,0BAA0B,EAAE;qBAC7D,EAAC;gBACF,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;gBACzE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;wBAC/D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;wBAC3C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;qBACtC,EAAC;gBACF,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACjG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC9F,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAClG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAC/F,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;gBACzE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC5G,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtH,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnI,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC9G,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnG,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACjG,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC3F,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE;aAChG;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE;gBACZ,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;wBAChF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;wBACrC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;qBACzC,EAAC;gBACF,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBACrG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE;gBACjF,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;gBACpF,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;aACjF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,28 +1,20 @@
1
1
  /**
2
2
  * MCP 服务器适配器
3
3
  *
4
- * 连接外部 MCP 服务器,发现其暴露的工具。
5
- * testConnection 尝试连接 MCP 服务器,discoverTools 获取工具列表。
4
+ * 连接标准 MCP 服务器(stdio / sse / http),自动发现远程工具。
5
+ * 支持多服务实例,每个 MCP 服务器生成独立的 MCP 服务器配置(mcp-passthrough 透传)。
6
+ *
7
+ * 字段读取兼容规范键(mcpTransport / command / args / env / url)
8
+ * 与历史别名(services[{ mcpCommand / mcpArgs / mcpEndpoint / mcpHeaders / mcpEnv }])。
6
9
  */
7
10
  import type { DataSourceConfig, DiscoveredTool, ConnectionTestResult, DataSourceAdapter, MCPServerConfig } from '../types.js';
8
11
  export declare class MCPAdapter implements DataSourceAdapter {
9
12
  readonly type: "mcp";
13
+ readonly label = "MCP \u670D\u52A1\u5668";
10
14
  testConnection(config: DataSourceConfig): Promise<ConnectionTestResult>;
11
15
  discoverTools(config: DataSourceConfig): Promise<DiscoveredTool[]>;
12
- generateManifest(config: DataSourceConfig): Promise<{
13
- tools: DiscoveredTool[];
14
- metadata: {
15
- transport: "stdio" | "sse" | "streamable-http";
16
- command: string;
17
- url: string;
18
- };
19
- }>;
20
- generateMCPServerConfigs(config: DataSourceConfig): Promise<MCPServerConfig[]>;
21
- /** 从 MCP 服务器获取工具列表 */
22
- private fetchTools;
23
- /** 通过 stdio 连接 MCP 服务器 */
24
- private fetchToolsStdio;
25
- /** 通过 HTTP/SSE 连接 MCP 服务器 */
26
- private fetchToolsHTTP;
16
+ generateManifest(config: DataSourceConfig, _tools?: DiscoveredTool[]): Record<string, unknown>;
17
+ generateMCPServerConfigs(config: DataSourceConfig, tools?: DiscoveredTool[]): MCPServerConfig[];
18
+ private createAndConnect;
27
19
  }
28
20
  //# sourceMappingURL=mcp-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp-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,UAAW,YAAW,iBAAiB;IAChD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAEzB,cAAc,CAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAiB1B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIlE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;IAYzC,wBAAwB,CAC1B,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAe7B,sBAAsB;YACR,UAAU;IAWxB,0BAA0B;YACZ,eAAe;IAqF7B,6BAA6B;YACf,cAAc;CAwB/B"}
1
+ {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,aAAa,CAAC;AAgCrB,qBAAa,UAAW,YAAW,iBAAiB;IAClD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,KAAK,4BAAa;IAErB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsBvE,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiDxE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAa9F,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE;YA6BjF,gBAAgB;CAgB/B"}
@@ -1,151 +1,168 @@
1
+ function readService(svc) {
2
+ return {
3
+ name: svc.name,
4
+ transport: (svc.mcpTransport || 'stdio'),
5
+ command: svc.mcpCommand,
6
+ args: svc.mcpArgs,
7
+ env: svc.mcpEnv,
8
+ endpoint: svc.mcpEndpoint,
9
+ headers: svc.mcpHeaders,
10
+ };
11
+ }
12
+ /**
13
+ * 解析 MCP 服务列表。
14
+ * 优先使用 `config.services`(work-client 多服务形态);
15
+ * 缺失时回退到扁平单服务配置(work-space 向导:顶层 mcpTransport/command/args/env/url)。
16
+ */
17
+ function resolveMcpServices(config) {
18
+ if (config.services && config.services.length > 0)
19
+ return config.services;
20
+ return [{
21
+ name: config.name || 'default',
22
+ mcpTransport: config.mcpTransport,
23
+ mcpCommand: config.command,
24
+ mcpArgs: config.args,
25
+ mcpEnv: config.env,
26
+ mcpEndpoint: config.url,
27
+ mcpHeaders: config.headers,
28
+ }];
29
+ }
1
30
  export class MCPAdapter {
2
31
  type = 'mcp';
32
+ label = 'MCP 服务器';
3
33
  async testConnection(config) {
4
- try {
5
- const tools = await this.fetchTools(config);
6
- return {
7
- success: true,
8
- message: `MCP 服务器连接成功,发现 ${tools.length} 个工具`,
9
- resources: tools.map(t => t.name),
10
- };
11
- }
12
- catch (err) {
13
- return {
14
- success: false,
15
- message: 'MCP 服务器连接失败',
16
- error: err.message,
17
- };
34
+ const services = resolveMcpServices(config);
35
+ if (services.length === 0)
36
+ return { success: false, message: '至少需要一个 MCP 服务器配置' };
37
+ const start = Date.now();
38
+ const errors = [];
39
+ let connected = 0;
40
+ for (const svcRaw of services) {
41
+ const svc = readService(svcRaw);
42
+ try {
43
+ const client = await this.createAndConnect(svc);
44
+ try {
45
+ await client.listTools();
46
+ connected++;
47
+ }
48
+ finally {
49
+ client.disconnect();
50
+ }
51
+ }
52
+ catch (e) {
53
+ errors.push(`${svc.name}: ${e?.message || '连接失败'}`);
54
+ }
18
55
  }
56
+ const latency = Date.now() - start;
57
+ if (connected === 0)
58
+ return { success: false, message: errors.join('; '), latency };
59
+ const info = { servers: services.length, connected };
60
+ if (errors.length > 0)
61
+ info.warnings = errors.join('; ');
62
+ return { success: true, message: 'MCP 服务器连接成功', latency, info };
19
63
  }
20
64
  async discoverTools(config) {
21
- return this.fetchTools(config);
65
+ const services = resolveMcpServices(config);
66
+ const allTools = [];
67
+ for (const svcRaw of services) {
68
+ const svc = readService(svcRaw);
69
+ try {
70
+ const client = await this.createAndConnect(svc);
71
+ try {
72
+ const remoteDefs = await client.listTools();
73
+ for (const def of remoteDefs) {
74
+ const params = (def.function?.parameters || { type: 'object', properties: {} });
75
+ allTools.push({
76
+ name: def.function.name,
77
+ description: def.function.description || '',
78
+ inputSchema: {
79
+ type: 'object',
80
+ properties: Object.fromEntries(Object.entries(params.properties || {}).map(([k, v]) => [
81
+ k,
82
+ { type: v.type || 'string', description: v.description || k, ...(v.enum ? { enum: v.enum } : {}) },
83
+ ])),
84
+ ...(params.required?.length ? { required: params.required } : {}),
85
+ },
86
+ executorType: 'mcp-passthrough',
87
+ executorMeta: {
88
+ serviceName: svc.name,
89
+ mcpTransport: svc.transport,
90
+ ...(svc.command ? { mcpCommand: svc.command } : {}),
91
+ ...(svc.args ? { mcpArgs: svc.args } : {}),
92
+ ...(svc.endpoint ? { mcpEndpoint: svc.endpoint } : {}),
93
+ ...(svc.env ? { mcpEnv: svc.env } : {}),
94
+ },
95
+ });
96
+ }
97
+ }
98
+ finally {
99
+ client.disconnect();
100
+ }
101
+ }
102
+ catch (e) {
103
+ console.warn(`[McpAdapter] discoverTools for '${svc.name}' failed:`, e?.message);
104
+ }
105
+ }
106
+ return allTools;
22
107
  }
23
- async generateManifest(config) {
24
- const tools = await this.discoverTools(config);
108
+ generateManifest(config, _tools) {
109
+ const services = resolveMcpServices(config);
25
110
  return {
26
- tools,
27
- metadata: {
28
- transport: config.mcpTransport,
29
- command: config.command,
30
- url: config.url,
31
- },
111
+ name: config.name,
112
+ description: config.description || `MCP 连接器 — ${services.length} 服务器`,
113
+ category: 'data',
114
+ version: '1.0.0',
115
+ icon: 'diagram-3',
116
+ enabled: true,
117
+ dataSourceType: 'mcp',
32
118
  };
33
119
  }
34
- async generateMCPServerConfigs(config) {
35
- const tools = await this.discoverTools(config);
36
- return [
37
- {
38
- name: `mcp-${config.name || 'proxy'}`,
39
- transport: config.mcpTransport || 'stdio',
40
- command: config.command,
41
- args: config.args,
42
- env: config.env,
43
- url: config.url,
44
- tools,
45
- },
46
- ];
47
- }
48
- /** 从 MCP 服务器获取工具列表 */
49
- async fetchTools(config) {
50
- const transport = config.mcpTransport || 'stdio';
51
- if (transport === 'stdio') {
52
- return this.fetchToolsStdio(config);
120
+ generateMCPServerConfigs(config, tools) {
121
+ const services = resolveMcpServices(config);
122
+ const all = tools && tools.length > 0 ? tools : undefined;
123
+ const result = [];
124
+ for (const svcRaw of services) {
125
+ const svc = readService(svcRaw);
126
+ const svcName = svc.name || 'default';
127
+ const safeName = svcName.replace(/[^a-zA-Z0-9_-]/g, '_');
128
+ const svcTools = (all || []).filter(t => t.executorMeta?.serviceName === svcName);
129
+ const transport = svc.transport;
130
+ const mcpTransport = transport === 'streamableHttp' ? 'streamable-http' : transport;
131
+ const base = {
132
+ name: safeName,
133
+ transport: mcpTransport,
134
+ tools: svcTools,
135
+ };
136
+ if (mcpTransport === 'stdio') {
137
+ base.command = svc.command;
138
+ base.args = svc.args || [];
139
+ if (svc.env && Object.keys(svc.env).length > 0)
140
+ base.env = svc.env;
141
+ }
142
+ else {
143
+ base.url = svc.endpoint;
144
+ if (svc.headers && Object.keys(svc.headers).length > 0)
145
+ base.headers = svc.headers;
146
+ }
147
+ result.push(base);
53
148
  }
54
- return this.fetchToolsHTTP(config);
149
+ return result;
55
150
  }
56
- /** 通过 stdio 连接 MCP 服务器 */
57
- async fetchToolsStdio(config) {
58
- const { spawn } = require('child_process');
59
- return new Promise((resolve, reject) => {
60
- const proc = spawn(config.command, config.args || [], {
61
- env: { ...process.env, ...(config.env || {}) },
62
- stdio: ['pipe', 'pipe', 'pipe'],
63
- });
64
- const timeout = setTimeout(() => {
65
- proc.kill();
66
- reject(new Error('MCP 服务器连接超时'));
67
- }, 15000);
68
- let buffer = '';
69
- proc.stdout.on('data', (data) => {
70
- buffer += data.toString();
71
- const lines = buffer.split('\n');
72
- buffer = lines.pop() || '';
73
- for (const line of lines) {
74
- if (!line.trim())
75
- continue;
76
- try {
77
- const msg = JSON.parse(line);
78
- if (msg.result?.tools) {
79
- clearTimeout(timeout);
80
- proc.kill();
81
- resolve(msg.result.tools.map((t) => ({
82
- name: t.name,
83
- description: t.description || '',
84
- inputSchema: t.inputSchema || {
85
- type: 'object',
86
- properties: {},
87
- },
88
- })));
89
- }
90
- }
91
- catch {
92
- // 忽略非 JSON 行
93
- }
94
- }
95
- });
96
- proc.stderr.on('data', () => {
97
- // 忽略 stderr
98
- });
99
- proc.on('error', err => {
100
- clearTimeout(timeout);
101
- reject(new Error(`启动 MCP 服务器失败: ${err.message}`));
102
- });
103
- proc.on('close', () => {
104
- clearTimeout(timeout);
105
- // 如果还没 resolve,返回空数组
106
- resolve([]);
107
- });
108
- // 发送 initialize + tools/list 请求
109
- const initMsg = JSON.stringify({
110
- jsonrpc: '2.0',
111
- id: 1,
112
- method: 'initialize',
113
- params: {
114
- protocolVersion: '2024-11-05',
115
- capabilities: {},
116
- clientInfo: { name: 'connector-test', version: '1.0' },
117
- },
118
- });
119
- const listMsg = JSON.stringify({
120
- jsonrpc: '2.0',
121
- id: 2,
122
- method: 'tools/list',
123
- params: {},
124
- });
125
- proc.stdin.write(initMsg + '\n');
126
- proc.stdin.write(listMsg + '\n');
127
- });
128
- }
129
- /** 通过 HTTP/SSE 连接 MCP 服务器 */
130
- async fetchToolsHTTP(config) {
131
- const resp = await fetch(`${config.url}/tools`, {
132
- method: 'GET',
133
- headers: { 'Content-Type': 'application/json' },
134
- signal: AbortSignal.timeout(10000),
135
- });
136
- if (!resp.ok) {
137
- throw new Error(`HTTP ${resp.status}`);
138
- }
139
- const data = await resp.json();
140
- const tools = data.tools || data;
141
- return (Array.isArray(tools) ? tools : []).map((t) => ({
142
- name: t.name,
143
- description: t.description || '',
144
- inputSchema: t.inputSchema || {
145
- type: 'object',
146
- properties: {},
147
- },
148
- }));
151
+ async createAndConnect(svc) {
152
+ const { createMCPClient } = await import('@cicctencent/agent-core');
153
+ const config = {
154
+ name: svc.name,
155
+ transport: svc.transport,
156
+ command: svc.command,
157
+ args: svc.args || [],
158
+ env: svc.env || {},
159
+ endpoint: svc.endpoint,
160
+ headers: svc.headers,
161
+ timeout: 15000,
162
+ };
163
+ const client = createMCPClient(config);
164
+ await client.connect(config);
165
+ return client;
149
166
  }
150
167
  }
151
168
  //# sourceMappingURL=mcp-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-adapter.js","sourceRoot":"","sources":["../../../src/connectors/mcp-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-adapter.js","sourceRoot":"","sources":["../../../src/connectors/mcp-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,21 @@
1
1
  /**
2
2
  * 消息队列适配器
3
3
  *
4
- * 支持 RabbitMQ(动态 require amqplib)和 Kafka(动态 require kafkajs)。
5
- * testConnection 测试 MQ 连接,discoverTools 生成消息生产/消费工具。
4
+ * 支持 RabbitMQamqplib)/ Kafkakafkajs)。
5
+ * 默认只读(消费),发布需显式开启。
6
+ * 工具通过 executorType(mq-*) 路由到 work-client 运行时执行器(见 mcp.service)。
7
+ *
8
+ * 字段读取兼容规范键(mqType / host / port / topics / groupId)与历史别名(mqDriver / mqUrl / mqTopics / mqGroupId / mqWritable)。
6
9
  */
7
10
  import type { DataSourceConfig, DiscoveredTool, ConnectionTestResult, DataSourceAdapter, MCPServerConfig } from '../types.js';
8
11
  export declare class MessageQueueAdapter implements DataSourceAdapter {
9
12
  readonly type: "message-queue";
13
+ readonly label = "\u6D88\u606F\u961F\u5217";
14
+ readonly drivers: string[];
15
+ private delegate;
10
16
  testConnection(config: DataSourceConfig): Promise<ConnectionTestResult>;
11
17
  discoverTools(config: DataSourceConfig): Promise<DiscoveredTool[]>;
12
- generateManifest(config: DataSourceConfig): Promise<{
13
- tools: DiscoveredTool[];
14
- metadata: {
15
- mqType: "rabbitmq" | "kafka";
16
- host: string;
17
- topics: string[];
18
- };
19
- }>;
20
- generateMCPServerConfigs(config: DataSourceConfig): Promise<MCPServerConfig[]>;
21
- /** 测试 RabbitMQ 连接 */
22
- private testRabbitMQ;
23
- /** 测试 Kafka 连接 */
24
- private testKafka;
18
+ generateManifest(config: DataSourceConfig, _tools?: DiscoveredTool[]): Record<string, unknown>;
19
+ generateMCPServerConfigs(config: DataSourceConfig, tools?: DiscoveredTool[]): MCPServerConfig[];
25
20
  }
26
21
  //# sourceMappingURL=mq-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mq-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/mq-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,mBAAoB,YAAW,iBAAiB;IACzD,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IAEnC,cAAc,CAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAO1B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0DlE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;IAYzC,wBAAwB,CAC1B,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAsB7B,qBAAqB;YACP,YAAY;IA6C1B,kBAAkB;YACJ,SAAS;CA6C1B"}
1
+ {"version":3,"file":"mq-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/mq-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AA2BrB,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IACzC,QAAQ,CAAC,KAAK,8BAAU;IACxB,QAAQ,CAAC,OAAO,WAAyB;IAEzC,OAAO,CAAC,QAAQ;IAIhB,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;CAWhG"}