langflow-mcp-server 3.1.1 → 4.12.2

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 (73) hide show
  1. package/.env.example +19 -1
  2. package/README.md +350 -82
  3. package/dist/__tests__/fixtures/advanced-execution.d.ts.map +1 -1
  4. package/dist/__tests__/fixtures/advanced-execution.js +7 -4
  5. package/dist/__tests__/fixtures/advanced-execution.js.map +1 -1
  6. package/dist/__tests__/fixtures/api-keys.js.map +1 -1
  7. package/dist/__tests__/fixtures/auth.d.ts.map +1 -1
  8. package/dist/__tests__/fixtures/components.d.ts.map +1 -1
  9. package/dist/__tests__/fixtures/custom-components.js.map +1 -1
  10. package/dist/__tests__/fixtures/files.d.ts.map +1 -1
  11. package/dist/__tests__/fixtures/files.js.map +1 -1
  12. package/dist/__tests__/fixtures/flows.js.map +1 -1
  13. package/dist/__tests__/fixtures/folders.js.map +1 -1
  14. package/dist/__tests__/fixtures/knowledge-bases.d.ts.map +1 -1
  15. package/dist/__tests__/fixtures/knowledge-bases.js.map +1 -1
  16. package/dist/__tests__/fixtures/misc.js.map +1 -1
  17. package/dist/__tests__/fixtures/monitoring.js.map +1 -1
  18. package/dist/__tests__/fixtures/projects.js.map +1 -1
  19. package/dist/__tests__/fixtures/run.d.ts.map +1 -1
  20. package/dist/__tests__/fixtures/store.d.ts.map +1 -1
  21. package/dist/__tests__/fixtures/store.js.map +1 -1
  22. package/dist/__tests__/fixtures/users.js.map +1 -1
  23. package/dist/__tests__/fixtures/variables.js.map +1 -1
  24. package/dist/__tests__/fixtures/vertices.d.ts +1 -2
  25. package/dist/__tests__/fixtures/vertices.d.ts.map +1 -1
  26. package/dist/__tests__/fixtures/vertices.js +1 -5
  27. package/dist/__tests__/fixtures/vertices.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +5 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/mcp/http.d.ts +69 -0
  33. package/dist/mcp/http.d.ts.map +1 -0
  34. package/dist/mcp/http.js +595 -0
  35. package/dist/mcp/http.js.map +1 -0
  36. package/dist/mcp/index.js +39 -5
  37. package/dist/mcp/index.js.map +1 -1
  38. package/dist/mcp/prompts.js.map +1 -1
  39. package/dist/mcp/resources.d.ts.map +1 -1
  40. package/dist/mcp/resources.js +6 -17
  41. package/dist/mcp/resources.js.map +1 -1
  42. package/dist/mcp/server-consolidated.d.ts +16 -0
  43. package/dist/mcp/server-consolidated.d.ts.map +1 -1
  44. package/dist/mcp/server-consolidated.js +771 -18
  45. package/dist/mcp/server-consolidated.js.map +1 -1
  46. package/dist/mcp/server.d.ts +2 -0
  47. package/dist/mcp/server.d.ts.map +1 -1
  48. package/dist/mcp/server.js +827 -20
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/mcp/tools-consolidated.d.ts.map +1 -1
  51. package/dist/mcp/tools-consolidated.js +813 -47
  52. package/dist/mcp/tools-consolidated.js.map +1 -1
  53. package/dist/mcp/tools.d.ts.map +1 -1
  54. package/dist/mcp/tools.js +1998 -83
  55. package/dist/mcp/tools.js.map +1 -1
  56. package/dist/mcp/validation-consolidated.d.ts +876 -18
  57. package/dist/mcp/validation-consolidated.d.ts.map +1 -1
  58. package/dist/mcp/validation-consolidated.js +758 -21
  59. package/dist/mcp/validation-consolidated.js.map +1 -1
  60. package/dist/mcp/validation.d.ts +966 -19
  61. package/dist/mcp/validation.d.ts.map +1 -1
  62. package/dist/mcp/validation.js +722 -18
  63. package/dist/mcp/validation.js.map +1 -1
  64. package/dist/services/langflow-client.d.ts +154 -52
  65. package/dist/services/langflow-client.d.ts.map +1 -1
  66. package/dist/services/langflow-client.js +1305 -155
  67. package/dist/services/langflow-client.js.map +1 -1
  68. package/dist/types/index.d.ts +536 -10
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/utils/logger.d.ts.map +1 -1
  71. package/dist/utils/logger.js +2 -3
  72. package/dist/utils/logger.js.map +1 -1
  73. package/package.json +17 -15
package/dist/mcp/tools.js CHANGED
@@ -414,10 +414,13 @@ Parameters:
414
414
  - flow_id_or_name (required, string): Flow identifier (UUID) or flow name (case-sensitive)
415
415
  - input_request (required, object): Execution configuration containing:
416
416
  - input_value (optional, string): Primary input data for the flow (e.g., user message, data to process)
417
+ - output_component (optional, string): Specific output component to return
417
418
  - output_type (optional, string): Expected output format (e.g., "chat", "text", "json")
418
419
  - input_type (optional, string): Type of input being provided (e.g., "chat", "text", "json")
420
+ - session_id (optional, string): Session ID for conversation continuity
419
421
  - tweaks (optional, object): Component-specific parameter overrides (key: component_id, value: parameter object)
420
- - stream (optional, boolean, default: false): Enable streaming mode for real-time token-by-token responses
422
+ - context (optional, object): Request context passed alongside the input request
423
+ - stream (optional, boolean, default: false): Streaming is currently rejected by this MCP client because streamed responses are not JSON serializable
421
424
 
422
425
  Returns: RunResponse object containing:
423
426
  - outputs (array): Flow execution results from output components
@@ -427,13 +430,13 @@ Returns: RunResponse object containing:
427
430
  Usage Examples:
428
431
  1. Simple execution: { flow_id_or_name: "my-chatbot", input_request: { input_value: "Hello" } }
429
432
  2. With output type: { flow_id_or_name: "data-processor", input_request: { input_value: "data", output_type: "json" } }
430
- 3. With streaming: { flow_id_or_name: "llm-chat", input_request: { input_value: "Explain AI" }, stream: true }
433
+ 3. With context: { flow_id_or_name: "llm-chat", input_request: { input_value: "Explain AI" }, context: { tenant: "acme" } }
431
434
  4. With tweaks: { flow_id_or_name: "flow-uuid", input_request: { input_value: "test", tweaks: { "component-id": { temperature: 0.7 } } } }
432
435
 
433
436
  Best Practices:
434
437
  - Use flow ID (UUID) for production; names may change or conflict
435
438
  - Build flow first with build_flow to ensure it's valid before execution
436
- - Use streaming for LLM-based flows to provide real-time user feedback
439
+ - Leave stream false; this MCP client currently returns JSON tool responses only
437
440
  - Cache session_id for multi-turn conversations to maintain context
438
441
  - Set appropriate timeout values for long-running flows
439
442
  - Test flows with various inputs before production deployment
@@ -468,6 +471,10 @@ Related Tools:
468
471
  type: 'string',
469
472
  description: 'Input value for the flow'
470
473
  },
474
+ output_component: {
475
+ type: 'string',
476
+ description: 'Specific output component to return'
477
+ },
471
478
  output_type: {
472
479
  type: 'string',
473
480
  description: 'Expected output type'
@@ -476,15 +483,23 @@ Related Tools:
476
483
  type: 'string',
477
484
  description: 'Type of input being provided'
478
485
  },
486
+ session_id: {
487
+ type: 'string',
488
+ description: 'Session ID for conversation continuity'
489
+ },
479
490
  tweaks: {
480
491
  type: 'object',
481
492
  description: 'Optional parameter tweaks'
482
493
  }
483
494
  }
484
495
  },
496
+ context: {
497
+ type: 'object',
498
+ description: 'Request context passed alongside the input request'
499
+ },
485
500
  stream: {
486
501
  type: 'boolean',
487
- description: 'Enable streaming mode (default: false)'
502
+ description: 'Streaming is currently rejected by this MCP client'
488
503
  }
489
504
  },
490
505
  required: ['flow_id_or_name', 'input_request']
@@ -1221,6 +1236,53 @@ Related Tools:
1221
1236
  openWorldHint: true
1222
1237
  }
1223
1238
  },
1239
+ {
1240
+ name: 'build_public_flow',
1241
+ description: 'Build a public flow without authentication using Langflow 1.11.x public-build semantics.',
1242
+ inputSchema: {
1243
+ type: 'object',
1244
+ properties: {
1245
+ flow_id: { type: 'string', description: 'Public flow ID (UUID)' },
1246
+ inputs: {
1247
+ type: ['object', 'null'],
1248
+ description: 'Optional single input request with components, input_value, session, and type'
1249
+ },
1250
+ files: { type: ['array', 'null'], items: { type: 'string' }, description: 'Optional flow-scoped file paths' },
1251
+ stop_component_id: { type: ['string', 'null'], description: 'Optional component to stop at' },
1252
+ start_component_id: { type: ['string', 'null'], description: 'Optional component to start from' },
1253
+ log_builds: { type: ['boolean', 'null'], description: 'Whether to log the public build' },
1254
+ flow_name: { type: ['string', 'null'], description: 'Optional flow name override' },
1255
+ event_delivery: { type: 'string', enum: ['polling', 'streaming', 'direct'], description: 'Build event delivery mode' }
1256
+ },
1257
+ required: ['flow_id']
1258
+ },
1259
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
1260
+ },
1261
+ {
1262
+ name: 'get_public_build_events',
1263
+ description: 'Get events for a public flow build job, including streaming event payloads.',
1264
+ inputSchema: {
1265
+ type: 'object',
1266
+ properties: {
1267
+ job_id: { type: 'string', description: 'Public build job ID' },
1268
+ event_delivery: { type: 'string', enum: ['polling', 'streaming', 'direct'], description: 'Event delivery mode' }
1269
+ },
1270
+ required: ['job_id']
1271
+ },
1272
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
1273
+ },
1274
+ {
1275
+ name: 'cancel_public_build',
1276
+ description: 'Cancel a public flow build job.',
1277
+ inputSchema: {
1278
+ type: 'object',
1279
+ properties: {
1280
+ job_id: { type: 'string', description: 'Public build job ID' }
1281
+ },
1282
+ required: ['job_id']
1283
+ },
1284
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
1285
+ },
1224
1286
  {
1225
1287
  name: 'list_knowledge_bases',
1226
1288
  description: `List all knowledge bases for Retrieval-Augmented Generation (RAG) workflows.
@@ -1641,7 +1703,7 @@ Related Tools:
1641
1703
  },
1642
1704
  {
1643
1705
  name: 'run_flow_advanced',
1644
- description: 'Advanced flow execution with full parameter control including tweaks, input/output types, session management, and streaming. Supports both flow UUID and flow name.',
1706
+ description: 'Advanced flow execution using Langflow 1.11.x input/output request arrays, tweaks, sessions, and streaming.',
1645
1707
  inputSchema: {
1646
1708
  type: 'object',
1647
1709
  properties: {
@@ -1649,28 +1711,21 @@ Related Tools:
1649
1711
  type: 'string',
1650
1712
  description: 'Flow ID (UUID) or flow name to execute'
1651
1713
  },
1652
- input_value: {
1653
- type: 'string',
1654
- description: 'Input value for the flow'
1655
- },
1656
- input_type: {
1657
- type: 'string',
1658
- description: 'Type of input (e.g., "chat", "text")'
1659
- },
1660
- output_type: {
1661
- type: 'string',
1662
- description: 'Expected output type (e.g., "chat", "text", "json")'
1714
+ inputs: {
1715
+ type: ['array', 'null'],
1716
+ description: 'InputValueRequest array with optional components, input_value, session, and type'
1663
1717
  },
1664
- output_component: {
1665
- type: 'string',
1666
- description: 'Specific output component to retrieve results from'
1718
+ outputs: {
1719
+ type: ['array', 'null'],
1720
+ items: { type: 'string' },
1721
+ description: 'Optional output component names or IDs'
1667
1722
  },
1668
1723
  tweaks: {
1669
- type: 'object',
1724
+ type: ['object', 'null'],
1670
1725
  description: 'Component-specific parameter overrides'
1671
1726
  },
1672
1727
  session_id: {
1673
- type: 'string',
1728
+ type: ['string', 'null'],
1674
1729
  description: 'Session ID for conversation continuity'
1675
1730
  },
1676
1731
  user_id: {
@@ -1725,9 +1780,13 @@ Related Tools:
1725
1780
  type: 'string',
1726
1781
  description: 'Session ID for conversation continuity (required)'
1727
1782
  },
1783
+ context: {
1784
+ type: 'object',
1785
+ description: 'Request context passed alongside the input request'
1786
+ },
1728
1787
  stream: {
1729
1788
  type: 'boolean',
1730
- description: 'Enable streaming mode (default: false)'
1789
+ description: 'Streaming is currently rejected by this MCP client'
1731
1790
  }
1732
1791
  },
1733
1792
  required: ['flow_id_or_name', 'session_id']
@@ -2072,31 +2131,6 @@ Related Tools:
2072
2131
  openWorldHint: true
2073
2132
  }
2074
2133
  },
2075
- {
2076
- name: 'get_vertex',
2077
- description: '⚠️ DEPRECATED: This endpoint is deprecated in Langflow API 1.6.4 and will be removed in a future version. Use "build_flow" tool instead to build specific components, or "get_flow" to retrieve flow structure.\n\nGet detailed information about a specific vertex (component) in a flow. Retrieves vertex configuration, state, and metadata. Essential for inspecting individual component details, debugging component issues, and understanding flow structure at the component level.',
2078
- inputSchema: {
2079
- type: 'object',
2080
- properties: {
2081
- flow_id: {
2082
- type: 'string',
2083
- format: 'uuid',
2084
- description: 'Flow ID (UUID) containing the vertex'
2085
- },
2086
- vertex_id: {
2087
- type: 'string',
2088
- description: 'Vertex ID to retrieve details for'
2089
- }
2090
- },
2091
- required: ['flow_id', 'vertex_id']
2092
- },
2093
- annotations: {
2094
- readOnlyHint: true,
2095
- destructiveHint: false,
2096
- idempotentHint: true,
2097
- openWorldHint: true
2098
- }
2099
- },
2100
2134
  {
2101
2135
  name: 'stream_vertex_build',
2102
2136
  description: '⚠️ DEPRECATED: This endpoint is deprecated in Langflow API 1.6.4 and will be removed in a future version. Use "get_build_status" tool with event_delivery="streaming" to monitor build progress.\n\nStream real-time build events for a specific vertex. Provides live updates during vertex build process using server-sent events (SSE). Essential for monitoring long-running component builds, debugging build failures in real-time, and providing live build status to users.',
@@ -2172,27 +2206,6 @@ Related Tools:
2172
2206
  openWorldHint: true
2173
2207
  }
2174
2208
  },
2175
- {
2176
- name: 'get_user',
2177
- description: 'Get details about a specific user by ID. Returns user profile information including username, email, active status, and profile picture.',
2178
- inputSchema: {
2179
- type: 'object',
2180
- properties: {
2181
- user_id: {
2182
- type: 'string',
2183
- format: 'uuid',
2184
- description: 'User ID (UUID)'
2185
- }
2186
- },
2187
- required: ['user_id']
2188
- },
2189
- annotations: {
2190
- readOnlyHint: true,
2191
- destructiveHint: false,
2192
- idempotentHint: true,
2193
- openWorldHint: true
2194
- }
2195
- },
2196
2209
  {
2197
2210
  name: 'update_user',
2198
2211
  description: 'Update user profile information. Can modify username, password, or profile image. Returns updated user object.',
@@ -2306,20 +2319,6 @@ Related Tools:
2306
2319
  openWorldHint: true
2307
2320
  }
2308
2321
  },
2309
- {
2310
- name: 'list_custom_components',
2311
- description: 'List all custom components created by the user. Returns array of custom component objects with code, name, description, and return type.',
2312
- inputSchema: {
2313
- type: 'object',
2314
- properties: {}
2315
- },
2316
- annotations: {
2317
- readOnlyHint: true,
2318
- destructiveHint: false,
2319
- idempotentHint: true,
2320
- openWorldHint: true
2321
- }
2322
- },
2323
2322
  {
2324
2323
  name: 'create_custom_component',
2325
2324
  description: 'Create a new custom component with Python code. Requires component code, name, and optional description and return_type. Returns created component object.',
@@ -2559,7 +2558,7 @@ Related Tools:
2559
2558
  },
2560
2559
  {
2561
2560
  name: 'upload_knowledge_base',
2562
- description: 'Upload file to create or update a knowledge base for RAG. Provide knowledge base name, base64-encoded file content, and filename.',
2561
+ description: 'Ingest a file into an existing knowledge base for RAG. Provide knowledge base name, base64-encoded file content, and filename.',
2563
2562
  inputSchema: {
2564
2563
  type: 'object',
2565
2564
  properties: {
@@ -2631,6 +2630,1922 @@ Related Tools:
2631
2630
  idempotentHint: true,
2632
2631
  openWorldHint: true
2633
2632
  }
2633
+ },
2634
+ {
2635
+ name: 'replace_flow',
2636
+ description: 'Replace an entire flow (PUT) with new content. Overwrites name, description, data, and folder for the given flow ID.',
2637
+ inputSchema: {
2638
+ type: 'object',
2639
+ properties: {
2640
+ flow_id: { type: 'string', description: 'Flow ID (UUID) to replace' },
2641
+ name: { type: 'string', description: 'New flow name' },
2642
+ description: { type: 'string', description: 'Optional flow description' },
2643
+ data: { type: 'object', description: 'Optional flow data/configuration' },
2644
+ folder_id: { type: 'string', description: 'Optional folder ID (UUID)' }
2645
+ },
2646
+ required: ['flow_id', 'name']
2647
+ },
2648
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2649
+ },
2650
+ {
2651
+ name: 'expand_flows',
2652
+ description: 'Expand flows by resolving component references into full flow definitions. Pass the expansion request payload as the body object.',
2653
+ inputSchema: {
2654
+ type: 'object',
2655
+ properties: {
2656
+ body: { type: 'object', description: 'Flow expansion request payload' }
2657
+ },
2658
+ required: ['body']
2659
+ },
2660
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2661
+ },
2662
+ {
2663
+ name: 'get_flow_events',
2664
+ description: 'Get the event stream/history for a flow. Optionally filter to events since a given cursor/timestamp.',
2665
+ inputSchema: {
2666
+ type: 'object',
2667
+ properties: {
2668
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2669
+ since: { type: 'number', description: 'Optional cursor: only events since this value' }
2670
+ },
2671
+ required: ['flow_id']
2672
+ },
2673
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2674
+ },
2675
+ {
2676
+ name: 'create_flow_event',
2677
+ description: 'Create a new event for a flow (e.g. deployment or lifecycle event).',
2678
+ inputSchema: {
2679
+ type: 'object',
2680
+ properties: {
2681
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2682
+ type: { type: 'string', description: 'Event type' },
2683
+ summary: { type: 'string', description: 'Optional event summary' }
2684
+ },
2685
+ required: ['flow_id', 'type']
2686
+ },
2687
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2688
+ },
2689
+ {
2690
+ name: 'list_flow_versions',
2691
+ description: 'List saved versions of a flow with optional pagination and deployment provider filter.',
2692
+ inputSchema: {
2693
+ type: 'object',
2694
+ properties: {
2695
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2696
+ limit: { type: 'number', description: 'Max number of versions to return' },
2697
+ offset: { type: 'number', description: 'Number of versions to skip' },
2698
+ deployment_provider_id: { type: 'string', description: 'Optional deployment provider filter' }
2699
+ },
2700
+ required: ['flow_id']
2701
+ },
2702
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2703
+ },
2704
+ {
2705
+ name: 'create_flow_version',
2706
+ description: 'Create a new saved version (snapshot) of a flow. Optionally provide a body with version metadata.',
2707
+ inputSchema: {
2708
+ type: 'object',
2709
+ properties: {
2710
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2711
+ body: { type: 'object', description: 'Optional version creation payload' }
2712
+ },
2713
+ required: ['flow_id']
2714
+ },
2715
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2716
+ },
2717
+ {
2718
+ name: 'get_flow_version',
2719
+ description: 'Get a specific saved version of a flow by version ID.',
2720
+ inputSchema: {
2721
+ type: 'object',
2722
+ properties: {
2723
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2724
+ version_id: { type: 'string', description: 'Version ID' }
2725
+ },
2726
+ required: ['flow_id', 'version_id']
2727
+ },
2728
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2729
+ },
2730
+ {
2731
+ name: 'delete_flow_version',
2732
+ description: 'Delete a specific saved version of a flow.',
2733
+ inputSchema: {
2734
+ type: 'object',
2735
+ properties: {
2736
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2737
+ version_id: { type: 'string', description: 'Version ID to delete' }
2738
+ },
2739
+ required: ['flow_id', 'version_id']
2740
+ },
2741
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
2742
+ },
2743
+ {
2744
+ name: 'activate_flow_version',
2745
+ description: 'Activate a specific saved version of a flow, making it the current version. Optionally save the current state as a draft first.',
2746
+ inputSchema: {
2747
+ type: 'object',
2748
+ properties: {
2749
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
2750
+ version_id: { type: 'string', description: 'Version ID to activate' },
2751
+ save_draft: { type: 'boolean', description: 'Save current state as draft before activating' }
2752
+ },
2753
+ required: ['flow_id', 'version_id']
2754
+ },
2755
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2756
+ },
2757
+ {
2758
+ name: 'detect_variables',
2759
+ description: 'Detect global variables referenced by one or more flow versions.',
2760
+ inputSchema: {
2761
+ type: 'object',
2762
+ properties: {
2763
+ flow_version_ids: { type: 'array', items: { type: 'string' }, description: 'Flow version IDs to scan' }
2764
+ },
2765
+ required: ['flow_version_ids']
2766
+ },
2767
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2768
+ },
2769
+ {
2770
+ name: 'save_store_api_key',
2771
+ description: 'Save the Langflow Store API key for the current user so store operations are authenticated.',
2772
+ inputSchema: {
2773
+ type: 'object',
2774
+ properties: {
2775
+ api_key: { type: 'string', description: 'Langflow Store API key' }
2776
+ },
2777
+ required: ['api_key']
2778
+ },
2779
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2780
+ },
2781
+ {
2782
+ name: 'update_custom_component',
2783
+ description: 'Update a custom component template field, recomputing the frontend node based on the provided code and field changes.',
2784
+ inputSchema: {
2785
+ type: 'object',
2786
+ properties: {
2787
+ code: { type: 'string', description: 'Custom component source code' },
2788
+ field: { type: 'string', description: 'Template field being updated' },
2789
+ template: { type: 'object', description: 'Current component template' },
2790
+ field_value: { type: ['string', 'number', 'boolean', 'object', 'array', 'null'], description: 'New value for the field (any JSON type)' },
2791
+ frontend_node: { type: 'object', description: 'Optional current frontend node definition' },
2792
+ tool_mode: { type: 'boolean', description: 'Optional tool-mode flag' }
2793
+ },
2794
+ required: ['code', 'field', 'template']
2795
+ },
2796
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2797
+ },
2798
+ {
2799
+ name: 'create_store_component',
2800
+ description: 'Publish a new component to the Langflow Store.',
2801
+ inputSchema: {
2802
+ type: 'object',
2803
+ properties: {
2804
+ name: { type: 'string', description: 'Component name' },
2805
+ description: { type: 'string', description: 'Optional component description' },
2806
+ data: { type: 'object', description: 'Component data/definition' },
2807
+ tags: { type: 'array', items: { type: 'string' }, description: 'Optional tags' },
2808
+ is_component: { type: 'boolean', description: 'Whether this is a component (vs a flow)' },
2809
+ parent: { type: 'string', description: 'Optional parent component ID' },
2810
+ last_tested_version: { type: 'string', description: 'Optional last tested Langflow version' },
2811
+ private: { type: 'boolean', description: 'Whether the component is private' }
2812
+ },
2813
+ required: ['name', 'data']
2814
+ },
2815
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2816
+ },
2817
+ {
2818
+ name: 'like_store_component',
2819
+ description: 'Like (or toggle like on) a Langflow Store component.',
2820
+ inputSchema: {
2821
+ type: 'object',
2822
+ properties: {
2823
+ component_id: { type: 'string', description: 'Store component ID' }
2824
+ },
2825
+ required: ['component_id']
2826
+ },
2827
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2828
+ },
2829
+ {
2830
+ name: 'create_response',
2831
+ description: 'Create a response via the OpenAI-compatible /responses endpoint using a model and input.',
2832
+ inputSchema: {
2833
+ type: 'object',
2834
+ properties: {
2835
+ model: { type: 'string', description: 'Model identifier' },
2836
+ input: { type: 'string', description: 'Input text' },
2837
+ stream: { type: 'boolean', description: 'Stream the response' },
2838
+ background: { type: 'boolean', description: 'Run in background' },
2839
+ previous_response_id: { type: 'string', description: 'Optional previous response ID for chaining' },
2840
+ include: { type: 'array', items: { type: 'string' }, description: 'Optional include fields' },
2841
+ tools: { type: 'array', items: { type: 'object' }, description: 'Optional tool definitions' }
2842
+ },
2843
+ required: ['model', 'input']
2844
+ },
2845
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2846
+ },
2847
+ {
2848
+ name: 'get_session',
2849
+ description: 'Get the current authenticated session information.',
2850
+ inputSchema: { type: 'object', properties: {} },
2851
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2852
+ },
2853
+ {
2854
+ name: 'create_user',
2855
+ description: 'Create a new Langflow user account.',
2856
+ inputSchema: {
2857
+ type: 'object',
2858
+ properties: {
2859
+ username: { type: 'string', description: 'Username' },
2860
+ password: { type: 'string', description: 'Password' },
2861
+ optins: { type: 'object', description: 'Optional opt-in preferences' }
2862
+ },
2863
+ required: ['username', 'password']
2864
+ },
2865
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2866
+ },
2867
+ {
2868
+ name: 'get_webhook_events',
2869
+ description: 'Get webhook events for a flow by ID or name. Optionally filter by user ID.',
2870
+ inputSchema: {
2871
+ type: 'object',
2872
+ properties: {
2873
+ flow_id_or_name: { type: 'string', description: 'Flow ID (UUID) or name' },
2874
+ user_id: { type: 'string', description: 'Optional user ID filter' }
2875
+ },
2876
+ required: ['flow_id_or_name']
2877
+ },
2878
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2879
+ },
2880
+ {
2881
+ name: 'get_health_check',
2882
+ description: 'Get the detailed health check report from the Langflow server root /health_check endpoint.',
2883
+ inputSchema: { type: 'object', properties: {} },
2884
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2885
+ },
2886
+ {
2887
+ name: 'list_files_v2',
2888
+ description: 'List user-scoped files via the /api/v2/files endpoint.',
2889
+ inputSchema: { type: 'object', properties: {} },
2890
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2891
+ },
2892
+ {
2893
+ name: 'upload_file_v2',
2894
+ description: 'Upload a user-scoped file via /api/v2/files. Provide base64 file content and filename; optionally append or mark ephemeral.',
2895
+ inputSchema: {
2896
+ type: 'object',
2897
+ properties: {
2898
+ file_content: { type: 'string', description: 'Base64 encoded file content' },
2899
+ file_name: { type: 'string', description: 'Name of the file to upload' },
2900
+ append: { type: 'boolean', description: 'Append to an existing file' },
2901
+ ephemeral: { type: 'boolean', description: 'Mark the file as ephemeral' }
2902
+ },
2903
+ required: ['file_content', 'file_name']
2904
+ },
2905
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2906
+ },
2907
+ {
2908
+ name: 'get_file_v2',
2909
+ description: 'Get a user-scoped file by ID via /api/v2/files. Optionally return the file content.',
2910
+ inputSchema: {
2911
+ type: 'object',
2912
+ properties: {
2913
+ file_id: { type: 'string', description: 'File ID' },
2914
+ return_content: { type: 'boolean', description: 'Return file content in the response' }
2915
+ },
2916
+ required: ['file_id']
2917
+ },
2918
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2919
+ },
2920
+ {
2921
+ name: 'rename_file_v2',
2922
+ description: 'Rename a user-scoped file via /api/v2/files.',
2923
+ inputSchema: {
2924
+ type: 'object',
2925
+ properties: {
2926
+ file_id: { type: 'string', description: 'File ID' },
2927
+ name: { type: 'string', description: 'New file name' }
2928
+ },
2929
+ required: ['file_id', 'name']
2930
+ },
2931
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2932
+ },
2933
+ {
2934
+ name: 'delete_file_v2',
2935
+ description: 'Delete a user-scoped file by ID via /api/v2/files.',
2936
+ inputSchema: {
2937
+ type: 'object',
2938
+ properties: {
2939
+ file_id: { type: 'string', description: 'File ID to delete' }
2940
+ },
2941
+ required: ['file_id']
2942
+ },
2943
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
2944
+ },
2945
+ {
2946
+ name: 'delete_all_files_v2',
2947
+ description: 'Delete ALL user-scoped files via /api/v2/files. This is irreversible.',
2948
+ inputSchema: { type: 'object', properties: {} },
2949
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
2950
+ },
2951
+ {
2952
+ name: 'batch_download_files_v2',
2953
+ description: 'Batch download multiple user-scoped files via /api/v2/files by their IDs.',
2954
+ inputSchema: {
2955
+ type: 'object',
2956
+ properties: {
2957
+ file_ids: { type: 'array', items: { type: 'string' }, description: 'File IDs to download' }
2958
+ },
2959
+ required: ['file_ids']
2960
+ },
2961
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2962
+ },
2963
+ {
2964
+ name: 'batch_delete_files_v2',
2965
+ description: 'Batch delete multiple user-scoped files via /api/v2/files by their IDs.',
2966
+ inputSchema: {
2967
+ type: 'object',
2968
+ properties: {
2969
+ file_ids: { type: 'array', items: { type: 'string' }, description: 'File IDs to delete' }
2970
+ },
2971
+ required: ['file_ids']
2972
+ },
2973
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
2974
+ },
2975
+ {
2976
+ name: 'list_knowledge_bases_detailed',
2977
+ description: 'List knowledge bases with detailed metadata (embedding config, chunk counts, etc.).',
2978
+ inputSchema: { type: 'object', properties: {} },
2979
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
2980
+ },
2981
+ {
2982
+ name: 'create_knowledge_base',
2983
+ description: 'Create a new knowledge base with an embedding provider/model and optional column configuration.',
2984
+ inputSchema: {
2985
+ type: 'object',
2986
+ properties: {
2987
+ name: { type: 'string', description: 'Knowledge base name' },
2988
+ embedding_provider: { type: 'string', description: 'Embedding provider' },
2989
+ embedding_model: { type: 'string', description: 'Embedding model' },
2990
+ column_config: { type: 'array', items: { type: 'object' }, description: 'Optional column configuration' }
2991
+ },
2992
+ required: ['name', 'embedding_provider', 'embedding_model']
2993
+ },
2994
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
2995
+ },
2996
+ {
2997
+ name: 'preview_knowledge_base_chunks',
2998
+ description: 'Preview how a file would be chunked for knowledge base ingestion. Provide base64 file content, filename, and optional chunking params.',
2999
+ inputSchema: {
3000
+ type: 'object',
3001
+ properties: {
3002
+ file_content: { type: 'string', description: 'Base64 encoded file content' },
3003
+ file_name: { type: 'string', description: 'Name of the file' },
3004
+ params: { type: 'object', description: 'Optional chunking parameters' }
3005
+ },
3006
+ required: ['file_content', 'file_name']
3007
+ },
3008
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3009
+ },
3010
+ {
3011
+ name: 'list_knowledge_base_chunks',
3012
+ description: 'List chunks stored in a knowledge base with optional pagination and search.',
3013
+ inputSchema: {
3014
+ type: 'object',
3015
+ properties: {
3016
+ kb_name: { type: 'string', description: 'Knowledge base name' },
3017
+ page: { type: 'number', description: 'Page number' },
3018
+ limit: { type: 'number', description: 'Chunks per page' },
3019
+ search: { type: 'string', description: 'Optional search query' }
3020
+ },
3021
+ required: ['kb_name']
3022
+ },
3023
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3024
+ },
3025
+ {
3026
+ name: 'ingest_knowledge_base',
3027
+ description: 'Ingest a file into an existing knowledge base. Provide base64 file content, filename, and optional ingestion params.',
3028
+ inputSchema: {
3029
+ type: 'object',
3030
+ properties: {
3031
+ kb_name: { type: 'string', description: 'Knowledge base name' },
3032
+ file_content: { type: 'string', description: 'Base64 encoded file content' },
3033
+ file_name: { type: 'string', description: 'Name of the file' },
3034
+ params: { type: 'object', description: 'Optional ingestion parameters' }
3035
+ },
3036
+ required: ['kb_name', 'file_content', 'file_name']
3037
+ },
3038
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3039
+ },
3040
+ {
3041
+ name: 'cancel_knowledge_base_ingest',
3042
+ description: 'Cancel an in-progress knowledge base ingestion job.',
3043
+ inputSchema: {
3044
+ type: 'object',
3045
+ properties: {
3046
+ kb_name: { type: 'string', description: 'Knowledge base name' }
3047
+ },
3048
+ required: ['kb_name']
3049
+ },
3050
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3051
+ },
3052
+ {
3053
+ name: 'update_monitor_message',
3054
+ description: 'Update a stored monitor message (text, sender, session, files, or properties).',
3055
+ inputSchema: {
3056
+ type: 'object',
3057
+ properties: {
3058
+ message_id: { type: 'string', description: 'Message ID' },
3059
+ text: { type: 'string', description: 'Updated message text' },
3060
+ sender: { type: 'string', description: 'Updated sender' },
3061
+ sender_name: { type: 'string', description: 'Updated sender name' },
3062
+ session_id: { type: 'string', description: 'Updated session ID' },
3063
+ files: { type: 'array', items: { type: 'string' }, description: 'Updated file references' },
3064
+ properties: { type: 'object', description: 'Updated message properties' }
3065
+ },
3066
+ required: ['message_id']
3067
+ },
3068
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3069
+ },
3070
+ {
3071
+ name: 'delete_monitor_session_messages',
3072
+ description: 'Delete all monitor messages for a given session.',
3073
+ inputSchema: {
3074
+ type: 'object',
3075
+ properties: {
3076
+ session_id: { type: 'string', description: 'Session ID' }
3077
+ },
3078
+ required: ['session_id']
3079
+ },
3080
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3081
+ },
3082
+ {
3083
+ name: 'delete_monitor_sessions',
3084
+ description: 'Delete multiple monitor sessions by their IDs.',
3085
+ inputSchema: {
3086
+ type: 'object',
3087
+ properties: {
3088
+ session_ids: { type: 'array', items: { type: 'string' }, description: 'Session IDs to delete' }
3089
+ },
3090
+ required: ['session_ids']
3091
+ },
3092
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3093
+ },
3094
+ {
3095
+ name: 'get_shared_messages',
3096
+ description: 'Get shared (playground) messages for a source flow, optionally filtered by session and ordered.',
3097
+ inputSchema: {
3098
+ type: 'object',
3099
+ properties: {
3100
+ source_flow_id: { type: 'string', description: 'Source flow ID' },
3101
+ session_id: { type: 'string', description: 'Optional session ID filter' },
3102
+ order_by: { type: 'string', description: 'Optional order-by field' }
3103
+ },
3104
+ required: ['source_flow_id']
3105
+ },
3106
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3107
+ },
3108
+ {
3109
+ name: 'get_shared_sessions',
3110
+ description: 'Get the list of shared session IDs for a source flow.',
3111
+ inputSchema: {
3112
+ type: 'object',
3113
+ properties: {
3114
+ source_flow_id: { type: 'string', description: 'Source flow ID' }
3115
+ },
3116
+ required: ['source_flow_id']
3117
+ },
3118
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3119
+ },
3120
+ {
3121
+ name: 'update_shared_message',
3122
+ description: 'Update a shared (playground) message for a source flow.',
3123
+ inputSchema: {
3124
+ type: 'object',
3125
+ properties: {
3126
+ message_id: { type: 'string', description: 'Message ID' },
3127
+ source_flow_id: { type: 'string', description: 'Source flow ID' },
3128
+ text: { type: 'string', description: 'Updated message text' },
3129
+ sender: { type: 'string', description: 'Updated sender' },
3130
+ sender_name: { type: 'string', description: 'Updated sender name' },
3131
+ session_id: { type: 'string', description: 'Updated session ID' },
3132
+ files: { type: 'array', items: { type: 'string' }, description: 'Updated file references' },
3133
+ properties: { type: 'object', description: 'Updated message properties' }
3134
+ },
3135
+ required: ['message_id', 'source_flow_id']
3136
+ },
3137
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3138
+ },
3139
+ {
3140
+ name: 'migrate_shared_session',
3141
+ description: 'Migrate a shared session to a new session ID within a source flow.',
3142
+ inputSchema: {
3143
+ type: 'object',
3144
+ properties: {
3145
+ session_id: { type: 'string', description: 'Existing session ID' },
3146
+ new_session_id: { type: 'string', description: 'New session ID' },
3147
+ source_flow_id: { type: 'string', description: 'Source flow ID' }
3148
+ },
3149
+ required: ['session_id', 'new_session_id', 'source_flow_id']
3150
+ },
3151
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3152
+ },
3153
+ {
3154
+ name: 'delete_shared_session',
3155
+ description: 'Delete a shared session within a source flow.',
3156
+ inputSchema: {
3157
+ type: 'object',
3158
+ properties: {
3159
+ session_id: { type: 'string', description: 'Session ID to delete' },
3160
+ source_flow_id: { type: 'string', description: 'Source flow ID' }
3161
+ },
3162
+ required: ['session_id', 'source_flow_id']
3163
+ },
3164
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3165
+ },
3166
+ {
3167
+ name: 'list_traces',
3168
+ description: 'List execution traces with optional filters (flow, session, status, query, time range) and pagination.',
3169
+ inputSchema: {
3170
+ type: 'object',
3171
+ properties: {
3172
+ flow_id: { type: 'string', description: 'Optional flow ID filter' },
3173
+ session_id: { type: 'string', description: 'Optional session ID filter' },
3174
+ status: { type: 'string', description: 'Optional status filter' },
3175
+ query: { type: 'string', description: 'Optional search query' },
3176
+ start_time: { type: 'string', description: 'Optional start time (ISO)' },
3177
+ end_time: { type: 'string', description: 'Optional end time (ISO)' },
3178
+ page: { type: 'number', description: 'Page number' },
3179
+ size: { type: 'number', description: 'Page size (max 100)' }
3180
+ }
3181
+ },
3182
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3183
+ },
3184
+ {
3185
+ name: 'delete_traces',
3186
+ description: 'Delete all traces associated with a flow.',
3187
+ inputSchema: {
3188
+ type: 'object',
3189
+ properties: {
3190
+ flow_id: { type: 'string', description: 'Flow ID' }
3191
+ },
3192
+ required: ['flow_id']
3193
+ },
3194
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3195
+ },
3196
+ {
3197
+ name: 'get_trace',
3198
+ description: 'Get a single execution trace by ID.',
3199
+ inputSchema: {
3200
+ type: 'object',
3201
+ properties: {
3202
+ trace_id: { type: 'string', description: 'Trace ID' }
3203
+ },
3204
+ required: ['trace_id']
3205
+ },
3206
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3207
+ },
3208
+ {
3209
+ name: 'delete_trace',
3210
+ description: 'Delete a single execution trace by ID.',
3211
+ inputSchema: {
3212
+ type: 'object',
3213
+ properties: {
3214
+ trace_id: { type: 'string', description: 'Trace ID to delete' }
3215
+ },
3216
+ required: ['trace_id']
3217
+ },
3218
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3219
+ },
3220
+ {
3221
+ name: 'list_models',
3222
+ description: 'List available models with optional filters (provider, name, type, capabilities, search).',
3223
+ inputSchema: {
3224
+ type: 'object',
3225
+ properties: {
3226
+ provider: { type: 'string', description: 'Filter by provider' },
3227
+ model_name: { type: 'string', description: 'Filter by model name' },
3228
+ model_type: { type: 'string', description: 'Filter by model type' },
3229
+ include_unsupported: { type: 'boolean', description: 'Include unsupported models' },
3230
+ include_deprecated: { type: 'boolean', description: 'Include deprecated models' },
3231
+ tool_calling: { type: 'boolean', description: 'Filter to tool-calling models' },
3232
+ reasoning: { type: 'boolean', description: 'Filter to reasoning models' },
3233
+ search: { type: 'string', description: 'Search query' },
3234
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3235
+ }
3236
+ },
3237
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3238
+ },
3239
+ {
3240
+ name: 'list_model_providers',
3241
+ description: 'List all known model providers.',
3242
+ inputSchema: {
3243
+ type: 'object',
3244
+ properties: {
3245
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3246
+ }
3247
+ },
3248
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3249
+ },
3250
+ {
3251
+ name: 'list_enabled_providers',
3252
+ description: 'List enabled model providers, optionally restricted to a given set of provider names.',
3253
+ inputSchema: {
3254
+ type: 'object',
3255
+ properties: {
3256
+ providers: { type: 'array', items: { type: 'string' }, description: 'Optional provider names to check' },
3257
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3258
+ }
3259
+ },
3260
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3261
+ },
3262
+ {
3263
+ name: 'list_enabled_models',
3264
+ description: 'List enabled models, optionally restricted to a given set of model names.',
3265
+ inputSchema: {
3266
+ type: 'object',
3267
+ properties: {
3268
+ model_names: { type: 'array', items: { type: 'string' }, description: 'Optional model names to check' },
3269
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3270
+ }
3271
+ },
3272
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3273
+ },
3274
+ {
3275
+ name: 'set_enabled_models',
3276
+ description: 'Enable or disable specific models by provider and model ID.',
3277
+ inputSchema: {
3278
+ type: 'object',
3279
+ properties: {
3280
+ models: {
3281
+ type: 'array',
3282
+ description: 'Array of model status updates',
3283
+ items: {
3284
+ type: 'object',
3285
+ properties: {
3286
+ provider: { type: 'string', description: 'Provider' },
3287
+ model_id: { type: 'string', description: 'Model ID' },
3288
+ enabled: { type: 'boolean', description: 'Enabled flag' }
3289
+ },
3290
+ required: ['provider', 'model_id', 'enabled']
3291
+ }
3292
+ }
3293
+ },
3294
+ required: ['models']
3295
+ },
3296
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3297
+ },
3298
+ {
3299
+ name: 'get_default_model',
3300
+ description: 'Get the default model for a given model type.',
3301
+ inputSchema: {
3302
+ type: 'object',
3303
+ properties: {
3304
+ model_type: { type: 'string', description: 'Model type' }
3305
+ },
3306
+ required: ['model_type']
3307
+ },
3308
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3309
+ },
3310
+ {
3311
+ name: 'set_default_model',
3312
+ description: 'Set the default model (provider + model name) for a given model type.',
3313
+ inputSchema: {
3314
+ type: 'object',
3315
+ properties: {
3316
+ provider: { type: 'string', description: 'Provider' },
3317
+ model_name: { type: 'string', description: 'Model name' },
3318
+ model_type: { type: 'string', description: 'Model type' }
3319
+ },
3320
+ required: ['provider', 'model_name', 'model_type']
3321
+ },
3322
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3323
+ },
3324
+ {
3325
+ name: 'delete_default_model',
3326
+ description: 'Delete (clear) the default model for a given model type.',
3327
+ inputSchema: {
3328
+ type: 'object',
3329
+ properties: {
3330
+ model_type: { type: 'string', description: 'Model type' }
3331
+ },
3332
+ required: ['model_type']
3333
+ },
3334
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3335
+ },
3336
+ {
3337
+ name: 'get_provider_variable_mapping',
3338
+ description: 'Get the mapping between model providers and their required global variables.',
3339
+ inputSchema: {
3340
+ type: 'object',
3341
+ properties: {
3342
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3343
+ }
3344
+ },
3345
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3346
+ },
3347
+ {
3348
+ name: 'validate_model_provider',
3349
+ description: 'Validate a model provider configuration with the provided variables (e.g. API keys).',
3350
+ inputSchema: {
3351
+ type: 'object',
3352
+ properties: {
3353
+ provider: { type: 'string', description: 'Provider to validate' },
3354
+ variables: { type: 'object', description: 'Provider variables (e.g. API keys)' }
3355
+ },
3356
+ required: ['provider', 'variables']
3357
+ },
3358
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3359
+ },
3360
+ {
3361
+ name: 'get_language_model_options',
3362
+ description: 'Get available language (LLM) model options.',
3363
+ inputSchema: {
3364
+ type: 'object',
3365
+ properties: {
3366
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3367
+ }
3368
+ },
3369
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3370
+ },
3371
+ {
3372
+ name: 'get_embedding_model_options',
3373
+ description: 'Get available embedding model options.',
3374
+ inputSchema: {
3375
+ type: 'object',
3376
+ properties: {
3377
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
3378
+ }
3379
+ },
3380
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3381
+ },
3382
+ {
3383
+ name: 'agentic_assist',
3384
+ description: 'Request agentic assistance for building or editing a flow component.',
3385
+ inputSchema: {
3386
+ type: 'object',
3387
+ properties: {
3388
+ flow_id: { type: 'string', description: 'Flow ID' },
3389
+ input_value: { type: ['string', 'null'], description: 'User input/instruction (server-configured limit)' },
3390
+ iterations_limit: { type: ['number', 'null'], description: 'Maximum assistant iterations (1-200)' },
3391
+ session_id: { type: ['string', 'null'], description: 'Optional session ID' },
3392
+ component_id: { type: ['string', 'null'], description: 'Optional target component ID' },
3393
+ field_name: { type: ['string', 'null'], description: 'Optional target field name' },
3394
+ model_name: { type: ['string', 'null'], description: 'Optional model name' },
3395
+ provider: { type: ['string', 'null'], description: 'Optional provider' },
3396
+ history_limit: { type: ['number', 'null'], description: 'Optional assistant history limit (0-100)' },
3397
+ max_retries: { type: ['number', 'null'], description: 'Optional max retries (1-5)' }
3398
+ },
3399
+ required: ['flow_id']
3400
+ },
3401
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3402
+ },
3403
+ {
3404
+ name: 'agentic_assist_stream',
3405
+ description: 'Request streaming agentic assistance for building or editing a flow component.',
3406
+ inputSchema: {
3407
+ type: 'object',
3408
+ properties: {
3409
+ flow_id: { type: 'string', description: 'Flow ID' },
3410
+ input_value: { type: ['string', 'null'], description: 'User input/instruction (server-configured limit)' },
3411
+ iterations_limit: { type: ['number', 'null'], description: 'Maximum assistant iterations (1-200)' },
3412
+ max_retries: { type: ['number', 'null'], description: 'Maximum retries (1-5)' },
3413
+ session_id: { type: ['string', 'null'], description: 'Optional session ID' },
3414
+ component_id: { type: ['string', 'null'], description: 'Optional target component ID' },
3415
+ field_name: { type: ['string', 'null'], description: 'Optional target field name' },
3416
+ model_name: { type: ['string', 'null'], description: 'Optional model name' },
3417
+ provider: { type: ['string', 'null'], description: 'Optional provider' },
3418
+ history_limit: { type: ['number', 'null'], description: 'Optional assistant history limit (0-100)' }
3419
+ },
3420
+ required: ['flow_id']
3421
+ },
3422
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3423
+ },
3424
+ {
3425
+ name: 'agentic_check_config',
3426
+ description: 'Check whether the agentic assistant is configured and available.',
3427
+ inputSchema: { type: 'object', properties: {} },
3428
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3429
+ },
3430
+ {
3431
+ name: 'agentic_execute',
3432
+ description: 'Execute an agentic assistant flow by name with the given assist request fields.',
3433
+ inputSchema: {
3434
+ type: 'object',
3435
+ properties: {
3436
+ flow_name: { type: 'string', description: 'Agentic flow name to execute' },
3437
+ flow_id: { type: 'string', description: 'Flow ID' },
3438
+ input_value: { type: ['string', 'null'], description: 'User input/instruction (server-configured limit)' },
3439
+ iterations_limit: { type: ['number', 'null'], description: 'Maximum assistant iterations (1-200)' },
3440
+ session_id: { type: ['string', 'null'], description: 'Optional session ID' },
3441
+ component_id: { type: ['string', 'null'], description: 'Optional target component ID' },
3442
+ field_name: { type: ['string', 'null'], description: 'Optional target field name' },
3443
+ model_name: { type: ['string', 'null'], description: 'Optional model name' },
3444
+ provider: { type: ['string', 'null'], description: 'Optional provider' },
3445
+ history_limit: { type: ['number', 'null'], description: 'Optional assistant history limit (0-100)' },
3446
+ max_retries: { type: ['number', 'null'], description: 'Optional max retries (1-5)' }
3447
+ },
3448
+ required: ['flow_name', 'flow_id']
3449
+ },
3450
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3451
+ },
3452
+ {
3453
+ name: 'get_workflow_result',
3454
+ description: 'Get the result of a workflow run, optionally by job ID.',
3455
+ inputSchema: {
3456
+ type: 'object',
3457
+ properties: {
3458
+ job_id: { type: 'string', description: 'Optional workflow job ID' }
3459
+ }
3460
+ },
3461
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3462
+ },
3463
+ {
3464
+ name: 'run_workflow',
3465
+ description: 'Run a Langflow 1.12.x v2 workflow with sync, stream, or background mode.',
3466
+ inputSchema: {
3467
+ type: 'object',
3468
+ properties: {
3469
+ flow_id: { type: 'string', description: 'Flow ID' },
3470
+ input_value: { type: 'string', description: 'Chat-style input value' },
3471
+ mode: { type: 'string', enum: ['sync', 'stream', 'background'], description: 'Execution mode' },
3472
+ stream_protocol: { type: 'string', description: 'Streaming protocol, for example langflow or agui' },
3473
+ expose_graph_state: {
3474
+ type: ['boolean', 'null'],
3475
+ description: 'For streaming runs, include per-node graph events. Omitted or null uses the protocol default: false for AG-UI and true for Langflow. Ignored in sync mode.'
3476
+ },
3477
+ data: { type: ['object', 'null'], description: 'Optional live-canvas flow data override' },
3478
+ files: { type: ['array', 'null'], items: { type: 'string' }, description: 'Pre-uploaded file paths' },
3479
+ globals: { type: 'object', description: 'Request-level global variables' },
3480
+ idempotency_key: { type: ['string', 'null'], description: 'Deduplication key for background submits' },
3481
+ output_ids: { type: ['array', 'null'], items: { type: 'string' }, description: 'Output component IDs for sync mode' },
3482
+ session_id: { type: ['string', 'null'], description: 'Optional session ID' },
3483
+ start_component_id: { type: ['string', 'null'], description: 'Optional partial-run start component' },
3484
+ stop_component_id: { type: ['string', 'null'], description: 'Optional partial-run stop component' },
3485
+ tweaks: { type: 'object', description: 'Per-component parameter overrides' }
3486
+ },
3487
+ required: ['flow_id']
3488
+ },
3489
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3490
+ },
3491
+ {
3492
+ name: 'stop_workflow',
3493
+ description: 'Stop a running workflow job by job ID.',
3494
+ inputSchema: {
3495
+ type: 'object',
3496
+ properties: {
3497
+ job_id: { type: 'string', description: 'Workflow job ID to stop' }
3498
+ },
3499
+ required: ['job_id']
3500
+ },
3501
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3502
+ },
3503
+ {
3504
+ name: 'list_mcp_servers',
3505
+ description: 'List configured MCP servers. Optionally include action counts.',
3506
+ inputSchema: {
3507
+ type: 'object',
3508
+ properties: {
3509
+ action_count: { type: 'boolean', description: 'Include action counts per server' }
3510
+ }
3511
+ },
3512
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3513
+ },
3514
+ {
3515
+ name: 'get_mcp_server',
3516
+ description: 'Get the configuration of a specific MCP server by name.',
3517
+ inputSchema: {
3518
+ type: 'object',
3519
+ properties: {
3520
+ server_name: { type: 'string', description: 'MCP server name' }
3521
+ },
3522
+ required: ['server_name']
3523
+ },
3524
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3525
+ },
3526
+ {
3527
+ name: 'create_mcp_server',
3528
+ description: 'Create an MCP server configuration (stdio command or remote URL based).',
3529
+ inputSchema: {
3530
+ type: 'object',
3531
+ properties: {
3532
+ server_name: { type: 'string', description: 'MCP server name' },
3533
+ config: {
3534
+ type: 'object',
3535
+ description: 'MCP server config',
3536
+ properties: {
3537
+ command: { type: 'string', description: 'Command for stdio servers' },
3538
+ args: { type: 'array', items: { type: 'string' }, description: 'Command arguments' },
3539
+ env: { type: 'object', description: 'Environment variables' },
3540
+ url: { type: 'string', description: 'URL for remote servers' },
3541
+ headers: { type: 'object', description: 'HTTP headers for remote servers' }
3542
+ }
3543
+ }
3544
+ },
3545
+ required: ['server_name', 'config']
3546
+ },
3547
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3548
+ },
3549
+ {
3550
+ name: 'update_mcp_server',
3551
+ description: 'Update an existing MCP server configuration by name.',
3552
+ inputSchema: {
3553
+ type: 'object',
3554
+ properties: {
3555
+ server_name: { type: 'string', description: 'MCP server name' },
3556
+ config: {
3557
+ type: 'object',
3558
+ description: 'MCP server config',
3559
+ properties: {
3560
+ command: { type: 'string', description: 'Command for stdio servers' },
3561
+ args: { type: 'array', items: { type: 'string' }, description: 'Command arguments' },
3562
+ env: { type: 'object', description: 'Environment variables' },
3563
+ url: { type: 'string', description: 'URL for remote servers' },
3564
+ headers: { type: 'object', description: 'HTTP headers for remote servers' }
3565
+ }
3566
+ }
3567
+ },
3568
+ required: ['server_name', 'config']
3569
+ },
3570
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3571
+ },
3572
+ {
3573
+ name: 'delete_mcp_server',
3574
+ description: 'Delete an MCP server configuration by name.',
3575
+ inputSchema: {
3576
+ type: 'object',
3577
+ properties: {
3578
+ server_name: { type: 'string', description: 'MCP server name to delete' }
3579
+ },
3580
+ required: ['server_name']
3581
+ },
3582
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3583
+ },
3584
+ {
3585
+ name: 'get_mcp_project_config',
3586
+ description: 'Get the MCP configuration for a project. Optionally filter to only MCP-enabled flows.',
3587
+ inputSchema: {
3588
+ type: 'object',
3589
+ properties: {
3590
+ project_id: { type: 'string', description: 'Project ID (UUID)' },
3591
+ mcp_enabled: { type: 'boolean', description: 'Only return MCP-enabled flows' }
3592
+ },
3593
+ required: ['project_id']
3594
+ },
3595
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3596
+ },
3597
+ {
3598
+ name: 'update_mcp_project_config',
3599
+ description: 'Update the MCP configuration (settings and auth settings) for a project.',
3600
+ inputSchema: {
3601
+ type: 'object',
3602
+ properties: {
3603
+ project_id: { type: 'string', description: 'Project ID (UUID)' },
3604
+ settings: { type: 'array', items: { type: 'object' }, description: 'Per-flow MCP settings' },
3605
+ auth_settings: { type: 'object', description: 'Optional auth settings' }
3606
+ },
3607
+ required: ['project_id', 'settings']
3608
+ },
3609
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3610
+ },
3611
+ {
3612
+ name: 'get_mcp_project_installed',
3613
+ description: 'Get the installation status of a project as an MCP server across clients.',
3614
+ inputSchema: {
3615
+ type: 'object',
3616
+ properties: {
3617
+ project_id: { type: 'string', description: 'Project ID (UUID)' }
3618
+ },
3619
+ required: ['project_id']
3620
+ },
3621
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3622
+ },
3623
+ {
3624
+ name: 'install_mcp_project',
3625
+ description: 'Install a project as an MCP server into a target client, optionally specifying transport.',
3626
+ inputSchema: {
3627
+ type: 'object',
3628
+ properties: {
3629
+ project_id: { type: 'string', description: 'Project ID (UUID)' },
3630
+ client: { type: 'string', description: 'Target client (e.g. cursor, claude)' },
3631
+ transport: { type: 'string', description: 'Optional transport' }
3632
+ },
3633
+ required: ['project_id', 'client']
3634
+ },
3635
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3636
+ },
3637
+ {
3638
+ name: 'get_mcp_project_composer_url',
3639
+ description: 'Get the MCP Composer URL for a project.',
3640
+ inputSchema: {
3641
+ type: 'object',
3642
+ properties: {
3643
+ project_id: { type: 'string', description: 'Project ID (UUID)' }
3644
+ },
3645
+ required: ['project_id']
3646
+ },
3647
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3648
+ },
3649
+ {
3650
+ name: 'list_authz_roles',
3651
+ description: 'List authorization roles. Optionally filter by system flag or name with pagination.',
3652
+ inputSchema: {
3653
+ type: 'object',
3654
+ properties: {
3655
+ is_system: { type: 'boolean', description: 'Filter by system roles' },
3656
+ name: { type: 'string', description: 'Filter by role name' },
3657
+ limit: { type: 'number', description: 'Maximum number of results' },
3658
+ offset: { type: 'number', description: 'Result offset for pagination' }
3659
+ }
3660
+ },
3661
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3662
+ },
3663
+ {
3664
+ name: 'get_authz_role',
3665
+ description: 'Get a single authorization role by ID.',
3666
+ inputSchema: {
3667
+ type: 'object',
3668
+ properties: {
3669
+ role_id: { type: 'string', description: 'Role ID' }
3670
+ },
3671
+ required: ['role_id']
3672
+ },
3673
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3674
+ },
3675
+ {
3676
+ name: 'create_authz_role',
3677
+ description: 'Create an authorization role with optional permissions and a parent role.',
3678
+ inputSchema: {
3679
+ type: 'object',
3680
+ properties: {
3681
+ name: { type: 'string', description: 'Role name' },
3682
+ description: { type: 'string', description: 'Role description' },
3683
+ permissions: { type: 'array', items: { type: 'string' }, description: 'Permission identifiers' },
3684
+ parent_role_id: { type: 'string', description: 'Parent role ID for inheritance' }
3685
+ },
3686
+ required: ['name']
3687
+ },
3688
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3689
+ },
3690
+ {
3691
+ name: 'update_authz_role',
3692
+ description: 'Update an existing authorization role by ID.',
3693
+ inputSchema: {
3694
+ type: 'object',
3695
+ properties: {
3696
+ role_id: { type: 'string', description: 'Role ID' },
3697
+ name: { type: 'string', description: 'Role name' },
3698
+ description: { type: 'string', description: 'Role description' },
3699
+ permissions: { type: 'array', items: { type: 'string' }, description: 'Permission identifiers' },
3700
+ parent_role_id: { type: 'string', description: 'Parent role ID for inheritance' }
3701
+ },
3702
+ required: ['role_id']
3703
+ },
3704
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3705
+ },
3706
+ {
3707
+ name: 'delete_authz_role',
3708
+ description: 'Delete an authorization role by ID.',
3709
+ inputSchema: {
3710
+ type: 'object',
3711
+ properties: {
3712
+ role_id: { type: 'string', description: 'Role ID to delete' }
3713
+ },
3714
+ required: ['role_id']
3715
+ },
3716
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3717
+ },
3718
+ {
3719
+ name: 'list_authz_role_assignments',
3720
+ description: 'List role assignments, optionally filtered by user, role, or domain.',
3721
+ inputSchema: {
3722
+ type: 'object',
3723
+ properties: {
3724
+ user_id: { type: 'string', description: 'Filter by user ID' },
3725
+ role_id: { type: 'string', description: 'Filter by role ID' },
3726
+ domain_type: { type: 'string', description: 'Filter by domain type' },
3727
+ domain_id: { type: 'string', description: 'Filter by domain ID' },
3728
+ limit: { type: 'number', description: 'Maximum number of results' },
3729
+ offset: { type: 'number', description: 'Result offset for pagination' }
3730
+ }
3731
+ },
3732
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3733
+ },
3734
+ {
3735
+ name: 'create_authz_role_assignment',
3736
+ description: 'Assign a role to a user, optionally scoped to a domain.',
3737
+ inputSchema: {
3738
+ type: 'object',
3739
+ properties: {
3740
+ user_id: { type: 'string', description: 'User ID' },
3741
+ role_id: { type: 'string', description: 'Role ID' },
3742
+ domain_type: { type: 'string', description: 'Domain type: global, org, workspace, or project' },
3743
+ domain_id: { type: 'string', description: 'Domain ID for the scope' }
3744
+ },
3745
+ required: ['user_id', 'role_id']
3746
+ },
3747
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3748
+ },
3749
+ {
3750
+ name: 'delete_authz_role_assignment',
3751
+ description: 'Delete a role assignment from a user by its assignment ID.',
3752
+ inputSchema: {
3753
+ type: 'object',
3754
+ properties: {
3755
+ assignment_id: { type: 'string', description: 'Role assignment ID to delete' }
3756
+ },
3757
+ required: ['assignment_id']
3758
+ },
3759
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3760
+ },
3761
+ {
3762
+ name: 'list_authz_teams',
3763
+ description: 'List authorization teams, optionally filtered by search term or active flag.',
3764
+ inputSchema: {
3765
+ type: 'object',
3766
+ properties: {
3767
+ search: { type: 'string', description: 'Search term for team names' },
3768
+ is_active: { type: 'boolean', description: 'Filter by active teams' },
3769
+ limit: { type: 'number', description: 'Maximum number of results' },
3770
+ offset: { type: 'number', description: 'Result offset for pagination' }
3771
+ }
3772
+ },
3773
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3774
+ },
3775
+ {
3776
+ name: 'get_authz_team',
3777
+ description: 'Get a single authorization team by ID.',
3778
+ inputSchema: {
3779
+ type: 'object',
3780
+ properties: {
3781
+ team_id: { type: 'string', description: 'Team ID' }
3782
+ },
3783
+ required: ['team_id']
3784
+ },
3785
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3786
+ },
3787
+ {
3788
+ name: 'create_authz_team',
3789
+ description: 'Create an authorization team within an administrative domain.',
3790
+ inputSchema: {
3791
+ type: 'object',
3792
+ properties: {
3793
+ team_name: { type: 'string', description: 'Team name' },
3794
+ adom_name: { type: 'string', description: 'Administrative domain name' },
3795
+ description: { type: 'string', description: 'Team description' },
3796
+ is_active: { type: 'boolean', description: 'Whether the team is active' }
3797
+ },
3798
+ required: ['team_name', 'adom_name']
3799
+ },
3800
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3801
+ },
3802
+ {
3803
+ name: 'update_authz_team',
3804
+ description: 'Update an existing authorization team by ID.',
3805
+ inputSchema: {
3806
+ type: 'object',
3807
+ properties: {
3808
+ team_id: { type: 'string', description: 'Team ID' },
3809
+ team_name: { type: 'string', description: 'Team name' },
3810
+ adom_name: { type: 'string', description: 'Administrative domain name' },
3811
+ description: { type: 'string', description: 'Team description' },
3812
+ is_active: { type: 'boolean', description: 'Whether the team is active' }
3813
+ },
3814
+ required: ['team_id']
3815
+ },
3816
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3817
+ },
3818
+ {
3819
+ name: 'delete_authz_team',
3820
+ description: 'Delete an authorization team by ID.',
3821
+ inputSchema: {
3822
+ type: 'object',
3823
+ properties: {
3824
+ team_id: { type: 'string', description: 'Team ID to delete' }
3825
+ },
3826
+ required: ['team_id']
3827
+ },
3828
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3829
+ },
3830
+ {
3831
+ name: 'list_authz_team_members',
3832
+ description: 'List members of an authorization team with pagination.',
3833
+ inputSchema: {
3834
+ type: 'object',
3835
+ properties: {
3836
+ team_id: { type: 'string', description: 'Team ID' },
3837
+ limit: { type: 'number', description: 'Maximum number of results' },
3838
+ offset: { type: 'number', description: 'Result offset for pagination' }
3839
+ },
3840
+ required: ['team_id']
3841
+ },
3842
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3843
+ },
3844
+ {
3845
+ name: 'add_authz_team_member',
3846
+ description: 'Add a user to an authorization team.',
3847
+ inputSchema: {
3848
+ type: 'object',
3849
+ properties: {
3850
+ team_id: { type: 'string', description: 'Team ID' },
3851
+ user_id: { type: 'string', description: 'User ID to add' },
3852
+ source: { type: 'string', description: 'Membership source: manual or sso' }
3853
+ },
3854
+ required: ['team_id', 'user_id']
3855
+ },
3856
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3857
+ },
3858
+ {
3859
+ name: 'remove_authz_team_member',
3860
+ description: 'Remove a user from an authorization team.',
3861
+ inputSchema: {
3862
+ type: 'object',
3863
+ properties: {
3864
+ team_id: { type: 'string', description: 'Team ID' },
3865
+ user_id: { type: 'string', description: 'User ID to remove' }
3866
+ },
3867
+ required: ['team_id', 'user_id']
3868
+ },
3869
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3870
+ },
3871
+ {
3872
+ name: 'list_authz_shares',
3873
+ description: 'List resource shares, optionally filtered by resource, target, or scope.',
3874
+ inputSchema: {
3875
+ type: 'object',
3876
+ properties: {
3877
+ resource_type: { type: 'string', description: 'Filter by resource type' },
3878
+ resource_id: { type: 'string', description: 'Filter by resource ID' },
3879
+ target_id: { type: 'string', description: 'Filter by target ID' },
3880
+ scope: { type: 'string', description: 'Filter by share scope' },
3881
+ limit: { type: 'number', description: 'Maximum number of results' },
3882
+ offset: { type: 'number', description: 'Result offset for pagination' }
3883
+ }
3884
+ },
3885
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3886
+ },
3887
+ {
3888
+ name: 'get_authz_share',
3889
+ description: 'Get a single resource share by ID.',
3890
+ inputSchema: {
3891
+ type: 'object',
3892
+ properties: {
3893
+ share_id: { type: 'string', description: 'Share ID' }
3894
+ },
3895
+ required: ['share_id']
3896
+ },
3897
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3898
+ },
3899
+ {
3900
+ name: 'create_authz_share',
3901
+ description: 'Share a resource with a scope and optional target and permission level.',
3902
+ inputSchema: {
3903
+ type: 'object',
3904
+ properties: {
3905
+ resource_type: { type: 'string', description: 'Resource type: flow, deployment, project, knowledge_base, variable, or file' },
3906
+ resource_id: { type: 'string', description: 'Resource ID to share' },
3907
+ scope: { type: 'string', description: 'Share scope: private, team, user, or public' },
3908
+ target_id: { type: 'string', description: 'Target ID for the share' },
3909
+ permission_level: { type: 'string', description: 'Permission level: read, write, execute, or admin' }
3910
+ },
3911
+ required: ['resource_type', 'resource_id', 'scope']
3912
+ },
3913
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3914
+ },
3915
+ {
3916
+ name: 'update_authz_share',
3917
+ description: 'Update the permission level of a resource share.',
3918
+ inputSchema: {
3919
+ type: 'object',
3920
+ properties: {
3921
+ share_id: { type: 'string', description: 'Share ID' },
3922
+ permission_level: { type: 'string', description: 'Permission level: read, write, execute, or admin' }
3923
+ },
3924
+ required: ['share_id', 'permission_level']
3925
+ },
3926
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3927
+ },
3928
+ {
3929
+ name: 'delete_authz_share',
3930
+ description: 'Delete a resource share by ID.',
3931
+ inputSchema: {
3932
+ type: 'object',
3933
+ properties: {
3934
+ share_id: { type: 'string', description: 'Share ID to delete' }
3935
+ },
3936
+ required: ['share_id']
3937
+ },
3938
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
3939
+ },
3940
+ {
3941
+ name: 'get_authz_audit',
3942
+ description: 'Query the authorization audit log with filters and pagination.',
3943
+ inputSchema: {
3944
+ type: 'object',
3945
+ properties: {
3946
+ user_id: { type: 'string', description: 'Filter by user ID' },
3947
+ actor_type: { type: 'string', enum: ['user', 'api_key', 'unknown', 'anonymous_public'], description: 'Filter by credential actor type; unknown also includes legacy rows without a type' },
3948
+ actor_id: { type: 'string', description: 'Filter by credential actor UUID' },
3949
+ resource_type: { type: 'string', description: 'Filter by resource type' },
3950
+ resource_id: { type: 'string', description: 'Filter by resource ID' },
3951
+ action: { type: 'string', description: 'Filter by audit action' },
3952
+ exclude_action: { type: 'array', items: { type: 'string' }, description: 'Exclude rows matching any of these action names' },
3953
+ result: { type: 'string', enum: ['allow', 'deny', 'owner_override', 'skip'], description: 'Filter by result outcome' },
3954
+ event: { type: 'array', items: { type: 'string' }, description: 'Include rows matching any of these details.event classes' },
3955
+ exclude_event: { type: 'array', items: { type: 'string' }, description: 'Exclude these details.event classes; legacy unclassified rows remain included' },
3956
+ since: { type: 'string', description: 'Start timestamp (ISO 8601)' },
3957
+ until: { type: 'string', description: 'End timestamp (ISO 8601)' },
3958
+ page: { type: 'number', description: 'Page number' },
3959
+ size: { type: 'number', description: 'Page size' }
3960
+ }
3961
+ },
3962
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3963
+ },
3964
+ {
3965
+ name: 'get_my_permissions',
3966
+ description: 'Get the calling user effective permissions for a set of resources.',
3967
+ inputSchema: {
3968
+ type: 'object',
3969
+ properties: {
3970
+ resource_type: { type: 'string', description: 'Resource type: flow, deployment, project, knowledge_base, variable, file, or component' },
3971
+ resource_ids: { type: 'array', items: { type: 'string' }, description: 'Resource IDs to check' },
3972
+ actions: { type: 'array', items: { type: 'string' }, description: 'Specific actions to evaluate' },
3973
+ domain: { type: 'string', description: 'Domain scope for the check' }
3974
+ },
3975
+ required: ['resource_type', 'resource_ids']
3976
+ },
3977
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
3978
+ },
3979
+ {
3980
+ name: 'create_memory_base',
3981
+ description: 'Create a memory base for a flow (experimental, hidden in Langflow OpenAPI).',
3982
+ inputSchema: {
3983
+ type: 'object',
3984
+ properties: {
3985
+ name: { type: 'string', description: 'Memory base name' },
3986
+ flow_id: { type: 'string', description: 'Associated flow ID' },
3987
+ threshold: { type: 'number', description: 'Capture threshold' },
3988
+ auto_capture: { type: 'boolean', description: 'Automatically capture memories' },
3989
+ embedding_provider: { type: 'string', description: 'Embedding provider selected for the embedding model' },
3990
+ embedding_model: { type: 'string', description: 'Embedding model name' },
3991
+ preprocessing: { type: 'boolean', description: 'Enable preprocessing' },
3992
+ preproc_model: { type: 'string', description: 'Preprocessing model name' },
3993
+ preproc_instructions: { type: 'string', description: 'Preprocessing instructions' },
3994
+ preproc_kill_phrase: { type: 'string', description: 'Preprocessing kill phrase' }
3995
+ },
3996
+ required: ['name', 'flow_id']
3997
+ },
3998
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
3999
+ },
4000
+ {
4001
+ name: 'list_memory_bases',
4002
+ description: 'List memory bases, optionally filtered by flow with pagination.',
4003
+ inputSchema: {
4004
+ type: 'object',
4005
+ properties: {
4006
+ flow_id: { type: 'string', description: 'Filter by flow ID' },
4007
+ page: { type: 'number', description: 'Page number' },
4008
+ size: { type: 'number', description: 'Page size' }
4009
+ }
4010
+ },
4011
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4012
+ },
4013
+ {
4014
+ name: 'get_memory_base',
4015
+ description: 'Get a single memory base by ID.',
4016
+ inputSchema: {
4017
+ type: 'object',
4018
+ properties: {
4019
+ memory_base_id: { type: 'string', description: 'Memory base ID' }
4020
+ },
4021
+ required: ['memory_base_id']
4022
+ },
4023
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4024
+ },
4025
+ {
4026
+ name: 'list_memory_base_sessions',
4027
+ description: 'List sessions stored in a memory base with pagination.',
4028
+ inputSchema: {
4029
+ type: 'object',
4030
+ properties: {
4031
+ memory_base_id: { type: 'string', description: 'Memory base ID' },
4032
+ page: { type: 'number', description: 'Page number' },
4033
+ size: { type: 'number', description: 'Page size' }
4034
+ },
4035
+ required: ['memory_base_id']
4036
+ },
4037
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4038
+ },
4039
+ {
4040
+ name: 'list_memory_base_messages',
4041
+ description: 'List messages stored in a memory base, optionally filtered by session.',
4042
+ inputSchema: {
4043
+ type: 'object',
4044
+ properties: {
4045
+ memory_base_id: { type: 'string', description: 'Memory base ID' },
4046
+ session_id: { type: 'string', description: 'Filter by session ID' },
4047
+ page: { type: 'number', description: 'Page number' },
4048
+ size: { type: 'number', description: 'Page size' }
4049
+ },
4050
+ required: ['memory_base_id']
4051
+ },
4052
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4053
+ },
4054
+ {
4055
+ name: 'update_memory_base',
4056
+ description: 'Update an existing memory base by ID.',
4057
+ inputSchema: {
4058
+ type: 'object',
4059
+ properties: {
4060
+ memory_base_id: { type: 'string', description: 'Memory base ID' },
4061
+ name: { type: 'string', description: 'Memory base name' },
4062
+ threshold: { type: 'number', description: 'Capture threshold' },
4063
+ auto_capture: { type: 'boolean', description: 'Automatically capture memories' }
4064
+ },
4065
+ required: ['memory_base_id']
4066
+ },
4067
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4068
+ },
4069
+ {
4070
+ name: 'delete_memory_base',
4071
+ description: 'Delete a memory base and its stored memories by ID.',
4072
+ inputSchema: {
4073
+ type: 'object',
4074
+ properties: {
4075
+ memory_base_id: { type: 'string', description: 'Memory base ID to delete' }
4076
+ },
4077
+ required: ['memory_base_id']
4078
+ },
4079
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
4080
+ },
4081
+ {
4082
+ name: 'flush_memory_base',
4083
+ description: 'Flush a memory base session, persisting captured memories.',
4084
+ inputSchema: {
4085
+ type: 'object',
4086
+ properties: {
4087
+ memory_base_id: { type: 'string', description: 'Memory base ID' },
4088
+ session_id: { type: 'string', description: 'Session ID to flush' }
4089
+ },
4090
+ required: ['memory_base_id', 'session_id']
4091
+ },
4092
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4093
+ },
4094
+ {
4095
+ name: 'check_memory_base_mismatch',
4096
+ description: 'Check a memory base for configuration or embedding mismatches.',
4097
+ inputSchema: {
4098
+ type: 'object',
4099
+ properties: {
4100
+ memory_base_id: { type: 'string', description: 'Memory base ID' }
4101
+ },
4102
+ required: ['memory_base_id']
4103
+ },
4104
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4105
+ },
4106
+ {
4107
+ name: 'regenerate_memory_base',
4108
+ description: 'Regenerate a memory base, rebuilding its stored memories.',
4109
+ inputSchema: {
4110
+ type: 'object',
4111
+ properties: {
4112
+ memory_base_id: { type: 'string', description: 'Memory base ID' }
4113
+ },
4114
+ required: ['memory_base_id']
4115
+ },
4116
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
4117
+ },
4118
+ {
4119
+ name: 'test_knowledge_base_connection',
4120
+ description: 'Test a connection to a knowledge base backend.',
4121
+ inputSchema: {
4122
+ type: 'object',
4123
+ properties: {
4124
+ backend_type: { type: 'string', description: 'Backend type to test' },
4125
+ backend_config: { type: 'object', description: 'Backend connection configuration' }
4126
+ },
4127
+ required: ['backend_type']
4128
+ },
4129
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4130
+ },
4131
+ {
4132
+ name: 'list_knowledge_base_connectors',
4133
+ description: 'List available knowledge base ingestion connectors.',
4134
+ inputSchema: {
4135
+ type: 'object',
4136
+ properties: {}
4137
+ },
4138
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4139
+ },
4140
+ {
4141
+ name: 'ingest_knowledge_base_folder',
4142
+ description: 'Ingest a local folder into a knowledge base with chunking options.',
4143
+ inputSchema: {
4144
+ type: 'object',
4145
+ properties: {
4146
+ kb_name: { type: 'string', description: 'Knowledge base name' },
4147
+ path: { type: 'string', description: 'Folder path to ingest' },
4148
+ recursive: { type: 'boolean', description: 'Recurse into subfolders' },
4149
+ extensions: { type: 'array', items: { type: 'string' }, description: 'File extensions to include' },
4150
+ max_file_size_bytes: { type: 'number', description: 'Maximum file size in bytes' },
4151
+ source_name: { type: 'string', description: 'Source name label' },
4152
+ chunk_size: { type: 'number', description: 'Chunk size' },
4153
+ chunk_overlap: { type: 'number', description: 'Chunk overlap' },
4154
+ separator: { type: 'string', description: 'Chunk separator' },
4155
+ metadata: { type: 'object', description: 'Metadata applied to all files' },
4156
+ per_file_metadata: { type: 'object', description: 'Per-file metadata overrides' }
4157
+ },
4158
+ required: ['kb_name', 'path']
4159
+ },
4160
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4161
+ },
4162
+ {
4163
+ name: 'ingest_knowledge_base_connector',
4164
+ description: 'Ingest content into a knowledge base from a configured connector source.',
4165
+ inputSchema: {
4166
+ type: 'object',
4167
+ properties: {
4168
+ kb_name: { type: 'string', description: 'Knowledge base name' },
4169
+ source_type: { type: 'string', description: 'Connector source type' },
4170
+ source_config: { type: 'object', description: 'Connector source configuration' },
4171
+ source_name: { type: 'string', description: 'Source name label' },
4172
+ chunk_size: { type: 'number', description: 'Chunk size' },
4173
+ chunk_overlap: { type: 'number', description: 'Chunk overlap' },
4174
+ separator: { type: 'string', description: 'Chunk separator' }
4175
+ },
4176
+ required: ['kb_name', 'source_type']
4177
+ },
4178
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4179
+ },
4180
+ {
4181
+ name: 'get_knowledge_base_metadata_keys',
4182
+ description: 'Get the available metadata keys for a knowledge base.',
4183
+ inputSchema: {
4184
+ type: 'object',
4185
+ properties: {
4186
+ kb_name: { type: 'string', description: 'Knowledge base name' }
4187
+ },
4188
+ required: ['kb_name']
4189
+ },
4190
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4191
+ },
4192
+ {
4193
+ name: 'list_knowledge_base_runs',
4194
+ description: 'List ingestion runs for a knowledge base with pagination.',
4195
+ inputSchema: {
4196
+ type: 'object',
4197
+ properties: {
4198
+ kb_name: { type: 'string', description: 'Knowledge base name' },
4199
+ page: { type: 'number', description: 'Page number' },
4200
+ limit: { type: 'number', description: 'Maximum number of results' }
4201
+ },
4202
+ required: ['kb_name']
4203
+ },
4204
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4205
+ },
4206
+ {
4207
+ name: 'get_knowledge_base_run',
4208
+ description: 'Get a single knowledge base ingestion run by ID.',
4209
+ inputSchema: {
4210
+ type: 'object',
4211
+ properties: {
4212
+ kb_name: { type: 'string', description: 'Knowledge base name' },
4213
+ run_id: { type: 'string', description: 'Ingestion run ID' }
4214
+ },
4215
+ required: ['kb_name', 'run_id']
4216
+ },
4217
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4218
+ },
4219
+ {
4220
+ name: 'reload_extension_bundle',
4221
+ description: 'Reload an extension bundle (requires LANGFLOW_ENABLE_EXTENSION_RELOAD on the server).',
4222
+ inputSchema: {
4223
+ type: 'object',
4224
+ properties: {
4225
+ extension_id: { type: 'string', description: 'Extension ID' },
4226
+ bundle_name: { type: 'string', description: 'Bundle name to reload' }
4227
+ },
4228
+ required: ['extension_id', 'bundle_name']
4229
+ },
4230
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4231
+ },
4232
+ {
4233
+ name: 'get_extension_events',
4234
+ description: 'Get extension events for the current user, optionally since a UTC epoch cursor.',
4235
+ inputSchema: {
4236
+ type: 'object',
4237
+ properties: {
4238
+ since: { type: 'number', description: 'UTC epoch timestamp; return events after this cursor' }
4239
+ }
4240
+ },
4241
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4242
+ },
4243
+ {
4244
+ name: 'get_agentic_file',
4245
+ description: 'Get an agentic workspace file, optionally as a downloadable payload.',
4246
+ inputSchema: {
4247
+ type: 'object',
4248
+ properties: {
4249
+ path: { type: 'string', description: 'File path' },
4250
+ download: { type: 'boolean', description: 'Return the file content for download' }
4251
+ },
4252
+ required: ['path']
4253
+ },
4254
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4255
+ },
4256
+ {
4257
+ name: 'reset_agentic_session',
4258
+ description: 'Reset an agentic session, optionally targeting a specific session ID.',
4259
+ inputSchema: {
4260
+ type: 'object',
4261
+ properties: {
4262
+ session_id: { type: 'string', description: 'Session ID to reset' }
4263
+ }
4264
+ },
4265
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
4266
+ },
4267
+ {
4268
+ name: 'get_flow_note_translations',
4269
+ description: 'Get localized note translations for a flow by ID.',
4270
+ inputSchema: {
4271
+ type: 'object',
4272
+ properties: {
4273
+ flow_id: { type: 'string', description: 'Flow ID' }
4274
+ },
4275
+ required: ['flow_id']
4276
+ },
4277
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4278
+ },
4279
+ {
4280
+ name: 'get_job_queue_metrics',
4281
+ description: 'Get job queue metrics (superuser-only).',
4282
+ inputSchema: {
4283
+ type: 'object',
4284
+ properties: {}
4285
+ },
4286
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4287
+ },
4288
+ {
4289
+ name: 'list_a2a_agents',
4290
+ description: 'List available A2A (Agent-to-Agent) agents (Langflow 1.11.x). Requires server-side A2A enablement (LANGFLOW_A2A_ENABLED).',
4291
+ inputSchema: {
4292
+ type: 'object',
4293
+ properties: {}
4294
+ },
4295
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4296
+ },
4297
+ {
4298
+ name: 'get_a2a_agent_card',
4299
+ description: 'Get the A2A agent card (.well-known/agent-card.json) for a flow (Langflow 1.11.x). Requires server-side A2A enablement.',
4300
+ inputSchema: {
4301
+ type: 'object',
4302
+ properties: {
4303
+ flow_id: { type: 'string', description: 'Flow ID' }
4304
+ },
4305
+ required: ['flow_id']
4306
+ },
4307
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4308
+ },
4309
+ {
4310
+ name: 'invoke_a2a_jsonrpc',
4311
+ description: 'Invoke a flow via the A2A JSON-RPC endpoint (Langflow 1.11.x). The JSON-RPC envelope is a passthrough; validation lives server-side.',
4312
+ inputSchema: {
4313
+ type: 'object',
4314
+ properties: {
4315
+ flow_id: { type: 'string', description: 'Flow ID' },
4316
+ jsonrpc: { type: 'string', description: 'JSON-RPC version (e.g. "2.0")' },
4317
+ method: { type: 'string', description: 'JSON-RPC method name' },
4318
+ params: { type: ['object', 'array'], description: 'JSON-RPC params (object or positional array)' },
4319
+ id: { type: ['string', 'number'], description: 'JSON-RPC request ID' }
4320
+ },
4321
+ required: ['flow_id', 'method']
4322
+ },
4323
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4324
+ },
4325
+ {
4326
+ name: 'list_pending_workflows',
4327
+ description: 'List pending human-in-the-loop requests for a required flow ID (Langflow 1.11.x).',
4328
+ inputSchema: {
4329
+ type: 'object',
4330
+ properties: {
4331
+ flow_id: { type: 'string', description: 'Flow ID to list pending HITL requests for' }
4332
+ },
4333
+ required: ['flow_id']
4334
+ },
4335
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4336
+ },
4337
+ {
4338
+ name: 'get_workflow_events',
4339
+ description: 'Re-attach to a workflow job event stream by job ID (Langflow 1.11.x). Streaming is not incrementally surfaced; the initial payload is returned.',
4340
+ inputSchema: {
4341
+ type: 'object',
4342
+ properties: {
4343
+ job_id: { type: 'string', description: 'Workflow job ID' }
4344
+ },
4345
+ required: ['job_id']
4346
+ },
4347
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4348
+ },
4349
+ {
4350
+ name: 'resume_workflow',
4351
+ description: 'Resume a paused human-in-the-loop workflow with the pending request ID and optional decision (Langflow 1.11.x).',
4352
+ inputSchema: {
4353
+ type: 'object',
4354
+ properties: {
4355
+ job_id: { type: 'string', description: 'Workflow job ID' },
4356
+ request_id: { type: 'string', description: 'Pending HITL request ID' },
4357
+ decision: { type: ['object', 'null'], description: 'Optional HITL decision payload' }
4358
+ },
4359
+ required: ['job_id', 'request_id']
4360
+ },
4361
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4362
+ },
4363
+ {
4364
+ name: 'run_public_workflow',
4365
+ description: 'Run a public (unauthenticated-eligible) workflow (Langflow 1.11.x). Stream-only execution; streaming is not incrementally surfaced.',
4366
+ inputSchema: {
4367
+ type: 'object',
4368
+ properties: {
4369
+ flow_id: { type: 'string', description: 'Flow ID' },
4370
+ input_value: { type: 'string', description: 'Chat-style input value (max 65536 characters)' },
4371
+ mode: { type: 'string', enum: ['stream'], description: 'Always stream for public execution' },
4372
+ stream_protocol: { type: 'string', description: 'Streaming protocol, for example langflow or agui' },
4373
+ files: { type: ['array', 'null'], items: { type: 'string' }, description: 'Flow-scoped pre-uploaded file paths' },
4374
+ session_id: { type: ['string', 'null'], description: 'Optional caller session (max 256 characters)' },
4375
+ start_component_id: { type: ['string', 'null'], description: 'Optional partial-run start component' },
4376
+ stop_component_id: { type: ['string', 'null'], description: 'Optional partial-run stop component' }
4377
+ },
4378
+ required: ['flow_id']
4379
+ },
4380
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
4381
+ },
4382
+ {
4383
+ name: 'get_healthz',
4384
+ description: 'Get the Langflow Kubernetes-style readiness report from /healthz (Langflow 1.12.x).',
4385
+ inputSchema: { type: 'object', properties: {} },
4386
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4387
+ },
4388
+ {
4389
+ name: 'list_model_provider_descriptors',
4390
+ description: 'List policy-visible model providers with stable IDs and display names (Langflow 1.12.x).',
4391
+ inputSchema: {
4392
+ type: 'object',
4393
+ properties: {
4394
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
4395
+ }
4396
+ },
4397
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4398
+ },
4399
+ {
4400
+ name: 'get_model_provider_policy',
4401
+ description: 'Read the install-wide approved model-provider policy (superuser-only Langflow 1.12.x API).',
4402
+ inputSchema: { type: 'object', properties: {} },
4403
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4404
+ },
4405
+ {
4406
+ name: 'replace_model_provider_policy',
4407
+ description: 'Replace the install-wide approved model-provider policy (superuser-only Langflow 1.12.x API).',
4408
+ inputSchema: {
4409
+ type: 'object',
4410
+ properties: {
4411
+ approved_provider_ids: { type: 'array', items: { type: 'string' }, description: 'Complete approved provider ID set' }
4412
+ },
4413
+ required: ['approved_provider_ids']
4414
+ },
4415
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
4416
+ },
4417
+ {
4418
+ name: 'get_catalog_component_policy',
4419
+ description: 'Read the global blocked-component catalog policy (superuser-only Langflow 1.12.x API).',
4420
+ inputSchema: { type: 'object', properties: {} },
4421
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4422
+ },
4423
+ {
4424
+ name: 'replace_catalog_component_policy',
4425
+ description: 'Replace the global blocked-component catalog policy (superuser-only Langflow 1.12.x API).',
4426
+ inputSchema: {
4427
+ type: 'object',
4428
+ properties: { blocked: { type: 'array', items: { type: 'string' }, description: 'Complete blocked component key set' } },
4429
+ required: ['blocked']
4430
+ },
4431
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
4432
+ },
4433
+ {
4434
+ name: 'get_catalog_template_policy',
4435
+ description: 'Read the global blocked-template catalog policy (superuser-only Langflow 1.12.x API).',
4436
+ inputSchema: { type: 'object', properties: {} },
4437
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4438
+ },
4439
+ {
4440
+ name: 'replace_catalog_template_policy',
4441
+ description: 'Replace the global blocked-template catalog policy (superuser-only Langflow 1.12.x API).',
4442
+ inputSchema: {
4443
+ type: 'object',
4444
+ properties: { blocked: { type: 'array', items: { type: 'string' }, description: 'Complete blocked template key set' } },
4445
+ required: ['blocked']
4446
+ },
4447
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
4448
+ },
4449
+ {
4450
+ name: 'get_catalog_policy_usage',
4451
+ description: 'Count flows using each catalog component (superuser-only Langflow 1.12.x API).',
4452
+ inputSchema: { type: 'object', properties: {} },
4453
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4454
+ },
4455
+ {
4456
+ name: 'get_catalog_policy_usage_flows',
4457
+ description: 'List flows affected by blocking a catalog component key (superuser-only Langflow 1.12.x API).',
4458
+ inputSchema: {
4459
+ type: 'object',
4460
+ properties: {
4461
+ component: { type: 'string', description: 'Component key to look up' },
4462
+ limit: { type: 'number', description: 'Maximum number of flows, 1-500' }
4463
+ },
4464
+ required: ['component']
4465
+ },
4466
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4467
+ },
4468
+ {
4469
+ name: 'get_policy_bundle',
4470
+ description: 'Read the atomic provider-and-catalog policy bundle (superuser-only Langflow 1.12.x API).',
4471
+ inputSchema: { type: 'object', properties: {} },
4472
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4473
+ },
4474
+ {
4475
+ name: 'replace_policy_bundle',
4476
+ description: 'Atomically replace the provider-and-catalog policy bundle using an expected revision (Langflow 1.12.x).',
4477
+ inputSchema: {
4478
+ type: 'object',
4479
+ properties: {
4480
+ expected_revision: { type: 'number', description: 'Revision read before the replacement' },
4481
+ approved_provider_ids: { type: 'array', items: { type: 'string' } },
4482
+ blocked_component_keys: { type: 'array', items: { type: 'string' } },
4483
+ blocked_template_keys: { type: 'array', items: { type: 'string' } },
4484
+ blocked_model_keys: { type: 'array', items: { type: 'string' } },
4485
+ reason: { type: ['string', 'null'], description: 'Optional change reason, max 1024 characters' }
4486
+ },
4487
+ required: ['expected_revision', 'approved_provider_ids', 'blocked_component_keys', 'blocked_template_keys']
4488
+ },
4489
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }
4490
+ },
4491
+ {
4492
+ name: 'list_policy_bundle_history',
4493
+ description: 'List historical policy bundle revisions (superuser-only Langflow 1.12.x API).',
4494
+ inputSchema: {
4495
+ type: 'object',
4496
+ properties: {
4497
+ limit: { type: 'number', description: 'Number of revisions, 1-200' },
4498
+ before_revision: { type: ['number', 'null'], description: 'Return revisions before this number' }
4499
+ }
4500
+ },
4501
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4502
+ },
4503
+ {
4504
+ name: 'rollback_policy_bundle',
4505
+ description: 'Roll back the policy bundle to a prior revision with optimistic concurrency protection (Langflow 1.12.x).',
4506
+ inputSchema: {
4507
+ type: 'object',
4508
+ properties: {
4509
+ revision: { type: 'number', description: 'Target revision' },
4510
+ expected_revision: { type: 'number', description: 'Current revision required for the rollback' },
4511
+ reason: { type: ['string', 'null'], description: 'Optional rollback reason, max 1024 characters' }
4512
+ },
4513
+ required: ['revision', 'expected_revision']
4514
+ },
4515
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
4516
+ },
4517
+ {
4518
+ name: 'upsert_project',
4519
+ description: 'Create or update a project at a caller-supplied ID using Langflow 1.12.x PUT upsert semantics.',
4520
+ inputSchema: {
4521
+ type: 'object',
4522
+ properties: {
4523
+ project_id: { type: 'string', description: 'Project UUID' },
4524
+ name: { type: 'string', description: 'Project name' },
4525
+ description: { type: ['string', 'null'], description: 'Project description' },
4526
+ auth_settings: { type: ['object', 'null'], description: 'Project authentication settings' },
4527
+ components_list: { type: ['array', 'null'], items: { type: 'string' } },
4528
+ flows_list: { type: ['array', 'null'], items: { type: 'string' } }
4529
+ },
4530
+ required: ['project_id', 'name']
4531
+ },
4532
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
4533
+ },
4534
+ {
4535
+ name: 'agentic_assist_run',
4536
+ description: 'Run the Langflow agentic assistant headlessly and persist its flow changes (Langflow 1.12.x SSE API).',
4537
+ inputSchema: {
4538
+ type: 'object',
4539
+ properties: {
4540
+ instruction: { type: 'string', description: 'Assistant instruction' },
4541
+ flow_id: { type: ['string', 'null'], description: 'Optional existing flow ID' },
4542
+ provider: { type: ['string', 'null'], description: 'Optional model provider' },
4543
+ model_name: { type: ['string', 'null'], description: 'Optional model name' },
4544
+ session_id: { type: ['string', 'null'], description: 'Optional assistant session ID' }
4545
+ },
4546
+ required: ['instruction']
4547
+ },
4548
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
2634
4549
  }
2635
4550
  ];
2636
4551
  //# sourceMappingURL=tools.js.map