langflow-mcp-server 1.0.0 → 1.0.1

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.
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # langflow-mcp-server
2
2
 
3
+ [![npm version](https://badge.fury.io/js/langflow-mcp-server.svg)](https://www.npmjs.com/package/langflow-mcp-server)
4
+ [![npm downloads](https://img.shields.io/npm/dm/langflow-mcp-server.svg)](https://www.npmjs.com/package/langflow-mcp-server)
5
+ [![GitHub release](https://img.shields.io/github/v/release/nobrainer-tech/langflow-mcp)](https://github.com/nobrainer-tech/langflow-mcp/releases)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
3
8
  A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Langflow workflow automation platform. Inspired by [czlonkowski/n8n-mcp](https://github.com/czlonkowski/n8n-mcp).
4
9
 
5
10
  ## Overview
@@ -0,0 +1,21 @@
1
+ import { ComponentInfo } from '../../types';
2
+ export declare const mockComponentsApiResponse: {
3
+ agents: {
4
+ 'OpenAI Agent': {
5
+ display_name: string;
6
+ description: string;
7
+ };
8
+ 'Custom Agent': {
9
+ display_name: string;
10
+ description: string;
11
+ };
12
+ };
13
+ chains: {
14
+ 'LLM Chain': {
15
+ display_name: string;
16
+ description: string;
17
+ };
18
+ };
19
+ };
20
+ export declare const mockComponentsList: ComponentInfo[];
21
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;CAiBrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAmB7C,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockComponentsList = exports.mockComponentsApiResponse = void 0;
4
+ exports.mockComponentsApiResponse = {
5
+ agents: {
6
+ 'OpenAI Agent': {
7
+ display_name: 'OpenAI Agent',
8
+ description: 'Agent powered by OpenAI'
9
+ },
10
+ 'Custom Agent': {
11
+ display_name: 'Custom Agent',
12
+ description: 'Custom agent implementation'
13
+ }
14
+ },
15
+ chains: {
16
+ 'LLM Chain': {
17
+ display_name: 'LLM Chain',
18
+ description: 'Basic LLM chain'
19
+ }
20
+ }
21
+ };
22
+ exports.mockComponentsList = [
23
+ {
24
+ name: 'OpenAI Agent',
25
+ display_name: 'OpenAI Agent',
26
+ description: 'Agent powered by OpenAI',
27
+ type: 'agents'
28
+ },
29
+ {
30
+ name: 'Custom Agent',
31
+ display_name: 'Custom Agent',
32
+ description: 'Custom agent implementation',
33
+ type: 'agents'
34
+ },
35
+ {
36
+ name: 'LLM Chain',
37
+ display_name: 'LLM Chain',
38
+ description: 'Basic LLM chain',
39
+ type: 'chains'
40
+ }
41
+ ];
42
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/components.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG;IACvC,MAAM,EAAE;QACN,cAAc,EAAE;YACd,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,yBAAyB;SACvC;QACD,cAAc,EAAE;YACd,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,6BAA6B;SAC3C;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE;YACX,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,iBAAiB;SAC/B;KACF;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAoB;IACjD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,yBAAyB;QACtC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,QAAQ;KACf;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { FlowRead, FlowCreate, FlowUpdate } from '../../types';
2
+ export declare const mockFlowCreate: FlowCreate;
3
+ export declare const mockFlowRead: FlowRead;
4
+ export declare const mockFlowUpdate: FlowUpdate;
5
+ export declare const mockFlowsList: FlowRead[];
6
+ //# sourceMappingURL=flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,cAAc,EAAE,UAK5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,EAOnC,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockFlowsList = exports.mockFlowUpdate = exports.mockFlowRead = exports.mockFlowCreate = void 0;
4
+ exports.mockFlowCreate = {
5
+ name: 'Test Flow',
6
+ description: 'A test flow for unit testing',
7
+ data: { nodes: [], edges: [] },
8
+ folder_id: '123e4567-e89b-12d3-a456-426614174000'
9
+ };
10
+ exports.mockFlowRead = {
11
+ id: '123e4567-e89b-12d3-a456-426614174001',
12
+ name: 'Test Flow',
13
+ description: 'A test flow for unit testing',
14
+ data: { nodes: [], edges: [] },
15
+ folder_id: '123e4567-e89b-12d3-a456-426614174000',
16
+ user_id: 'user-123',
17
+ created_at: '2024-01-01T00:00:00Z',
18
+ updated_at: '2024-01-01T00:00:00Z'
19
+ };
20
+ exports.mockFlowUpdate = {
21
+ name: 'Updated Flow',
22
+ description: 'Updated description'
23
+ };
24
+ exports.mockFlowsList = [
25
+ exports.mockFlowRead,
26
+ {
27
+ ...exports.mockFlowRead,
28
+ id: '123e4567-e89b-12d3-a456-426614174002',
29
+ name: 'Test Flow 2'
30
+ }
31
+ ];
32
+ //# sourceMappingURL=flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/flows.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAe;IACxC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEW,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,SAAS,EAAE,sCAAsC;IACjD,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEW,QAAA,cAAc,GAAe;IACxC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,aAAa,GAAe;IACvC,oBAAY;IACZ;QACE,GAAG,oBAAY;QACf,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,aAAa;KACpB;CACF,CAAC"}
@@ -2,6 +2,8 @@ export declare class LangflowMCPServer {
2
2
  private server;
3
3
  private client;
4
4
  constructor();
5
+ private formatSuccessResponse;
6
+ private formatErrorResponse;
5
7
  private setupHandlers;
6
8
  run(): Promise<void>;
7
9
  shutdown(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAWA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA+B;;IAmC7C,OAAO,CAAC,aAAa;IA4If,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIhC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAqBA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA+B;;IAmC7C,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,mBAAmB;IAwC3B,OAAO,CAAC,aAAa;IA4Ef,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIhC"}
@@ -4,9 +4,11 @@ exports.LangflowMCPServer = void 0;
4
4
  const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
5
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
+ const zod_1 = require("zod");
7
8
  const tools_1 = require("./tools");
8
9
  const logger_1 = require("../utils/logger");
9
10
  const langflow_client_1 = require("../services/langflow-client");
11
+ const validation_1 = require("./validation");
10
12
  class LangflowMCPServer {
11
13
  constructor() {
12
14
  this.client = null;
@@ -32,6 +34,54 @@ class LangflowMCPServer {
32
34
  });
33
35
  this.setupHandlers();
34
36
  }
37
+ formatSuccessResponse(data) {
38
+ return {
39
+ content: [
40
+ {
41
+ type: 'text',
42
+ text: JSON.stringify(data, null, 2)
43
+ }
44
+ ]
45
+ };
46
+ }
47
+ formatErrorResponse(error, toolName) {
48
+ logger_1.logger.error(`Error executing tool ${toolName}:`, error);
49
+ let errorMessage;
50
+ let errorDetails = {};
51
+ if (error instanceof zod_1.ZodError) {
52
+ errorMessage = 'Validation error';
53
+ errorDetails = {
54
+ issues: error.issues.map((issue) => ({
55
+ path: Array.isArray(issue.path) ? issue.path.join('.') : '',
56
+ message: issue.message
57
+ }))
58
+ };
59
+ }
60
+ else if (error instanceof Error) {
61
+ errorMessage = error.message;
62
+ if (error.stack) {
63
+ errorDetails.stack = error.stack.split('\n').slice(0, 3);
64
+ }
65
+ }
66
+ else {
67
+ errorMessage = 'Unknown error';
68
+ }
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: JSON.stringify({
74
+ error: true,
75
+ message: errorMessage,
76
+ tool: toolName,
77
+ timestamp: new Date().toISOString(),
78
+ ...errorDetails
79
+ }, null, 2)
80
+ }
81
+ ],
82
+ isError: true
83
+ };
84
+ }
35
85
  setupHandlers() {
36
86
  this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
37
87
  return {
@@ -46,115 +96,55 @@ class LangflowMCPServer {
46
96
  if (!this.client) {
47
97
  throw new Error('Langflow client not initialized');
48
98
  }
49
- const { name, arguments: args } = request.params;
50
- if (!args) {
51
- throw new Error('No arguments provided');
52
- }
99
+ const { name, arguments: rawArgs } = request.params;
100
+ const args = (rawArgs ?? {});
53
101
  try {
54
102
  switch (name) {
55
- case 'create_flow':
56
- const created = await this.client.createFlow({
57
- name: args.name,
58
- description: args.description,
59
- data: args.data,
60
- folder_id: args.folder_id
61
- });
62
- return {
63
- content: [
64
- {
65
- type: 'text',
66
- text: JSON.stringify(created, null, 2)
67
- }
68
- ]
69
- };
70
- case 'list_flows':
71
- const flows = await this.client.listFlows({
72
- page: args.page,
73
- size: args.size,
74
- folder_id: args.folder_id,
75
- components_only: args.components_only,
76
- get_all: args.get_all
77
- });
78
- return {
79
- content: [
80
- {
81
- type: 'text',
82
- text: JSON.stringify(flows, null, 2)
83
- }
84
- ]
85
- };
86
- case 'get_flow':
87
- const flow = await this.client.getFlow(args.flow_id);
88
- return {
89
- content: [
90
- {
91
- type: 'text',
92
- text: JSON.stringify(flow, null, 2)
93
- }
94
- ]
95
- };
96
- case 'update_flow':
97
- const updated = await this.client.updateFlow(args.flow_id, {
98
- name: args.name,
99
- description: args.description,
100
- data: args.data,
101
- folder_id: args.folder_id
103
+ case 'create_flow': {
104
+ const validated = validation_1.CreateFlowSchema.parse(args);
105
+ const created = await this.client.createFlow(validated);
106
+ return this.formatSuccessResponse(created);
107
+ }
108
+ case 'list_flows': {
109
+ const validated = validation_1.ListFlowsSchema.parse(args);
110
+ const flows = await this.client.listFlows(validated);
111
+ return this.formatSuccessResponse(flows);
112
+ }
113
+ case 'get_flow': {
114
+ const validated = validation_1.GetFlowSchema.parse(args);
115
+ const flow = await this.client.getFlow(validated.flow_id);
116
+ return this.formatSuccessResponse(flow);
117
+ }
118
+ case 'update_flow': {
119
+ const validated = validation_1.UpdateFlowSchema.parse(args);
120
+ const { flow_id, ...updates } = validated;
121
+ const updated = await this.client.updateFlow(flow_id, updates);
122
+ return this.formatSuccessResponse(updated);
123
+ }
124
+ case 'delete_flow': {
125
+ const validated = validation_1.DeleteFlowSchema.parse(args);
126
+ await this.client.deleteFlow(validated.flow_id);
127
+ return this.formatSuccessResponse({
128
+ success: true,
129
+ message: 'Flow deleted successfully'
102
130
  });
103
- return {
104
- content: [
105
- {
106
- type: 'text',
107
- text: JSON.stringify(updated, null, 2)
108
- }
109
- ]
110
- };
111
- case 'delete_flow':
112
- await this.client.deleteFlow(args.flow_id);
113
- return {
114
- content: [
115
- {
116
- type: 'text',
117
- text: JSON.stringify({ success: true, message: 'Flow deleted' })
118
- }
119
- ]
120
- };
121
- case 'delete_flows':
122
- const result = await this.client.deleteFlows(args.flow_ids);
123
- return {
124
- content: [
125
- {
126
- type: 'text',
127
- text: JSON.stringify(result, null, 2)
128
- }
129
- ]
130
- };
131
- case 'list_components':
131
+ }
132
+ case 'delete_flows': {
133
+ const validated = validation_1.DeleteFlowsSchema.parse(args);
134
+ const result = await this.client.deleteFlows(validated.flow_ids);
135
+ return this.formatSuccessResponse(result);
136
+ }
137
+ case 'list_components': {
138
+ validation_1.ListComponentsSchema.parse(args);
132
139
  const components = await this.client.listComponents();
133
- return {
134
- content: [
135
- {
136
- type: 'text',
137
- text: JSON.stringify(components, null, 2)
138
- }
139
- ]
140
- };
140
+ return this.formatSuccessResponse(components);
141
+ }
141
142
  default:
142
143
  throw new Error(`Unknown tool: ${name}`);
143
144
  }
144
145
  }
145
146
  catch (error) {
146
- logger_1.logger.error(`Error executing tool ${name}:`, error);
147
- return {
148
- content: [
149
- {
150
- type: 'text',
151
- text: JSON.stringify({
152
- error: error instanceof Error ? error.message : 'Unknown error'
153
- })
154
- }
155
- ],
156
- isError: true
157
- };
147
+ return this.formatErrorResponse(error, name);
158
148
  }
159
149
  });
160
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";;;AAAA,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,6BAA+B;AAC/B,mCAA2C;AAC3C,4CAAyC;AACzC,iEAA6D;AAE7D,6CAQsB;AAEtB,MAAa,iBAAiB;IAI5B;QAFQ,WAAM,GAA0B,IAAI,CAAC;QAG3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAE5C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,MAAM,GAAmB;YAC7B,OAAO;YACP,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,EAAE,EAAE,CAAC;SAC/D,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC;QAEzC,eAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,qBAAqB,CAAC,IAAS;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAc,EAAE,QAAgB;QAC1D,eAAM,CAAC,KAAK,CAAC,wBAAwB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,YAAoB,CAAC;QACzB,IAAI,YAAY,GAAwB,EAAE,CAAC;QAE3C,IAAI,KAAK,YAAY,cAAQ,EAAE,CAAC;YAC9B,YAAY,GAAG,kBAAkB,CAAC;YAClC,YAAY,GAAG;gBACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3D,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAClC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,eAAe,CAAC;QACjC,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,YAAY;wBACrB,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,GAAG,YAAY;qBAChB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE,wBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACpD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YAExD,IAAI,CAAC;gBACH,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,aAAa,CAAC,CAAC,CAAC;wBACnB,MAAM,SAAS,GAAG,6BAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBACxD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBAC7C,CAAC;oBAED,KAAK,YAAY,CAAC,CAAC,CAAC;wBAClB,MAAM,SAAS,GAAG,4BAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;wBACrD,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAC3C,CAAC;oBAED,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,MAAM,SAAS,GAAG,0BAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC1C,CAAC;oBAED,KAAK,aAAa,CAAC,CAAC,CAAC;wBACnB,MAAM,SAAS,GAAG,6BAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;wBAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBAC7C,CAAC;oBAED,KAAK,aAAa,CAAC,CAAC,CAAC;wBACnB,MAAM,SAAS,GAAG,6BAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC;4BAChC,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,2BAA2B;yBACrC,CAAC,CAAC;oBACL,CAAC;oBAED,KAAK,cAAc,CAAC,CAAC,CAAC;wBACpB,MAAM,SAAS,GAAG,8BAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wBACjE,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;oBAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,iCAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;wBACtD,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;oBAChD,CAAC;oBAED;wBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,eAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,eAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF;AA9KD,8CA8KC"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export declare const CreateFlowSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ description: z.ZodOptional<z.ZodString>;
5
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6
+ folder_id: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>;
8
+ export declare const ListFlowsSchema: z.ZodObject<{
9
+ page: z.ZodOptional<z.ZodNumber>;
10
+ size: z.ZodOptional<z.ZodNumber>;
11
+ folder_id: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export declare const GetFlowSchema: z.ZodObject<{
14
+ flow_id: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export declare const UpdateFlowSchema: z.ZodObject<{
17
+ flow_id: z.ZodString;
18
+ name: z.ZodOptional<z.ZodString>;
19
+ description: z.ZodOptional<z.ZodString>;
20
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
21
+ folder_id: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>;
23
+ export declare const DeleteFlowSchema: z.ZodObject<{
24
+ flow_id: z.ZodString;
25
+ }, z.core.$strip>;
26
+ export declare const DeleteFlowsSchema: z.ZodObject<{
27
+ flow_ids: z.ZodArray<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ export declare const ListComponentsSchema: z.ZodObject<{}, z.core.$strip>;
30
+ export type CreateFlowInput = z.infer<typeof CreateFlowSchema>;
31
+ export type ListFlowsInput = z.infer<typeof ListFlowsSchema>;
32
+ export type GetFlowInput = z.infer<typeof GetFlowSchema>;
33
+ export type UpdateFlowInput = z.infer<typeof UpdateFlowSchema>;
34
+ export type DeleteFlowInput = z.infer<typeof DeleteFlowSchema>;
35
+ export type DeleteFlowsInput = z.infer<typeof DeleteFlowsSchema>;
36
+ export type ListComponentsInput = z.infer<typeof ListComponentsSchema>;
37
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/mcp/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;iBAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,oBAAoB,gCAAe,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListComponentsSchema = exports.DeleteFlowsSchema = exports.DeleteFlowSchema = exports.UpdateFlowSchema = exports.GetFlowSchema = exports.ListFlowsSchema = exports.CreateFlowSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.CreateFlowSchema = zod_1.z.object({
6
+ name: zod_1.z.string().min(1, 'Flow name is required').max(255, 'Flow name too long'),
7
+ description: zod_1.z.string().optional(),
8
+ data: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
9
+ folder_id: zod_1.z.string().uuid('Invalid folder ID format').optional()
10
+ });
11
+ exports.ListFlowsSchema = zod_1.z.object({
12
+ page: zod_1.z.number().int().positive().optional(),
13
+ size: zod_1.z.number().int().positive().max(100, 'Page size cannot exceed 100').optional(),
14
+ folder_id: zod_1.z.string().uuid('Invalid folder ID format').optional()
15
+ });
16
+ exports.GetFlowSchema = zod_1.z.object({
17
+ flow_id: zod_1.z.string().uuid('Invalid flow ID format')
18
+ });
19
+ exports.UpdateFlowSchema = zod_1.z.object({
20
+ flow_id: zod_1.z.string().uuid('Invalid flow ID format'),
21
+ name: zod_1.z.string().min(1, 'Flow name is required').max(255, 'Flow name too long').optional(),
22
+ description: zod_1.z.string().optional(),
23
+ data: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
24
+ folder_id: zod_1.z.string().uuid('Invalid folder ID format').optional()
25
+ }).refine(data => data.name !== undefined || data.description !== undefined || data.data !== undefined || data.folder_id !== undefined, { message: 'At least one field must be provided for update' });
26
+ exports.DeleteFlowSchema = zod_1.z.object({
27
+ flow_id: zod_1.z.string().uuid('Invalid flow ID format')
28
+ });
29
+ exports.DeleteFlowsSchema = zod_1.z.object({
30
+ flow_ids: zod_1.z.array(zod_1.z.string().uuid('Invalid flow ID format')).min(1, 'At least one flow ID is required')
31
+ });
32
+ exports.ListComponentsSchema = zod_1.z.object({});
33
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/mcp/validation.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC;IAC/E,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IACpF,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;CACnD,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;IAClD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAC1F,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAC,MAAM,CACP,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAC5H,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAC9D,CAAC;AAEW,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;CACnD,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;CACxG,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare const logger: {
2
- info: (message: string, ...args: any[]) => void;
3
- error: (message: string, ...args: any[]) => void;
4
- warn: (message: string, ...args: any[]) => void;
5
- debug: (message: string, ...args: any[]) => void;
2
+ info: (message: string, ...args: unknown[]) => void;
3
+ error: (message: string, ...args: unknown[]) => void;
4
+ warn: (message: string, ...args: unknown[]) => void;
5
+ debug: (message: string, ...args: unknown[]) => void;
6
6
  };
7
7
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;oBACD,MAAM,WAAW,GAAG,EAAE;qBAKrB,MAAM,WAAW,GAAG,EAAE;oBAGvB,MAAM,WAAW,GAAG,EAAE;qBAKrB,MAAM,WAAW,GAAG,EAAE;CAKxC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAsDA,eAAO,MAAM,MAAM;oBACD,MAAM,WAAW,OAAO,EAAE;qBAKzB,MAAM,WAAW,OAAO,EAAE;oBAK3B,MAAM,WAAW,OAAO,EAAE;qBAKzB,MAAM,WAAW,OAAO,EAAE;CAM5C,CAAC"}
@@ -1,23 +1,86 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logger = void 0;
4
+ var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
7
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
8
+ LogLevel[LogLevel["WARN"] = 2] = "WARN";
9
+ LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
10
+ LogLevel[LogLevel["SILENT"] = 4] = "SILENT";
11
+ })(LogLevel || (LogLevel = {}));
12
+ const LOG_LEVEL_MAP = {
13
+ debug: LogLevel.DEBUG,
14
+ info: LogLevel.INFO,
15
+ warn: LogLevel.WARN,
16
+ error: LogLevel.ERROR,
17
+ silent: LogLevel.SILENT
18
+ };
19
+ function getCurrentLogLevel() {
20
+ const level = process.env.LOG_LEVEL?.toLowerCase() || 'info';
21
+ return LOG_LEVEL_MAP[level] ?? LogLevel.INFO;
22
+ }
23
+ function formatMessage(level, message, args) {
24
+ const timestamp = new Date().toISOString();
25
+ if (!args || args.length === 0) {
26
+ return `[${timestamp}] [${level}] ${message}`;
27
+ }
28
+ const seen = new WeakSet();
29
+ const serialize = (arg) => {
30
+ if (arg instanceof Error)
31
+ return arg.stack || `${arg.name}: ${arg.message}`;
32
+ if (typeof arg === 'bigint')
33
+ return arg.toString();
34
+ if (typeof arg === 'object' && arg !== null) {
35
+ try {
36
+ return JSON.stringify(arg, (key, value) => {
37
+ if (typeof value === 'bigint')
38
+ return value.toString();
39
+ if (typeof value === 'object' && value !== null) {
40
+ if (seen.has(value))
41
+ return '[Circular]';
42
+ seen.add(value);
43
+ }
44
+ return value;
45
+ });
46
+ }
47
+ catch {
48
+ try {
49
+ return String(arg);
50
+ }
51
+ catch {
52
+ return '[Unserializable]';
53
+ }
54
+ }
55
+ }
56
+ return String(arg);
57
+ };
58
+ const formattedArgs = ' ' + args.map(serialize).join(' ');
59
+ return `[${timestamp}] [${level}] ${message}${formattedArgs}`;
60
+ }
61
+ function shouldLog(level) {
62
+ return level >= getCurrentLogLevel();
63
+ }
4
64
  exports.logger = {
5
65
  info: (message, ...args) => {
6
- if (process.env.LOG_LEVEL !== 'error') {
7
- console.error('[INFO]', message, ...args);
66
+ if (shouldLog(LogLevel.INFO)) {
67
+ console.log(formatMessage('INFO', message, args));
8
68
  }
9
69
  },
10
70
  error: (message, ...args) => {
11
- console.error('[ERROR]', message, ...args);
71
+ if (shouldLog(LogLevel.ERROR)) {
72
+ console.error(formatMessage('ERROR', message, args));
73
+ }
12
74
  },
13
75
  warn: (message, ...args) => {
14
- if (process.env.LOG_LEVEL !== 'error') {
15
- console.error('[WARN]', message, ...args);
76
+ if (shouldLog(LogLevel.WARN)) {
77
+ console.warn(formatMessage('WARN', message, args));
16
78
  }
17
79
  },
18
80
  debug: (message, ...args) => {
19
- if (process.env.LOG_LEVEL === 'debug') {
20
- console.error('[DEBUG]', message, ...args);
81
+ if (shouldLog(LogLevel.DEBUG)) {
82
+ console.debug ? console.debug(formatMessage('DEBUG', message, args))
83
+ : console.log(formatMessage('DEBUG', message, args));
21
84
  }
22
85
  }
23
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "langflow-mcp-server",
3
- "version": "1.0.0",
4
- "description": "Integration between Langflow and Model Context Protocol (MCP)",
3
+ "version": "1.0.1",
4
+ "description": "Integration for Langflow via Model Context Protocol (MCP)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -54,7 +54,7 @@
54
54
  "LICENSE"
55
55
  ],
56
56
  "devDependencies": {
57
- "@types/node": "^22.15.30",
57
+ "@types/node": "^24.8.1",
58
58
  "@vitest/coverage-v8": "^3.2.4",
59
59
  "@vitest/ui": "^3.2.4",
60
60
  "axios-mock-adapter": "^2.1.0",
@@ -66,7 +66,7 @@
66
66
  "dependencies": {
67
67
  "@modelcontextprotocol/sdk": "^1.13.2",
68
68
  "axios": "^1.11.0",
69
- "dotenv": "^16.5.0",
70
- "zod": "^3.24.1"
69
+ "dotenv": "^17.2.3",
70
+ "zod": "^4.1.12"
71
71
  }
72
72
  }