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/.env.example CHANGED
@@ -40,8 +40,26 @@ ENABLE_DEPRECATED_TOOLS=true
40
40
 
41
41
  # HTTP Server Configuration
42
42
  PORT=3000
43
- HOST=0.0.0.0
43
+ # Keep local deployments on loopback. Set HOST=0.0.0.0 only with AUTH_TOKEN
44
+ # and a TLS-terminating reverse proxy.
45
+ HOST=127.0.0.1
44
46
 
45
47
  # Authentication token for HTTP mode
46
48
  # Generate with: openssl rand -base64 32
47
49
  AUTH_TOKEN=your-secure-token-here
50
+
51
+ # Optional exact origins for browser-based MCP clients (comma-separated).
52
+ # Wildcard origins are not accepted.
53
+ MCP_ALLOWED_ORIGINS=
54
+
55
+ # Optional: return JSON instead of SSE for single HTTP requests.
56
+ # Streamable HTTP clients normally support the default SSE response.
57
+ MCP_HTTP_JSON_RESPONSES=false
58
+
59
+ # HTTP resource limits. The defaults are safe for a small self-hosted server.
60
+ # MCP_MAX_SESSIONS=100
61
+ # MCP_SESSION_IDLE_TIMEOUT_MS=1800000
62
+ # MCP_MAX_CONCURRENT_REQUESTS=100
63
+ # MCP_MAX_CONCURRENT_BODY_BYTES=67108864
64
+ # MCP_REQUEST_BODY_TIMEOUT_MS=30000
65
+ # MCP_SHUTDOWN_TIMEOUT_MS=5000
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![npm downloads](https://img.shields.io/npm/dm/langflow-mcp-server.svg)](https://www.npmjs.com/package/langflow-mcp-server)
5
5
  [![GitHub release](https://img.shields.io/github/v/release/nobrainer-tech/langflow-mcp)](https://github.com/nobrainer-tech/langflow-mcp/releases)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
- [![Tests](https://img.shields.io/badge/tests-771%20passing-brightgreen.svg)](https://github.com/nobrainer-tech/langflow-mcp)
7
+ [![Tests](https://img.shields.io/badge/tests-974%20passing-brightgreen.svg)](https://github.com/nobrainer-tech/langflow-mcp)
8
8
  [![MCP Badge](https://lobehub.com/badge/mcp/nobrainer-tech-langflow-mcp)](https://lobehub.com/mcp/nobrainer-tech-langflow-mcp)
9
9
 
10
10
  A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Langflow workflow automation platform.
@@ -13,16 +13,20 @@ A Model Context Protocol (MCP) server that provides AI assistants with comprehen
13
13
 
14
14
  langflow-mcp-server serves as a bridge between Langflow's workflow automation platform and AI models, enabling them to understand and work with Langflow flows effectively.
15
15
 
16
- **API Compatibility**: This server is built on the [Langflow API documentation](https://docs.langflow.org/api) and supports Langflow API version **1.7.2**.
16
+ **API Compatibility**: This server is built on the [Langflow API documentation](https://docs.langflow.org/api) and supports Langflow API version **1.12.4** in the 1.12.x family. The latest stable upstream release check on **2026-09-30** found `v1.12.4` (published **2026-09-29**). The `v1.12.3` to `v1.12.4` comparison of the client-relevant API found no new, removed, or renamed routes and no fields added to or removed from the request and response models this server uses. The patch is a security-hardening release that tightens access and validation rules, so Langflow may now reject calls it used to accept (for example `globals` or `tweaks` from a non-owner on a flow that stores the owner's credentials, unknown audit-log `result` or `actor_type` filters, unsafe file names, or a second role in the same assignment scope); the client surfaces those errors through its normal error handling. Workflow runs expose the optional `expose_graph_state` control added in 1.12.3: omitted or `null` uses the protocol default (conversation-only for AG-UI, graph events for Langflow); synchronous runs ignore it, and stream or background runs by a non-owner of a shared flow always run with it off. Existing client methods pass MCP project responses through and surface the MCP server endpoint's 404 through normal error handling. Memory Base creation exposes the optional `embedding_provider` added in 1.12.1. The 1.12.x API family adds headless agentic execution, provider descriptors, project upsert, governance policy endpoints, and a Kubernetes-style readiness probe. Existing A2A, v2 workflow HITL/public execution, and public build lifecycle support remains available.
17
17
 
18
- ### v3.0.0 - Consolidated Tools Mode
18
+ **Versioning**: From `4.10.0` onward, the npm minor version mirrors the supported Langflow minor - `langflow-mcp-server@4.<langflow_minor>.x` targets Langflow `1.<langflow_minor>.x` (so `4.12.x` targets Langflow `1.12.x`, `4.11.x` targets Langflow `1.11.x`). The patch component is used for fixes within the same Langflow minor.
19
19
 
20
- Version 3.0.0 introduces **Consolidated Tools Mode** - a new architecture that groups 93 individual tools into **15 action-based tools**. This significantly reduces token usage and improves AI assistant context management.
20
+ The **2026-10-05** source review reconfirmed [Langflow 1.12.4](https://github.com/langflow-ai/langflow/releases/tag/v1.12.4) as the latest stable release. Audit-log queries support credential actors and include/exclude event filters in both MCP modes. Enabled-provider, enabled-model, and store list filters use repeated query keys, as required by Langflow's list parameters. Regression tests check the actual HTTP requests, including requests from an installed npm tarball in both MCP modes. This evidence covers source contracts and local HTTP fixtures, not an end-to-end run against every Langflow deployment. Langflow 1.12.4 also changes the knowledge-base chunk-preview default separator to an empty string and applies fallback separators to keep chunks within the requested size. Development builds of Langflow 1.13 are not covered by the compatibility claim above.
21
+
22
+ ### Consolidated Tools Mode
23
+
24
+ **Consolidated Tools Mode** is an architecture that groups the 236 individual tools into **29 action-based meta-tools**. This significantly reduces token usage and improves AI assistant context management.
21
25
 
22
26
  | Mode | Tools | Best For |
23
27
  |------|-------|----------|
24
- | Standard | 93 tools | Full granular control |
25
- | Consolidated | 15 tools | Reduced token usage, better context |
28
+ | Standard | 236 tools | Full granular control |
29
+ | Consolidated | 29 tools | Reduced token usage, better context |
26
30
 
27
31
  To enable consolidated mode:
28
32
  ```bash
@@ -30,21 +34,35 @@ LANGFLOW_CONSOLIDATED_TOOLS=true
30
34
  ```
31
35
 
32
36
  **Consolidated tools:**
33
- - `flow` - All flow operations (list, get, create, update, delete, download, upload, etc.)
37
+ - `flow` - All flow operations (list, get, create, update, delete, download, upload, replace, expand, batch, public, note_translations)
34
38
  - `flow_execution` - Run flows (run, run_advanced, run_session, webhook, process, predict)
35
- - `build` - Build operations (start, status, cancel, vertices)
39
+ - `flow_version` - Flow versions and lifecycle events (list, create, get, delete, activate, get_events, create_event)
40
+ - `build` - Build operations (start, status, cancel, public build lifecycle, vertices)
41
+ - `workflow` - Run and manage v2 workflows (run with request-level globals, get_result, stop, plus HITL/public execution)
42
+ - `agentic` - Agentic assistant + sandbox (assist, assist_stream, assist_run, check_config, execute, get_file, reset_session)
36
43
  - `folder` - Folder management (list, get, create, update, delete, download, upload)
37
- - `project` - Project management (list, get, create, update, delete, download, upload)
38
- - `variable` - Variable operations (list, create, update, delete)
39
- - `knowledge_base` - Knowledge base management (list, get, delete, bulk_delete, upload)
40
- - `file` - File operations (list, upload, download, delete, get_image)
41
- - `monitor` - Monitoring (builds, messages, sessions, transactions)
42
- - `user` - User management (list, get, get_current, update, reset_password)
43
- - `auth` - Authentication (login, auto_login, logout, refresh, api keys)
44
- - `store` - Component store (list, get, tags, likes)
44
+ - `project` - Project management (list, get, create, update, upsert, delete, download, upload)
45
+ - `variable` - Variable operations (list, create, update, delete, detect)
46
+ - `knowledge_base` - Knowledge base management (list, get, delete, bulk_delete, upload, create, preview/list chunks, ingest, cancel_ingest, test_connection, list_connectors, ingest_folder, ingest_connector, metadata_keys, list_runs, get_run)
47
+ - `memory` - Memory bases (create, list, get, list_sessions, list_messages, update, delete, flush, mismatch, regenerate) — experimental Langflow API
48
+ - `file` - Flow-scoped file operations (list, upload, download, delete, get_image)
49
+ - `file_v2` - User-scoped v2 files (list, upload, get, rename, delete, delete_all, batch_download, batch_delete)
50
+ - `monitor` - Monitoring (builds, messages, sessions, transactions, job_queue)
51
+ - `trace` - Execution traces (list, get, delete, delete_by_flow)
52
+ - `model` - Models and providers (list, providers, provider descriptors, enabled, default get/set/delete, mapping, validate, options)
53
+ - `governance` - Langflow 1.12.x provider, catalog, and policy-bundle administration
54
+ - `authz` - RBAC authorization (roles, role assignments, teams, shares, audit, my permissions)
55
+ - `user` - User management (list, get_current, update, reset_password, create)
56
+ - `auth` - Authentication (login, auto_login, logout, refresh, api keys, save_store_key)
57
+ - `store` - Component store (list, get, tags, likes, save_api_key, create, like, update_custom)
45
58
  - `registration` - User registration (get, register)
46
59
  - `validation` - Code/prompt validation (code, prompt)
47
- - `system` - System info (health, version, logs, pictures, voices)
60
+ - `mcp_server` - MCP server management (list, get, create, update, delete)
61
+ - `mcp_project` - MCP project config/install (get/update config, get_installed, install, composer_url)
62
+ - `extension` - Langflow extensions (reload, events)
63
+ - `response` - OpenAI-compatible responses (create)
64
+ - `system` - System info (health, version, logs, pictures, voices, session, webhook_events, health_check, healthz)
65
+ - `a2a` - A2A (Agent-to-Agent) protocol (list_agents, agent_card, jsonrpc)
48
66
 
49
67
  It provides structured access to:
50
68
 
@@ -61,7 +79,7 @@ It provides structured access to:
61
79
 
62
80
  ### Prerequisites
63
81
 
64
- - Node.js installed on your system
82
+ - Node.js 20 or newer installed on your system
65
83
  - A running Langflow instance
66
84
  - Langflow API key
67
85
 
@@ -143,6 +161,79 @@ Add to your Claude Desktop config file:
143
161
 
144
162
  Restart Claude Desktop after updating configuration.
145
163
 
164
+ ### Claude Code, Codex, and other MCP hosts
165
+
166
+ The server supports both standard MCP transports: local `stdio` and remote
167
+ Streamable HTTP. MCP clients use the same tool and schema surface regardless
168
+ of transport. Use `stdio` when the host can launch a local process; use HTTP
169
+ when the server runs as a separately deployed service.
170
+
171
+ #### Codex CLI — local stdio
172
+
173
+ ```bash
174
+ codex mcp add langflow \
175
+ --env LANGFLOW_BASE_URL=http://localhost:7860 \
176
+ --env LANGFLOW_API_KEY=your-api-key-here \
177
+ -- npx -y langflow-mcp-server
178
+ ```
179
+
180
+ #### Claude Code — local stdio
181
+
182
+ ```bash
183
+ claude mcp add langflow \
184
+ -e LANGFLOW_BASE_URL=http://localhost:7860 \
185
+ -e LANGFLOW_API_KEY=your-api-key-here \
186
+ -- npx -y langflow-mcp-server
187
+ ```
188
+
189
+ #### Remote Streamable HTTP
190
+
191
+ Start the server with an explicit bearer token when binding outside the local
192
+ machine. `HOST=127.0.0.1` is the secure default; use `HOST=0.0.0.0` only with
193
+ authentication and a TLS-terminating reverse proxy.
194
+
195
+ ```bash
196
+ MCP_MODE=http \
197
+ HOST=0.0.0.0 \
198
+ PORT=3000 \
199
+ AUTH_TOKEN=replace-with-a-long-random-token \
200
+ LANGFLOW_BASE_URL=https://langflow.example.com \
201
+ LANGFLOW_API_KEY=your-api-key-here \
202
+ npx -y langflow-mcp-server
203
+ ```
204
+
205
+ The MCP endpoint is `https://your-host.example/mcp`; the health endpoint is
206
+ `https://your-host.example/health`. For browser-based callers, set
207
+ `MCP_ALLOWED_ORIGINS` to a comma-separated list of exact HTTPS origins. Wildcard
208
+ origins are rejected.
209
+
210
+ Codex CLI can keep the bearer token in an environment variable:
211
+
212
+ ```bash
213
+ export LANGFLOW_MCP_TOKEN='set-this-in-your-shell'
214
+ codex mcp add langflow-remote \
215
+ --url https://your-host.example/mcp \
216
+ --bearer-token-env-var LANGFLOW_MCP_TOKEN
217
+ ```
218
+
219
+ The environment variable must be present whenever Codex starts or reconnects
220
+ to this server.
221
+
222
+ Claude Code accepts the same Streamable HTTP endpoint:
223
+
224
+ ```bash
225
+ export LANGFLOW_MCP_TOKEN='set-this-in-your-shell'
226
+ claude mcp add --transport http --scope user \
227
+ --header "Authorization: Bearer ${LANGFLOW_MCP_TOKEN}" \
228
+ langflow-remote https://your-host.example/mcp
229
+ ```
230
+
231
+ This stores the header in the Claude MCP configuration; keep that configuration
232
+ outside source control. Hosts such as Cloud Code, Gemini
233
+ clients, and other MCP-compatible tools can use the same `/mcp` endpoint when
234
+ they support Streamable HTTP; their configuration syntax is host-specific and
235
+ has not been claimed as an end-to-end test in this repository.
236
+
146
237
  ### Docker Deployment
147
238
 
148
239
  The MCP server can be run in a Docker container for easier deployment and isolation.
@@ -184,8 +275,10 @@ docker run -it --rm \
184
275
  docker run -d \
185
276
  -p 3000:3000 \
186
277
  -e MCP_MODE=http \
278
+ -e HOST=0.0.0.0 \
187
279
  -e PORT=3000 \
188
280
  -e AUTH_TOKEN=your-secure-token \
281
+ -e MCP_ALLOWED_ORIGINS=https://your-client.example \
189
282
  -e LANGFLOW_BASE_URL=http://langflow:7860 \
190
283
  -e LANGFLOW_API_KEY=your-api-key \
191
284
  langflow-mcp-server:latest
@@ -207,81 +300,123 @@ environment:
207
300
  - MCP_MODE=http
208
301
  - PORT=3000
209
302
  - AUTH_TOKEN=your-secure-token
210
- ```
211
-
212
- ## Deprecated Tools
213
-
214
- ⚠️ **Important**: This server includes 4 deprecated tools that match deprecated endpoints in Langflow API 1.6.4:
215
- - `build_vertices` - Use `build_flow` instead
216
- - `get_vertex` - Use `build_flow` or `get_flow` instead
217
- - `stream_vertex_build` - Use `get_build_status` with streaming instead
218
- - `get_task_status` - Use `get_build_status` instead
219
-
220
- These tools are **enabled by default** but marked with ⚠️ warnings. To disable them, set:
221
- ```bash
222
- ENABLE_DEPRECATED_TOOLS=false
303
+ - MCP_ALLOWED_ORIGINS=https://your-client.example
223
304
  ```
224
305
 
225
306
  ## Available MCP Tools
226
307
 
227
308
  Once connected, Claude can use:
228
- - **Standard mode**: 93 individual tools (97 with deprecated tools enabled)
229
- - **Consolidated mode**: 15 action-based tools (recommended for reduced token usage)
309
+ - **Standard mode**: 236 individual tools
310
+ - **Consolidated mode**: 29 action-based tools (recommended for reduced token usage)
230
311
 
231
- ### Standard Mode Tools (93 tools)
312
+ > **Note**: Raw Langflow transport endpoints (`/api/mcp/*`) and doc-rendering
313
+ > endpoints (`/docs`, `/redoc`, `/openapi.json`) are intentionally **not** exposed as
314
+ > tools — they are protocol/transport surfaces, not data operations.
232
315
 
233
- ### Flow Management (6 tools)
316
+ ### Standard Mode Tools (236 tools)
317
+
318
+ ### Flow Management (13 tools)
234
319
  - **`create_flow`** - Create a new Langflow flow
235
320
  - **`list_flows`** - List all flows with pagination and filtering
236
321
  - **`get_flow`** - Get details of a specific flow by ID
237
322
  - **`update_flow`** - Update an existing flow
238
323
  - **`delete_flow`** - Delete a single flow
239
324
  - **`delete_flows`** - Delete multiple flows at once
325
+ - **`replace_flow`** - Replace a flow's full definition
326
+ - **`expand_flows`** - Expand flows with embedded component data
327
+ - **`upload_flow`** - Upload a flow from JSON data
328
+ - **`download_flows`** - Download multiple flows as JSON export
329
+ - **`get_basic_examples`** - Get pre-built example flows
330
+ - **`batch_create_flows`** - Create multiple flows in one operation
331
+ - **`get_public_flow`** - Get a public flow without authentication
240
332
 
241
- ### Flow Execution (2 tools)
333
+ ### Flow Execution (7 tools)
242
334
  - **`run_flow`** - Execute a flow with input configuration (supports streaming)
335
+ - **`run_flow_advanced`** - Advanced flow execution with full control
336
+ - **`run_flow_session`** - Execute a flow within a session context
243
337
  - **`trigger_webhook`** - Trigger a flow via webhook endpoint
338
+ - **`get_webhook_events`** - Get webhook trigger events for a flow
339
+ - **`process_flow`** - Legacy process endpoint for flows
340
+ - **`predict_flow`** - Legacy predict endpoint for flows
244
341
 
245
- ### Import/Export (3 tools)
246
- - **`upload_flow`** - Upload a flow from JSON data
247
- - **`download_flows`** - Download multiple flows as JSON export
248
- - **`get_basic_examples`** - Get pre-built example flows
342
+ ### Flow Versions & Events (7 tools)
343
+ - **`list_flow_versions`** - List versions of a flow
344
+ - **`create_flow_version`** - Create a new flow version
345
+ - **`get_flow_version`** - Get a specific flow version
346
+ - **`delete_flow_version`** - Delete a flow version
347
+ - **`activate_flow_version`** - Activate a specific flow version
348
+ - **`get_flow_events`** - Get lifecycle events for a flow
349
+ - **`create_flow_event`** - Create a lifecycle event for a flow
249
350
 
250
- ### Folder Management (5 tools)
351
+ ### Build Operations (9 tools)
352
+ - **`build_flow`** - Build/compile a flow and return job_id for async execution
353
+ - **`get_build_status`** - Poll build status and events for a specific job
354
+ - **`cancel_build`** - Cancel a running build job
355
+ - **`build_public_flow`** - Build a public flow without authentication
356
+ - **`get_public_build_events`** - Get events for a public build job
357
+ - **`cancel_public_build`** - Cancel a public build job
358
+ - **`get_task_status`** - Get status of an async task
359
+ - **`build_vertices`** - Get vertex build order for a flow
360
+ - **`stream_vertex_build`** - Stream real-time build events for a vertex
361
+
362
+ ### Workflows (v2) (7 tools)
363
+ - **`run_workflow`** - Run a v2 workflow
364
+ - **`get_workflow_result`** - Get the result of a workflow run
365
+ - **`stop_workflow`** - Stop a running workflow
366
+ - **`list_pending_workflows`** - List pending HITL requests for a flow
367
+ - **`get_workflow_events`** - Re-attach to a workflow job event stream
368
+ - **`resume_workflow`** - Resume a workflow with a request ID and optional decision
369
+ - **`run_public_workflow`** - Run a public stream-only workflow
370
+
371
+ ### Agentic (5 tools)
372
+ - **`agentic_assist`** - Get agentic assistance for a flow component
373
+ - **`agentic_assist_stream`** - Get streaming agentic assistance for a flow component
374
+ - **`agentic_assist_run`** - Run the assistant headlessly and persist flow changes
375
+ - **`agentic_check_config`** - Check whether agentic features are configured
376
+ - **`agentic_execute`** - Execute an agentic flow by name
377
+
378
+ ### Responses (2 tools)
379
+ - **`create_response`** - Create an OpenAI-compatible response
380
+ - **`get_session`** - Get a response/conversation session
381
+
382
+ ### Folder Management (7 tools)
251
383
  - **`list_folders`** - List all folders with pagination
252
384
  - **`create_folder`** - Create a new folder
253
385
  - **`get_folder`** - Get folder details by ID
254
386
  - **`update_folder`** - Update folder name, description, or parent
255
387
  - **`delete_folder`** - Delete a folder
388
+ - **`download_folder`** - Download entire folder as archive
389
+ - **`upload_folder`** - Upload folder from archive
256
390
 
257
- ### Project Management (7 tools)
391
+ ### Project Management (8 tools)
258
392
  - **`list_projects`** - List all projects with pagination
259
393
  - **`create_project`** - Create a new project
260
394
  - **`get_project`** - Get project details by ID
261
395
  - **`update_project`** - Update project name or description
396
+ - **`upsert_project`** - Create or update a project at a caller-supplied ID
262
397
  - **`delete_project`** - Delete a project
263
398
  - **`upload_project`** - Upload a project from JSON data
264
399
  - **`download_project`** - Download a project as JSON export
265
400
 
266
- ### Variable Management (4 tools)
401
+ ### Variable Management (5 tools)
267
402
  - **`list_variables`** - List all global variables
268
403
  - **`create_variable`** - Create a new variable
269
404
  - **`update_variable`** - Update variable properties
270
405
  - **`delete_variable`** - Delete a variable
406
+ - **`detect_variables`** - Detect variables referenced in a value/template
271
407
 
272
- ### Build Operations (3 tools)
273
- - **`build_flow`** - Build/compile a flow and return job_id for async execution
274
- - **`get_build_status`** - Poll build status and events for a specific job
275
- - **`cancel_build`** - Cancel a running build job
276
-
277
- ### Knowledge Base Management (4 tools)
408
+ ### Knowledge Base Management (11 tools)
278
409
  - **`list_knowledge_bases`** - List all available knowledge bases
410
+ - **`list_knowledge_bases_detailed`** - List knowledge bases with detailed metadata
279
411
  - **`get_knowledge_base`** - Get detailed information about a specific knowledge base
412
+ - **`create_knowledge_base`** - Create a new knowledge base
280
413
  - **`delete_knowledge_base`** - Delete a specific knowledge base
281
414
  - **`bulk_delete_knowledge_bases`** - Delete multiple knowledge bases at once
282
-
283
- ### Component Discovery (1 tool)
284
- - **`list_components`** - List all available Langflow components
415
+ - **`upload_knowledge_base`** - Upload a file to create/update a knowledge base
416
+ - **`preview_knowledge_base_chunks`** - Preview how a document will be chunked
417
+ - **`list_knowledge_base_chunks`** - List stored chunks for a knowledge base
418
+ - **`ingest_knowledge_base`** - Ingest documents into a knowledge base
419
+ - **`cancel_knowledge_base_ingest`** - Cancel an in-progress ingest job
285
420
 
286
421
  ### File Management (5 tools)
287
422
  - **`upload_file`** - Upload a file to a specific flow
@@ -290,73 +425,116 @@ Once connected, Claude can use:
290
425
  - **`delete_file`** - Delete a file from a flow
291
426
  - **`get_file_image`** - Get an image file from a flow
292
427
 
293
- ### Monitoring & Analytics (9 tools)
428
+ ### Files (v2) (8 tools)
429
+ - **`list_files_v2`** - List all user-scoped v2 files
430
+ - **`upload_file_v2`** - Upload a v2 file
431
+ - **`get_file_v2`** - Get v2 file metadata or content
432
+ - **`rename_file_v2`** - Rename a v2 file
433
+ - **`delete_file_v2`** - Delete a v2 file
434
+ - **`delete_all_files_v2`** - Delete all v2 files
435
+ - **`batch_download_files_v2`** - Download multiple v2 files
436
+ - **`batch_delete_files_v2`** - Delete multiple v2 files
437
+
438
+ ### Component Discovery & Custom Components (3 tools)
439
+ - **`list_components`** - List all available Langflow components
440
+ - **`create_custom_component`** - Create a new custom component
441
+ - **`update_custom_component`** - Update an existing custom component
442
+
443
+ ### Monitoring & Analytics (12 tools)
294
444
  - **`get_monitor_builds`** - Get build execution history for a flow
295
445
  - **`get_monitor_messages`** - Query chat/message history with filtering
296
446
  - **`get_monitor_message`** - Get details of a specific message
447
+ - **`update_monitor_message`** - Update a stored message
297
448
  - **`get_monitor_sessions`** - List all chat session IDs
298
449
  - **`get_monitor_session_messages`** - Get all messages for a session
299
450
  - **`migrate_monitor_session`** - Migrate messages between sessions
300
451
  - **`get_monitor_transactions`** - List transaction logs for a flow
301
452
  - **`delete_monitor_builds`** - Delete build history for a flow
302
453
  - **`delete_monitor_messages`** - Delete multiple messages by ID
303
-
304
- ### Vertex Operations ⚠️ *DEPRECATED* (3 tools)
305
- - **`build_vertices`** ⚠️ *DEPRECATED* - Get vertex build order for a flow (use `build_flow` instead)
306
- - **`get_vertex`** ⚠️ *DEPRECATED* - Get details of a specific vertex/component (use `build_flow` or `get_flow` instead)
307
- - **`stream_vertex_build`** ⚠️ *DEPRECATED* - Stream real-time build events for a vertex (use `get_build_status` with streaming instead)
454
+ - **`delete_monitor_session_messages`** - Delete all messages for a session
455
+ - **`delete_monitor_sessions`** - Delete chat sessions
456
+
457
+ ### Traces (4 tools)
458
+ - **`list_traces`** - List execution traces with filters
459
+ - **`get_trace`** - Get a specific execution trace
460
+ - **`delete_trace`** - Delete a specific trace
461
+ - **`delete_traces`** - Delete all traces for a flow
462
+
463
+ ### Shared Messages (5 tools)
464
+ - **`get_shared_messages`** - Get shared messages
465
+ - **`get_shared_sessions`** - Get shared sessions
466
+ - **`update_shared_message`** - Update a shared message
467
+ - **`migrate_shared_session`** - Migrate a shared session
468
+ - **`delete_shared_session`** - Delete a shared session
469
+
470
+ ### Models & Providers (13 tools)
471
+ - **`list_models`** - List available models
472
+ - **`list_model_providers`** - List all model providers
473
+ - **`list_model_provider_descriptors`** - List providers with stable IDs and display names
474
+ - **`list_enabled_providers`** - List enabled providers
475
+ - **`list_enabled_models`** - List enabled models
476
+ - **`set_enabled_models`** - Enable/disable models
477
+ - **`get_default_model`** - Get the default model for a type
478
+ - **`set_default_model`** - Set the default model for a type
479
+ - **`delete_default_model`** - Remove the default model for a type
480
+ - **`get_provider_variable_mapping`** - Get provider-to-variable mapping
481
+ - **`validate_model_provider`** - Validate provider credentials
482
+ - **`get_language_model_options`** - Get language model options
483
+ - **`get_embedding_model_options`** - Get embedding model options
308
484
 
309
485
  ### User Management (5 tools)
310
486
  - **`list_users`** - List all users (admin only)
311
487
  - **`get_current_user`** - Get current authenticated user info
312
- - **`get_user`** - Get details of a specific user
313
488
  - **`update_user`** - Update user profile information
314
489
  - **`reset_user_password`** - Reset password for a user (admin only)
490
+ - **`create_user`** - Create a new user (admin only)
315
491
 
316
492
  ### API Key Management (3 tools)
317
493
  - **`list_api_keys`** - List all API keys for the user
318
494
  - **`create_api_key`** - Create a new API key
319
495
  - **`delete_api_key`** - Delete an API key
320
496
 
321
- ### Custom Components (2 tools)
322
- - **`list_custom_components`** - List all custom components
323
- - **`create_custom_component`** - Create a new custom component
324
-
325
497
  ### Authentication (4 tools)
326
498
  - **`login`** - Authenticate with username and password
327
499
  - **`auto_login`** - Auto-login with stored credentials
328
500
  - **`refresh_token`** - Refresh authentication token
329
501
  - **`logout`** - Logout and invalidate session
330
502
 
331
- ### Store & Marketplace (6 tools)
503
+ ### Registration (2 tools)
504
+ - **`get_registration`** - Check whether registration is enabled
505
+ - **`register_user`** - Register a new user account
506
+
507
+ ### Store & Marketplace (9 tools)
332
508
  - **`check_store`** - Check if component store is enabled
333
509
  - **`check_store_api_key`** - Validate a store API key
510
+ - **`save_store_api_key`** - Save a store API key
334
511
  - **`list_store_components`** - Browse available components in the store
335
512
  - **`get_store_component`** - Get details of a store component
513
+ - **`create_store_component`** - Publish a component to the store
514
+ - **`like_store_component`** - Like a store component
336
515
  - **`list_store_tags`** - List all component tags in the store
337
516
  - **`get_user_likes`** - Get components liked by user
338
517
 
339
- ### Validation Tools (2 tools)
518
+ ### Validation (2 tools)
340
519
  - **`validate_code`** - Validate Python code for custom components
341
520
  - **`validate_prompt`** - Validate prompt template syntax
342
521
 
343
- ### Advanced Execution (3 tools)
344
- - **`run_flow_advanced`** - Advanced flow execution with full control
345
- - **`process_flow`** - Legacy process endpoint for flows
346
- - **`predict_flow`** - Legacy predict endpoint for flows
347
-
348
- ### Batch & Public Operations (3 tools)
349
- - **`get_public_flow`** - Get a public flow without authentication
350
- - **`batch_create_flows`** - Create multiple flows in one operation
351
- - **`get_task_status`** ⚠️ *DEPRECATED* - Get status of an async task (use `get_build_status` instead)
352
-
353
- ### Folder Operations (2 tools)
354
- - **`download_folder`** - Download entire folder as archive
355
- - **`upload_folder`** - Upload folder from archive
356
-
357
- ### Starter & Templates (2 tools)
522
+ ### MCP Servers (v2) (5 tools)
523
+ - **`list_mcp_servers`** - List MCP servers registered with Langflow
524
+ - **`get_mcp_server`** - Get an MCP server by name
525
+ - **`create_mcp_server`** - Create an MCP server
526
+ - **`update_mcp_server`** - Update an MCP server
527
+ - **`delete_mcp_server`** - Delete an MCP server
528
+
529
+ ### MCP Project Management (5 tools)
530
+ - **`get_mcp_project_config`** - Get MCP config for a project
531
+ - **`update_mcp_project_config`** - Update MCP config for a project
532
+ - **`get_mcp_project_installed`** - Get installed MCP clients for a project
533
+ - **`install_mcp_project`** - Install MCP for a project into a client
534
+ - **`get_mcp_project_composer_url`** - Get the MCP composer URL for a project
535
+
536
+ ### Starter & Templates (1 tool)
358
537
  - **`list_starter_projects`** - List available starter templates
359
- - **`upload_knowledge_base`** - Upload file to create/update knowledge base
360
538
 
361
539
  ### Profile & Media (2 tools)
362
540
  - **`list_profile_pictures`** - List available profile pictures
@@ -365,11 +543,85 @@ Once connected, Claude can use:
365
543
  ### Integration Tools (1 tool)
366
544
  - **`list_elevenlabs_voices`** - List ElevenLabs text-to-speech voices
367
545
 
368
- ### System & Health (3 tools)
546
+ ### System & Health (5 tools)
369
547
  - **`get_version`** - Get Langflow API version information
370
548
  - **`health_check`** - Check Langflow instance health status
549
+ - **`get_health_check`** - Get a detailed health-check report
550
+ - **`get_healthz`** - Get the Kubernetes-style readiness report
371
551
  - **`get_logs`** - Retrieve system logs (supports streaming)
372
552
 
553
+ ### Authorization / RBAC (23 tools, Langflow 1.10.0)
554
+ - **`list_authz_roles`**, **`get_authz_role`**, **`create_authz_role`**, **`update_authz_role`**, **`delete_authz_role`** - Manage roles
555
+ - **`list_authz_role_assignments`**, **`create_authz_role_assignment`**, **`delete_authz_role_assignment`** - Manage role assignments
556
+ - **`list_authz_teams`**, **`get_authz_team`**, **`create_authz_team`**, **`update_authz_team`**, **`delete_authz_team`** - Manage teams
557
+ - **`list_authz_team_members`**, **`add_authz_team_member`**, **`remove_authz_team_member`** - Manage team members
558
+ - **`list_authz_shares`**, **`get_authz_share`**, **`create_authz_share`**, **`update_authz_share`**, **`delete_authz_share`** - Manage resource shares
559
+ - **`get_authz_audit`** - Query the authorization audit log (superuser)
560
+ - **`get_my_permissions`** - Get the caller's effective permissions
561
+
562
+ ### Memory Bases (10 tools, Langflow 1.12.3 - experimental)
563
+ - **`create_memory_base`**, **`list_memory_bases`**, **`get_memory_base`** - Manage memory bases
564
+ - **`list_memory_base_sessions`**, **`list_memory_base_messages`** - Inspect tracked sessions/messages
565
+ - **`update_memory_base`**, **`delete_memory_base`** - Update/delete a memory base
566
+ - **`flush_memory_base`**, **`check_memory_base_mismatch`**, **`regenerate_memory_base`** - Lifecycle operations
567
+
568
+ ### Knowledge Base Overhaul (7 tools, Langflow 1.10.0)
569
+ - **`test_knowledge_base_connection`** - Test a vector backend connection
570
+ - **`list_knowledge_base_connectors`** - List available ingestion connectors
571
+ - **`ingest_knowledge_base_folder`**, **`ingest_knowledge_base_connector`** - Ingest from a server folder or connector
572
+ - **`get_knowledge_base_metadata_keys`** - List distinct metadata keys/values
573
+ - **`list_knowledge_base_runs`**, **`get_knowledge_base_run`** - Inspect ingestion runs
574
+
575
+ ### Extensions & Misc (6 tools, Langflow 1.10.0)
576
+ - **`reload_extension_bundle`** - Reload an extension bundle (requires server-side flag)
577
+ - **`get_extension_events`** - Poll extension events for the current user
578
+ - **`get_agentic_file`** - Read a file from the per-user agentic sandbox
579
+ - **`reset_agentic_session`** - Reset agentic session/sandbox state
580
+ - **`get_flow_note_translations`** - Get localized note-node translations for a flow
581
+ - **`get_job_queue_metrics`** - Job-queue metrics snapshot (superuser)
582
+
583
+ ### Langflow 1.12.x Governance (12 tools)
584
+ - **`get_model_provider_policy`**, **`replace_model_provider_policy`** - Read or replace the install-wide approved-provider policy
585
+ - **`get_catalog_component_policy`**, **`replace_catalog_component_policy`** - Read or replace blocked component keys
586
+ - **`get_catalog_template_policy`**, **`replace_catalog_template_policy`** - Read or replace blocked template keys
587
+ - **`get_catalog_policy_usage`**, **`get_catalog_policy_usage_flows`** - Inspect component usage across flows
588
+ - **`get_policy_bundle`**, **`replace_policy_bundle`** - Read or atomically replace the combined governance policy
589
+ - **`list_policy_bundle_history`**, **`rollback_policy_bundle`** - Inspect or roll back policy revisions
590
+
591
+ Policy replacement operations are superuser-only and use complete sets. Read the
592
+ current policy revision before writing so optimistic concurrency conflicts are
593
+ handled explicitly.
594
+
595
+ > The v2 workflow runner (`run_workflow` / `workflow` action `run`) also accepts request-level
596
+ > `globals`, the preferred replacement for the deprecated
597
+ > `X-LANGFLOW-GLOBAL-VAR-*` headers.
598
+
599
+ ### A2A Protocol (3 tools, Langflow 1.12.x)
600
+ - **`list_a2a_agents`** - List available A2A (Agent-to-Agent) agents
601
+ - **`get_a2a_agent_card`** - Get a flow's A2A agent card (`.well-known/agent-card.json`)
602
+ - **`invoke_a2a_jsonrpc`** - Invoke a flow via the A2A JSON-RPC endpoint (passthrough envelope)
603
+
604
+ > A2A endpoints require server-side enablement (`LANGFLOW_A2A_ENABLED`); otherwise
605
+ > requests surface as a thrown `Failed to ...` error.
606
+
607
+ ### v2 Workflow HITL & Public Execution (4 tools, Langflow 1.12.x)
608
+ - **`list_pending_workflows`** - List pending human-in-the-loop requests for a required `flow_id`
609
+ - **`get_workflow_events`** - Re-attach to a workflow job event stream by job ID
610
+ - **`resume_workflow`** - Resume a paused HITL workflow with `request_id` and an optional decision
611
+ - **`run_public_workflow`** - Run a public (unauthenticated-eligible) workflow
612
+
613
+ > The `get_workflow_events` and `run_public_workflow` endpoints return server-sent-event
614
+ > streams; the initial payload is captured but streaming is not incrementally surfaced.
615
+
616
+ ### External / Trusted-JWT Authentication (Langflow 1.11.x)
617
+
618
+ Langflow 1.11.x adds external trusted-JWT / JIT-provisioning authentication. This is
619
+ controlled entirely by the Langflow **server** environment and adds **no MCP tools**:
620
+ `EXTERNAL_AUTH_ENABLED`, `EXTERNAL_AUTH_TOKEN_HEADER`/`EXTERNAL_AUTH_TOKEN_COOKIE`,
621
+ `EXTERNAL_AUTH_JWKS_URL`, `EXTERNAL_AUTH_ISSUER`/`EXTERNAL_AUTH_AUDIENCE`/`EXTERNAL_AUTH_ALGORITHMS`,
622
+ `EXTERNAL_AUTH_*_CLAIM`, and `EXTERNAL_AUTH_ACCESS_CEILING_*`. The MCP client keeps using its
623
+ API key / Bearer token as before.
624
+
373
625
  ## Example Usage
374
626
 
375
627
  ```typescript
@@ -476,6 +728,9 @@ npm test
476
728
 
477
729
  # Type checking
478
730
  npm run typecheck
731
+
732
+ # HTTP development server with automatic TypeScript reload
733
+ npm run dev:http
479
734
  ```
480
735
 
481
736
  ## Project Structure
@@ -485,6 +740,7 @@ langflow-mcp/
485
740
  ├── src/
486
741
  │ ├── mcp/
487
742
  │ │ ├── index.ts # MCP server entry point
743
+ │ │ ├── http.ts # Streamable HTTP transport
488
744
  │ │ ├── server.ts # MCP server implementation
489
745
  │ │ └── tools.ts # Tool definitions
490
746
  │ ├── services/
@@ -501,6 +757,8 @@ langflow-mcp/
501
757
 
502
758
  ## Attribution
503
759
 
760
+ Developed with [NoBrainer.Tech Flow](https://github.com/nobrainer-tech/nobrainer-tech-flow) for scoped implementation, independent reviews and release verification.
761
+
504
762
  This project is inspired by and follows the structure of [n8n-mcp](https://github.com/czlonkowski/n8n-mcp) by Romuald Czlonkowski. Special thanks to the n8n-mcp project for the excellent MCP server architecture and implementation patterns.
505
763
 
506
764
  ## License
@@ -521,6 +779,16 @@ Contributions are welcome! Please:
521
779
  - [Anthropic](https://anthropic.com) for the Model Context Protocol
522
780
  - [czlonkowski/n8n-mcp](https://github.com/czlonkowski/n8n-mcp) for the inspiration and architecture
523
781
 
782
+ ## Releasing
783
+
784
+ Release through `.github/workflows/publish.yml` on GitHub-hosted runners. The npm Trusted Publisher must use owner `nobrainer-tech`, repository `langflow-mcp`, workflow `publish.yml`, an empty environment and permission to run `npm publish`. No stored npm write token is required.
785
+
786
+ After reviewed changes are merged, push a new stable tag matching `package.json` and the lockfile. The workflow checks that the tag belongs to master, runs typecheck, tests, packaged MCP smoke and security audit, then publishes and verifies the exact npm commit and provenance before creating the GitHub Release. Existing tags must not be moved.
787
+
788
+ The provenance check binds the attestation's package, tarball SHA-512 digest, source repository and commit. It does not perform cryptographic verification of Sigstore signatures.
789
+
790
+ For tags created from 4.12.1 onward, recover an interrupted release by running the workflow at that exact tag (for example `gh workflow run publish.yml --ref v4.12.1`). This keeps the build source aligned with GitHub's provenance identity. An already-published version is accepted only when its commit and provenance match; it is never overwritten.
791
+
524
792
  ---
525
793
 
526
794
  Built with ❤️ for the Langflow community
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-execution.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/advanced-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,0BAA0B,EAAE,sBAYxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,WAsBzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBAUpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;CAMnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBASpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;CAQnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,qBAWvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAsBxC,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,oBAGhD,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,oBAEnD,CAAC"}
1
+ {"version":3,"file":"advanced-execution.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/advanced-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,0BAA0B,EAAE,sBAexC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,WAsBzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBAUpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;IAClC,MAAM;IACN,IAAI;QACF,eAAe;QACf,QAAQ;;CAEX,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBASpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;IAClC,UAAU;IACV,UAAU;IACV,aAAa;QACX,OAAO;QACP,OAAO;QACP,OAAO;;CAEV,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,qBAWvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAsBxC,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,oBAGhD,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,oBAEnD,CAAC"}