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
@@ -19,30 +19,37 @@ Actions:
19
19
  - get_public: Get a publicly shared flow
20
20
  - get_examples: Get basic flow examples
21
21
  - get_starters: List starter project templates
22
+ - replace: Replace (PUT) an entire flow by ID
23
+ - expand: Expand bundled/expandable flows
24
+ - note_translations: Get localized note-node translations for a flow (Langflow 1.10.0)
22
25
 
23
26
  Examples:
24
27
  - List flows: { "action": "list", "page": 1, "size": 10 }
25
28
  - Get flow: { "action": "get", "flow_id": "uuid" }
26
29
  - Create flow: { "action": "create", "name": "My Flow" }
27
- - Delete flow: { "action": "delete", "flow_id": "uuid" }`,
30
+ - Delete flow: { "action": "delete", "flow_id": "uuid" }
31
+ - Replace flow: { "action": "replace", "flow_id": "uuid", "name": "New" }
32
+ - Expand flows: { "action": "expand", "body": {} }
33
+ - Note translations: { "action": "note_translations", "flow_id": "uuid" }`,
28
34
  inputSchema: {
29
35
  type: 'object',
30
36
  properties: {
31
37
  action: {
32
38
  type: 'string',
33
- enum: ['list', 'get', 'create', 'update', 'delete', 'delete_many', 'batch_create', 'download', 'upload', 'get_public', 'get_examples', 'get_starters'],
39
+ enum: ['list', 'get', 'create', 'update', 'delete', 'delete_many', 'batch_create', 'download', 'upload', 'get_public', 'get_examples', 'get_starters', 'replace', 'expand', 'note_translations'],
34
40
  description: 'Action to perform'
35
41
  },
36
- flow_id: { type: 'string', description: 'Flow ID (UUID) - required for get, update, delete, get_public' },
42
+ flow_id: { type: 'string', description: 'Flow ID (UUID) - required for get, update, delete, get_public, replace, note_translations' },
37
43
  flow_ids: { type: 'array', items: { type: 'string' }, description: 'Array of flow IDs - for delete_many, download' },
38
- name: { type: 'string', description: 'Flow name - for create, update' },
39
- description: { type: 'string', description: 'Flow description - for create, update' },
40
- data: { type: 'object', description: 'Flow data/structure - for create, update' },
41
- folder_id: { type: 'string', description: 'Folder ID - for list, create, update' },
44
+ name: { type: 'string', description: 'Flow name - for create, update, replace' },
45
+ description: { type: 'string', description: 'Flow description - for create, update, replace' },
46
+ data: { type: 'object', description: 'Flow data/structure - for create, update, replace' },
47
+ folder_id: { type: 'string', description: 'Folder ID - for list, create, update, replace' },
42
48
  page: { type: 'number', description: 'Page number for pagination' },
43
49
  size: { type: 'number', description: 'Page size (max 100)' },
44
50
  file: { type: 'object', description: 'File object {name, content} - for upload' },
45
- flows: { type: 'array', description: 'Array of flow objects - for batch_create' }
51
+ flows: { type: 'array', description: 'Array of flow objects - for batch_create' },
52
+ body: { type: 'object', description: 'Request body - for expand' }
46
53
  },
47
54
  required: ['action']
48
55
  },
@@ -59,7 +66,7 @@ Examples:
59
66
 
60
67
  Actions:
61
68
  - run: Simple flow execution with input
62
- - run_advanced: Advanced execution with full control (tweaks, session, streaming)
69
+ - run_advanced: Advanced execution with InputValueRequest arrays, outputs, tweaks, session, and streaming
63
70
  - run_session: Session-based execution with persistent state
64
71
  - webhook: Trigger flow via webhook
65
72
  - process: Legacy process endpoint
@@ -67,7 +74,7 @@ Actions:
67
74
 
68
75
  Examples:
69
76
  - Simple run: { "action": "run", "flow_id_or_name": "my-flow", "input_value": "Hello" }
70
- - Advanced: { "action": "run_advanced", "flow_id_or_name": "uuid", "input_value": "Hi", "session_id": "sess-1" }
77
+ - Advanced: { "action": "run_advanced", "flow_id_or_name": "uuid", "inputs": [{ "input_value": "Hi", "type": "chat" }], "session_id": "sess-1" }
71
78
  - Session: { "action": "run_session", "flow_id_or_name": "my-flow", "session_id": "sess-1", "input_value": "Continue" }`,
72
79
  inputSchema: {
73
80
  type: 'object',
@@ -83,11 +90,13 @@ Examples:
83
90
  input_type: { type: 'string', description: 'Input type (e.g., "chat", "text")' },
84
91
  output_type: { type: 'string', description: 'Expected output type' },
85
92
  output_component: { type: 'string', description: 'Specific output component' },
93
+ outputs: { type: ['array', 'null'], items: { type: 'string' }, description: 'Output component names or IDs - for run_advanced' },
86
94
  tweaks: { type: 'object', description: 'Component parameter overrides' },
87
95
  session_id: { type: 'string', description: 'Session ID for conversation continuity' },
96
+ context: { type: 'object', description: 'Request context for simplified run/session execution' },
88
97
  user_id: { type: 'string', description: 'User ID for user-scoped execution' },
89
- stream: { type: 'boolean', description: 'Enable streaming mode' },
90
- inputs: { type: 'object', description: 'Input values - for process, predict' }
98
+ stream: { type: 'boolean', description: 'Streaming is currently rejected by this MCP client for run and run_session' },
99
+ inputs: { type: ['array', 'object', 'null'], description: 'InputValueRequest array - for run_advanced; object values - for process, predict' }
91
100
  },
92
101
  required: ['action']
93
102
  },
@@ -106,8 +115,10 @@ Actions:
106
115
  - start: Start building a flow
107
116
  - status: Get build job status
108
117
  - cancel: Cancel a running build
118
+ - public_start: Build a public flow without authentication
119
+ - public_events: Get events for a public build job
120
+ - public_cancel: Cancel a public build job
109
121
  - vertices: Build specific vertices
110
- - get_vertex: Get vertex details
111
122
  - stream_vertex: Stream vertex build (deprecated)
112
123
  - task_status: Get async task status
113
124
 
@@ -120,18 +131,20 @@ Examples:
120
131
  properties: {
121
132
  action: {
122
133
  type: 'string',
123
- enum: ['start', 'status', 'cancel', 'vertices', 'get_vertex', 'stream_vertex', 'task_status'],
134
+ enum: ['start', 'status', 'cancel', 'public_start', 'public_events', 'public_cancel', 'vertices', 'stream_vertex', 'task_status'],
124
135
  description: 'Build action'
125
136
  },
126
137
  flow_id: { type: 'string', description: 'Flow ID (UUID)' },
127
138
  job_id: { type: 'string', description: 'Build job ID - for status, cancel' },
128
139
  task_id: { type: 'string', description: 'Task ID - for task_status' },
129
- vertex_id: { type: 'string', description: 'Vertex ID - for get_vertex, stream_vertex' },
140
+ vertex_id: { type: 'string', description: 'Vertex ID - for stream_vertex' },
130
141
  inputs: { type: 'object', description: 'Build inputs' },
131
142
  data: { type: 'object', description: 'Build data - for vertices' },
132
143
  files: { type: 'array', description: 'Files for build' },
133
144
  stop_component_id: { type: 'string', description: 'Stop at component' },
134
145
  start_component_id: { type: 'string', description: 'Start from component' },
146
+ log_builds: { type: ['boolean', 'null'], description: 'Whether to log the build' },
147
+ flow_name: { type: ['string', 'null'], description: 'Optional flow name override' },
135
148
  event_delivery: { type: 'string', enum: ['polling', 'streaming', 'direct'], description: 'Event delivery mode' }
136
149
  },
137
150
  required: ['action']
@@ -195,6 +208,7 @@ Actions:
195
208
  - get: Get project details
196
209
  - create: Create a new project
197
210
  - update: Update project
211
+ - upsert: Create or update a project at a caller-supplied ID (Langflow 1.12.x)
198
212
  - delete: Delete project
199
213
  - download: Download project
200
214
  - upload: Upload project
@@ -207,12 +221,15 @@ Examples:
207
221
  properties: {
208
222
  action: {
209
223
  type: 'string',
210
- enum: ['list', 'get', 'create', 'update', 'delete', 'download', 'upload'],
224
+ enum: ['list', 'get', 'create', 'update', 'upsert', 'delete', 'download', 'upload'],
211
225
  description: 'Project action'
212
226
  },
213
227
  project_id: { type: 'string', description: 'Project ID (UUID)' },
214
228
  name: { type: 'string', description: 'Project name' },
215
229
  description: { type: 'string', description: 'Project description' },
230
+ auth_settings: { type: ['object', 'null'], description: 'Project authentication settings - for upsert' },
231
+ components_list: { type: ['array', 'null'], items: { type: 'string' }, description: 'Component IDs - for upsert' },
232
+ flows_list: { type: ['array', 'null'], items: { type: 'string' }, description: 'Flow IDs - for upsert' },
216
233
  page: { type: 'number', description: 'Page number' },
217
234
  size: { type: 'number', description: 'Page size' },
218
235
  file: { type: 'object', description: 'File object - for upload' }
@@ -235,23 +252,26 @@ Actions:
235
252
  - create: Create a new variable
236
253
  - update: Update variable
237
254
  - delete: Delete variable
255
+ - detect: Detect variables referenced by flow versions
238
256
 
239
257
  Examples:
240
258
  - List: { "action": "list" }
241
- - Create: { "action": "create", "name": "API_KEY", "value": "xxx" }`,
259
+ - Create: { "action": "create", "name": "API_KEY", "value": "xxx" }
260
+ - Detect: { "action": "detect", "flow_version_ids": ["v1"] }`,
242
261
  inputSchema: {
243
262
  type: 'object',
244
263
  properties: {
245
264
  action: {
246
265
  type: 'string',
247
- enum: ['list', 'create', 'update', 'delete'],
266
+ enum: ['list', 'create', 'update', 'delete', 'detect'],
248
267
  description: 'Variable action'
249
268
  },
250
269
  variable_id: { type: 'string', description: 'Variable ID (UUID)' },
251
270
  name: { type: 'string', description: 'Variable name' },
252
271
  value: { type: 'string', description: 'Variable value' },
253
272
  type: { type: 'string', description: 'Variable type' },
254
- default_fields: { type: 'array', description: 'Default fields' }
273
+ default_fields: { type: 'array', description: 'Default fields' },
274
+ flow_version_ids: { type: 'array', items: { type: 'string' }, description: 'Flow version IDs - for detect' }
255
275
  },
256
276
  required: ['action']
257
277
  },
@@ -271,23 +291,63 @@ Actions:
271
291
  - get: Get knowledge base details
272
292
  - delete: Delete a knowledge base
273
293
  - bulk_delete: Delete multiple knowledge bases
274
- - upload: Upload file to knowledge base
294
+ - upload: Ingest a file into an existing knowledge base
295
+ - create: Create a knowledge base
296
+ - list_detailed: List knowledge bases with full detail
297
+ - list_chunks: List chunks within a knowledge base
298
+ - ingest: Ingest a file into a knowledge base
299
+ - preview_chunks: Preview chunking of a file
300
+ - cancel_ingest: Cancel an in-progress ingestion
301
+ - test_connection: Test a vector backend connection (Langflow 1.10.0)
302
+ - list_connectors: List available ingestion connectors (Langflow 1.10.0)
303
+ - ingest_folder: Ingest a server-side folder into a KB (Langflow 1.10.0)
304
+ - ingest_connector: Ingest from a connector source into a KB (Langflow 1.10.0)
305
+ - metadata_keys: List distinct metadata keys/values in a KB (Langflow 1.10.0)
306
+ - list_runs: List ingestion runs for a KB (Langflow 1.10.0)
307
+ - get_run: Get a single ingestion run by ID (Langflow 1.10.0)
275
308
 
276
309
  Examples:
277
310
  - List: { "action": "list" }
278
- - Upload: { "action": "upload", "kb_name": "my-kb", "file_content": "base64...", "file_name": "doc.pdf" }`,
311
+ - Upload: { "action": "upload", "kb_name": "existing-kb", "file_content": "base64...", "file_name": "doc.pdf" }
312
+ - Create: { "action": "create", "name": "kb", "embedding_provider": "openai", "embedding_model": "text-embedding-3-small" }
313
+ - Test connection: { "action": "test_connection", "backend_type": "chroma" }
314
+ - Ingest folder: { "action": "ingest_folder", "kb_name": "kb", "path": "/data/docs" }
315
+ - List runs: { "action": "list_runs", "kb_name": "kb" }`,
279
316
  inputSchema: {
280
317
  type: 'object',
281
318
  properties: {
282
319
  action: {
283
320
  type: 'string',
284
- enum: ['list', 'get', 'delete', 'bulk_delete', 'upload'],
321
+ enum: ['list', 'get', 'delete', 'bulk_delete', 'upload', 'create', 'list_detailed', 'list_chunks', 'ingest', 'preview_chunks', 'cancel_ingest', 'test_connection', 'list_connectors', 'ingest_folder', 'ingest_connector', 'metadata_keys', 'list_runs', 'get_run'],
285
322
  description: 'Knowledge base action'
286
323
  },
287
324
  kb_name: { type: 'string', description: 'Knowledge base name' },
288
325
  kb_names: { type: 'array', items: { type: 'string' }, description: 'KB names - for bulk_delete' },
289
- file_content: { type: 'string', description: 'Base64 file content - for upload' },
290
- file_name: { type: 'string', description: 'File name - for upload' }
326
+ file_content: { type: 'string', description: 'Base64 file content - for upload, ingest, preview_chunks' },
327
+ file_name: { type: 'string', description: 'File name - for upload, ingest, preview_chunks' },
328
+ name: { type: 'string', description: 'Knowledge base name - for create' },
329
+ embedding_provider: { type: 'string', description: 'Embedding provider - for create' },
330
+ embedding_model: { type: 'string', description: 'Embedding model - for create' },
331
+ column_config: { type: 'array', description: 'Column config - for create' },
332
+ page: { type: 'number', description: 'Page number - for list_chunks, list_runs' },
333
+ limit: { type: 'number', description: 'Limit - for list_chunks, list_runs' },
334
+ search: { type: 'string', description: 'Search query - for list_chunks' },
335
+ params: { type: 'object', description: 'Optional chunk/ingest params - for ingest, preview_chunks' },
336
+ backend_type: { type: 'string', description: 'Vector backend type (e.g. chroma, opensearch) - for test_connection' },
337
+ backend_config: { type: 'object', description: 'Backend configuration - for test_connection' },
338
+ path: { type: 'string', description: 'Server-side folder path - for ingest_folder' },
339
+ recursive: { type: 'boolean', description: 'Recurse into subfolders - for ingest_folder' },
340
+ extensions: { type: 'array', items: { type: 'string' }, description: 'File extensions filter - for ingest_folder' },
341
+ max_file_size_bytes: { type: 'number', description: 'Max file size in bytes - for ingest_folder' },
342
+ source_name: { type: 'string', description: 'Source label - for ingest_folder, ingest_connector' },
343
+ chunk_size: { type: 'number', description: 'Chunk size - for ingest_folder, ingest_connector' },
344
+ chunk_overlap: { type: 'number', description: 'Chunk overlap - for ingest_folder, ingest_connector' },
345
+ separator: { type: 'string', description: 'Chunk separator - for ingest_folder, ingest_connector' },
346
+ metadata: { type: 'object', description: 'Metadata applied to all items - for ingest_folder' },
347
+ per_file_metadata: { type: 'object', description: 'Per-file metadata map - for ingest_folder' },
348
+ source_type: { type: 'string', description: 'Connector source type - for ingest_connector' },
349
+ source_config: { type: 'object', description: 'Connector source configuration - for ingest_connector' },
350
+ run_id: { type: 'string', description: 'Ingestion run ID - for get_run' }
291
351
  },
292
352
  required: ['action']
293
353
  },
@@ -347,26 +407,42 @@ Actions:
347
407
  - get_session_messages: Get messages for a session
348
408
  - migrate_session: Migrate session to new flow
349
409
  - get_transactions: Get transaction history
410
+ - update_message: Update a monitor message
411
+ - delete_session_messages: Delete all messages for a session
412
+ - delete_sessions: Delete multiple sessions
413
+ - get_shared: Get shared messages for a source flow
414
+ - get_shared_sessions: List shared sessions for a source flow
415
+ - update_shared: Update a shared message
416
+ - migrate_shared_session: Migrate a shared session id
417
+ - delete_shared_session: Delete a shared session
418
+ - job_queue: Get job-queue metrics snapshot (superuser; Langflow 1.10.0)
350
419
 
351
420
  Examples:
352
421
  - Get builds: { "action": "get_builds", "flow_id": "uuid" }
353
- - Get messages: { "action": "get_messages", "session_id": "sess-1" }`,
422
+ - Get messages: { "action": "get_messages", "session_id": "sess-1" }
423
+ - Update message: { "action": "update_message", "message_id": "m1", "text": "hi" }
424
+ - Job queue: { "action": "job_queue" }`,
354
425
  inputSchema: {
355
426
  type: 'object',
356
427
  properties: {
357
428
  action: {
358
429
  type: 'string',
359
- enum: ['get_builds', 'delete_builds', 'get_messages', 'get_message', 'delete_messages', 'get_sessions', 'get_session_messages', 'migrate_session', 'get_transactions'],
430
+ enum: ['get_builds', 'delete_builds', 'get_messages', 'get_message', 'delete_messages', 'get_sessions', 'get_session_messages', 'migrate_session', 'get_transactions', 'update_message', 'delete_session_messages', 'delete_sessions', 'get_shared', 'get_shared_sessions', 'update_shared', 'migrate_shared_session', 'delete_shared_session', 'job_queue'],
360
431
  description: 'Monitor action'
361
432
  },
362
433
  flow_id: { type: 'string', description: 'Flow ID (UUID)' },
363
434
  session_id: { type: 'string', description: 'Session ID' },
435
+ session_ids: { type: 'array', items: { type: 'string' }, description: 'Session IDs - for delete_sessions' },
364
436
  message_id: { type: 'string', description: 'Message ID' },
365
437
  message_ids: { type: 'array', items: { type: 'string' }, description: 'Message IDs - for delete' },
366
- sender: { type: 'string', description: 'Filter by sender' },
367
- sender_name: { type: 'string', description: 'Filter by sender name' },
438
+ sender: { type: 'string', description: 'Filter by sender / message sender' },
439
+ sender_name: { type: 'string', description: 'Filter by sender name / message sender name' },
368
440
  order_by: { type: 'string', description: 'Order by field' },
369
- new_session_id: { type: 'string', description: 'New session ID - for migrate' }
441
+ new_session_id: { type: 'string', description: 'New session ID - for migrate, migrate_shared_session' },
442
+ source_flow_id: { type: 'string', description: 'Source flow ID - for shared actions' },
443
+ text: { type: 'string', description: 'Message text - for update_message, update_shared' },
444
+ files: { type: 'array', items: { type: 'string' }, description: 'Message files - for update_message, update_shared' },
445
+ properties: { type: 'object', description: 'Message properties - for update_message, update_shared' }
370
446
  },
371
447
  required: ['action']
372
448
  },
@@ -383,24 +459,27 @@ Examples:
383
459
 
384
460
  Actions:
385
461
  - list: List all users (admin)
386
- - get: Get user by ID
387
462
  - get_current: Get current authenticated user
388
463
  - update: Update user profile
389
464
  - reset_password: Reset user password (admin)
465
+ - create: Create a new user (admin)
390
466
 
391
467
  Examples:
392
468
  - Get current: { "action": "get_current" }
393
- - Update: { "action": "update", "user_id": "uuid", "username": "newname" }`,
469
+ - Update: { "action": "update", "user_id": "uuid", "username": "newname" }
470
+ - Create: { "action": "create", "username": "bob", "password": "secret" }`,
394
471
  inputSchema: {
395
472
  type: 'object',
396
473
  properties: {
397
474
  action: {
398
475
  type: 'string',
399
- enum: ['list', 'get', 'get_current', 'update', 'reset_password'],
476
+ enum: ['list', 'get_current', 'update', 'reset_password', 'create'],
400
477
  description: 'User action'
401
478
  },
402
479
  user_id: { type: 'string', description: 'User ID (UUID)' },
403
- username: { type: 'string', description: 'Username' },
480
+ username: { type: 'string', description: 'Username - for update, create' },
481
+ password: { type: 'string', description: 'Password - for create' },
482
+ optins: { type: 'object', description: 'Opt-in settings - for create' },
404
483
  profile_image: { type: 'string', description: 'Profile image URL' },
405
484
  is_active: { type: 'boolean', description: 'Active status' },
406
485
  is_superuser: { type: 'boolean', description: 'Superuser status' },
@@ -429,22 +508,25 @@ Actions:
429
508
  - list_keys: List API keys
430
509
  - create_key: Create new API key
431
510
  - delete_key: Delete API key
511
+ - save_store_key: Save the Langflow Store API key
432
512
 
433
513
  Examples:
434
514
  - Login: { "action": "login", "username": "user", "password": "pass" }
435
- - Create key: { "action": "create_key", "name": "My API Key" }`,
515
+ - Create key: { "action": "create_key", "name": "My API Key" }
516
+ - Save store key: { "action": "save_store_key", "api_key": "sk-..." }`,
436
517
  inputSchema: {
437
518
  type: 'object',
438
519
  properties: {
439
520
  action: {
440
521
  type: 'string',
441
- enum: ['login', 'auto_login', 'logout', 'refresh', 'list_keys', 'create_key', 'delete_key'],
522
+ enum: ['login', 'auto_login', 'logout', 'refresh', 'list_keys', 'create_key', 'delete_key', 'save_store_key'],
442
523
  description: 'Auth action'
443
524
  },
444
525
  username: { type: 'string', description: 'Username - for login' },
445
526
  password: { type: 'string', description: 'Password - for login' },
446
527
  name: { type: 'string', description: 'API key name - for create_key' },
447
- api_key_id: { type: 'string', description: 'API key ID - for delete_key' }
528
+ api_key_id: { type: 'string', description: 'API key ID - for delete_key' },
529
+ api_key: { type: 'string', description: 'Store API key - for save_store_key' }
448
530
  },
449
531
  required: ['action']
450
532
  },
@@ -461,7 +543,6 @@ Examples:
461
543
 
462
544
  Actions:
463
545
  - list_components: List available components
464
- - list_custom: List custom components
465
546
  - create_custom: Create custom component
466
547
  - check: Check store availability
467
548
  - check_key: Validate store API key
@@ -469,26 +550,41 @@ Actions:
469
550
  - get_store: Get store component details
470
551
  - list_tags: List store tags
471
552
  - get_likes: Get user's liked components
553
+ - create_store: Publish a component to the store
554
+ - like: Like a store component
555
+ - update_custom: Update custom component code/template
472
556
 
473
557
  Examples:
474
558
  - List components: { "action": "list_components" }
475
- - Create custom: { "action": "create_custom", "name": "MyComponent", "code": "..." }`,
559
+ - Create custom: { "action": "create_custom", "name": "MyComponent", "code": "..." }
560
+ - Like: { "action": "like", "component_id": "id" }`,
476
561
  inputSchema: {
477
562
  type: 'object',
478
563
  properties: {
479
564
  action: {
480
565
  type: 'string',
481
- enum: ['list_components', 'list_custom', 'create_custom', 'check', 'check_key', 'list_store', 'get_store', 'list_tags', 'get_likes'],
566
+ enum: ['list_components', 'create_custom', 'check', 'check_key', 'list_store', 'get_store', 'list_tags', 'get_likes', 'create_store', 'like', 'update_custom'],
482
567
  description: 'Store action'
483
568
  },
484
- component_id: { type: 'string', description: 'Component ID' },
485
- name: { type: 'string', description: 'Component name - for create_custom' },
486
- code: { type: 'string', description: 'Python code - for create_custom' },
569
+ component_id: { type: 'string', description: 'Component ID - for get_store, like' },
570
+ name: { type: 'string', description: 'Component name - for create_custom, create_store' },
571
+ code: { type: 'string', description: 'Python code - for create_custom, update_custom' },
487
572
  api_key: { type: 'string', description: 'Store API key - for check_key' },
488
573
  search: { type: 'string', description: 'Search query - for list_store' },
489
- tags: { type: 'array', description: 'Filter by tags - for list_store' },
574
+ tags: { type: 'array', description: 'Filter by tags / component tags - for list_store, create_store' },
490
575
  page: { type: 'number', description: 'Page number' },
491
- size: { type: 'number', description: 'Page size' }
576
+ size: { type: 'number', description: 'Page size' },
577
+ description: { type: 'string', description: 'Component description - for create_store' },
578
+ data: { type: 'object', description: 'Component data - for create_store' },
579
+ is_component: { type: 'boolean', description: 'Whether it is a component - for create_store' },
580
+ parent: { type: 'string', description: 'Parent component ID - for create_store' },
581
+ last_tested_version: { type: 'string', description: 'Last tested version - for create_store' },
582
+ private: { type: 'boolean', description: 'Private flag - for create_store' },
583
+ field: { type: 'string', description: 'Target field - for update_custom' },
584
+ template: { type: 'object', description: 'Component template - for update_custom' },
585
+ field_value: { description: 'New field value - for update_custom' },
586
+ frontend_node: { type: 'object', description: 'Frontend node - for update_custom' },
587
+ tool_mode: { type: 'boolean', description: 'Tool mode - for update_custom' }
492
588
  },
493
589
  required: ['action']
494
590
  },
@@ -571,21 +667,28 @@ Actions:
571
667
  - list_pictures: List profile pictures
572
668
  - get_picture: Get a profile picture
573
669
  - list_voices: List ElevenLabs voices
670
+ - session: Get current session info
671
+ - webhook_events: Get webhook events for a flow
672
+ - health_check: Detailed root health check
673
+ - healthz: Kubernetes-style readiness report (Langflow 1.12.x)
574
674
 
575
675
  Examples:
576
676
  - Health check: { "action": "health" }
577
- - Get version: { "action": "version" }`,
677
+ - Get version: { "action": "version" }
678
+ - Webhook events: { "action": "webhook_events", "flow_id_or_name": "my-flow" }`,
578
679
  inputSchema: {
579
680
  type: 'object',
580
681
  properties: {
581
682
  action: {
582
683
  type: 'string',
583
- enum: ['health', 'version', 'logs', 'list_pictures', 'get_picture', 'list_voices'],
684
+ enum: ['health', 'version', 'logs', 'list_pictures', 'get_picture', 'list_voices', 'session', 'webhook_events', 'health_check', 'healthz'],
584
685
  description: 'System action'
585
686
  },
586
687
  folder_name: { type: 'string', description: 'Folder name - for get_picture' },
587
688
  file_name: { type: 'string', description: 'File name - for get_picture' },
588
- stream: { type: 'boolean', description: 'Stream logs' }
689
+ stream: { type: 'boolean', description: 'Stream logs' },
690
+ flow_id_or_name: { type: 'string', description: 'Flow ID or name - for webhook_events' },
691
+ user_id: { type: 'string', description: 'User ID filter - for webhook_events' }
589
692
  },
590
693
  required: ['action']
591
694
  },
@@ -595,6 +698,669 @@ Examples:
595
698
  idempotentHint: true,
596
699
  openWorldHint: false
597
700
  }
701
+ },
702
+ {
703
+ name: 'flow_version',
704
+ description: `Manage flow versions and flow lifecycle events.
705
+
706
+ Actions:
707
+ - list: List versions of a flow
708
+ - create: Create a new flow version
709
+ - get: Get a specific flow version
710
+ - delete: Delete a flow version
711
+ - activate: Activate a flow version
712
+ - get_events: Get lifecycle events for a flow
713
+ - create_event: Create a lifecycle event for a flow
714
+
715
+ Examples:
716
+ - List: { "action": "list", "flow_id": "uuid" }
717
+ - Activate: { "action": "activate", "flow_id": "uuid", "version_id": "v1" }
718
+ - Create event: { "action": "create_event", "flow_id": "uuid", "type": "flow_settled" }`,
719
+ inputSchema: {
720
+ type: 'object',
721
+ properties: {
722
+ action: {
723
+ type: 'string',
724
+ enum: ['list', 'create', 'get', 'delete', 'activate', 'get_events', 'create_event'],
725
+ description: 'Flow version action'
726
+ },
727
+ flow_id: { type: 'string', description: 'Flow ID (UUID)' },
728
+ version_id: { type: 'string', description: 'Version ID - for get, delete, activate' },
729
+ body: { type: 'object', description: 'Version body - for create' },
730
+ save_draft: { type: 'boolean', description: 'Save draft on activate' },
731
+ limit: { type: 'number', description: 'Limit - for list' },
732
+ offset: { type: 'number', description: 'Offset - for list' },
733
+ deployment_provider_id: { type: 'string', description: 'Deployment provider ID - for list' },
734
+ since: { type: 'number', description: 'Since timestamp - for get_events' },
735
+ type: { type: 'string', description: 'Event type - for create_event' },
736
+ summary: { type: 'string', description: 'Event summary - for create_event' }
737
+ },
738
+ required: ['action']
739
+ },
740
+ annotations: {
741
+ readOnlyHint: false,
742
+ destructiveHint: true,
743
+ idempotentHint: false,
744
+ openWorldHint: true
745
+ }
746
+ },
747
+ {
748
+ name: 'file_v2',
749
+ description: `Manage user-scoped files via the v2 files API.
750
+
751
+ Actions:
752
+ - list: List all v2 files
753
+ - upload: Upload a file
754
+ - get: Get file metadata or content
755
+ - rename: Rename a file
756
+ - delete: Delete a file
757
+ - delete_all: Delete all files
758
+ - batch_download: Download multiple files
759
+ - batch_delete: Delete multiple files
760
+
761
+ Examples:
762
+ - List: { "action": "list" }
763
+ - Upload: { "action": "upload", "file_content": "base64...", "file_name": "doc.pdf" }
764
+ - Get: { "action": "get", "file_id": "id", "return_content": true }`,
765
+ inputSchema: {
766
+ type: 'object',
767
+ properties: {
768
+ action: {
769
+ type: 'string',
770
+ enum: ['list', 'upload', 'get', 'rename', 'delete', 'delete_all', 'batch_download', 'batch_delete'],
771
+ description: 'File V2 action'
772
+ },
773
+ file_id: { type: 'string', description: 'File ID - for get, rename, delete' },
774
+ file_ids: { type: 'array', items: { type: 'string' }, description: 'File IDs - for batch_download, batch_delete' },
775
+ file_content: { type: 'string', description: 'Base64 file content - for upload' },
776
+ file_name: { type: 'string', description: 'File name - for upload' },
777
+ name: { type: 'string', description: 'New name - for rename' },
778
+ append: { type: 'boolean', description: 'Append to existing file - for upload' },
779
+ ephemeral: { type: 'boolean', description: 'Ephemeral file - for upload' },
780
+ return_content: { type: 'boolean', description: 'Return file content - for get' }
781
+ },
782
+ required: ['action']
783
+ },
784
+ annotations: {
785
+ readOnlyHint: false,
786
+ destructiveHint: true,
787
+ idempotentHint: false,
788
+ openWorldHint: true
789
+ }
790
+ },
791
+ {
792
+ name: 'model',
793
+ description: `Manage LLM models and providers.
794
+
795
+ Actions:
796
+ - list: List available models
797
+ - providers: List all model providers
798
+ - provider_descriptors: List providers with stable IDs and display names (Langflow 1.12.x)
799
+ - enabled_providers: List enabled providers
800
+ - enabled_models: List enabled models
801
+ - set_enabled: Enable/disable models
802
+ - get_default: Get the default model for a type
803
+ - set_default: Set the default model for a type
804
+ - delete_default: Remove the default model for a type
805
+ - provider_mapping: Get provider-to-variable mapping
806
+ - validate_provider: Validate provider credentials
807
+ - options_language: Get language model options
808
+ - options_embedding: Get embedding model options
809
+
810
+ Examples:
811
+ - List: { "action": "list", "provider": "openai" }
812
+ - Set default: { "action": "set_default", "provider": "openai", "model_name": "gpt-4o", "model_type": "language" }
813
+ - Validate: { "action": "validate_provider", "provider": "openai", "variables": {} }`,
814
+ inputSchema: {
815
+ type: 'object',
816
+ properties: {
817
+ action: {
818
+ type: 'string',
819
+ enum: ['list', 'providers', 'provider_descriptors', 'enabled_providers', 'enabled_models', 'set_enabled', 'get_default', 'set_default', 'delete_default', 'provider_mapping', 'validate_provider', 'options_language', 'options_embedding'],
820
+ description: 'Model action'
821
+ },
822
+ provider: { type: 'string', description: 'Provider name - for list, set_default, validate_provider' },
823
+ providers: { type: 'array', items: { type: 'string' }, description: 'Provider filter - for enabled_providers' },
824
+ model_name: { type: 'string', description: 'Model name - for list, set_default' },
825
+ model_names: { type: 'array', items: { type: 'string' }, description: 'Model filter - for enabled_models' },
826
+ model_type: { type: 'string', description: 'Model type - for get_default, set_default, delete_default' },
827
+ models: { type: 'array', description: 'Models to enable/disable - for set_enabled' },
828
+ variables: { type: 'object', description: 'Provider credentials - for validate_provider' },
829
+ include_unsupported: { type: 'boolean', description: 'Include unsupported - for list' },
830
+ include_deprecated: { type: 'boolean', description: 'Include deprecated - for list' },
831
+ tool_calling: { type: 'boolean', description: 'Filter tool-calling models - for list' },
832
+ reasoning: { type: 'boolean', description: 'Filter reasoning models - for list' },
833
+ search: { type: 'string', description: 'Search query - for list' },
834
+ purpose: { type: 'string', enum: ['use', 'configure'], description: 'Optional provider visibility purpose' }
835
+ },
836
+ required: ['action']
837
+ },
838
+ annotations: {
839
+ readOnlyHint: false,
840
+ destructiveHint: false,
841
+ idempotentHint: false,
842
+ openWorldHint: true
843
+ }
844
+ },
845
+ {
846
+ name: 'agentic',
847
+ description: `Use the agentic assistant to configure and run flows.
848
+
849
+ Actions:
850
+ - assist: Get agentic assistance for a flow component
851
+ - assist_stream: Get streaming agentic assistance for a flow component
852
+ - assist_run: Run the assistant headlessly and persist flow changes (Langflow 1.12.x)
853
+ - check_config: Check whether agentic features are configured
854
+ - execute: Execute an agentic flow by name
855
+ - get_file: Read a file from the per-user agentic sandbox (Langflow 1.10.0)
856
+ - reset_session: Reset the agentic session/sandbox state (Langflow 1.10.0)
857
+
858
+ Examples:
859
+ - Assist: { "action": "assist", "flow_id": "uuid", "input_value": "help me" }
860
+ - Check config: { "action": "check_config" }
861
+ - Execute: { "action": "execute", "flow_name": "my-flow", "flow_id": "uuid" }
862
+ - Get file: { "action": "get_file", "path": "outputs/result.txt" }
863
+ - Reset session: { "action": "reset_session", "session_id": "sess-1" }`,
864
+ inputSchema: {
865
+ type: 'object',
866
+ properties: {
867
+ action: {
868
+ type: 'string',
869
+ enum: ['assist', 'assist_stream', 'assist_run', 'check_config', 'execute', 'get_file', 'reset_session'],
870
+ description: 'Agentic action'
871
+ },
872
+ flow_id: { type: 'string', description: 'Flow ID - for assist, execute' },
873
+ flow_name: { type: 'string', description: 'Flow name - for execute' },
874
+ input_value: { type: ['string', 'null'], description: 'Input value (server-configured limit)' },
875
+ instruction: { type: 'string', description: 'Headless assistant instruction - for assist_run' },
876
+ iterations_limit: { type: ['number', 'null'], description: 'Maximum iterations (1-200)' },
877
+ session_id: { type: ['string', 'null'], description: 'Session ID - for assist, assist_stream, reset_session' },
878
+ component_id: { type: ['string', 'null'], description: 'Component ID' },
879
+ field_name: { type: ['string', 'null'], description: 'Field name' },
880
+ model_name: { type: ['string', 'null'], description: 'Model name' },
881
+ provider: { type: ['string', 'null'], description: 'Provider' },
882
+ history_limit: { type: ['number', 'null'], description: 'Optional assistant history limit (0-100)' },
883
+ max_retries: { type: ['number', 'null'], description: 'Max retries (1-5)' },
884
+ path: { type: 'string', description: 'Relative sandbox file path - for get_file' },
885
+ download: { type: 'boolean', description: 'Return file as base64 attachment - for get_file' }
886
+ },
887
+ required: ['action']
888
+ },
889
+ annotations: {
890
+ readOnlyHint: false,
891
+ destructiveHint: true,
892
+ idempotentHint: false,
893
+ openWorldHint: true
894
+ }
895
+ },
896
+ {
897
+ name: 'workflow',
898
+ description: `Run and manage v2 workflows.
899
+
900
+ Actions:
901
+ - run: Run a workflow
902
+ - get_result: Get a workflow result (optionally by job_id)
903
+ - stop: Stop a running workflow
904
+ - pending: List pending human-in-the-loop requests for a required flow_id (Langflow 1.11.x)
905
+ - events: Re-attach to a workflow job event stream by job_id (Langflow 1.11.x)
906
+ - resume: Resume a paused HITL workflow with request_id and an optional decision (Langflow 1.11.x)
907
+ - run_public: Run a public workflow (Langflow 1.11.x)
908
+
909
+ Examples:
910
+ - Run: { "action": "run", "flow_id": "uuid" }
911
+ - Run with globals: { "action": "run", "flow_id": "uuid", "globals": { "API_KEY": "x" } }
912
+ - Get result: { "action": "get_result", "job_id": "job-1" }
913
+ - Stop: { "action": "stop", "job_id": "job-1" }
914
+ - Pending: { "action": "pending", "flow_id": "uuid" } (Langflow 1.11.x)
915
+ - Events: { "action": "events", "job_id": "job-1" } (Langflow 1.11.x)
916
+ - Resume: { "action": "resume", "job_id": "job-1", "request_id": "request-1", "decision": { "approved": true } } (Langflow 1.11.x)
917
+ - Run public: { "action": "run_public", "flow_id": "uuid" } (Langflow 1.11.x)`,
918
+ inputSchema: {
919
+ type: 'object',
920
+ properties: {
921
+ action: {
922
+ type: 'string',
923
+ enum: ['run', 'get_result', 'stop', 'pending', 'events', 'resume', 'run_public'],
924
+ description: 'Workflow action'
925
+ },
926
+ flow_id: { type: 'string', description: 'Flow ID - for run, run_public; filter for pending' },
927
+ input_value: { type: 'string', description: 'Chat-style input value - for run, run_public' },
928
+ mode: { type: 'string', enum: ['sync', 'stream', 'background'], description: 'Execution mode - for run' },
929
+ stream_protocol: { type: 'string', description: 'Streaming protocol - for run, run_public' },
930
+ expose_graph_state: {
931
+ type: ['boolean', 'null'],
932
+ description: 'For run only: include per-node graph events in streaming output. Omitted or null uses the protocol default: false for AG-UI and true for Langflow; ignored in sync mode.'
933
+ },
934
+ data: { type: ['object', 'null'], description: 'Live-canvas data override - for run' },
935
+ files: { type: ['array', 'null'], items: { type: 'string' }, description: 'Pre-uploaded file paths - for run, run_public' },
936
+ globals: { type: 'object', description: 'Request-level global variables - for run' },
937
+ idempotency_key: { type: ['string', 'null'], description: 'Background deduplication key - for run' },
938
+ output_ids: { type: ['array', 'null'], items: { type: 'string' }, description: 'Sync output component IDs - for run' },
939
+ session_id: { type: ['string', 'null'], description: 'Session ID - for run, run_public' },
940
+ start_component_id: { type: ['string', 'null'], description: 'Partial-run start component - for run, run_public' },
941
+ stop_component_id: { type: ['string', 'null'], description: 'Partial-run stop component - for run, run_public' },
942
+ tweaks: { type: 'object', description: 'Per-component overrides - for run' },
943
+ request_id: { type: 'string', description: 'Pending request ID - for resume (Langflow 1.11.x)' },
944
+ decision: { type: ['object', 'null'], description: 'Optional HITL decision payload - for resume (Langflow 1.11.x)' },
945
+ job_id: { type: 'string', description: 'Job ID - for get_result, stop, events, resume' }
946
+ },
947
+ required: ['action']
948
+ },
949
+ annotations: {
950
+ readOnlyHint: false,
951
+ destructiveHint: false,
952
+ idempotentHint: false,
953
+ openWorldHint: true
954
+ }
955
+ },
956
+ {
957
+ name: 'a2a',
958
+ description: `A2A (Agent-to-Agent) protocol (Langflow 1.11.x). Requires server-side A2A enablement (LANGFLOW_A2A_ENABLED).
959
+
960
+ Actions:
961
+ - list_agents: List available A2A agents
962
+ - agent_card: Get a flow's A2A agent card (.well-known/agent-card.json)
963
+ - jsonrpc: Invoke a flow via the A2A JSON-RPC endpoint (write; passthrough envelope)
964
+
965
+ Examples:
966
+ - List agents: { "action": "list_agents" }
967
+ - Agent card: { "action": "agent_card", "flow_id": "uuid" }
968
+ - JSON-RPC: { "action": "jsonrpc", "flow_id": "uuid", "method": "message/send", "params": {} }`,
969
+ inputSchema: {
970
+ type: 'object',
971
+ properties: {
972
+ action: {
973
+ type: 'string',
974
+ enum: ['list_agents', 'agent_card', 'jsonrpc'],
975
+ description: 'A2A action'
976
+ },
977
+ flow_id: { type: 'string', description: 'Flow ID - for agent_card, jsonrpc' },
978
+ jsonrpc: { type: 'string', description: 'JSON-RPC version (e.g. "2.0") - for jsonrpc' },
979
+ method: { type: 'string', description: 'JSON-RPC method name - for jsonrpc' },
980
+ params: { type: ['object', 'array'], description: 'JSON-RPC params (object or positional array) - for jsonrpc' },
981
+ id: { type: ['string', 'number'], description: 'JSON-RPC request ID - for jsonrpc' }
982
+ },
983
+ required: ['action']
984
+ },
985
+ annotations: {
986
+ readOnlyHint: false,
987
+ destructiveHint: false,
988
+ idempotentHint: false,
989
+ openWorldHint: true
990
+ }
991
+ },
992
+ {
993
+ name: 'mcp_server',
994
+ description: `Manage MCP servers registered with Langflow.
995
+
996
+ Actions:
997
+ - list: List MCP servers
998
+ - get: Get an MCP server by name
999
+ - create: Create an MCP server
1000
+ - update: Update an MCP server
1001
+ - delete: Delete an MCP server
1002
+
1003
+ Examples:
1004
+ - List: { "action": "list" }
1005
+ - Create: { "action": "create", "server_name": "my-server", "config": { "command": "npx" } }
1006
+ - Delete: { "action": "delete", "server_name": "my-server" }`,
1007
+ inputSchema: {
1008
+ type: 'object',
1009
+ properties: {
1010
+ action: {
1011
+ type: 'string',
1012
+ enum: ['list', 'get', 'create', 'update', 'delete'],
1013
+ description: 'MCP server action'
1014
+ },
1015
+ server_name: { type: 'string', description: 'Server name - for get, create, update, delete' },
1016
+ config: { type: 'object', description: 'Server config {command,args,env,url,headers} - for create, update' },
1017
+ action_count: { type: 'boolean', description: 'Include action counts - for list' }
1018
+ },
1019
+ required: ['action']
1020
+ },
1021
+ annotations: {
1022
+ readOnlyHint: false,
1023
+ destructiveHint: true,
1024
+ idempotentHint: false,
1025
+ openWorldHint: true
1026
+ }
1027
+ },
1028
+ {
1029
+ name: 'mcp_project',
1030
+ description: `Manage MCP project configuration and installation.
1031
+
1032
+ Actions:
1033
+ - get_config: Get MCP config for a project
1034
+ - update_config: Update MCP config for a project
1035
+ - get_installed: Get installed MCP clients for a project
1036
+ - install: Install MCP for a project into a client
1037
+ - get_composer_url: Get the MCP composer URL for a project
1038
+
1039
+ Examples:
1040
+ - Get config: { "action": "get_config", "project_id": "uuid" }
1041
+ - Install: { "action": "install", "project_id": "uuid", "client": "cursor" }`,
1042
+ inputSchema: {
1043
+ type: 'object',
1044
+ properties: {
1045
+ action: {
1046
+ type: 'string',
1047
+ enum: ['get_config', 'update_config', 'get_installed', 'install', 'get_composer_url'],
1048
+ description: 'MCP project action'
1049
+ },
1050
+ project_id: { type: 'string', description: 'Project ID (UUID)' },
1051
+ mcp_enabled: { type: 'boolean', description: 'Filter by enabled - for get_config' },
1052
+ settings: { type: 'array', description: 'Settings array - for update_config' },
1053
+ auth_settings: { type: 'object', description: 'Auth settings - for update_config' },
1054
+ client: { type: 'string', description: 'Client name - for install' },
1055
+ transport: { type: 'string', description: 'Transport - for install' }
1056
+ },
1057
+ required: ['action']
1058
+ },
1059
+ annotations: {
1060
+ readOnlyHint: false,
1061
+ destructiveHint: false,
1062
+ idempotentHint: false,
1063
+ openWorldHint: true
1064
+ }
1065
+ },
1066
+ {
1067
+ name: 'trace',
1068
+ description: `Inspect and manage execution traces.
1069
+
1070
+ Actions:
1071
+ - list: List traces with filters
1072
+ - get: Get a specific trace
1073
+ - delete: Delete a specific trace
1074
+ - delete_by_flow: Delete all traces for a flow
1075
+
1076
+ Examples:
1077
+ - List: { "action": "list", "flow_id": "uuid" }
1078
+ - Get: { "action": "get", "trace_id": "t1" }
1079
+ - Delete by flow: { "action": "delete_by_flow", "flow_id": "uuid" }`,
1080
+ inputSchema: {
1081
+ type: 'object',
1082
+ properties: {
1083
+ action: {
1084
+ type: 'string',
1085
+ enum: ['list', 'get', 'delete', 'delete_by_flow'],
1086
+ description: 'Trace action'
1087
+ },
1088
+ trace_id: { type: 'string', description: 'Trace ID - for get, delete' },
1089
+ flow_id: { type: 'string', description: 'Flow ID - for list, delete_by_flow' },
1090
+ session_id: { type: 'string', description: 'Session filter - for list' },
1091
+ status: { type: 'string', description: 'Status filter - for list' },
1092
+ query: { type: 'string', description: 'Query filter - for list' },
1093
+ start_time: { type: 'string', description: 'Start time filter - for list' },
1094
+ end_time: { type: 'string', description: 'End time filter - for list' },
1095
+ page: { type: 'number', description: 'Page number - for list' },
1096
+ size: { type: 'number', description: 'Page size - for list' }
1097
+ },
1098
+ required: ['action']
1099
+ },
1100
+ annotations: {
1101
+ readOnlyHint: false,
1102
+ destructiveHint: true,
1103
+ idempotentHint: false,
1104
+ openWorldHint: true
1105
+ }
1106
+ },
1107
+ {
1108
+ name: 'response',
1109
+ description: `Create OpenAI-compatible responses via the /responses endpoint.
1110
+
1111
+ Actions:
1112
+ - create: Create a response
1113
+
1114
+ Examples:
1115
+ - Create: { "action": "create", "model": "gpt-4o", "input": "Hello" }`,
1116
+ inputSchema: {
1117
+ type: 'object',
1118
+ properties: {
1119
+ action: {
1120
+ type: 'string',
1121
+ enum: ['create'],
1122
+ description: 'Response action'
1123
+ },
1124
+ model: { type: 'string', description: 'Model name' },
1125
+ input: { type: 'string', description: 'Input text' },
1126
+ stream: { type: 'boolean', description: 'Stream the response' },
1127
+ background: { type: 'boolean', description: 'Run in background' },
1128
+ previous_response_id: { type: 'string', description: 'Previous response ID for continuation' },
1129
+ include: { type: 'array', items: { type: 'string' }, description: 'Fields to include' },
1130
+ tools: { type: 'array', description: 'Tools available to the response' }
1131
+ },
1132
+ required: ['action']
1133
+ },
1134
+ annotations: {
1135
+ readOnlyHint: false,
1136
+ destructiveHint: false,
1137
+ idempotentHint: false,
1138
+ openWorldHint: true
1139
+ }
1140
+ },
1141
+ {
1142
+ name: 'authz',
1143
+ description: `Manage RBAC authorization (Langflow 1.10.0): roles, role assignments, teams, shares, audit, and effective permissions. Most write actions require a superuser.
1144
+
1145
+ Actions:
1146
+ - list_roles: List roles
1147
+ - get_role: Get a role by ID
1148
+ - create_role: Create a role (superuser)
1149
+ - update_role: Update a role (superuser)
1150
+ - delete_role: Delete a role (superuser)
1151
+ - list_role_assignments: List role assignments
1152
+ - create_role_assignment: Assign a role to a user (superuser)
1153
+ - delete_role_assignment: Remove a role assignment (superuser)
1154
+ - list_teams: List teams
1155
+ - get_team: Get a team by ID
1156
+ - create_team: Create a team (superuser)
1157
+ - update_team: Update a team (superuser)
1158
+ - delete_team: Delete a team (superuser)
1159
+ - list_team_members: List members of a team
1160
+ - add_team_member: Add a member to a team (superuser)
1161
+ - remove_team_member: Remove a member from a team (superuser)
1162
+ - list_shares: List resource shares
1163
+ - get_share: Get a share by ID
1164
+ - create_share: Create a resource share
1165
+ - update_share: Update a share's permission level
1166
+ - delete_share: Delete a share
1167
+ - audit: Query the authorization audit log (superuser)
1168
+ - my_permissions: Get the caller's effective permissions for resources
1169
+
1170
+ Examples:
1171
+ - List roles: { "action": "list_roles" }
1172
+ - Create role: { "action": "create_role", "name": "editor", "permissions": ["flow:read"] }
1173
+ - Assign role: { "action": "create_role_assignment", "user_id": "uuid", "role_id": "uuid" }
1174
+ - My permissions: { "action": "my_permissions", "resource_type": "flow", "resource_ids": ["uuid"] }`,
1175
+ inputSchema: {
1176
+ type: 'object',
1177
+ properties: {
1178
+ action: {
1179
+ type: 'string',
1180
+ enum: ['list_roles', 'get_role', 'create_role', 'update_role', 'delete_role', 'list_role_assignments', 'create_role_assignment', 'delete_role_assignment', 'list_teams', 'get_team', 'create_team', 'update_team', 'delete_team', 'list_team_members', 'add_team_member', 'remove_team_member', 'list_shares', 'get_share', 'create_share', 'update_share', 'delete_share', 'audit', 'my_permissions'],
1181
+ description: 'Authz action'
1182
+ },
1183
+ role_id: { type: 'string', description: 'Role ID - for get_role, update_role, delete_role, create_role_assignment; filter for list_role_assignments' },
1184
+ assignment_id: { type: 'string', description: 'Role assignment ID - for delete_role_assignment' },
1185
+ team_id: { type: 'string', description: 'Team ID - for team actions' },
1186
+ share_id: { type: 'string', description: 'Share ID - for get_share, update_share, delete_share' },
1187
+ user_id: { type: 'string', description: 'User ID - for role assignments, team members' },
1188
+ name: { type: 'string', description: 'Role name - for create_role, update_role; filter for list_roles' },
1189
+ description: { type: 'string', description: 'Description - for create/update role' },
1190
+ permissions: { type: 'array', items: { type: 'string' }, description: 'Permission slugs - for create/update role' },
1191
+ parent_role_id: { type: 'string', description: 'Parent role ID - for create/update role' },
1192
+ domain_type: { type: 'string', enum: ['global', 'org', 'workspace', 'project'], description: 'Assignment domain type - for create_role_assignment' },
1193
+ domain_id: { type: 'string', description: 'Assignment domain ID - for create_role_assignment' },
1194
+ team_name: { type: 'string', description: 'Team display name - for create/update team' },
1195
+ adom_name: { type: 'string', description: 'Team unique slug - for create/update team' },
1196
+ is_active: { type: 'boolean', description: 'Active flag - for create/update team; filter for list_teams' },
1197
+ source: { type: 'string', enum: ['manual', 'sso'], description: 'Member source - for add_team_member' },
1198
+ resource_type: { type: 'string', description: 'Resource type - for shares and my_permissions' },
1199
+ resource_id: { type: 'string', description: 'Resource ID - for create_share; filter for list_shares' },
1200
+ resource_ids: { type: 'array', items: { type: 'string' }, description: 'Resource IDs - for my_permissions' },
1201
+ scope: { type: 'string', enum: ['private', 'team', 'user', 'public'], description: 'Share scope - for create_share; filter for list_shares' },
1202
+ target_id: { type: 'string', description: 'Share target (team/user) ID - for create_share' },
1203
+ permission_level: { type: 'string', enum: ['read', 'write', 'execute', 'admin'], description: 'Permission level - for create_share, update_share' },
1204
+ actions: { type: 'array', items: { type: 'string' }, description: 'Actions to check - for my_permissions' },
1205
+ domain: { type: 'string', description: 'Permission domain - for my_permissions' },
1206
+ audit_action: { type: 'string', description: 'Audited action name filter - for audit' },
1207
+ actor_type: { type: 'string', enum: ['user', 'api_key', 'unknown', 'anonymous_public'], description: 'Credential actor type filter; unknown also includes legacy rows without a type - for audit' },
1208
+ actor_id: { type: 'string', description: 'Credential actor UUID filter - for audit' },
1209
+ exclude_action: { type: 'array', items: { type: 'string' }, description: 'Exclude rows matching any of these action names - for audit' },
1210
+ result: { type: 'string', enum: ['allow', 'deny', 'owner_override', 'skip'], description: 'Audit result filter - for audit' },
1211
+ event: { type: 'array', items: { type: 'string' }, description: 'Include rows matching any of these details.event classes - for audit' },
1212
+ exclude_event: { type: 'array', items: { type: 'string' }, description: 'Exclude these details.event classes; legacy unclassified rows remain included - for audit' },
1213
+ since: { type: 'string', description: 'Audit lower time bound (ISO) - for audit' },
1214
+ until: { type: 'string', description: 'Audit upper time bound (ISO) - for audit' },
1215
+ is_system: { type: 'boolean', description: 'Filter system roles - for list_roles' },
1216
+ search: { type: 'string', description: 'Search filter - for list_teams' },
1217
+ limit: { type: 'number', description: 'Result limit - for list actions' },
1218
+ offset: { type: 'number', description: 'Result offset - for list actions' },
1219
+ page: { type: 'number', description: 'Page number - for audit' },
1220
+ size: { type: 'number', description: 'Page size - for audit' }
1221
+ },
1222
+ required: ['action']
1223
+ },
1224
+ annotations: {
1225
+ readOnlyHint: false,
1226
+ destructiveHint: true,
1227
+ idempotentHint: false,
1228
+ openWorldHint: true
1229
+ }
1230
+ },
1231
+ {
1232
+ name: 'memory',
1233
+ description: `Manage MemoryBases (Langflow 1.12.3). Note: this is an experimental Langflow API hidden from its OpenAPI schema; availability may vary by deployment.
1234
+
1235
+ Actions:
1236
+ - create: Create a memory base bound to a flow
1237
+ - list: List memory bases (optionally filtered by flow)
1238
+ - get: Get a memory base by ID
1239
+ - list_sessions: List sessions tracked by a memory base
1240
+ - list_messages: List messages in a memory base (optionally by session)
1241
+ - update: Update a memory base (name, threshold, auto_capture)
1242
+ - delete: Delete a memory base
1243
+ - flush: Flush a session into the memory base
1244
+ - mismatch: Check whether the memory base has an embedding mismatch
1245
+ - regenerate: Regenerate the memory base
1246
+
1247
+ Examples:
1248
+ - Create: { "action": "create", "name": "mb", "flow_id": "uuid" }
1249
+ - List: { "action": "list", "flow_id": "uuid" }
1250
+ - Flush: { "action": "flush", "memory_base_id": "uuid", "session_id": "sess-1" }`,
1251
+ inputSchema: {
1252
+ type: 'object',
1253
+ properties: {
1254
+ action: {
1255
+ type: 'string',
1256
+ enum: ['create', 'list', 'get', 'list_sessions', 'list_messages', 'update', 'delete', 'flush', 'mismatch', 'regenerate'],
1257
+ description: 'Memory base action'
1258
+ },
1259
+ memory_base_id: { type: 'string', description: 'Memory base ID - for get, list_sessions, list_messages, update, delete, flush, mismatch, regenerate' },
1260
+ name: { type: 'string', description: 'Memory base name - for create, update' },
1261
+ flow_id: { type: 'string', description: 'Flow ID - for create; filter for list' },
1262
+ threshold: { type: 'number', description: 'Capture threshold - for create, update' },
1263
+ auto_capture: { type: 'boolean', description: 'Auto-capture flag - for create, update' },
1264
+ embedding_provider: { type: 'string', description: 'Embedding provider selected for the embedding model - for create' },
1265
+ embedding_model: { type: 'string', description: 'Embedding model - for create' },
1266
+ preprocessing: { type: 'boolean', description: 'Enable preprocessing - for create' },
1267
+ preproc_model: { type: 'string', description: 'Preprocessing model (required when preprocessing enabled) - for create' },
1268
+ preproc_instructions: { type: 'string', description: 'Preprocessing instructions - for create' },
1269
+ preproc_kill_phrase: { type: 'string', description: 'Preprocessing kill phrase - for create' },
1270
+ session_id: { type: 'string', description: 'Session ID - for flush; filter for list_messages' },
1271
+ page: { type: 'number', description: 'Page number - for list, list_sessions, list_messages' },
1272
+ size: { type: 'number', description: 'Page size - for list, list_sessions, list_messages' }
1273
+ },
1274
+ required: ['action']
1275
+ },
1276
+ annotations: {
1277
+ readOnlyHint: false,
1278
+ destructiveHint: true,
1279
+ idempotentHint: false,
1280
+ openWorldHint: true
1281
+ }
1282
+ },
1283
+ {
1284
+ name: 'extension',
1285
+ description: `Manage Langflow extensions (Langflow 1.10.0).
1286
+
1287
+ Actions:
1288
+ - reload: Reload an extension bundle (requires LANGFLOW_ENABLE_EXTENSION_RELOAD on the server)
1289
+ - events: Poll extension events for the current user
1290
+
1291
+ Examples:
1292
+ - Reload: { "action": "reload", "extension_id": "ext", "bundle_name": "bundle" }
1293
+ - Events: { "action": "events", "since": 0 }`,
1294
+ inputSchema: {
1295
+ type: 'object',
1296
+ properties: {
1297
+ action: {
1298
+ type: 'string',
1299
+ enum: ['reload', 'events'],
1300
+ description: 'Extension action'
1301
+ },
1302
+ extension_id: { type: 'string', description: 'Extension ID - for reload' },
1303
+ bundle_name: { type: 'string', description: 'Bundle name - for reload' },
1304
+ since: { type: 'number', description: 'UTC epoch cursor; return events after this - for events' }
1305
+ },
1306
+ required: ['action']
1307
+ },
1308
+ annotations: {
1309
+ readOnlyHint: false,
1310
+ destructiveHint: false,
1311
+ idempotentHint: false,
1312
+ openWorldHint: true
1313
+ }
1314
+ },
1315
+ {
1316
+ name: 'governance',
1317
+ description: `Manage Langflow 1.12.x governance policies (superuser-only endpoints).
1318
+
1319
+ Actions:
1320
+ - get_model_provider_policy / replace_model_provider_policy
1321
+ - get_catalog_component_policy / replace_catalog_component_policy
1322
+ - get_catalog_template_policy / replace_catalog_template_policy
1323
+ - get_catalog_policy_usage / get_catalog_policy_usage_flows
1324
+ - get_policy_bundle / replace_policy_bundle
1325
+ - list_policy_bundle_history / rollback_policy_bundle
1326
+
1327
+ Policy replacements are complete-set operations. Read the current revision before
1328
+ using replace or rollback so optimistic concurrency conflicts are visible.`,
1329
+ inputSchema: {
1330
+ type: 'object',
1331
+ properties: {
1332
+ action: {
1333
+ type: 'string',
1334
+ enum: [
1335
+ 'get_model_provider_policy', 'replace_model_provider_policy',
1336
+ 'get_catalog_component_policy', 'replace_catalog_component_policy',
1337
+ 'get_catalog_template_policy', 'replace_catalog_template_policy',
1338
+ 'get_catalog_policy_usage', 'get_catalog_policy_usage_flows',
1339
+ 'get_policy_bundle', 'replace_policy_bundle',
1340
+ 'list_policy_bundle_history', 'rollback_policy_bundle'
1341
+ ],
1342
+ description: 'Governance action'
1343
+ },
1344
+ approved_provider_ids: { type: 'array', items: { type: 'string' }, description: 'Complete approved provider set' },
1345
+ blocked: { type: 'array', items: { type: 'string' }, description: 'Complete blocked catalog key set' },
1346
+ component: { type: 'string', description: 'Catalog component key - for usage flows' },
1347
+ limit: { type: 'number', description: 'Result limit' },
1348
+ expected_revision: { type: 'number', description: 'Current revision for optimistic concurrency' },
1349
+ blocked_component_keys: { type: 'array', items: { type: 'string' } },
1350
+ blocked_template_keys: { type: 'array', items: { type: 'string' } },
1351
+ blocked_model_keys: { type: 'array', items: { type: 'string' } },
1352
+ reason: { type: ['string', 'null'], description: 'Optional policy change reason' },
1353
+ revision: { type: 'number', description: 'Target revision - for rollback' },
1354
+ before_revision: { type: ['number', 'null'], description: 'History cursor' }
1355
+ },
1356
+ required: ['action']
1357
+ },
1358
+ annotations: {
1359
+ readOnlyHint: false,
1360
+ destructiveHint: true,
1361
+ idempotentHint: false,
1362
+ openWorldHint: true
1363
+ }
598
1364
  }
599
1365
  ];
600
1366
  //# sourceMappingURL=tools-consolidated.js.map