langflow-mcp-server 3.1.0 → 4.11.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.
Files changed (33) hide show
  1. package/README.md +228 -79
  2. package/dist/__tests__/fixtures/vertices.d.ts +1 -2
  3. package/dist/__tests__/fixtures/vertices.d.ts.map +1 -1
  4. package/dist/__tests__/fixtures/vertices.js +1 -5
  5. package/dist/__tests__/fixtures/vertices.js.map +1 -1
  6. package/dist/mcp/server-consolidated.d.ts +13 -0
  7. package/dist/mcp/server-consolidated.d.ts.map +1 -1
  8. package/dist/mcp/server-consolidated.js +713 -44
  9. package/dist/mcp/server-consolidated.js.map +1 -1
  10. package/dist/mcp/server.d.ts.map +1 -1
  11. package/dist/mcp/server.js +749 -50
  12. package/dist/mcp/server.js.map +1 -1
  13. package/dist/mcp/tools-consolidated.d.ts.map +1 -1
  14. package/dist/mcp/tools-consolidated.js +722 -43
  15. package/dist/mcp/tools-consolidated.js.map +1 -1
  16. package/dist/mcp/tools.d.ts.map +1 -1
  17. package/dist/mcp/tools.js +1701 -66
  18. package/dist/mcp/tools.js.map +1 -1
  19. package/dist/mcp/validation-consolidated.d.ts +681 -9
  20. package/dist/mcp/validation-consolidated.d.ts.map +1 -1
  21. package/dist/mcp/validation-consolidated.js +635 -15
  22. package/dist/mcp/validation-consolidated.js.map +1 -1
  23. package/dist/mcp/validation.d.ts +769 -11
  24. package/dist/mcp/validation.d.ts.map +1 -1
  25. package/dist/mcp/validation.js +600 -11
  26. package/dist/mcp/validation.js.map +1 -1
  27. package/dist/services/langflow-client.d.ts +133 -51
  28. package/dist/services/langflow-client.d.ts.map +1 -1
  29. package/dist/services/langflow-client.js +1102 -154
  30. package/dist/services/langflow-client.js.map +1 -1
  31. package/dist/types/index.d.ts +395 -4
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/package.json +16 -13
@@ -16,39 +16,41 @@ class LangflowMCPServer {
16
16
  this.client = null;
17
17
  const baseUrl = process.env.LANGFLOW_BASE_URL;
18
18
  const apiKey = process.env.LANGFLOW_API_KEY;
19
- if (!baseUrl || !apiKey) {
20
- throw new Error('LANGFLOW_BASE_URL and LANGFLOW_API_KEY must be set in environment');
21
- }
22
- try {
23
- const url = new URL(baseUrl);
24
- if (!['http:', 'https:'].includes(url.protocol)) {
25
- throw new Error(`Invalid protocol: ${url.protocol}. Only http: and https: are allowed.`);
19
+ if (baseUrl && apiKey) {
20
+ try {
21
+ const url = new URL(baseUrl);
22
+ if (!['http:', 'https:'].includes(url.protocol)) {
23
+ throw new Error(`Invalid protocol: ${url.protocol}. Only http: and https: are allowed.`);
24
+ }
26
25
  }
27
- }
28
- catch (error) {
29
- if (error instanceof TypeError) {
30
- throw new Error(`Invalid LANGFLOW_BASE_URL format: ${baseUrl}`);
26
+ catch (error) {
27
+ if (error instanceof TypeError) {
28
+ throw new Error(`Invalid LANGFLOW_BASE_URL format: ${baseUrl}`);
29
+ }
30
+ throw error;
31
31
  }
32
- throw error;
33
- }
34
- if (apiKey.length < 10) {
35
- throw new Error('LANGFLOW_API_KEY appears to be invalid (too short)');
32
+ if (apiKey.length < 10) {
33
+ throw new Error('LANGFLOW_API_KEY appears to be invalid (too short)');
34
+ }
35
+ const DEFAULT_TIMEOUT = 30000;
36
+ const MIN_TIMEOUT = 1000;
37
+ const MAX_TIMEOUT = 300000;
38
+ const timeoutStr = process.env.LANGFLOW_TIMEOUT || String(DEFAULT_TIMEOUT);
39
+ let timeout = parseInt(timeoutStr, 10);
40
+ if (isNaN(timeout) || timeout < MIN_TIMEOUT || timeout > MAX_TIMEOUT) {
41
+ logger_1.logger.warn(`Invalid LANGFLOW_TIMEOUT: ${timeoutStr}, using default: ${DEFAULT_TIMEOUT}`);
42
+ timeout = DEFAULT_TIMEOUT;
43
+ }
44
+ const config = {
45
+ baseUrl,
46
+ apiKey,
47
+ timeout
48
+ };
49
+ this.client = new langflow_client_1.LangflowClient(config);
36
50
  }
37
- const DEFAULT_TIMEOUT = 30000;
38
- const MIN_TIMEOUT = 1000;
39
- const MAX_TIMEOUT = 300000;
40
- const timeoutStr = process.env.LANGFLOW_TIMEOUT || String(DEFAULT_TIMEOUT);
41
- let timeout = parseInt(timeoutStr, 10);
42
- if (isNaN(timeout) || timeout < MIN_TIMEOUT || timeout > MAX_TIMEOUT) {
43
- logger_1.logger.warn(`Invalid LANGFLOW_TIMEOUT: ${timeoutStr}, using default: ${DEFAULT_TIMEOUT}`);
44
- timeout = DEFAULT_TIMEOUT;
51
+ else {
52
+ logger_1.logger.warn('LANGFLOW_BASE_URL or LANGFLOW_API_KEY not set. Server will start but tools will return errors until configured.');
45
53
  }
46
- const config = {
47
- baseUrl,
48
- apiKey,
49
- timeout
50
- };
51
- this.client = new langflow_client_1.LangflowClient(config);
52
54
  logger_1.logger.info('Initializing Langflow MCP server');
53
55
  let serverVersion = 'dev';
54
56
  try {
@@ -87,7 +89,8 @@ class LangflowMCPServer {
87
89
  'access_token', 'refresh_token', 'authorization',
88
90
  'x-api-key', 'x-store-api-key', 'set-cookie',
89
91
  'bearer', 'session', 'session_id', 'cookie',
90
- 'private_key', 'secret', 'credentials', 'api-key'
92
+ 'private_key', 'secret', 'credentials', 'api-key',
93
+ 'file_content', 'file', 'content', 'payload', 'data'
91
94
  ]);
92
95
  if (depth > MAX_DEPTH) {
93
96
  return { __error: 'max depth exceeded' };
@@ -163,6 +166,10 @@ class LangflowMCPServer {
163
166
  if (!base64Regex.test(fileContent)) {
164
167
  throw new Error('Invalid base64 format');
165
168
  }
169
+ if (fileContent.length % 4 !== 0 ||
170
+ Buffer.from(fileContent, 'base64').toString('base64') !== fileContent) {
171
+ throw new Error('Invalid base64 format');
172
+ }
166
173
  const estimatedSize = (fileContent.length * 3) / 4;
167
174
  if (estimatedSize > maxSizeBytes) {
168
175
  throw new Error(`File size ${Math.round(estimatedSize)} bytes (estimated) exceeds maximum allowed size of ${maxSizeBytes} bytes (10MB)`);
@@ -226,7 +233,7 @@ class LangflowMCPServer {
226
233
  });
227
234
  this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
228
235
  if (!this.client) {
229
- throw new Error('Langflow client not initialized');
236
+ throw new Error('Langflow client not initialized. Set LANGFLOW_BASE_URL and LANGFLOW_API_KEY environment variables.');
230
237
  }
231
238
  const { name, arguments: rawArgs } = request.params;
232
239
  if (rawArgs !== undefined && rawArgs !== null) {
@@ -278,7 +285,8 @@ class LangflowMCPServer {
278
285
  }
279
286
  case 'run_flow': {
280
287
  const validated = validation_1.RunFlowSchema.parse(args);
281
- const result = await this.client.runFlow(validated.flow_id_or_name, validated.input_request, validated.stream);
288
+ const { context: nestedContext, ...inputRequest } = validated.input_request;
289
+ const result = await this.client.runFlow(validated.flow_id_or_name, inputRequest, validated.stream, validated.context ?? nestedContext);
282
290
  return this.formatSuccessResponse(result);
283
291
  }
284
292
  case 'trigger_webhook': {
@@ -448,7 +456,7 @@ class LangflowMCPServer {
448
456
  flow_id: validated.flow_id,
449
457
  file_name: validated.file_name
450
458
  });
451
- if (!fileData) {
459
+ if (!fileData || (fileData.byteLength ?? fileData.length) === 0) {
452
460
  throw new Error('No file data received from server');
453
461
  }
454
462
  const base64Data = Buffer.from(fileData).toString('base64');
@@ -476,7 +484,7 @@ class LangflowMCPServer {
476
484
  flow_id: validated.flow_id,
477
485
  file_name: validated.file_name
478
486
  });
479
- if (!imageData) {
487
+ if (!imageData || (imageData.byteLength ?? imageData.length) === 0) {
480
488
  throw new Error('No image data received from server');
481
489
  }
482
490
  const base64Data = Buffer.from(imageData).toString('base64');
@@ -493,7 +501,7 @@ class LangflowMCPServer {
493
501
  case 'get_profile_picture': {
494
502
  const validated = validation_1.GetProfilePictureSchema.parse(args);
495
503
  const pictureData = await this.client.getProfilePicture(validated.folder_name, validated.file_name);
496
- if (!pictureData) {
504
+ if (!pictureData || (pictureData.byteLength ?? pictureData.length) === 0) {
497
505
  throw new Error('No picture data received from server');
498
506
  }
499
507
  const base64Data = Buffer.from(pictureData).toString('base64');
@@ -633,11 +641,6 @@ class LangflowMCPServer {
633
641
  const result = await this.client.buildVertices(flow_id, request);
634
642
  return this.formatSuccessResponse(result);
635
643
  }
636
- case 'get_vertex': {
637
- const validated = validation_1.GetVertexSchema.parse(args);
638
- const result = await this.client.getVertex(validated);
639
- return this.formatSuccessResponse(result);
640
- }
641
644
  case 'stream_vertex_build': {
642
645
  const validated = validation_1.StreamVertexBuildSchema.parse(args);
643
646
  const result = await this.client.streamVertexBuild(validated);
@@ -658,11 +661,6 @@ class LangflowMCPServer {
658
661
  const result = await this.client.getCurrentUser();
659
662
  return this.formatSuccessResponse(result);
660
663
  }
661
- case 'get_user': {
662
- const validated = validation_1.GetUserSchema.parse(args);
663
- const result = await this.client.getUser(validated.user_id);
664
- return this.formatSuccessResponse(result);
665
- }
666
664
  case 'update_user': {
667
665
  const validated = validation_1.UpdateUserSchema.parse(args);
668
666
  const { user_id, ...updates } = validated;
@@ -692,11 +690,6 @@ class LangflowMCPServer {
692
690
  await this.client.deleteApiKey(validated.api_key_id);
693
691
  return this.formatSuccessResponse({ success: true, message: 'API key deleted successfully' });
694
692
  }
695
- case 'list_custom_components': {
696
- validation_1.ListCustomComponentsSchema.parse(args);
697
- const result = await this.client.listCustomComponents();
698
- return this.formatSuccessResponse(result);
699
- }
700
693
  case 'create_custom_component': {
701
694
  const validated = validation_1.CreateCustomComponentSchema.parse(args);
702
695
  const result = await this.client.createCustomComponent(validated);
@@ -777,6 +770,712 @@ class LangflowMCPServer {
777
770
  const result = await this.client.getLogs(validated.stream);
778
771
  return this.formatSuccessResponse(result);
779
772
  }
773
+ case 'replace_flow': {
774
+ const validated = validation_1.ReplaceFlowSchema.parse(args);
775
+ const { flow_id, ...body } = validated;
776
+ const result = await this.client.replaceFlow(flow_id, body);
777
+ return this.formatSuccessResponse(result);
778
+ }
779
+ case 'expand_flows': {
780
+ const validated = validation_1.ExpandFlowsSchema.parse(args);
781
+ const result = await this.client.expandFlows(validated.body);
782
+ return this.formatSuccessResponse(result);
783
+ }
784
+ case 'get_flow_events': {
785
+ const validated = validation_1.GetFlowEventsSchema.parse(args);
786
+ const result = await this.client.getFlowEvents(validated.flow_id, validated.since !== undefined ? { since: validated.since } : undefined);
787
+ return this.formatSuccessResponse(result);
788
+ }
789
+ case 'create_flow_event': {
790
+ const validated = validation_1.CreateFlowEventSchema.parse(args);
791
+ const { flow_id, ...body } = validated;
792
+ const result = await this.client.createFlowEvent(flow_id, body);
793
+ return this.formatSuccessResponse(result);
794
+ }
795
+ case 'list_flow_versions': {
796
+ const validated = validation_1.ListFlowVersionsSchema.parse(args);
797
+ const { flow_id, ...params } = validated;
798
+ const result = await this.client.listFlowVersions(flow_id, params);
799
+ return this.formatSuccessResponse(result);
800
+ }
801
+ case 'create_flow_version': {
802
+ const validated = validation_1.CreateFlowVersionSchema.parse(args);
803
+ const result = await this.client.createFlowVersion(validated.flow_id, validated.body);
804
+ return this.formatSuccessResponse(result);
805
+ }
806
+ case 'get_flow_version': {
807
+ const validated = validation_1.GetFlowVersionSchema.parse(args);
808
+ const result = await this.client.getFlowVersion(validated.flow_id, validated.version_id);
809
+ return this.formatSuccessResponse(result);
810
+ }
811
+ case 'delete_flow_version': {
812
+ const validated = validation_1.DeleteFlowVersionSchema.parse(args);
813
+ await this.client.deleteFlowVersion(validated.flow_id, validated.version_id);
814
+ return this.formatSuccessResponse({
815
+ success: true,
816
+ message: 'Flow version deleted successfully'
817
+ });
818
+ }
819
+ case 'activate_flow_version': {
820
+ const validated = validation_1.ActivateFlowVersionSchema.parse(args);
821
+ const result = await this.client.activateFlowVersion(validated.flow_id, validated.version_id, validated.save_draft !== undefined ? { save_draft: validated.save_draft } : undefined);
822
+ return this.formatSuccessResponse(result);
823
+ }
824
+ case 'detect_variables': {
825
+ const validated = validation_1.DetectVariablesSchema.parse(args);
826
+ const result = await this.client.detectVariables({ flow_version_ids: validated.flow_version_ids });
827
+ return this.formatSuccessResponse(result);
828
+ }
829
+ case 'save_store_api_key': {
830
+ const validated = validation_1.SaveStoreApiKeySchema.parse(args);
831
+ const result = await this.client.saveStoreApiKey(validated.api_key);
832
+ return this.formatSuccessResponse(result);
833
+ }
834
+ case 'update_custom_component': {
835
+ const validated = validation_1.UpdateCustomComponentSchema.parse(args);
836
+ const result = await this.client.updateCustomComponentCode(validated);
837
+ return this.formatSuccessResponse(result);
838
+ }
839
+ case 'create_store_component': {
840
+ const validated = validation_1.CreateStoreComponentSchema.parse(args);
841
+ const result = await this.client.createStoreComponent({
842
+ description: null,
843
+ tags: null,
844
+ is_component: null,
845
+ ...validated
846
+ });
847
+ return this.formatSuccessResponse(result);
848
+ }
849
+ case 'like_store_component': {
850
+ const validated = validation_1.LikeStoreComponentSchema.parse(args);
851
+ const result = await this.client.likeStoreComponent(validated.component_id);
852
+ return this.formatSuccessResponse(result);
853
+ }
854
+ case 'create_response': {
855
+ const validated = validation_1.CreateResponseSchema.parse(args);
856
+ const result = await this.client.createResponse(validated);
857
+ return this.formatSuccessResponse(result);
858
+ }
859
+ case 'get_session': {
860
+ validation_1.GetSessionSchema.parse(args);
861
+ const result = await this.client.getSession();
862
+ return this.formatSuccessResponse(result);
863
+ }
864
+ case 'create_user': {
865
+ const validated = validation_1.CreateUserSchema.parse(args);
866
+ const result = await this.client.createUser(validated);
867
+ return this.formatSuccessResponse(result);
868
+ }
869
+ case 'get_webhook_events': {
870
+ const validated = validation_1.GetWebhookEventsSchema.parse(args);
871
+ const result = await this.client.getWebhookEvents(validated.flow_id_or_name, validated.user_id ? { user_id: validated.user_id } : undefined);
872
+ return this.formatSuccessResponse(result);
873
+ }
874
+ case 'get_health_check': {
875
+ validation_1.GetHealthCheckSchema.parse(args);
876
+ const result = await this.client.getHealthCheck();
877
+ return this.formatSuccessResponse(result);
878
+ }
879
+ case 'list_files_v2': {
880
+ validation_1.ListFilesV2Schema.parse(args);
881
+ const result = await this.client.listFilesV2();
882
+ return this.formatSuccessResponse(result);
883
+ }
884
+ case 'upload_file_v2': {
885
+ const validated = validation_1.UploadFileV2Schema.parse(args);
886
+ const fileBuffer = this.validateFileSize(validated.file_content);
887
+ const params = {};
888
+ if (validated.append !== undefined)
889
+ params.append = validated.append;
890
+ if (validated.ephemeral !== undefined)
891
+ params.ephemeral = validated.ephemeral;
892
+ const result = await this.client.uploadFileV2(fileBuffer, validated.file_name, params);
893
+ return this.formatSuccessResponse(result);
894
+ }
895
+ case 'get_file_v2': {
896
+ const validated = validation_1.GetFileV2Schema.parse(args);
897
+ const result = await this.client.getFileV2(validated.file_id, validated.return_content !== undefined ? { return_content: validated.return_content } : undefined);
898
+ return this.formatSuccessResponse(result);
899
+ }
900
+ case 'rename_file_v2': {
901
+ const validated = validation_1.RenameFileV2Schema.parse(args);
902
+ const result = await this.client.renameFileV2(validated.file_id, validated.name);
903
+ return this.formatSuccessResponse(result);
904
+ }
905
+ case 'delete_file_v2': {
906
+ const validated = validation_1.DeleteFileV2Schema.parse(args);
907
+ const result = await this.client.deleteFileV2(validated.file_id);
908
+ return this.formatSuccessResponse(result);
909
+ }
910
+ case 'delete_all_files_v2': {
911
+ validation_1.DeleteAllFilesV2Schema.parse(args);
912
+ const result = await this.client.deleteAllFilesV2();
913
+ return this.formatSuccessResponse(result);
914
+ }
915
+ case 'batch_download_files_v2': {
916
+ const validated = validation_1.BatchDownloadFilesV2Schema.parse(args);
917
+ const result = await this.client.batchDownloadFilesV2(validated.file_ids);
918
+ return this.formatSuccessResponse(result);
919
+ }
920
+ case 'batch_delete_files_v2': {
921
+ const validated = validation_1.BatchDeleteFilesV2Schema.parse(args);
922
+ const result = await this.client.batchDeleteFilesV2(validated.file_ids);
923
+ return this.formatSuccessResponse(result);
924
+ }
925
+ case 'list_knowledge_bases_detailed': {
926
+ validation_1.ListKnowledgeBasesDetailedSchema.parse(args);
927
+ const result = await this.client.listKnowledgeBasesDetailed();
928
+ return this.formatSuccessResponse(result);
929
+ }
930
+ case 'create_knowledge_base': {
931
+ const validated = validation_1.CreateKnowledgeBaseSchema.parse(args);
932
+ const result = await this.client.createKnowledgeBase(validated);
933
+ return this.formatSuccessResponse(result);
934
+ }
935
+ case 'preview_knowledge_base_chunks': {
936
+ const validated = validation_1.PreviewKnowledgeBaseChunksSchema.parse(args);
937
+ const fileBuffer = this.validateFileSize(validated.file_content);
938
+ const result = await this.client.previewKnowledgeBaseChunks([{ buffer: fileBuffer, filename: validated.file_name }], validated.params);
939
+ return this.formatSuccessResponse(result);
940
+ }
941
+ case 'list_knowledge_base_chunks': {
942
+ const validated = validation_1.ListKnowledgeBaseChunksSchema.parse(args);
943
+ const { kb_name, ...params } = validated;
944
+ const result = await this.client.listKnowledgeBaseChunks(kb_name, params);
945
+ return this.formatSuccessResponse(result);
946
+ }
947
+ case 'ingest_knowledge_base': {
948
+ const validated = validation_1.IngestKnowledgeBaseSchema.parse(args);
949
+ const fileBuffer = this.validateFileSize(validated.file_content);
950
+ const result = await this.client.ingestKnowledgeBase(validated.kb_name, [{ buffer: fileBuffer, filename: validated.file_name }], validated.params);
951
+ return this.formatSuccessResponse(result);
952
+ }
953
+ case 'cancel_knowledge_base_ingest': {
954
+ const validated = validation_1.CancelKnowledgeBaseIngestSchema.parse(args);
955
+ const result = await this.client.cancelKnowledgeBaseIngest(validated.kb_name);
956
+ return this.formatSuccessResponse(result);
957
+ }
958
+ case 'update_monitor_message': {
959
+ const validated = validation_1.UpdateMonitorMessageSchema.parse(args);
960
+ const { message_id, ...body } = validated;
961
+ const result = await this.client.updateMonitorMessage(message_id, body);
962
+ return this.formatSuccessResponse(result);
963
+ }
964
+ case 'delete_monitor_session_messages': {
965
+ const validated = validation_1.DeleteMonitorSessionMessagesSchema.parse(args);
966
+ const result = await this.client.deleteMonitorSessionMessages(validated.session_id);
967
+ return this.formatSuccessResponse(result);
968
+ }
969
+ case 'delete_monitor_sessions': {
970
+ const validated = validation_1.DeleteMonitorSessionsSchema.parse(args);
971
+ const result = await this.client.deleteMonitorSessions(validated.session_ids);
972
+ return this.formatSuccessResponse(result);
973
+ }
974
+ case 'get_shared_messages': {
975
+ const validated = validation_1.GetSharedMessagesSchema.parse(args);
976
+ const result = await this.client.getSharedMessages(validated);
977
+ return this.formatSuccessResponse(result);
978
+ }
979
+ case 'get_shared_sessions': {
980
+ const validated = validation_1.GetSharedSessionsSchema.parse(args);
981
+ const result = await this.client.getSharedSessions(validated.source_flow_id);
982
+ return this.formatSuccessResponse(result);
983
+ }
984
+ case 'update_shared_message': {
985
+ const validated = validation_1.UpdateSharedMessageSchema.parse(args);
986
+ const { message_id, source_flow_id, ...body } = validated;
987
+ const result = await this.client.updateSharedMessage(message_id, source_flow_id, body);
988
+ return this.formatSuccessResponse(result);
989
+ }
990
+ case 'migrate_shared_session': {
991
+ const validated = validation_1.MigrateSharedSessionSchema.parse(args);
992
+ const result = await this.client.migrateSharedSession(validated.session_id, {
993
+ new_session_id: validated.new_session_id,
994
+ source_flow_id: validated.source_flow_id
995
+ });
996
+ return this.formatSuccessResponse(result);
997
+ }
998
+ case 'delete_shared_session': {
999
+ const validated = validation_1.DeleteSharedSessionSchema.parse(args);
1000
+ const result = await this.client.deleteSharedSession(validated.session_id, validated.source_flow_id);
1001
+ return this.formatSuccessResponse(result);
1002
+ }
1003
+ case 'list_traces': {
1004
+ const validated = validation_1.ListTracesSchema.parse(args);
1005
+ const result = await this.client.listTraces(validated);
1006
+ return this.formatSuccessResponse(result);
1007
+ }
1008
+ case 'delete_traces': {
1009
+ const validated = validation_1.DeleteTracesSchema.parse(args);
1010
+ const result = await this.client.deleteTraces(validated.flow_id);
1011
+ return this.formatSuccessResponse(result);
1012
+ }
1013
+ case 'get_trace': {
1014
+ const validated = validation_1.GetTraceSchema.parse(args);
1015
+ const result = await this.client.getTrace(validated.trace_id);
1016
+ return this.formatSuccessResponse(result);
1017
+ }
1018
+ case 'delete_trace': {
1019
+ const validated = validation_1.DeleteTraceSchema.parse(args);
1020
+ await this.client.deleteTrace(validated.trace_id);
1021
+ return this.formatSuccessResponse({
1022
+ success: true,
1023
+ message: 'Trace deleted successfully'
1024
+ });
1025
+ }
1026
+ case 'list_models': {
1027
+ const validated = validation_1.ListModelsSchema.parse(args);
1028
+ const result = await this.client.listModels(validated);
1029
+ return this.formatSuccessResponse(result);
1030
+ }
1031
+ case 'list_model_providers': {
1032
+ validation_1.ListModelProvidersSchema.parse(args);
1033
+ const result = await this.client.listModelProviders();
1034
+ return this.formatSuccessResponse(result);
1035
+ }
1036
+ case 'list_enabled_providers': {
1037
+ const validated = validation_1.ListEnabledProvidersSchema.parse(args);
1038
+ const result = await this.client.listEnabledProviders(validated.providers ? { providers: validated.providers } : undefined);
1039
+ return this.formatSuccessResponse(result);
1040
+ }
1041
+ case 'list_enabled_models': {
1042
+ const validated = validation_1.ListEnabledModelsSchema.parse(args);
1043
+ const result = await this.client.listEnabledModels(validated.model_names ? { model_names: validated.model_names } : undefined);
1044
+ return this.formatSuccessResponse(result);
1045
+ }
1046
+ case 'set_enabled_models': {
1047
+ const validated = validation_1.SetEnabledModelsSchema.parse(args);
1048
+ const result = await this.client.setEnabledModels(validated.models);
1049
+ return this.formatSuccessResponse(result);
1050
+ }
1051
+ case 'get_default_model': {
1052
+ const validated = validation_1.GetDefaultModelSchema.parse(args);
1053
+ const result = await this.client.getDefaultModel({ model_type: validated.model_type });
1054
+ return this.formatSuccessResponse(result);
1055
+ }
1056
+ case 'set_default_model': {
1057
+ const validated = validation_1.SetDefaultModelSchema.parse(args);
1058
+ const result = await this.client.setDefaultModel({
1059
+ provider: validated.provider,
1060
+ model_name: validated.model_name,
1061
+ model_type: validated.model_type
1062
+ });
1063
+ return this.formatSuccessResponse(result);
1064
+ }
1065
+ case 'delete_default_model': {
1066
+ const validated = validation_1.DeleteDefaultModelSchema.parse(args);
1067
+ const result = await this.client.deleteDefaultModel({ model_type: validated.model_type });
1068
+ return this.formatSuccessResponse(result);
1069
+ }
1070
+ case 'get_provider_variable_mapping': {
1071
+ validation_1.GetProviderVariableMappingSchema.parse(args);
1072
+ const result = await this.client.getProviderVariableMapping();
1073
+ return this.formatSuccessResponse(result);
1074
+ }
1075
+ case 'validate_model_provider': {
1076
+ const validated = validation_1.ValidateModelProviderSchema.parse(args);
1077
+ const result = await this.client.validateModelProvider({
1078
+ provider: validated.provider,
1079
+ variables: validated.variables
1080
+ });
1081
+ return this.formatSuccessResponse(result);
1082
+ }
1083
+ case 'get_language_model_options': {
1084
+ validation_1.GetLanguageModelOptionsSchema.parse(args);
1085
+ const result = await this.client.getLanguageModelOptions();
1086
+ return this.formatSuccessResponse(result);
1087
+ }
1088
+ case 'get_embedding_model_options': {
1089
+ validation_1.GetEmbeddingModelOptionsSchema.parse(args);
1090
+ const result = await this.client.getEmbeddingModelOptions();
1091
+ return this.formatSuccessResponse(result);
1092
+ }
1093
+ case 'agentic_assist': {
1094
+ const validated = validation_1.AgenticAssistSchema.parse(args);
1095
+ const result = await this.client.agenticAssist(validated);
1096
+ return this.formatSuccessResponse(result);
1097
+ }
1098
+ case 'agentic_check_config': {
1099
+ validation_1.AgenticCheckConfigSchema.parse(args);
1100
+ const result = await this.client.agenticCheckConfig();
1101
+ return this.formatSuccessResponse(result);
1102
+ }
1103
+ case 'agentic_execute': {
1104
+ const validated = validation_1.AgenticExecuteSchema.parse(args);
1105
+ const { flow_name, ...body } = validated;
1106
+ const result = await this.client.agenticExecute(flow_name, body);
1107
+ return this.formatSuccessResponse(result);
1108
+ }
1109
+ case 'get_workflow_result': {
1110
+ const validated = validation_1.GetWorkflowResultSchema.parse(args);
1111
+ const result = await this.client.getWorkflowResult(validated.job_id ? { job_id: validated.job_id } : undefined);
1112
+ return this.formatSuccessResponse(result);
1113
+ }
1114
+ case 'run_workflow': {
1115
+ const validated = validation_1.RunWorkflowSchema.parse(args);
1116
+ const result = await this.client.runWorkflow(validated);
1117
+ return this.formatSuccessResponse(result);
1118
+ }
1119
+ case 'stop_workflow': {
1120
+ const validated = validation_1.StopWorkflowSchema.parse(args);
1121
+ const result = await this.client.stopWorkflow(validated.job_id);
1122
+ return this.formatSuccessResponse(result);
1123
+ }
1124
+ case 'list_mcp_servers': {
1125
+ const validated = validation_1.ListMcpServersSchema.parse(args);
1126
+ const result = await this.client.listMcpServers(validated.action_count !== undefined ? { action_count: validated.action_count } : undefined);
1127
+ return this.formatSuccessResponse(result);
1128
+ }
1129
+ case 'get_mcp_server': {
1130
+ const validated = validation_1.GetMcpServerSchema.parse(args);
1131
+ const result = await this.client.getMcpServer(validated.server_name);
1132
+ return this.formatSuccessResponse(result);
1133
+ }
1134
+ case 'create_mcp_server': {
1135
+ const validated = validation_1.CreateMcpServerSchema.parse(args);
1136
+ const result = await this.client.createMcpServer(validated.server_name, validated.config);
1137
+ return this.formatSuccessResponse(result);
1138
+ }
1139
+ case 'update_mcp_server': {
1140
+ const validated = validation_1.UpdateMcpServerSchema.parse(args);
1141
+ const result = await this.client.updateMcpServer(validated.server_name, validated.config);
1142
+ return this.formatSuccessResponse(result);
1143
+ }
1144
+ case 'delete_mcp_server': {
1145
+ const validated = validation_1.DeleteMcpServerSchema.parse(args);
1146
+ const result = await this.client.deleteMcpServer(validated.server_name);
1147
+ return this.formatSuccessResponse(result);
1148
+ }
1149
+ case 'get_mcp_project_config': {
1150
+ const validated = validation_1.GetMcpProjectConfigSchema.parse(args);
1151
+ const result = await this.client.getMcpProjectConfig(validated.project_id, validated.mcp_enabled !== undefined ? { mcp_enabled: validated.mcp_enabled } : undefined);
1152
+ return this.formatSuccessResponse(result);
1153
+ }
1154
+ case 'update_mcp_project_config': {
1155
+ const validated = validation_1.UpdateMcpProjectConfigSchema.parse(args);
1156
+ const result = await this.client.updateMcpProjectConfig(validated.project_id, {
1157
+ settings: validated.settings,
1158
+ auth_settings: validated.auth_settings
1159
+ });
1160
+ return this.formatSuccessResponse(result);
1161
+ }
1162
+ case 'get_mcp_project_installed': {
1163
+ const validated = validation_1.GetMcpProjectInstalledSchema.parse(args);
1164
+ const result = await this.client.getMcpProjectInstalled(validated.project_id);
1165
+ return this.formatSuccessResponse(result);
1166
+ }
1167
+ case 'install_mcp_project': {
1168
+ const validated = validation_1.InstallMcpProjectSchema.parse(args);
1169
+ const result = await this.client.installMcpProject(validated.project_id, {
1170
+ client: validated.client,
1171
+ transport: validated.transport
1172
+ });
1173
+ return this.formatSuccessResponse(result);
1174
+ }
1175
+ case 'get_mcp_project_composer_url': {
1176
+ const validated = validation_1.GetMcpProjectComposerUrlSchema.parse(args);
1177
+ const result = await this.client.getMcpProjectComposerUrl(validated.project_id);
1178
+ return this.formatSuccessResponse(result);
1179
+ }
1180
+ case 'list_authz_roles': {
1181
+ const validated = validation_1.ListAuthzRolesSchema.parse(args);
1182
+ const result = await this.client.listAuthzRoles(validated);
1183
+ return this.formatSuccessResponse(result);
1184
+ }
1185
+ case 'get_authz_role': {
1186
+ const validated = validation_1.GetAuthzRoleSchema.parse(args);
1187
+ const result = await this.client.getAuthzRole(validated.role_id);
1188
+ return this.formatSuccessResponse(result);
1189
+ }
1190
+ case 'create_authz_role': {
1191
+ const validated = validation_1.CreateAuthzRoleSchema.parse(args);
1192
+ const result = await this.client.createAuthzRole(validated);
1193
+ return this.formatSuccessResponse(result);
1194
+ }
1195
+ case 'update_authz_role': {
1196
+ const validated = validation_1.UpdateAuthzRoleSchema.parse(args);
1197
+ const { role_id, ...body } = validated;
1198
+ const result = await this.client.updateAuthzRole(role_id, body);
1199
+ return this.formatSuccessResponse(result);
1200
+ }
1201
+ case 'delete_authz_role': {
1202
+ const validated = validation_1.DeleteAuthzRoleSchema.parse(args);
1203
+ await this.client.deleteAuthzRole(validated.role_id);
1204
+ return this.formatSuccessResponse({
1205
+ success: true,
1206
+ message: 'Role deleted successfully'
1207
+ });
1208
+ }
1209
+ case 'list_authz_role_assignments': {
1210
+ const validated = validation_1.ListAuthzRoleAssignmentsSchema.parse(args);
1211
+ const result = await this.client.listAuthzRoleAssignments(validated);
1212
+ return this.formatSuccessResponse(result);
1213
+ }
1214
+ case 'create_authz_role_assignment': {
1215
+ const validated = validation_1.CreateAuthzRoleAssignmentSchema.parse(args);
1216
+ const result = await this.client.createAuthzRoleAssignment(validated);
1217
+ return this.formatSuccessResponse(result);
1218
+ }
1219
+ case 'delete_authz_role_assignment': {
1220
+ const validated = validation_1.DeleteAuthzRoleAssignmentSchema.parse(args);
1221
+ await this.client.deleteAuthzRoleAssignment(validated.assignment_id);
1222
+ return this.formatSuccessResponse({
1223
+ success: true,
1224
+ message: 'Role assignment deleted successfully'
1225
+ });
1226
+ }
1227
+ case 'list_authz_teams': {
1228
+ const validated = validation_1.ListAuthzTeamsSchema.parse(args);
1229
+ const result = await this.client.listAuthzTeams(validated);
1230
+ return this.formatSuccessResponse(result);
1231
+ }
1232
+ case 'get_authz_team': {
1233
+ const validated = validation_1.GetAuthzTeamSchema.parse(args);
1234
+ const result = await this.client.getAuthzTeam(validated.team_id);
1235
+ return this.formatSuccessResponse(result);
1236
+ }
1237
+ case 'create_authz_team': {
1238
+ const validated = validation_1.CreateAuthzTeamSchema.parse(args);
1239
+ const result = await this.client.createAuthzTeam(validated);
1240
+ return this.formatSuccessResponse(result);
1241
+ }
1242
+ case 'update_authz_team': {
1243
+ const validated = validation_1.UpdateAuthzTeamSchema.parse(args);
1244
+ const { team_id, ...body } = validated;
1245
+ const result = await this.client.updateAuthzTeam(team_id, body);
1246
+ return this.formatSuccessResponse(result);
1247
+ }
1248
+ case 'delete_authz_team': {
1249
+ const validated = validation_1.DeleteAuthzTeamSchema.parse(args);
1250
+ await this.client.deleteAuthzTeam(validated.team_id);
1251
+ return this.formatSuccessResponse({
1252
+ success: true,
1253
+ message: 'Team deleted successfully'
1254
+ });
1255
+ }
1256
+ case 'list_authz_team_members': {
1257
+ const validated = validation_1.ListAuthzTeamMembersSchema.parse(args);
1258
+ const { team_id, ...params } = validated;
1259
+ const result = await this.client.listAuthzTeamMembers(team_id, params);
1260
+ return this.formatSuccessResponse(result);
1261
+ }
1262
+ case 'add_authz_team_member': {
1263
+ const validated = validation_1.AddAuthzTeamMemberSchema.parse(args);
1264
+ const { team_id, ...body } = validated;
1265
+ const result = await this.client.addAuthzTeamMember(team_id, body);
1266
+ return this.formatSuccessResponse(result);
1267
+ }
1268
+ case 'remove_authz_team_member': {
1269
+ const validated = validation_1.RemoveAuthzTeamMemberSchema.parse(args);
1270
+ await this.client.removeAuthzTeamMember(validated.team_id, validated.user_id);
1271
+ return this.formatSuccessResponse({
1272
+ success: true,
1273
+ message: 'Team member removed successfully'
1274
+ });
1275
+ }
1276
+ case 'list_authz_shares': {
1277
+ const validated = validation_1.ListAuthzSharesSchema.parse(args);
1278
+ const result = await this.client.listAuthzShares(validated);
1279
+ return this.formatSuccessResponse(result);
1280
+ }
1281
+ case 'get_authz_share': {
1282
+ const validated = validation_1.GetAuthzShareSchema.parse(args);
1283
+ const result = await this.client.getAuthzShare(validated.share_id);
1284
+ return this.formatSuccessResponse(result);
1285
+ }
1286
+ case 'create_authz_share': {
1287
+ const validated = validation_1.CreateAuthzShareSchema.parse(args);
1288
+ const result = await this.client.createAuthzShare(validated);
1289
+ return this.formatSuccessResponse(result);
1290
+ }
1291
+ case 'update_authz_share': {
1292
+ const validated = validation_1.UpdateAuthzShareSchema.parse(args);
1293
+ const result = await this.client.updateAuthzShare(validated.share_id, {
1294
+ permission_level: validated.permission_level
1295
+ });
1296
+ return this.formatSuccessResponse(result);
1297
+ }
1298
+ case 'delete_authz_share': {
1299
+ const validated = validation_1.DeleteAuthzShareSchema.parse(args);
1300
+ await this.client.deleteAuthzShare(validated.share_id);
1301
+ return this.formatSuccessResponse({
1302
+ success: true,
1303
+ message: 'Share deleted successfully'
1304
+ });
1305
+ }
1306
+ case 'get_authz_audit': {
1307
+ const validated = validation_1.GetAuthzAuditSchema.parse(args);
1308
+ const result = await this.client.getAuthzAudit(validated);
1309
+ return this.formatSuccessResponse(result);
1310
+ }
1311
+ case 'get_my_permissions': {
1312
+ const validated = validation_1.GetMyPermissionsSchema.parse(args);
1313
+ const result = await this.client.getMyPermissions(validated);
1314
+ return this.formatSuccessResponse(result);
1315
+ }
1316
+ case 'create_memory_base': {
1317
+ const validated = validation_1.CreateMemoryBaseSchema.parse(args);
1318
+ const result = await this.client.createMemoryBase(validated);
1319
+ return this.formatSuccessResponse(result);
1320
+ }
1321
+ case 'list_memory_bases': {
1322
+ const validated = validation_1.ListMemoryBasesSchema.parse(args);
1323
+ const result = await this.client.listMemoryBases(validated);
1324
+ return this.formatSuccessResponse(result);
1325
+ }
1326
+ case 'get_memory_base': {
1327
+ const validated = validation_1.GetMemoryBaseSchema.parse(args);
1328
+ const result = await this.client.getMemoryBase(validated.memory_base_id);
1329
+ return this.formatSuccessResponse(result);
1330
+ }
1331
+ case 'list_memory_base_sessions': {
1332
+ const validated = validation_1.ListMemoryBaseSessionsSchema.parse(args);
1333
+ const { memory_base_id, ...params } = validated;
1334
+ const result = await this.client.listMemoryBaseSessions(memory_base_id, params);
1335
+ return this.formatSuccessResponse(result);
1336
+ }
1337
+ case 'list_memory_base_messages': {
1338
+ const validated = validation_1.ListMemoryBaseMessagesSchema.parse(args);
1339
+ const { memory_base_id, ...params } = validated;
1340
+ const result = await this.client.listMemoryBaseMessages(memory_base_id, params);
1341
+ return this.formatSuccessResponse(result);
1342
+ }
1343
+ case 'update_memory_base': {
1344
+ const validated = validation_1.UpdateMemoryBaseSchema.parse(args);
1345
+ const { memory_base_id, ...body } = validated;
1346
+ const result = await this.client.updateMemoryBase(memory_base_id, body);
1347
+ return this.formatSuccessResponse(result);
1348
+ }
1349
+ case 'delete_memory_base': {
1350
+ const validated = validation_1.DeleteMemoryBaseSchema.parse(args);
1351
+ await this.client.deleteMemoryBase(validated.memory_base_id);
1352
+ return this.formatSuccessResponse({
1353
+ success: true,
1354
+ message: 'Memory base deleted successfully'
1355
+ });
1356
+ }
1357
+ case 'flush_memory_base': {
1358
+ const validated = validation_1.FlushMemoryBaseSchema.parse(args);
1359
+ const result = await this.client.flushMemoryBase(validated.memory_base_id, {
1360
+ session_id: validated.session_id
1361
+ });
1362
+ return this.formatSuccessResponse(result);
1363
+ }
1364
+ case 'check_memory_base_mismatch': {
1365
+ const validated = validation_1.CheckMemoryBaseMismatchSchema.parse(args);
1366
+ const result = await this.client.checkMemoryBaseMismatch(validated.memory_base_id);
1367
+ return this.formatSuccessResponse(result);
1368
+ }
1369
+ case 'regenerate_memory_base': {
1370
+ const validated = validation_1.RegenerateMemoryBaseSchema.parse(args);
1371
+ const result = await this.client.regenerateMemoryBase(validated.memory_base_id);
1372
+ return this.formatSuccessResponse(result);
1373
+ }
1374
+ case 'test_knowledge_base_connection': {
1375
+ const validated = validation_1.TestKnowledgeBaseConnectionSchema.parse(args);
1376
+ const result = await this.client.testKnowledgeBaseConnection(validated);
1377
+ return this.formatSuccessResponse(result);
1378
+ }
1379
+ case 'list_knowledge_base_connectors': {
1380
+ validation_1.ListKnowledgeBaseConnectorsSchema.parse(args);
1381
+ const result = await this.client.listKnowledgeBaseConnectors();
1382
+ return this.formatSuccessResponse(result);
1383
+ }
1384
+ case 'ingest_knowledge_base_folder': {
1385
+ const validated = validation_1.IngestKnowledgeBaseFolderSchema.parse(args);
1386
+ const { kb_name, ...body } = validated;
1387
+ const result = await this.client.ingestKnowledgeBaseFolder(kb_name, body);
1388
+ return this.formatSuccessResponse(result);
1389
+ }
1390
+ case 'ingest_knowledge_base_connector': {
1391
+ const validated = validation_1.IngestKnowledgeBaseConnectorSchema.parse(args);
1392
+ const { kb_name, ...body } = validated;
1393
+ const result = await this.client.ingestKnowledgeBaseConnector(kb_name, body);
1394
+ return this.formatSuccessResponse(result);
1395
+ }
1396
+ case 'get_knowledge_base_metadata_keys': {
1397
+ const validated = validation_1.GetKnowledgeBaseMetadataKeysSchema.parse(args);
1398
+ const result = await this.client.getKnowledgeBaseMetadataKeys(validated.kb_name);
1399
+ return this.formatSuccessResponse(result);
1400
+ }
1401
+ case 'list_knowledge_base_runs': {
1402
+ const validated = validation_1.ListKnowledgeBaseRunsSchema.parse(args);
1403
+ const { kb_name, ...params } = validated;
1404
+ const result = await this.client.listKnowledgeBaseRuns(kb_name, params);
1405
+ return this.formatSuccessResponse(result);
1406
+ }
1407
+ case 'get_knowledge_base_run': {
1408
+ const validated = validation_1.GetKnowledgeBaseRunSchema.parse(args);
1409
+ const result = await this.client.getKnowledgeBaseRun(validated.kb_name, validated.run_id);
1410
+ return this.formatSuccessResponse(result);
1411
+ }
1412
+ case 'reload_extension_bundle': {
1413
+ const validated = validation_1.ReloadExtensionBundleSchema.parse(args);
1414
+ const result = await this.client.reloadExtensionBundle(validated.extension_id, validated.bundle_name);
1415
+ return this.formatSuccessResponse(result);
1416
+ }
1417
+ case 'get_extension_events': {
1418
+ const validated = validation_1.GetExtensionEventsSchema.parse(args);
1419
+ const result = await this.client.getExtensionEvents(validated);
1420
+ return this.formatSuccessResponse(result);
1421
+ }
1422
+ case 'get_agentic_file': {
1423
+ const validated = validation_1.GetAgenticFileSchema.parse(args);
1424
+ const result = await this.client.getAgenticFile(validated);
1425
+ return this.formatSuccessResponse(result);
1426
+ }
1427
+ case 'reset_agentic_session': {
1428
+ const validated = validation_1.ResetAgenticSessionSchema.parse(args);
1429
+ const result = await this.client.resetAgenticSession(validated);
1430
+ return this.formatSuccessResponse(result);
1431
+ }
1432
+ case 'get_flow_note_translations': {
1433
+ const validated = validation_1.GetFlowNoteTranslationsSchema.parse(args);
1434
+ const result = await this.client.getFlowNoteTranslations(validated.flow_id);
1435
+ return this.formatSuccessResponse(result);
1436
+ }
1437
+ case 'get_job_queue_metrics': {
1438
+ validation_1.GetJobQueueMetricsSchema.parse(args);
1439
+ const result = await this.client.getJobQueueMetrics();
1440
+ return this.formatSuccessResponse(result);
1441
+ }
1442
+ case 'list_a2a_agents': {
1443
+ validation_1.ListA2aAgentsSchema.parse(args);
1444
+ const result = await this.client.listA2aAgents();
1445
+ return this.formatSuccessResponse(result);
1446
+ }
1447
+ case 'get_a2a_agent_card': {
1448
+ const validated = validation_1.GetA2aAgentCardSchema.parse(args);
1449
+ const result = await this.client.getA2aAgentCard(validated.flow_id);
1450
+ return this.formatSuccessResponse(result);
1451
+ }
1452
+ case 'invoke_a2a_jsonrpc': {
1453
+ const validated = validation_1.InvokeA2aJsonrpcSchema.parse(args);
1454
+ const { flow_id, ...body } = validated;
1455
+ const result = await this.client.invokeA2aJsonrpc(flow_id, body);
1456
+ return this.formatSuccessResponse(result);
1457
+ }
1458
+ case 'list_pending_workflows': {
1459
+ const validated = validation_1.ListPendingWorkflowsSchema.parse(args);
1460
+ const result = await this.client.listPendingWorkflows(validated.flow_id ? { flow_id: validated.flow_id } : undefined);
1461
+ return this.formatSuccessResponse(result);
1462
+ }
1463
+ case 'get_workflow_events': {
1464
+ const validated = validation_1.GetWorkflowEventsSchema.parse(args);
1465
+ const result = await this.client.getWorkflowEvents(validated.job_id);
1466
+ return this.formatSuccessResponse(result);
1467
+ }
1468
+ case 'resume_workflow': {
1469
+ const validated = validation_1.ResumeWorkflowSchema.parse(args);
1470
+ const { job_id, ...body } = validated;
1471
+ const result = await this.client.resumeWorkflow(job_id, body);
1472
+ return this.formatSuccessResponse(result);
1473
+ }
1474
+ case 'run_public_workflow': {
1475
+ const validated = validation_1.RunPublicWorkflowSchema.parse(args);
1476
+ const result = await this.client.runPublicWorkflow(validated);
1477
+ return this.formatSuccessResponse(result);
1478
+ }
780
1479
  default:
781
1480
  throw new Error(`Unknown tool: ${name}`);
782
1481
  }