flex-mcp 1.0.4 → 1.1.5

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 (32) hide show
  1. package/dist/api/configs.js +263 -32
  2. package/dist/api/configs.js.map +1 -1
  3. package/dist/mcp/aggregator.d.ts.map +1 -1
  4. package/dist/mcp/aggregator.js +43 -13
  5. package/dist/mcp/aggregator.js.map +1 -1
  6. package/dist/mcp/post-sse-transport.d.ts +4 -0
  7. package/dist/mcp/post-sse-transport.d.ts.map +1 -1
  8. package/dist/mcp/post-sse-transport.js +118 -5
  9. package/dist/mcp/post-sse-transport.js.map +1 -1
  10. package/dist/mcp/tool-sync.d.ts.map +1 -1
  11. package/dist/mcp/tool-sync.js +12 -14
  12. package/dist/mcp/tool-sync.js.map +1 -1
  13. package/dist/web/assets/{Blank-BerVeAls.js → Blank-BX2hzrSo.js} +1 -1
  14. package/dist/web/assets/{Configs-BZ4p1nld.js → Configs-DGpyzfgE.js} +1 -1
  15. package/dist/web/assets/Dashboard-Dk-7JVrJ.js +30 -0
  16. package/dist/web/assets/InitScriptEditor-CJfq5ewu.js +679 -0
  17. package/dist/web/assets/{Layout-SLPXm-dk.js → Layout-CbJQ0_wa.js} +1 -1
  18. package/dist/web/assets/{Layout-Br6VMRob.js → Layout-D8dTPthK.js} +1 -1
  19. package/dist/web/assets/{Login-Cm10QZJ1.js → Login-Apd8mOT7.js} +1 -1
  20. package/dist/web/assets/{Login-Cn9EfrvS.js → Login-CPVVdjS9.js} +1 -1
  21. package/dist/web/assets/{Users-Dj8FIlX1.js → Users-Dfo1A39a.js} +1 -1
  22. package/dist/web/assets/{index-Dy8wTpRZ.js → index-Ku_MdnLs.js} +162 -162
  23. package/dist/web/assets/style-COdYV8kW.css +1 -0
  24. package/dist/web/index.html +2 -2
  25. package/package.json +1 -1
  26. package/dist/api/resources.d.ts +0 -6
  27. package/dist/api/resources.d.ts.map +0 -1
  28. package/dist/api/resources.js +0 -159
  29. package/dist/api/resources.js.map +0 -1
  30. package/dist/web/assets/Dashboard-DVSQDspm.js +0 -27
  31. package/dist/web/assets/InitScriptEditor-DlF0Jn7f.js +0 -679
  32. package/dist/web/assets/style-0VyF1s_q.css +0 -1
@@ -5,10 +5,10 @@ import { Hono } from 'hono';
5
5
  import { authMiddleware, requireAdmin, getCurrentUserId, getCurrentUserRole } from './middleware.js';
6
6
  import { db } from '../db/index.js';
7
7
  import { mcpConfigs, mcpComponentTools } from '../db/schema.js';
8
- import { eq, and } from 'drizzle-orm';
8
+ import { eq, and, inArray } from 'drizzle-orm';
9
9
  import { generateId } from '../utils/id.js';
10
10
  import { mcpService } from '../mcp/service.js';
11
- import { syncComponentTools } from '../mcp/tool-sync.js';
11
+ import { syncComponentTools, loadComponentToolsList } from '../mcp/tool-sync.js';
12
12
  export const configRouter = new Hono();
13
13
  /**
14
14
  * 将数据库行转换为 MCPConfig 对象
@@ -143,21 +143,56 @@ configRouter.put('/me', async (c) => {
143
143
  }
144
144
  const configId = result[0].id;
145
145
  // 更新配置(如果是admin,排除variables字段)
146
+ // 注意:只有当字段明确提供时才更新,避免覆盖未传递的字段
146
147
  const updateData = {
147
- name: body.name,
148
- components: body.components ? JSON.stringify(body.components) : undefined,
149
- customTools: body.customTools ? JSON.stringify(body.customTools) : undefined,
150
- initScript: body.initScript || null,
151
148
  updatedAt: new Date(),
152
149
  };
150
+ // 只有当字段明确提供时才更新
151
+ if (body.name !== undefined) {
152
+ updateData.name = body.name;
153
+ }
154
+ if (body.components !== undefined) {
155
+ updateData.components = body.components ? JSON.stringify(body.components) : undefined;
156
+ }
157
+ if (body.customTools !== undefined) {
158
+ updateData.customTools = body.customTools ? JSON.stringify(body.customTools) : undefined;
159
+ }
160
+ // initScript 字段:如果明确传递了(包括 null 或空字符串),才更新
161
+ // 如果未传递(undefined),则保持原值不变
162
+ if ('initScript' in body) {
163
+ updateData.initScript = body.initScript || null;
164
+ }
153
165
  // 只有非admin用户才能更新variables
154
- if (currentRole !== 'admin') {
166
+ if (currentRole !== 'admin' && body.variables !== undefined) {
155
167
  updateData.variables = body.variables ? JSON.stringify(body.variables) : undefined;
156
168
  }
157
169
  // 更新 enableExploreTable 字段(如果提供)
158
170
  if (body.enableExploreTable !== undefined) {
159
171
  updateData.enableExploreTable = body.enableExploreTable ? 1 : 0;
160
172
  }
173
+ // 如果更新了 components,清理已移除组件的工具记录
174
+ if (body.components !== undefined) {
175
+ try {
176
+ // 获取更新前的配置,找出被移除的组件
177
+ const oldConfig = rowToConfig(result[0]);
178
+ const oldComponentIds = new Set(oldConfig.components.map(c => c.id));
179
+ const newComponentIds = new Set(body.components.map((c) => c.id));
180
+ // 找出被移除的组件 ID
181
+ const removedComponentIds = Array.from(oldComponentIds).filter(id => !newComponentIds.has(id));
182
+ if (removedComponentIds.length > 0) {
183
+ console.log(`[Config] Cleaning up tools for removed components: ${removedComponentIds.join(', ')}`);
184
+ // 删除已移除组件的工具记录
185
+ await db
186
+ .delete(mcpComponentTools)
187
+ .where(and(eq(mcpComponentTools.configId, configId), inArray(mcpComponentTools.componentId, removedComponentIds)));
188
+ console.log(`[Config] Cleaned up tools for ${removedComponentIds.length} removed components`);
189
+ }
190
+ }
191
+ catch (error) {
192
+ console.error(`[Config] Failed to cleanup tools for removed components:`, error.message || error);
193
+ // 继续执行,不抛出错误
194
+ }
195
+ }
161
196
  await db
162
197
  .update(mcpConfigs)
163
198
  .set(updateData)
@@ -209,17 +244,34 @@ configRouter.put('/user/:userId', requireAdmin(), async (c) => {
209
244
  const configId = result[0].id;
210
245
  // 管理员不允许修改用户的 variables,移除该字段
211
246
  const { ...updateData } = body;
247
+ // 构建更新对象,只包含明确提供的字段
248
+ // 注意:只有当字段明确提供时才更新,避免覆盖未传递的字段
249
+ const updateFields = {
250
+ updatedAt: new Date(),
251
+ };
252
+ // 只有当字段明确提供时才更新
253
+ if (updateData.name !== undefined) {
254
+ updateFields.name = updateData.name;
255
+ }
256
+ if (updateData.components !== undefined) {
257
+ updateFields.components = updateData.components ? JSON.stringify(updateData.components) : undefined;
258
+ }
259
+ if (updateData.customTools !== undefined) {
260
+ updateFields.customTools = updateData.customTools ? JSON.stringify(updateData.customTools) : undefined;
261
+ }
262
+ // initScript 字段:如果明确传递了(包括 null 或空字符串),才更新
263
+ // 如果未传递(undefined),则保持原值不变
264
+ if ('initScript' in updateData) {
265
+ updateFields.initScript = updateData.initScript || null;
266
+ }
267
+ // 只有当 enableExploreTable 有值时才添加
268
+ // 使用 boolean 值,Drizzle 会自动转换为 1/0
269
+ if (updateData.enableExploreTable !== undefined) {
270
+ updateFields.enableExploreTable = updateData.enableExploreTable;
271
+ }
212
272
  await db
213
273
  .update(mcpConfigs)
214
- .set({
215
- name: updateData.name,
216
- components: updateData.components ? JSON.stringify(updateData.components) : undefined,
217
- customTools: updateData.customTools ? JSON.stringify(updateData.customTools) : undefined,
218
- // variables 字段被忽略,管理员无法修改
219
- initScript: updateData.initScript || null,
220
- enableExploreTable: updateData.enableExploreTable !== undefined ? (updateData.enableExploreTable ? 1 : 0) : undefined,
221
- updatedAt: new Date(),
222
- })
274
+ .set(updateFields)
223
275
  .where(eq(mcpConfigs.id, configId));
224
276
  // 清理用户的聚合器缓存,强制重新加载配置
225
277
  // 注意:清理失败不应该影响配置保存
@@ -269,9 +321,14 @@ configRouter.post('/test-init-script', async (c) => {
269
321
  const config = rowToConfig(result[0]);
270
322
  // 获取 MCP 客户端配置(如果存在)
271
323
  const mcpClientConfig = mcpService.getMCPClientConfig(currentUserId);
324
+ // 创建临时的 aggregator 实例用于测试(不执行初始化脚本,避免循环)
325
+ const { MCPAggregator } = await import('../mcp/aggregator.js');
326
+ const tempAggregator = new MCPAggregator(config, mcpClientConfig, currentUserId);
327
+ // 标记为已初始化,但不执行初始化脚本(避免循环执行)
328
+ tempAggregator.isInitialized = true;
272
329
  // 创建临时脚本执行器
273
330
  const { ScriptExecutor } = await import('../script/executor.js');
274
- const executor = new ScriptExecutor(config, mcpClientConfig);
331
+ const executor = new ScriptExecutor(config, mcpClientConfig, tempAggregator);
275
332
  // 捕获输出
276
333
  const output = [];
277
334
  const originalLog = console.log;
@@ -358,9 +415,14 @@ configRouter.post('/test-custom-tool', async (c) => {
358
415
  const config = rowToConfig(result[0]);
359
416
  // 获取 MCP 客户端配置(如果存在)
360
417
  const mcpClientConfig = mcpService.getMCPClientConfig(currentUserId);
418
+ // 创建临时的 aggregator 实例用于测试(不执行初始化脚本,避免循环)
419
+ const { MCPAggregator } = await import('../mcp/aggregator.js');
420
+ const tempAggregator = new MCPAggregator(config, mcpClientConfig, currentUserId);
421
+ // 标记为已初始化,但不执行初始化脚本(避免循环执行)
422
+ tempAggregator.isInitialized = true;
361
423
  // 创建临时脚本执行器
362
424
  const { ScriptExecutor } = await import('../script/executor.js');
363
- const executor = new ScriptExecutor(config, mcpClientConfig);
425
+ const executor = new ScriptExecutor(config, mcpClientConfig, tempAggregator);
364
426
  // 创建临时自定义工具对象
365
427
  const tempTool = {
366
428
  id: 'test-tool',
@@ -446,10 +508,10 @@ configRouter.post('/sync-tools', async (c) => {
446
508
  if (!component) {
447
509
  return c.json({ success: false, error: `Component ${componentId} not found` }, 404);
448
510
  }
449
- // 注意:如果组件被禁用,syncComponentTools 会自动跳过,不需要在这里检查
511
+ // 注意:工具声明加载和工具调用逻辑完全解耦,允许同步所有组件(包括禁用的)
450
512
  }
451
- // 同步工具(syncComponentTools 会自动跳过禁用的组件)
452
- const syncResult = await syncComponentTools(config, componentId);
513
+ // 同步工具(允许同步所有组件,包括禁用的,因为工具声明应该总是可以同步)
514
+ const syncResult = await syncComponentTools(config, componentId, true);
453
515
  // 清理聚合器缓存,强制重新加载
454
516
  await mcpService.clearAggregator(currentUserId);
455
517
  return c.json({
@@ -465,6 +527,39 @@ configRouter.post('/sync-tools', async (c) => {
465
527
  return c.json({ success: false, error: error.message }, 500);
466
528
  }
467
529
  });
530
+ // 仅加载组件的工具列表(不保存到数据库,即使组件禁用也可以加载)
531
+ configRouter.post('/component-tools/load', async (c) => {
532
+ try {
533
+ const currentUserId = getCurrentUserId(c);
534
+ const body = await c.req.json();
535
+ const componentId = body.componentId;
536
+ if (!componentId) {
537
+ return c.json({ success: false, error: 'componentId is required' }, 400);
538
+ }
539
+ // 获取用户配置
540
+ const result = await db
541
+ .select()
542
+ .from(mcpConfigs)
543
+ .where(eq(mcpConfigs.userId, currentUserId))
544
+ .limit(1);
545
+ if (result.length === 0) {
546
+ return c.json({ success: false, error: 'MCP configuration not found' }, 404);
547
+ }
548
+ const config = rowToConfig(result[0]);
549
+ // 加载工具列表(即使组件禁用也可以加载)
550
+ const loadResult = await loadComponentToolsList(config, componentId);
551
+ return c.json({
552
+ success: true,
553
+ data: {
554
+ tools: loadResult.tools,
555
+ errors: loadResult.errors,
556
+ },
557
+ });
558
+ }
559
+ catch (error) {
560
+ return c.json({ success: false, error: error.message }, 500);
561
+ }
562
+ });
468
563
  // 获取指定组件的工具列表(从数据库读取)
469
564
  configRouter.get('/component-tools/:componentId', async (c) => {
470
565
  try {
@@ -485,27 +580,60 @@ configRouter.get('/component-tools/:componentId', async (c) => {
485
580
  if (!component) {
486
581
  return c.json({ success: false, error: `Component ${componentId} not found` }, 404);
487
582
  }
488
- // 从数据库获取该组件的工具列表
583
+ // 从数据库获取该组件的工具列表(原始数据)
489
584
  const dbTools = await db
490
585
  .select()
491
586
  .from(mcpComponentTools)
492
587
  .where(and(eq(mcpComponentTools.configId, config.id), eq(mcpComponentTools.componentId, componentId)));
588
+ // 获取组件的 toolPatches 配置(配置数据,用于覆盖原始数据)
589
+ const toolPatches = component.config?.toolPatches || {};
493
590
  // 转换为前端需要的格式
591
+ // 重要:返回原始数据和编辑数据,让前端自己决定如何显示
494
592
  const tools = dbTools.map(dbTool => {
495
- let inputSchema = dbTool.inputSchema;
496
- // 应用工具补丁(如果存在)
497
- if (dbTool.toolPatches && typeof dbTool.toolPatches === 'object' && dbTool.toolPatches !== null) {
498
- inputSchema = {
499
- ...inputSchema,
500
- ...dbTool.toolPatches,
501
- };
593
+ // 从原始数据开始(这是从 MCP 服务拉下来的原始数据)
594
+ const originalInputSchema = dbTool.inputSchema;
595
+ const originalDescription = dbTool.description;
596
+ // 应用工具补丁(如果存在,使用原始工具名称作为键)
597
+ // toolPatches 存储在组件配置中,不在工具记录中
598
+ const toolPatch = toolPatches[dbTool.originalToolName];
599
+ let inputSchema = originalInputSchema;
600
+ let description = originalDescription;
601
+ if (toolPatch && typeof toolPatch === 'object') {
602
+ // 应用 description 补丁(如果存在)
603
+ if (toolPatch.description !== undefined && toolPatch.description !== null && toolPatch.description !== '') {
604
+ description = toolPatch.description;
605
+ }
606
+ // 应用 inputSchema 补丁(如果存在)
607
+ if (toolPatch.inputSchema) {
608
+ inputSchema = {
609
+ ...inputSchema,
610
+ ...toolPatch.inputSchema,
611
+ };
612
+ }
613
+ // 应用 fieldDescriptions 补丁(如果存在)
614
+ if (toolPatch.fieldDescriptions && typeof toolPatch.fieldDescriptions === 'object') {
615
+ // 更新 inputSchema 中对应字段的 description
616
+ if (inputSchema.properties) {
617
+ for (const [fieldName, fieldDescription] of Object.entries(toolPatch.fieldDescriptions)) {
618
+ if (inputSchema.properties[fieldName]) {
619
+ inputSchema.properties[fieldName] = {
620
+ ...inputSchema.properties[fieldName],
621
+ description: fieldDescription,
622
+ };
623
+ }
624
+ }
625
+ }
626
+ }
502
627
  }
503
628
  return {
504
629
  name: dbTool.toolName,
505
- description: dbTool.description,
506
- inputSchema: inputSchema,
507
- disabled: dbTool.disabled,
630
+ description: description, // 应用了 toolPatches 的描述
631
+ inputSchema: inputSchema, // 应用了 toolPatches 的 inputSchema
632
+ disabled: dbTool.disabled, // 使用数据库中存储的 disabled 状态
508
633
  originalToolName: dbTool.originalToolName,
634
+ // 重要:同时返回原始数据,用于还原功能
635
+ originalDescription: originalDescription, // 原始描述(从 MCP 服务拉下来的)
636
+ originalInputSchema: originalInputSchema, // 原始 inputSchema(从 MCP 服务拉下来的)
509
637
  };
510
638
  });
511
639
  return c.json({
@@ -517,4 +645,107 @@ configRouter.get('/component-tools/:componentId', async (c) => {
517
645
  return c.json({ success: false, error: error.message }, 500);
518
646
  }
519
647
  });
648
+ // 获取所有组件的所有工具列表(包括禁用的),用于 Context 类型生成
649
+ // 返回的是原始数据 + 编辑数据的叠加结果
650
+ configRouter.get('/all-tools', async (c) => {
651
+ try {
652
+ const currentUserId = getCurrentUserId(c);
653
+ // 获取用户配置
654
+ const result = await db
655
+ .select()
656
+ .from(mcpConfigs)
657
+ .where(eq(mcpConfigs.userId, currentUserId))
658
+ .limit(1);
659
+ if (result.length === 0) {
660
+ return c.json({ success: false, error: 'MCP configuration not found' }, 404);
661
+ }
662
+ const config = rowToConfig(result[0]);
663
+ // 从数据库获取所有组件的所有工具列表(包括禁用的)
664
+ const dbTools = await db
665
+ .select()
666
+ .from(mcpComponentTools)
667
+ .where(eq(mcpComponentTools.configId, config.id));
668
+ // 创建一个组件ID到组件配置的映射
669
+ const componentMap = new Map();
670
+ for (const comp of config.components) {
671
+ componentMap.set(comp.id, comp);
672
+ }
673
+ // 转换为前端需要的格式,应用 toolPatches
674
+ const allTools = [];
675
+ for (const dbTool of dbTools) {
676
+ const component = componentMap.get(dbTool.componentId);
677
+ if (!component) {
678
+ continue; // 跳过找不到组件的工具
679
+ }
680
+ // 获取组件的 toolPatches 配置(配置数据,用于覆盖原始数据)
681
+ const toolPatches = component.config?.toolPatches || {};
682
+ // 从原始数据开始
683
+ let inputSchema = dbTool.inputSchema;
684
+ let description = dbTool.description;
685
+ // 应用工具补丁(如果存在,使用原始工具名称作为键)
686
+ const toolPatch = toolPatches[dbTool.originalToolName];
687
+ if (toolPatch && typeof toolPatch === 'object') {
688
+ // 应用 description 补丁(如果存在)
689
+ if (toolPatch.description !== undefined && toolPatch.description !== null && toolPatch.description !== '') {
690
+ description = toolPatch.description;
691
+ }
692
+ // 应用 inputSchema 补丁(如果存在)
693
+ if (toolPatch.inputSchema) {
694
+ inputSchema = {
695
+ ...inputSchema,
696
+ ...toolPatch.inputSchema,
697
+ };
698
+ }
699
+ // 应用 fieldDescriptions 补丁(如果存在)
700
+ if (toolPatch.fieldDescriptions && typeof toolPatch.fieldDescriptions === 'object') {
701
+ // 更新 inputSchema 中对应字段的 description
702
+ if (inputSchema.properties) {
703
+ for (const [fieldName, fieldDescription] of Object.entries(toolPatch.fieldDescriptions)) {
704
+ if (inputSchema.properties[fieldName]) {
705
+ inputSchema.properties[fieldName] = {
706
+ ...inputSchema.properties[fieldName],
707
+ description: fieldDescription,
708
+ };
709
+ }
710
+ }
711
+ }
712
+ }
713
+ }
714
+ allTools.push({
715
+ name: dbTool.toolName,
716
+ description: description,
717
+ inputSchema: inputSchema,
718
+ originalToolName: dbTool.originalToolName,
719
+ });
720
+ }
721
+ // 添加自定义工具
722
+ // 自定义工具没有 originalToolName,使用 name 作为工具名称
723
+ for (const customTool of config.customTools) {
724
+ allTools.push({
725
+ name: customTool.name,
726
+ description: customTool.description,
727
+ inputSchema: {
728
+ type: 'object',
729
+ properties: customTool.parameters.reduce((acc, param) => {
730
+ acc[param.name] = {
731
+ type: param.type,
732
+ description: param.description || '',
733
+ };
734
+ return acc;
735
+ }, {}),
736
+ required: customTool.parameters.filter((p) => p.required).map((p) => p.name),
737
+ },
738
+ // 自定义工具没有 originalToolName,所以不设置这个字段
739
+ // Context 类型生成时会使用 name 作为工具名称
740
+ });
741
+ }
742
+ return c.json({
743
+ success: true,
744
+ data: { tools: allTools },
745
+ });
746
+ }
747
+ catch (error) {
748
+ return c.json({ success: false, error: error.message }, 500);
749
+ }
750
+ });
520
751
  //# sourceMappingURL=configs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../src/api/configs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../src/api/configs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../src/mcp/aggregator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAC;AAWrF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,eAAe,CAA0E;IACjG,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,SAAgB,eAAe,EAAE,IAAI,CAAC;gBAE1B,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM;IASzI;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;YACW,qBAAqB;IAyDnC;;OAEG;YACW,+BAA+B;IAmD7C;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkOlC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA0QvC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA0B3C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IA0G7E;;OAEG;YACW,kBAAkB;IAoBhC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAuRzF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA6K/C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmC7B"}
1
+ {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../src/mcp/aggregator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAC;AAWrF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,eAAe,CAA0E;IACjG,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,SAAgB,eAAe,EAAE,IAAI,CAAC;gBAE1B,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM;IASzI;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;YACW,qBAAqB;IAyDnC;;OAEG;YACW,+BAA+B;IAmD7C;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkOlC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAsSvC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA0B3C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IA0G7E;;OAEG;YACW,kBAAkB;IAoBhC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAuRzF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA6K/C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmC7B"}
@@ -494,9 +494,15 @@ export class MCPAggregator {
494
494
  // 转换为 MCPTool 格式,同时过滤掉被禁用组件的工具和被禁用的工具
495
495
  let filteredCount = 0;
496
496
  for (const dbTool of dbTools) {
497
- // 检查组件是否被禁用
497
+ // 检查组件是否存在(如果组件已被移除,component 会是 undefined)
498
498
  const component = componentMap.get(dbTool.componentId);
499
- if (component?.disabled) {
499
+ if (!component) {
500
+ filteredCount++;
501
+ console.log(`[MCP] getAllTools: Skipping tool ${dbTool.toolName} from removed component (componentId: ${dbTool.componentId})`);
502
+ continue;
503
+ }
504
+ // 检查组件是否被禁用
505
+ if (component.disabled) {
500
506
  filteredCount++;
501
507
  console.log(`[MCP] getAllTools: Skipping tool ${dbTool.toolName} from disabled component ${component.name}`);
502
508
  continue;
@@ -511,26 +517,50 @@ export class MCPAggregator {
511
517
  console.log(`[MCP] getAllTools: Skipping disabled tool ${dbTool.toolName} (original: ${dbTool.originalToolName}, disabledTools: [${disabledTools.join(', ')}])`);
512
518
  continue;
513
519
  }
514
- // 确保工具名称包含命名空间前缀
520
+ // 确保工具名称包含命名空间前缀(只有在明确设置了命名空间时)
515
521
  // 如果数据库中的 toolName 没有命名空间前缀(向后兼容),则动态添加
516
522
  let finalToolName = dbTool.toolName;
517
523
  if (component) {
518
- // 确定命名空间:如果设置了命名空间则使用,否则使用组件名称
524
+ // 确定命名空间:只有在明确设置了命名空间时才使用
519
525
  const namespace = component.namespace && component.namespace.trim() !== ''
520
526
  ? component.namespace.trim()
521
- : component.name;
522
- // 检查 toolName 是否已经包含命名空间前缀
523
- // 如果 toolName 不包含命名空间前缀,则添加
524
- // 使用下横线连接命名空间和工具名称(Cursor 兼容性)
525
- if (!finalToolName.startsWith(`${namespace}_`)) {
526
- // 如果 toolName 已经是原始工具名称(不带命名空间),则添加命名空间前缀
527
- if (finalToolName === dbTool.originalToolName) {
527
+ : null;
528
+ if (namespace) {
529
+ // 只有在设置了命名空间时才添加前缀
530
+ // 检查 toolName 是否已经包含正确的命名空间前缀
531
+ const expectedPrefix = `${namespace}_`;
532
+ if (finalToolName.startsWith(expectedPrefix)) {
533
+ // 已经包含正确的命名空间前缀,保持原样
534
+ // 不做任何处理
535
+ }
536
+ else if (finalToolName === dbTool.originalToolName) {
537
+ // 如果 toolName 已经是原始工具名称(不带命名空间),则添加命名空间前缀
528
538
  finalToolName = `${namespace}_${dbTool.originalToolName}`;
529
539
  console.log(`[MCP] getAllTools: Adding namespace prefix to tool: ${dbTool.originalToolName} -> ${finalToolName}`);
530
540
  }
531
541
  else {
532
- // 如果 toolName 包含其他命名空间,保持原样(可能是旧数据)
533
- console.log(`[MCP] getAllTools: Tool ${finalToolName} already has a namespace prefix, keeping as is`);
542
+ // 如果 toolName 包含其他命名空间(可能是旧数据,使用了组件名称),则替换为正确的命名空间
543
+ // 检查是否是组件名称作为前缀(旧数据)
544
+ const componentNamePrefix = `${component.name}_`;
545
+ if (finalToolName.startsWith(componentNamePrefix)) {
546
+ // 旧数据:使用了组件名称作为前缀,替换为正确的命名空间
547
+ finalToolName = `${namespace}_${dbTool.originalToolName}`;
548
+ console.log(`[MCP] getAllTools: Replacing component name prefix with namespace: ${dbTool.toolName} -> ${finalToolName} (namespace: ${namespace})`);
549
+ }
550
+ else {
551
+ // 包含其他未知的前缀,使用原始名称并添加正确的命名空间
552
+ finalToolName = `${namespace}_${dbTool.originalToolName}`;
553
+ console.log(`[MCP] getAllTools: Replacing unknown prefix with namespace: ${dbTool.toolName} -> ${finalToolName} (namespace: ${namespace})`);
554
+ }
555
+ }
556
+ }
557
+ else {
558
+ // 如果没有设置命名空间,确保工具名称是原始名称(不带前缀)
559
+ // 如果数据库中的 toolName 包含前缀(可能是旧数据),则使用 originalToolName
560
+ if (finalToolName !== dbTool.originalToolName && finalToolName.includes('_')) {
561
+ // 可能是旧数据,使用原始名称
562
+ finalToolName = dbTool.originalToolName;
563
+ console.log(`[MCP] getAllTools: Removing namespace prefix from tool (no namespace configured): ${dbTool.toolName} -> ${finalToolName}`);
534
564
  }
535
565
  }
536
566
  }