flowengine-mcp-app 2.0.1 → 3.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.
Files changed (48) hide show
  1. package/README.md +19 -270
  2. package/bin.js +12 -0
  3. package/package.json +8 -29
  4. package/LICENSE +0 -21
  5. package/build/client.d.ts +0 -56
  6. package/build/client.d.ts.map +0 -1
  7. package/build/client.js +0 -188
  8. package/build/client.js.map +0 -1
  9. package/build/index.d.ts +0 -12
  10. package/build/index.d.ts.map +0 -1
  11. package/build/index.js +0 -339
  12. package/build/index.js.map +0 -1
  13. package/build/ui/base.d.ts +0 -8
  14. package/build/ui/base.d.ts.map +0 -1
  15. package/build/ui/base.js +0 -425
  16. package/build/ui/base.js.map +0 -1
  17. package/build/ui/component-viewer.d.ts +0 -14
  18. package/build/ui/component-viewer.d.ts.map +0 -1
  19. package/build/ui/component-viewer.js +0 -678
  20. package/build/ui/component-viewer.js.map +0 -1
  21. package/build/ui/dashboard.d.ts +0 -21
  22. package/build/ui/dashboard.d.ts.map +0 -1
  23. package/build/ui/dashboard.js +0 -252
  24. package/build/ui/dashboard.js.map +0 -1
  25. package/build/ui/demo.d.ts +0 -14
  26. package/build/ui/demo.d.ts.map +0 -1
  27. package/build/ui/demo.js +0 -222
  28. package/build/ui/demo.js.map +0 -1
  29. package/build/ui/instances.d.ts +0 -17
  30. package/build/ui/instances.d.ts.map +0 -1
  31. package/build/ui/instances.js +0 -233
  32. package/build/ui/instances.js.map +0 -1
  33. package/build/ui/n8n-viewer.d.ts +0 -12
  34. package/build/ui/n8n-viewer.d.ts.map +0 -1
  35. package/build/ui/n8n-viewer.js +0 -371
  36. package/build/ui/n8n-viewer.js.map +0 -1
  37. package/build/ui/portals.d.ts +0 -14
  38. package/build/ui/portals.d.ts.map +0 -1
  39. package/build/ui/portals.js +0 -184
  40. package/build/ui/portals.js.map +0 -1
  41. package/build/ui/widgets.d.ts +0 -17
  42. package/build/ui/widgets.d.ts.map +0 -1
  43. package/build/ui/widgets.js +0 -200
  44. package/build/ui/widgets.js.map +0 -1
  45. package/build/ui/workflows.d.ts +0 -17
  46. package/build/ui/workflows.d.ts.map +0 -1
  47. package/build/ui/workflows.js +0 -217
  48. package/build/ui/workflows.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
package/build/index.js DELETED
@@ -1,339 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * FlowEngine MCP Server - Modern MCP Apps Implementation
4
- * Manage your white-label automation platform from Claude
5
- *
6
- * Core Features:
7
- * 1. Instance Management - Provision and manage FlowEngine instances
8
- * 2. Client Portals - Monitor and access client portals
9
- * 3. AI FlowBuilder - Create forms, chatbots, and UI components
10
- */
11
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
13
- import { registerAppTool, registerAppResource, RESOURCE_MIME_TYPE } from '@modelcontextprotocol/ext-apps/server';
14
- import { z } from 'zod';
15
- import { FlowEngineClient } from './client.js';
16
- import { renderUnifiedDashboard } from './ui/dashboard.js';
17
- import { renderWidgetBuilder } from './ui/widgets.js';
18
- import { renderN8nViewer } from './ui/n8n-viewer.js';
19
- import { renderComponentViewer } from './ui/component-viewer.js';
20
- import { renderError } from './ui/base.js';
21
- // Environment configuration
22
- const API_KEY = process.env.FLOWENGINE_API_KEY;
23
- const BASE_URL = process.env.FLOWENGINE_BASE_URL || 'https://flowengine.cloud';
24
- // Initialize FlowEngine client
25
- const flowengine = API_KEY ? new FlowEngineClient({
26
- apiKey: API_KEY,
27
- baseUrl: BASE_URL,
28
- }) : null;
29
- function ensureClient() {
30
- if (!flowengine) {
31
- throw new Error('FlowEngine API key not configured. Set FLOWENGINE_API_KEY in your MCP config.');
32
- }
33
- return flowengine;
34
- }
35
- // Initialize MCP Server with modern API
36
- const server = new McpServer({
37
- name: 'flowengine-mcp',
38
- version: '2.0.1',
39
- }, {
40
- capabilities: {
41
- resources: {},
42
- tools: {},
43
- },
44
- });
45
- /**
46
- * ===========================
47
- * APP RESOURCES (UI Components)
48
- * ===========================
49
- */
50
- // Dashboard Resource (Portals + Instances)
51
- registerAppResource(server, 'FlowEngine Dashboard', 'ui://flowengine/dashboard', {
52
- description: 'INTERACTIVE UI APP: Shows live dashboard with all portals, instances, storage stats, and management controls. USE THIS UI when user asks for: dashboard, portals, instances, client accounts, portal management, or "show me FlowEngine". This provides a rich visual interface instead of JSON data.',
53
- }, async () => {
54
- try {
55
- const portals = await ensureClient().getClientInstances();
56
- const html = renderUnifiedDashboard(portals);
57
- return {
58
- contents: [{
59
- uri: 'ui://flowengine/dashboard',
60
- mimeType: RESOURCE_MIME_TYPE,
61
- text: html,
62
- }],
63
- };
64
- }
65
- catch (error) {
66
- const html = renderError(error.message || 'Failed to load dashboard');
67
- return {
68
- contents: [{
69
- uri: 'ui://flowengine/dashboard',
70
- mimeType: RESOURCE_MIME_TYPE,
71
- text: html,
72
- }],
73
- };
74
- }
75
- });
76
- // n8n Workflow Viewer Resource
77
- registerAppResource(server, 'n8n Workflow Viewer', 'ui://flowengine/workflow-viewer', {
78
- description: 'INTERACTIVE UI APP: Full-screen n8n workflow visualization with interactive demo. USE THIS UI when user asks to: view workflow, show n8n workflow, visualize automation, or preview workflow. Shows live workflow editor with share/export capabilities.',
79
- }, async () => {
80
- const html = renderN8nViewer();
81
- return {
82
- contents: [{
83
- uri: 'ui://flowengine/workflow-viewer',
84
- mimeType: RESOURCE_MIME_TYPE,
85
- text: html,
86
- }],
87
- };
88
- });
89
- // UI Component Viewer Resource
90
- registerAppResource(server, 'UI Component Viewer', 'ui://flowengine/component-viewer', {
91
- description: 'INTERACTIVE UI APP: Live preview of forms, chatbots, widgets and UI components. USE THIS UI when user asks to: preview component, show chatbot, view form, see widget, or display UI component. Interactive preview with embed codes.',
92
- }, async () => {
93
- const html = renderComponentViewer();
94
- return {
95
- contents: [{
96
- uri: 'ui://flowengine/component-viewer',
97
- mimeType: RESOURCE_MIME_TYPE,
98
- text: html,
99
- }],
100
- };
101
- });
102
- // AI FlowBuilder Dashboard Resource
103
- registerAppResource(server, 'AI FlowBuilder Dashboard', 'ui://flowengine/ui-builder', {
104
- description: 'INTERACTIVE UI APP: Dashboard for building and managing all UI components (forms, chatbots, widgets). USE THIS UI when user asks for: UI builder, component builder, create form, build chatbot, or manage components. Shows component gallery with creation tools.',
105
- }, async () => {
106
- try {
107
- const widgets = await ensureClient().getWidgets();
108
- const html = renderWidgetBuilder(widgets);
109
- return {
110
- contents: [{
111
- uri: 'ui://flowengine/ui-builder',
112
- mimeType: RESOURCE_MIME_TYPE,
113
- text: html,
114
- }],
115
- };
116
- }
117
- catch (error) {
118
- const html = renderError(error.message || 'Failed to load UI builder');
119
- return {
120
- contents: [{
121
- uri: 'ui://flowengine/ui-builder',
122
- mimeType: RESOURCE_MIME_TYPE,
123
- text: html,
124
- }],
125
- };
126
- }
127
- });
128
- /**
129
- * ===========================
130
- * TOOLS WITH UI (MCP Apps)
131
- * ===========================
132
- */
133
- // Instance Management - List with UI
134
- registerAppTool(server, 'flowengine_list_instances', {
135
- description: 'Show the FlowEngine Dashboard with interactive UI displaying all portals, instances, storage stats, and management controls. Use this when user wants to see the dashboard, view portals, check instances, or get an overview of FlowEngine. Renders a visual dashboard interface instead of JSON.',
136
- inputSchema: z.object({}),
137
- _meta: {
138
- ui: {
139
- resourceUri: 'ui://flowengine/dashboard',
140
- },
141
- },
142
- }, async () => {
143
- const instances = await ensureClient().getInstances();
144
- return {
145
- content: [{
146
- type: 'text',
147
- text: JSON.stringify(instances, null, 2),
148
- }],
149
- };
150
- });
151
- // Portal Management - List with UI
152
- registerAppTool(server, 'flowengine_list_portals', {
153
- description: 'Show the FlowEngine Dashboard with interactive UI displaying all client portals, instances, and management controls. Use this when user wants to see portals, view client accounts, check portal status, or manage portals. Renders a visual dashboard interface instead of JSON.',
154
- inputSchema: z.object({}),
155
- _meta: {
156
- ui: {
157
- resourceUri: 'ui://flowengine/dashboard',
158
- },
159
- },
160
- }, async () => {
161
- const portals = await ensureClient().getClientInstances();
162
- return {
163
- content: [{
164
- type: 'text',
165
- text: JSON.stringify(portals, null, 2),
166
- }],
167
- };
168
- });
169
- // UI Components - List with UI
170
- registerAppTool(server, 'flowengine_list_components', {
171
- description: 'Show the AI FlowBuilder Dashboard with interactive UI displaying all forms, chatbots, widgets, and UI components. Use this when user wants to see the UI builder, view components, manage forms/chatbots, or build UI elements. Renders a component gallery interface instead of JSON. Optionally filter by instanceId.',
172
- inputSchema: z.object({
173
- instanceId: z.string().optional(),
174
- }),
175
- _meta: {
176
- ui: {
177
- resourceUri: 'ui://flowengine/ui-builder',
178
- },
179
- },
180
- }, async (args) => {
181
- const instanceId = args ? args.instanceId : undefined;
182
- const widgets = await ensureClient().getWidgets(instanceId);
183
- return {
184
- content: [{
185
- type: 'text',
186
- text: JSON.stringify(widgets, null, 2),
187
- }],
188
- };
189
- });
190
- /**
191
- * ===========================
192
- * REGULAR TOOLS (No UI)
193
- * ===========================
194
- */
195
- // Get Instance Status
196
- server.registerTool('flowengine_get_instance_status', {
197
- description: 'Get health and status information for a specific instance',
198
- inputSchema: z.object({
199
- instanceId: z.string(),
200
- }),
201
- }, async (args) => {
202
- const instanceId = args.instanceId;
203
- const status = await ensureClient().getInstanceStatus(instanceId);
204
- return {
205
- content: [{
206
- type: 'text',
207
- text: JSON.stringify(status, null, 2),
208
- }],
209
- };
210
- });
211
- // Create Instance
212
- server.registerTool('flowengine_create_instance', {
213
- description: 'Provision a new FlowEngine instance for a client',
214
- inputSchema: z.object({
215
- data: z.any(),
216
- }),
217
- }, async (args) => {
218
- const data = args.data;
219
- const result = await ensureClient().provisionInstance(data);
220
- return {
221
- content: [{
222
- type: 'text',
223
- text: `Instance created successfully. ID: ${result.instanceId || result.id || 'N/A'}`,
224
- }],
225
- };
226
- });
227
- // Update Instance
228
- server.registerTool('flowengine_update_instance', {
229
- description: 'Update instance settings and configuration',
230
- inputSchema: z.object({
231
- data: z.any().describe('Updated instance configuration'),
232
- }),
233
- }, async (args) => {
234
- const data = args.data;
235
- await ensureClient().updateInstance(data);
236
- return {
237
- content: [{
238
- type: 'text',
239
- text: 'Instance updated successfully',
240
- }],
241
- };
242
- });
243
- // Delete Instance
244
- server.registerTool('flowengine_delete_instance', {
245
- description: 'Permanently delete a FlowEngine instance',
246
- inputSchema: z.object({
247
- instanceId: z.string().describe('The instance ID to delete'),
248
- }),
249
- }, async (args) => {
250
- const instanceId = args.instanceId;
251
- await ensureClient().deleteInstance(instanceId);
252
- return {
253
- content: [{
254
- type: 'text',
255
- text: 'Instance deleted successfully',
256
- }],
257
- };
258
- });
259
- // Get Component
260
- server.registerTool('flowengine_get_component', {
261
- description: 'Get detailed configuration for a specific UI component',
262
- inputSchema: z.object({
263
- componentId: z.string().describe('The component ID'),
264
- }),
265
- }, async (args) => {
266
- const componentId = args.componentId;
267
- const widget = await ensureClient().getWidget(componentId);
268
- return {
269
- content: [{
270
- type: 'text',
271
- text: JSON.stringify(widget, null, 2),
272
- }],
273
- };
274
- });
275
- // Create Component
276
- server.registerTool('flowengine_create_component', {
277
- description: 'Create a new UI component using AI FlowBuilder (form, chatbot, or widget)',
278
- inputSchema: z.object({
279
- data: z.any().describe('Component configuration with type, name, and settings'),
280
- }),
281
- }, async (args) => {
282
- const data = args.data;
283
- const result = await ensureClient().createWidget(data);
284
- return {
285
- content: [{
286
- type: 'text',
287
- text: `Component created successfully. ID: ${result.id || result.widgetId || 'N/A'}`,
288
- }],
289
- };
290
- });
291
- // Update Component
292
- server.registerTool('flowengine_update_component', {
293
- description: 'Update an existing UI component configuration',
294
- inputSchema: z.object({
295
- componentId: z.string().describe('The component ID to update'),
296
- data: z.any().describe('Updated component configuration'),
297
- }),
298
- }, async (args) => {
299
- const componentId = args.componentId;
300
- const data = args.data;
301
- await ensureClient().updateWidget(componentId, data);
302
- return {
303
- content: [{
304
- type: 'text',
305
- text: 'Component updated successfully',
306
- }],
307
- };
308
- });
309
- // Delete Component
310
- server.registerTool('flowengine_delete_component', {
311
- description: 'Delete a UI component',
312
- inputSchema: z.object({
313
- componentId: z.string().describe('The component ID to delete'),
314
- }),
315
- }, async (args) => {
316
- const componentId = args.componentId;
317
- await ensureClient().deleteWidget(componentId);
318
- return {
319
- content: [{
320
- type: 'text',
321
- text: 'Component deleted successfully',
322
- }],
323
- };
324
- });
325
- /**
326
- * ===========================
327
- * SERVER STARTUP
328
- * ===========================
329
- */
330
- async function main() {
331
- const transport = new StdioServerTransport();
332
- await server.server.connect(transport);
333
- console.error('FlowEngine MCP Server (Modern API) running on stdio');
334
- }
335
- main().catch((error) => {
336
- console.error('Fatal error in MCP server:', error);
337
- process.exit(1);
338
- });
339
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Base UI layout and shared components for MCP App
3
- * Matches FlowEngine design system exactly
4
- */
5
- export declare function baseLayout(title: string, content: string): string;
6
- export declare function renderEmptyState(title: string, description: string, iconSvg?: string): string;
7
- export declare function renderError(error: string): string;
8
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/ui/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0YjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjD"}