@flowdot.ai/mcp-server 1.0.0

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 (315) hide show
  1. package/README.md +162 -0
  2. package/bin/flowdot-mcp.js +15 -0
  3. package/dist/api-client.d.ts +349 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +789 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/index.d.ts +26 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +32 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/server.d.ts +15 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +96 -0
  14. package/dist/server.js.map +1 -0
  15. package/dist/tools/add-connection.d.ts +16 -0
  16. package/dist/tools/add-connection.d.ts.map +1 -0
  17. package/dist/tools/add-connection.js +62 -0
  18. package/dist/tools/add-connection.js.map +1 -0
  19. package/dist/tools/add-custom-node-comment.d.ts +15 -0
  20. package/dist/tools/add-custom-node-comment.d.ts.map +1 -0
  21. package/dist/tools/add-custom-node-comment.js +69 -0
  22. package/dist/tools/add-custom-node-comment.js.map +1 -0
  23. package/dist/tools/add-node.d.ts +18 -0
  24. package/dist/tools/add-node.d.ts.map +1 -0
  25. package/dist/tools/add-node.js +66 -0
  26. package/dist/tools/add-node.js.map +1 -0
  27. package/dist/tools/add-shared-result-comment.d.ts +15 -0
  28. package/dist/tools/add-shared-result-comment.d.ts.map +1 -0
  29. package/dist/tools/add-shared-result-comment.js +70 -0
  30. package/dist/tools/add-shared-result-comment.js.map +1 -0
  31. package/dist/tools/add-workflow-comment.d.ts +14 -0
  32. package/dist/tools/add-workflow-comment.d.ts.map +1 -0
  33. package/dist/tools/add-workflow-comment.js +66 -0
  34. package/dist/tools/add-workflow-comment.js.map +1 -0
  35. package/dist/tools/agent-chat.d.ts +14 -0
  36. package/dist/tools/agent-chat.d.ts.map +1 -0
  37. package/dist/tools/agent-chat.js +80 -0
  38. package/dist/tools/agent-chat.js.map +1 -0
  39. package/dist/tools/cancel-execution.d.ts +12 -0
  40. package/dist/tools/cancel-execution.d.ts.map +1 -0
  41. package/dist/tools/cancel-execution.js +37 -0
  42. package/dist/tools/cancel-execution.js.map +1 -0
  43. package/dist/tools/clone-app.d.ts +11 -0
  44. package/dist/tools/clone-app.d.ts.map +1 -0
  45. package/dist/tools/clone-app.js +63 -0
  46. package/dist/tools/clone-app.js.map +1 -0
  47. package/dist/tools/copy-custom-node.d.ts +14 -0
  48. package/dist/tools/copy-custom-node.d.ts.map +1 -0
  49. package/dist/tools/copy-custom-node.js +50 -0
  50. package/dist/tools/copy-custom-node.js.map +1 -0
  51. package/dist/tools/create-app.d.ts +11 -0
  52. package/dist/tools/create-app.d.ts.map +1 -0
  53. package/dist/tools/create-app.js +182 -0
  54. package/dist/tools/create-app.js.map +1 -0
  55. package/dist/tools/create-custom-node.d.ts +28 -0
  56. package/dist/tools/create-custom-node.d.ts.map +1 -0
  57. package/dist/tools/create-custom-node.js +221 -0
  58. package/dist/tools/create-custom-node.js.map +1 -0
  59. package/dist/tools/create-input-preset.d.ts +15 -0
  60. package/dist/tools/create-input-preset.d.ts.map +1 -0
  61. package/dist/tools/create-input-preset.js +76 -0
  62. package/dist/tools/create-input-preset.js.map +1 -0
  63. package/dist/tools/create-shared-result.d.ts +17 -0
  64. package/dist/tools/create-shared-result.d.ts.map +1 -0
  65. package/dist/tools/create-shared-result.js +78 -0
  66. package/dist/tools/create-shared-result.js.map +1 -0
  67. package/dist/tools/create-workflow.d.ts +13 -0
  68. package/dist/tools/create-workflow.d.ts.map +1 -0
  69. package/dist/tools/create-workflow.js +49 -0
  70. package/dist/tools/create-workflow.js.map +1 -0
  71. package/dist/tools/delete-app.d.ts +11 -0
  72. package/dist/tools/delete-app.d.ts.map +1 -0
  73. package/dist/tools/delete-app.js +40 -0
  74. package/dist/tools/delete-app.js.map +1 -0
  75. package/dist/tools/delete-connection.d.ts +13 -0
  76. package/dist/tools/delete-connection.d.ts.map +1 -0
  77. package/dist/tools/delete-connection.js +41 -0
  78. package/dist/tools/delete-connection.js.map +1 -0
  79. package/dist/tools/delete-custom-node.d.ts +13 -0
  80. package/dist/tools/delete-custom-node.d.ts.map +1 -0
  81. package/dist/tools/delete-custom-node.js +41 -0
  82. package/dist/tools/delete-custom-node.js.map +1 -0
  83. package/dist/tools/delete-input-preset.d.ts +13 -0
  84. package/dist/tools/delete-input-preset.d.ts.map +1 -0
  85. package/dist/tools/delete-input-preset.js +42 -0
  86. package/dist/tools/delete-input-preset.js.map +1 -0
  87. package/dist/tools/delete-node.d.ts +13 -0
  88. package/dist/tools/delete-node.d.ts.map +1 -0
  89. package/dist/tools/delete-node.js +41 -0
  90. package/dist/tools/delete-node.js.map +1 -0
  91. package/dist/tools/delete-workflow.d.ts +12 -0
  92. package/dist/tools/delete-workflow.d.ts.map +1 -0
  93. package/dist/tools/delete-workflow.js +37 -0
  94. package/dist/tools/delete-workflow.js.map +1 -0
  95. package/dist/tools/duplicate-workflow.d.ts +13 -0
  96. package/dist/tools/duplicate-workflow.d.ts.map +1 -0
  97. package/dist/tools/duplicate-workflow.js +49 -0
  98. package/dist/tools/duplicate-workflow.js.map +1 -0
  99. package/dist/tools/execute-workflow.d.ts +15 -0
  100. package/dist/tools/execute-workflow.d.ts.map +1 -0
  101. package/dist/tools/execute-workflow.js +112 -0
  102. package/dist/tools/execute-workflow.js.map +1 -0
  103. package/dist/tools/favorite-custom-node.d.ts +14 -0
  104. package/dist/tools/favorite-custom-node.d.ts.map +1 -0
  105. package/dist/tools/favorite-custom-node.js +48 -0
  106. package/dist/tools/favorite-custom-node.js.map +1 -0
  107. package/dist/tools/favorite-workflow.d.ts +13 -0
  108. package/dist/tools/favorite-workflow.d.ts.map +1 -0
  109. package/dist/tools/favorite-workflow.js +42 -0
  110. package/dist/tools/favorite-workflow.js.map +1 -0
  111. package/dist/tools/get-app-template.d.ts +10 -0
  112. package/dist/tools/get-app-template.d.ts.map +1 -0
  113. package/dist/tools/get-app-template.js +856 -0
  114. package/dist/tools/get-app-template.js.map +1 -0
  115. package/dist/tools/get-app.d.ts +11 -0
  116. package/dist/tools/get-app.d.ts.map +1 -0
  117. package/dist/tools/get-app.js +124 -0
  118. package/dist/tools/get-app.js.map +1 -0
  119. package/dist/tools/get-custom-node-comments.d.ts +13 -0
  120. package/dist/tools/get-custom-node-comments.d.ts.map +1 -0
  121. package/dist/tools/get-custom-node-comments.js +65 -0
  122. package/dist/tools/get-custom-node-comments.js.map +1 -0
  123. package/dist/tools/get-custom-node-template.d.ts +31 -0
  124. package/dist/tools/get-custom-node-template.d.ts.map +1 -0
  125. package/dist/tools/get-custom-node-template.js +212 -0
  126. package/dist/tools/get-custom-node-template.js.map +1 -0
  127. package/dist/tools/get-custom-node.d.ts +13 -0
  128. package/dist/tools/get-custom-node.d.ts.map +1 -0
  129. package/dist/tools/get-custom-node.js +98 -0
  130. package/dist/tools/get-custom-node.js.map +1 -0
  131. package/dist/tools/get-execution-history.d.ts +14 -0
  132. package/dist/tools/get-execution-history.d.ts.map +1 -0
  133. package/dist/tools/get-execution-history.js +65 -0
  134. package/dist/tools/get-execution-history.js.map +1 -0
  135. package/dist/tools/get-execution.d.ts +12 -0
  136. package/dist/tools/get-execution.d.ts.map +1 -0
  137. package/dist/tools/get-execution.js +81 -0
  138. package/dist/tools/get-execution.js.map +1 -0
  139. package/dist/tools/get-input-preset.d.ts +13 -0
  140. package/dist/tools/get-input-preset.d.ts.map +1 -0
  141. package/dist/tools/get-input-preset.js +69 -0
  142. package/dist/tools/get-input-preset.js.map +1 -0
  143. package/dist/tools/get-node-connections.d.ts +13 -0
  144. package/dist/tools/get-node-connections.d.ts.map +1 -0
  145. package/dist/tools/get-node-connections.js +67 -0
  146. package/dist/tools/get-node-connections.js.map +1 -0
  147. package/dist/tools/get-node-schema.d.ts +12 -0
  148. package/dist/tools/get-node-schema.d.ts.map +1 -0
  149. package/dist/tools/get-node-schema.js +113 -0
  150. package/dist/tools/get-node-schema.js.map +1 -0
  151. package/dist/tools/get-public-workflows.d.ts +13 -0
  152. package/dist/tools/get-public-workflows.d.ts.map +1 -0
  153. package/dist/tools/get-public-workflows.js +63 -0
  154. package/dist/tools/get-public-workflows.js.map +1 -0
  155. package/dist/tools/get-shared-result-comments.d.ts +13 -0
  156. package/dist/tools/get-shared-result-comments.d.ts.map +1 -0
  157. package/dist/tools/get-shared-result-comments.js +62 -0
  158. package/dist/tools/get-shared-result-comments.js.map +1 -0
  159. package/dist/tools/get-shared-result.d.ts +13 -0
  160. package/dist/tools/get-shared-result.d.ts.map +1 -0
  161. package/dist/tools/get-shared-result.js +83 -0
  162. package/dist/tools/get-shared-result.js.map +1 -0
  163. package/dist/tools/get-workflow-comments.d.ts +12 -0
  164. package/dist/tools/get-workflow-comments.d.ts.map +1 -0
  165. package/dist/tools/get-workflow-comments.js +60 -0
  166. package/dist/tools/get-workflow-comments.js.map +1 -0
  167. package/dist/tools/get-workflow-details.d.ts +12 -0
  168. package/dist/tools/get-workflow-details.d.ts.map +1 -0
  169. package/dist/tools/get-workflow-details.js +87 -0
  170. package/dist/tools/get-workflow-details.js.map +1 -0
  171. package/dist/tools/get-workflow-graph.d.ts +12 -0
  172. package/dist/tools/get-workflow-graph.d.ts.map +1 -0
  173. package/dist/tools/get-workflow-graph.js +83 -0
  174. package/dist/tools/get-workflow-graph.js.map +1 -0
  175. package/dist/tools/get-workflow-inputs-schema.d.ts +12 -0
  176. package/dist/tools/get-workflow-inputs-schema.d.ts.map +1 -0
  177. package/dist/tools/get-workflow-inputs-schema.js +74 -0
  178. package/dist/tools/get-workflow-inputs-schema.js.map +1 -0
  179. package/dist/tools/get-workflow-metrics.d.ts +13 -0
  180. package/dist/tools/get-workflow-metrics.d.ts.map +1 -0
  181. package/dist/tools/get-workflow-metrics.js +65 -0
  182. package/dist/tools/get-workflow-metrics.js.map +1 -0
  183. package/dist/tools/get-workflow-public-url.d.ts +12 -0
  184. package/dist/tools/get-workflow-public-url.d.ts.map +1 -0
  185. package/dist/tools/get-workflow-public-url.js +48 -0
  186. package/dist/tools/get-workflow-public-url.js.map +1 -0
  187. package/dist/tools/get-workflow-tags.d.ts +12 -0
  188. package/dist/tools/get-workflow-tags.d.ts.map +1 -0
  189. package/dist/tools/get-workflow-tags.js +42 -0
  190. package/dist/tools/get-workflow-tags.js.map +1 -0
  191. package/dist/tools/index.d.ts +12 -0
  192. package/dist/tools/index.d.ts.map +1 -0
  193. package/dist/tools/index.js +407 -0
  194. package/dist/tools/index.js.map +1 -0
  195. package/dist/tools/link-app-workflow.d.ts +11 -0
  196. package/dist/tools/link-app-workflow.d.ts.map +1 -0
  197. package/dist/tools/link-app-workflow.js +69 -0
  198. package/dist/tools/link-app-workflow.js.map +1 -0
  199. package/dist/tools/list-apps.d.ts +11 -0
  200. package/dist/tools/list-apps.d.ts.map +1 -0
  201. package/dist/tools/list-apps.js +75 -0
  202. package/dist/tools/list-apps.js.map +1 -0
  203. package/dist/tools/list-available-nodes.d.ts +10 -0
  204. package/dist/tools/list-available-nodes.d.ts.map +1 -0
  205. package/dist/tools/list-available-nodes.js +94 -0
  206. package/dist/tools/list-available-nodes.js.map +1 -0
  207. package/dist/tools/list-custom-nodes.d.ts +16 -0
  208. package/dist/tools/list-custom-nodes.d.ts.map +1 -0
  209. package/dist/tools/list-custom-nodes.js +80 -0
  210. package/dist/tools/list-custom-nodes.js.map +1 -0
  211. package/dist/tools/list-input-presets.d.ts +15 -0
  212. package/dist/tools/list-input-presets.d.ts.map +1 -0
  213. package/dist/tools/list-input-presets.js +100 -0
  214. package/dist/tools/list-input-presets.js.map +1 -0
  215. package/dist/tools/list-shared-results.d.ts +15 -0
  216. package/dist/tools/list-shared-results.d.ts.map +1 -0
  217. package/dist/tools/list-shared-results.js +80 -0
  218. package/dist/tools/list-shared-results.js.map +1 -0
  219. package/dist/tools/list-workflows.d.ts +13 -0
  220. package/dist/tools/list-workflows.d.ts.map +1 -0
  221. package/dist/tools/list-workflows.js +70 -0
  222. package/dist/tools/list-workflows.js.map +1 -0
  223. package/dist/tools/publish-app.d.ts +11 -0
  224. package/dist/tools/publish-app.d.ts.map +1 -0
  225. package/dist/tools/publish-app.js +44 -0
  226. package/dist/tools/publish-app.js.map +1 -0
  227. package/dist/tools/retry-execution.d.ts +12 -0
  228. package/dist/tools/retry-execution.d.ts.map +1 -0
  229. package/dist/tools/retry-execution.js +45 -0
  230. package/dist/tools/retry-execution.js.map +1 -0
  231. package/dist/tools/search-apps.d.ts +11 -0
  232. package/dist/tools/search-apps.d.ts.map +1 -0
  233. package/dist/tools/search-apps.js +104 -0
  234. package/dist/tools/search-apps.js.map +1 -0
  235. package/dist/tools/search-public-custom-nodes.d.ts +19 -0
  236. package/dist/tools/search-public-custom-nodes.d.ts.map +1 -0
  237. package/dist/tools/search-public-custom-nodes.js +101 -0
  238. package/dist/tools/search-public-custom-nodes.js.map +1 -0
  239. package/dist/tools/search-workflows.d.ts +14 -0
  240. package/dist/tools/search-workflows.d.ts.map +1 -0
  241. package/dist/tools/search-workflows.js +62 -0
  242. package/dist/tools/search-workflows.js.map +1 -0
  243. package/dist/tools/set-workflow-tags.d.ts +13 -0
  244. package/dist/tools/set-workflow-tags.d.ts.map +1 -0
  245. package/dist/tools/set-workflow-tags.js +42 -0
  246. package/dist/tools/set-workflow-tags.js.map +1 -0
  247. package/dist/tools/stream-execution.d.ts +13 -0
  248. package/dist/tools/stream-execution.d.ts.map +1 -0
  249. package/dist/tools/stream-execution.js +70 -0
  250. package/dist/tools/stream-execution.js.map +1 -0
  251. package/dist/tools/toggle-community-inputs.d.ts +13 -0
  252. package/dist/tools/toggle-community-inputs.d.ts.map +1 -0
  253. package/dist/tools/toggle-community-inputs.js +49 -0
  254. package/dist/tools/toggle-community-inputs.js.map +1 -0
  255. package/dist/tools/toggle-custom-node-visibility.d.ts +14 -0
  256. package/dist/tools/toggle-custom-node-visibility.d.ts.map +1 -0
  257. package/dist/tools/toggle-custom-node-visibility.js +59 -0
  258. package/dist/tools/toggle-custom-node-visibility.js.map +1 -0
  259. package/dist/tools/toggle-workflow-public.d.ts +13 -0
  260. package/dist/tools/toggle-workflow-public.d.ts.map +1 -0
  261. package/dist/tools/toggle-workflow-public.js +42 -0
  262. package/dist/tools/toggle-workflow-public.js.map +1 -0
  263. package/dist/tools/unlink-app-workflow.d.ts +11 -0
  264. package/dist/tools/unlink-app-workflow.d.ts.map +1 -0
  265. package/dist/tools/unlink-app-workflow.js +44 -0
  266. package/dist/tools/unlink-app-workflow.js.map +1 -0
  267. package/dist/tools/unpublish-app.d.ts +11 -0
  268. package/dist/tools/unpublish-app.d.ts.map +1 -0
  269. package/dist/tools/unpublish-app.js +39 -0
  270. package/dist/tools/unpublish-app.js.map +1 -0
  271. package/dist/tools/update-app.d.ts +11 -0
  272. package/dist/tools/update-app.d.ts.map +1 -0
  273. package/dist/tools/update-app.js +101 -0
  274. package/dist/tools/update-app.js.map +1 -0
  275. package/dist/tools/update-custom-node.d.ts +28 -0
  276. package/dist/tools/update-custom-node.d.ts.map +1 -0
  277. package/dist/tools/update-custom-node.js +174 -0
  278. package/dist/tools/update-custom-node.js.map +1 -0
  279. package/dist/tools/update-input-preset.d.ts +16 -0
  280. package/dist/tools/update-input-preset.d.ts.map +1 -0
  281. package/dist/tools/update-input-preset.js +79 -0
  282. package/dist/tools/update-input-preset.js.map +1 -0
  283. package/dist/tools/update-node.d.ts +18 -0
  284. package/dist/tools/update-node.d.ts.map +1 -0
  285. package/dist/tools/update-node.js +73 -0
  286. package/dist/tools/update-node.js.map +1 -0
  287. package/dist/tools/validate-workflow.d.ts +12 -0
  288. package/dist/tools/validate-workflow.d.ts.map +1 -0
  289. package/dist/tools/validate-workflow.js +61 -0
  290. package/dist/tools/validate-workflow.js.map +1 -0
  291. package/dist/tools/vote-custom-node.d.ts +14 -0
  292. package/dist/tools/vote-custom-node.d.ts.map +1 -0
  293. package/dist/tools/vote-custom-node.js +60 -0
  294. package/dist/tools/vote-custom-node.js.map +1 -0
  295. package/dist/tools/vote-input-preset.d.ts +14 -0
  296. package/dist/tools/vote-input-preset.d.ts.map +1 -0
  297. package/dist/tools/vote-input-preset.js +49 -0
  298. package/dist/tools/vote-input-preset.js.map +1 -0
  299. package/dist/tools/vote-shared-result.d.ts +14 -0
  300. package/dist/tools/vote-shared-result.d.ts.map +1 -0
  301. package/dist/tools/vote-shared-result.js +49 -0
  302. package/dist/tools/vote-shared-result.js.map +1 -0
  303. package/dist/tools/vote-workflow.d.ts +13 -0
  304. package/dist/tools/vote-workflow.d.ts.map +1 -0
  305. package/dist/tools/vote-workflow.js +45 -0
  306. package/dist/tools/vote-workflow.js.map +1 -0
  307. package/dist/types.d.ts +670 -0
  308. package/dist/types.d.ts.map +1 -0
  309. package/dist/types.js +5 -0
  310. package/dist/types.js.map +1 -0
  311. package/dist/utils/script-validator.d.ts +35 -0
  312. package/dist/utils/script-validator.d.ts.map +1 -0
  313. package/dist/utils/script-validator.js +282 -0
  314. package/dist/utils/script-validator.js.map +1 -0
  315. package/package.json +54 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * get_workflow_metrics MCP Tool
3
+ *
4
+ * Gets execution metrics for a workflow including counts, success rates, and average duration.
5
+ */
6
+ export const getWorkflowMetricsTool = {
7
+ name: 'get_workflow_metrics',
8
+ description: 'Get execution metrics for a workflow including total executions, success/failure rates, average duration, and daily breakdowns.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ workflow_id: {
13
+ type: 'string',
14
+ description: 'The workflow ID (hash)',
15
+ },
16
+ period: {
17
+ type: 'string',
18
+ description: 'Time period: 7d, 30d, 90d, or all',
19
+ default: '30d',
20
+ },
21
+ },
22
+ required: ['workflow_id'],
23
+ },
24
+ };
25
+ export async function handleGetWorkflowMetrics(api, args) {
26
+ try {
27
+ const metrics = await api.getWorkflowMetrics(args.workflow_id, args.period);
28
+ // success_rate from API is already a percentage (0-100), not a decimal
29
+ const successRate = typeof metrics.success_rate === 'number' ? metrics.success_rate : 0;
30
+ // Duration should be positive; use absolute value and handle edge cases
31
+ const avgDuration = metrics.avg_duration_ms;
32
+ const durationDisplay = avgDuration && avgDuration > 0
33
+ ? `${avgDuration}ms`
34
+ : avgDuration && avgDuration < 0
35
+ ? `${Math.abs(avgDuration)}ms` // Handle negative durations
36
+ : 'N/A';
37
+ const lines = [
38
+ `## Workflow Metrics (${metrics.period || 'all time'})`,
39
+ '',
40
+ `**Total Executions:** ${metrics.total_executions || 0}`,
41
+ `**Successful:** ${metrics.successful_executions || 0}`,
42
+ `**Failed:** ${metrics.failed_executions || 0}`,
43
+ `**Success Rate:** ${successRate.toFixed(1)}%`,
44
+ `**Avg Duration:** ${durationDisplay}`,
45
+ ];
46
+ const dailyData = Array.isArray(metrics.executions_by_day) ? metrics.executions_by_day : [];
47
+ if (dailyData.length > 0) {
48
+ lines.push('', '### Daily Breakdown (last 7 days):');
49
+ for (const day of dailyData.slice(-7)) {
50
+ lines.push(`- ${day.date}: ${day.count} (${day.success_count} success, ${day.failure_count} failed)`);
51
+ }
52
+ }
53
+ return {
54
+ content: [{ type: 'text', text: lines.join('\n') }],
55
+ };
56
+ }
57
+ catch (error) {
58
+ const message = error instanceof Error ? error.message : 'Unknown error';
59
+ return {
60
+ content: [{ type: 'text', text: `Error getting workflow metrics: ${message}` }],
61
+ isError: true,
62
+ };
63
+ }
64
+ }
65
+ //# sourceMappingURL=get-workflow-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-metrics.js","sourceRoot":"","sources":["../../src/tools/get-workflow-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,sBAAsB,GAAS;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,iIAAiI;IAC9I,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;gBAChD,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAqB,EACrB,IAA8C;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5E,uEAAuE;QACvE,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAExF,wEAAwE;QACxE,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;QAC5C,MAAM,eAAe,GAAG,WAAW,IAAI,WAAW,GAAG,CAAC;YACpD,CAAC,CAAC,GAAG,WAAW,IAAI;YACpB,CAAC,CAAC,WAAW,IAAI,WAAW,GAAG,CAAC;gBAC9B,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,4BAA4B;gBAC3D,CAAC,CAAC,KAAK,CAAC;QAEZ,MAAM,KAAK,GAAG;YACZ,wBAAwB,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG;YACvD,EAAE;YACF,yBAAyB,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE;YACxD,mBAAmB,OAAO,CAAC,qBAAqB,IAAI,CAAC,EAAE;YACvD,eAAe,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAC/C,qBAAqB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YAC9C,qBAAqB,eAAe,EAAE;SACvC,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;YACrD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,aAAa,UAAU,CAAC,CAAC;YACxG,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,OAAO,EAAE,EAAE,CAAC;YAC/E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * get_workflow_public_url MCP Tool
3
+ *
4
+ * Gets the public URL for a workflow.
5
+ */
6
+ import { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
7
+ import { FlowDotApiClient } from '../api-client.js';
8
+ export declare const getWorkflowPublicUrlTool: Tool;
9
+ export declare function handleGetWorkflowPublicUrl(api: FlowDotApiClient, args: {
10
+ workflow_id: string;
11
+ }): Promise<CallToolResult>;
12
+ //# sourceMappingURL=get-workflow-public-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-public-url.d.ts","sourceRoot":"","sources":["../../src/tools/get-workflow-public-url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,EAAE,IAatC,CAAC;AAEF,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6BzB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * get_workflow_public_url MCP Tool
3
+ *
4
+ * Gets the public URL for a workflow.
5
+ */
6
+ export const getWorkflowPublicUrlTool = {
7
+ name: 'get_workflow_public_url',
8
+ description: 'Get the public shareable URL for a workflow. Returns the URL and indicates if the workflow is currently accessible to others.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ workflow_id: {
13
+ type: 'string',
14
+ description: 'The workflow ID (hash)',
15
+ },
16
+ },
17
+ required: ['workflow_id'],
18
+ },
19
+ };
20
+ export async function handleGetWorkflowPublicUrl(api, args) {
21
+ try {
22
+ const result = await api.getWorkflowPublicUrl(args.workflow_id);
23
+ const lines = [
24
+ `## Public URL for "${result.workflow_name}"`,
25
+ '',
26
+ `**URL:** ${result.public_url}`,
27
+ '',
28
+ `**Status:** ${result.is_public ? '✓ Public' : '✗ Private'}`,
29
+ '',
30
+ result.message,
31
+ ];
32
+ if (!result.is_public) {
33
+ lines.push('');
34
+ lines.push('> Tip: Use `toggle_workflow_public` tool to make this workflow public.');
35
+ }
36
+ return {
37
+ content: [{ type: 'text', text: lines.join('\n') }],
38
+ };
39
+ }
40
+ catch (error) {
41
+ const message = error instanceof Error ? error.message : 'Unknown error';
42
+ return {
43
+ content: [{ type: 'text', text: `Error getting workflow public URL: ${message}` }],
44
+ isError: true,
45
+ };
46
+ }
47
+ }
48
+ //# sourceMappingURL=get-workflow-public-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-public-url.js","sourceRoot":"","sources":["../../src/tools/get-workflow-public-url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,+HAA+H;IAC5I,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAqB,EACrB,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG;YACZ,sBAAsB,MAAM,CAAC,aAAa,GAAG;YAC7C,EAAE;YACF,YAAY,MAAM,CAAC,UAAU,EAAE;YAC/B,EAAE;YACF,eAAe,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE;YAC5D,EAAE;YACF,MAAM,CAAC,OAAO;SACf,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACvF,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,OAAO,EAAE,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * get_workflow_tags MCP Tool
3
+ *
4
+ * Gets the tags associated with a workflow.
5
+ */
6
+ import { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
7
+ import { FlowDotApiClient } from '../api-client.js';
8
+ export declare const getWorkflowTagsTool: Tool;
9
+ export declare function handleGetWorkflowTags(api: FlowDotApiClient, args: {
10
+ workflow_id: string;
11
+ }): Promise<CallToolResult>;
12
+ //# sourceMappingURL=get-workflow-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-tags.d.ts","sourceRoot":"","sources":["../../src/tools/get-workflow-tags.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,mBAAmB,EAAE,IAajC,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,cAAc,CAAC,CAuBzB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * get_workflow_tags MCP Tool
3
+ *
4
+ * Gets the tags associated with a workflow.
5
+ */
6
+ export const getWorkflowTagsTool = {
7
+ name: 'get_workflow_tags',
8
+ description: 'Get the tags/categories associated with a workflow.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ workflow_id: {
13
+ type: 'string',
14
+ description: 'The workflow ID (hash)',
15
+ },
16
+ },
17
+ required: ['workflow_id'],
18
+ },
19
+ };
20
+ export async function handleGetWorkflowTags(api, args) {
21
+ try {
22
+ const result = await api.getWorkflowTags(args.workflow_id);
23
+ // API returns { workflow_id, tags: [...] }
24
+ const tags = Array.isArray(result?.tags) ? result.tags : [];
25
+ if (tags.length === 0) {
26
+ return {
27
+ content: [{ type: 'text', text: 'This workflow has no tags.' }],
28
+ };
29
+ }
30
+ return {
31
+ content: [{ type: 'text', text: `**Tags:** ${tags.join(', ')}` }],
32
+ };
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : 'Unknown error';
36
+ return {
37
+ content: [{ type: 'text', text: `Error getting workflow tags: ${message}` }],
38
+ isError: true,
39
+ };
40
+ }
41
+ }
42
+ //# sourceMappingURL=get-workflow-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-tags.js","sourceRoot":"","sources":["../../src/tools/get-workflow-tags.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACvC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,qDAAqD;IAClE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAqB,EACrB,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3D,2CAA2C;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;aAChE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC;YAC5E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * MCP Tools Registry
3
+ *
4
+ * Registers all available MCP tools with the server.
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { FlowDotApiClient } from '../api-client.js';
8
+ /**
9
+ * Register all tools with the MCP server.
10
+ */
11
+ export declare function registerTools(server: Server, api: FlowDotApiClient): void;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAkNpD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAqWzE"}
@@ -0,0 +1,407 @@
1
+ /**
2
+ * MCP Tools Registry
3
+ *
4
+ * Registers all available MCP tools with the server.
5
+ */
6
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
7
+ // ============================================
8
+ // Core Tools (Existing)
9
+ // ============================================
10
+ import { listWorkflowsTool, handleListWorkflows } from './list-workflows.js';
11
+ import { executeWorkflowTool, handleExecuteWorkflow } from './execute-workflow.js';
12
+ import { getExecutionTool, handleGetExecution } from './get-execution.js';
13
+ import { agentChatTool, handleAgentChat } from './agent-chat.js';
14
+ // ============================================
15
+ // Analytics & Feedback Tools (analytics:read)
16
+ // ============================================
17
+ import { getWorkflowMetricsTool, handleGetWorkflowMetrics } from './get-workflow-metrics.js';
18
+ import { getWorkflowCommentsTool, handleGetWorkflowComments } from './get-workflow-comments.js';
19
+ import { getExecutionHistoryTool, handleGetExecutionHistory } from './get-execution-history.js';
20
+ // ============================================
21
+ // Workflow Management Tools (workflows:manage)
22
+ // ============================================
23
+ import { getWorkflowDetailsTool, handleGetWorkflowDetails } from './get-workflow-details.js';
24
+ import { getWorkflowInputsSchemaTool, handleGetWorkflowInputsSchema } from './get-workflow-inputs-schema.js';
25
+ import { duplicateWorkflowTool, handleDuplicateWorkflow } from './duplicate-workflow.js';
26
+ import { toggleWorkflowPublicTool, handleToggleWorkflowPublic } from './toggle-workflow-public.js';
27
+ import { favoriteWorkflowTool, handleFavoriteWorkflow } from './favorite-workflow.js';
28
+ // ============================================
29
+ // Execution Enhancements Tools (executions:manage)
30
+ // ============================================
31
+ import { cancelExecutionTool, handleCancelExecution } from './cancel-execution.js';
32
+ import { retryExecutionTool, handleRetryExecution } from './retry-execution.js';
33
+ import { streamExecutionTool, handleStreamExecution } from './stream-execution.js';
34
+ // ============================================
35
+ // Discovery & Organization Tools (discovery:read)
36
+ // ============================================
37
+ import { getWorkflowTagsTool, handleGetWorkflowTags } from './get-workflow-tags.js';
38
+ import { setWorkflowTagsTool, handleSetWorkflowTags } from './set-workflow-tags.js';
39
+ import { searchWorkflowsTool, handleSearchWorkflows } from './search-workflows.js';
40
+ import { getPublicWorkflowsTool, handleGetPublicWorkflows } from './get-public-workflows.js';
41
+ // ============================================
42
+ // Workflow Building Tools (workflows:build)
43
+ // ============================================
44
+ import { createWorkflowTool, handleCreateWorkflow } from './create-workflow.js';
45
+ import { deleteWorkflowTool, handleDeleteWorkflow } from './delete-workflow.js';
46
+ import { getWorkflowGraphTool, handleGetWorkflowGraph } from './get-workflow-graph.js';
47
+ import { validateWorkflowTool, handleValidateWorkflow } from './validate-workflow.js';
48
+ // ============================================
49
+ // Node Operations Tools (nodes:manage)
50
+ // ============================================
51
+ import { listAvailableNodesTool, handleListAvailableNodes } from './list-available-nodes.js';
52
+ import { getNodeSchemaTool, handleGetNodeSchema } from './get-node-schema.js';
53
+ import { addNodeTool, handleAddNode } from './add-node.js';
54
+ import { updateNodeTool, handleUpdateNode } from './update-node.js';
55
+ import { deleteNodeTool, handleDeleteNode } from './delete-node.js';
56
+ // ============================================
57
+ // Connection Operations Tools (connections:manage)
58
+ // ============================================
59
+ import { addConnectionTool, handleAddConnection } from './add-connection.js';
60
+ import { deleteConnectionTool, handleDeleteConnection } from './delete-connection.js';
61
+ import { getNodeConnectionsTool, handleGetNodeConnections } from './get-node-connections.js';
62
+ // ============================================
63
+ // Custom Node Operations Tools (custom_nodes:read / custom_nodes:manage)
64
+ // ============================================
65
+ import { listCustomNodesTool, handleListCustomNodes } from './list-custom-nodes.js';
66
+ import { searchPublicCustomNodesTool, handleSearchPublicCustomNodes } from './search-public-custom-nodes.js';
67
+ import { getCustomNodeTool, handleGetCustomNode } from './get-custom-node.js';
68
+ import { getCustomNodeCommentsTool, handleGetCustomNodeComments } from './get-custom-node-comments.js';
69
+ import { getCustomNodeTemplateTool, handleGetCustomNodeTemplate } from './get-custom-node-template.js';
70
+ import { createCustomNodeTool, handleCreateCustomNode } from './create-custom-node.js';
71
+ import { updateCustomNodeTool, handleUpdateCustomNode } from './update-custom-node.js';
72
+ import { deleteCustomNodeTool, handleDeleteCustomNode } from './delete-custom-node.js';
73
+ import { copyCustomNodeTool, handleCopyCustomNode } from './copy-custom-node.js';
74
+ import { toggleCustomNodeVisibilityTool, handleToggleCustomNodeVisibility } from './toggle-custom-node-visibility.js';
75
+ import { voteCustomNodeTool, handleVoteCustomNode } from './vote-custom-node.js';
76
+ import { favoriteCustomNodeTool, handleFavoriteCustomNode } from './favorite-custom-node.js';
77
+ import { addCustomNodeCommentTool, handleAddCustomNodeComment } from './add-custom-node-comment.js';
78
+ // ============================================
79
+ // App Operations Tools (apps:read / apps:manage)
80
+ // ============================================
81
+ import { listAppsTool, handleListApps } from './list-apps.js';
82
+ import { searchAppsTool, handleSearchApps } from './search-apps.js';
83
+ import { getAppTool, handleGetApp } from './get-app.js';
84
+ import { createAppTool, handleCreateApp } from './create-app.js';
85
+ import { updateAppTool, handleUpdateApp } from './update-app.js';
86
+ import { deleteAppTool, handleDeleteApp } from './delete-app.js';
87
+ import { publishAppTool, handlePublishApp } from './publish-app.js';
88
+ import { unpublishAppTool, handleUnpublishApp } from './unpublish-app.js';
89
+ import { cloneAppTool, handleCloneApp } from './clone-app.js';
90
+ import { linkAppWorkflowTool, handleLinkAppWorkflow } from './link-app-workflow.js';
91
+ import { unlinkAppWorkflowTool, handleUnlinkAppWorkflow } from './unlink-app-workflow.js';
92
+ import { getAppTemplateTool, handleGetAppTemplate } from './get-app-template.js';
93
+ // ============================================
94
+ // Sharing & Public URLs Tools (sharing:read / sharing:manage)
95
+ // ============================================
96
+ import { getWorkflowPublicUrlTool, handleGetWorkflowPublicUrl } from './get-workflow-public-url.js';
97
+ import { listSharedResultsTool, handleListSharedResults } from './list-shared-results.js';
98
+ import { getSharedResultTool, handleGetSharedResult } from './get-shared-result.js';
99
+ import { getSharedResultCommentsTool, handleGetSharedResultComments } from './get-shared-result-comments.js';
100
+ import { createSharedResultTool, handleCreateSharedResult } from './create-shared-result.js';
101
+ import { addWorkflowCommentTool, handleAddWorkflowComment } from './add-workflow-comment.js';
102
+ import { addSharedResultCommentTool, handleAddSharedResultComment } from './add-shared-result-comment.js';
103
+ import { voteWorkflowTool, handleVoteWorkflow } from './vote-workflow.js';
104
+ import { voteSharedResultTool, handleVoteSharedResult } from './vote-shared-result.js';
105
+ // ============================================
106
+ // Input Preset Tools (presets:read / presets:manage)
107
+ // ============================================
108
+ import { listInputPresetsTool, handleListInputPresets } from './list-input-presets.js';
109
+ import { getInputPresetTool, handleGetInputPreset } from './get-input-preset.js';
110
+ import { createInputPresetTool, handleCreateInputPreset } from './create-input-preset.js';
111
+ import { updateInputPresetTool, handleUpdateInputPreset } from './update-input-preset.js';
112
+ import { deleteInputPresetTool, handleDeleteInputPreset } from './delete-input-preset.js';
113
+ import { voteInputPresetTool, handleVoteInputPreset } from './vote-input-preset.js';
114
+ import { toggleCommunityInputsTool, handleToggleCommunityInputs } from './toggle-community-inputs.js';
115
+ // All available tools
116
+ const tools = [
117
+ // Core (4)
118
+ listWorkflowsTool,
119
+ executeWorkflowTool,
120
+ getExecutionTool,
121
+ agentChatTool,
122
+ // Analytics & Feedback (3)
123
+ getWorkflowMetricsTool,
124
+ getWorkflowCommentsTool,
125
+ getExecutionHistoryTool,
126
+ // Workflow Management (5)
127
+ getWorkflowDetailsTool,
128
+ getWorkflowInputsSchemaTool,
129
+ duplicateWorkflowTool,
130
+ toggleWorkflowPublicTool,
131
+ favoriteWorkflowTool,
132
+ // Execution Enhancements (3)
133
+ cancelExecutionTool,
134
+ retryExecutionTool,
135
+ streamExecutionTool,
136
+ // Discovery & Organization (4)
137
+ getWorkflowTagsTool,
138
+ setWorkflowTagsTool,
139
+ searchWorkflowsTool,
140
+ getPublicWorkflowsTool,
141
+ // Workflow Building (4)
142
+ createWorkflowTool,
143
+ deleteWorkflowTool,
144
+ getWorkflowGraphTool,
145
+ validateWorkflowTool,
146
+ // Node Operations (5)
147
+ listAvailableNodesTool,
148
+ getNodeSchemaTool,
149
+ addNodeTool,
150
+ updateNodeTool,
151
+ deleteNodeTool,
152
+ // Connection Operations (3)
153
+ addConnectionTool,
154
+ deleteConnectionTool,
155
+ getNodeConnectionsTool,
156
+ // Custom Node Operations (13)
157
+ listCustomNodesTool,
158
+ searchPublicCustomNodesTool,
159
+ getCustomNodeTool,
160
+ getCustomNodeCommentsTool,
161
+ getCustomNodeTemplateTool,
162
+ createCustomNodeTool,
163
+ updateCustomNodeTool,
164
+ deleteCustomNodeTool,
165
+ copyCustomNodeTool,
166
+ toggleCustomNodeVisibilityTool,
167
+ voteCustomNodeTool,
168
+ favoriteCustomNodeTool,
169
+ addCustomNodeCommentTool,
170
+ // App Operations (12)
171
+ listAppsTool,
172
+ searchAppsTool,
173
+ getAppTool,
174
+ createAppTool,
175
+ updateAppTool,
176
+ deleteAppTool,
177
+ publishAppTool,
178
+ unpublishAppTool,
179
+ cloneAppTool,
180
+ linkAppWorkflowTool,
181
+ unlinkAppWorkflowTool,
182
+ getAppTemplateTool,
183
+ // Sharing & Public URLs (9)
184
+ getWorkflowPublicUrlTool,
185
+ listSharedResultsTool,
186
+ getSharedResultTool,
187
+ getSharedResultCommentsTool,
188
+ createSharedResultTool,
189
+ addWorkflowCommentTool,
190
+ addSharedResultCommentTool,
191
+ voteWorkflowTool,
192
+ voteSharedResultTool,
193
+ // Input Presets (7)
194
+ listInputPresetsTool,
195
+ getInputPresetTool,
196
+ createInputPresetTool,
197
+ updateInputPresetTool,
198
+ deleteInputPresetTool,
199
+ voteInputPresetTool,
200
+ toggleCommunityInputsTool,
201
+ ];
202
+ /**
203
+ * Register all tools with the MCP server.
204
+ */
205
+ export function registerTools(server, api) {
206
+ // Handle tools/list request
207
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
208
+ return { tools };
209
+ });
210
+ // Handle tools/call request
211
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
212
+ const { name, arguments: args } = request.params;
213
+ switch (name) {
214
+ // ============================================
215
+ // Core Tools
216
+ // ============================================
217
+ case 'list_workflows':
218
+ return handleListWorkflows(api, args);
219
+ case 'execute_workflow':
220
+ return handleExecuteWorkflow(api, args);
221
+ case 'get_execution_status':
222
+ return handleGetExecution(api, args);
223
+ case 'agent_chat':
224
+ return handleAgentChat(api, args);
225
+ // ============================================
226
+ // Analytics & Feedback Tools
227
+ // ============================================
228
+ case 'get_workflow_metrics':
229
+ return handleGetWorkflowMetrics(api, args);
230
+ case 'get_workflow_comments':
231
+ return handleGetWorkflowComments(api, args);
232
+ case 'get_execution_history':
233
+ return handleGetExecutionHistory(api, args);
234
+ // ============================================
235
+ // Workflow Management Tools
236
+ // ============================================
237
+ case 'get_workflow_details':
238
+ return handleGetWorkflowDetails(api, args);
239
+ case 'get_workflow_inputs_schema':
240
+ return handleGetWorkflowInputsSchema(api, args);
241
+ case 'duplicate_workflow':
242
+ return handleDuplicateWorkflow(api, args);
243
+ case 'toggle_workflow_public':
244
+ return handleToggleWorkflowPublic(api, args);
245
+ case 'favorite_workflow':
246
+ return handleFavoriteWorkflow(api, args);
247
+ // ============================================
248
+ // Execution Enhancements Tools
249
+ // ============================================
250
+ case 'cancel_execution':
251
+ return handleCancelExecution(api, args);
252
+ case 'retry_execution':
253
+ return handleRetryExecution(api, args);
254
+ case 'stream_execution':
255
+ return handleStreamExecution(api, args);
256
+ // ============================================
257
+ // Discovery & Organization Tools
258
+ // ============================================
259
+ case 'get_workflow_tags':
260
+ return handleGetWorkflowTags(api, args);
261
+ case 'set_workflow_tags':
262
+ return handleSetWorkflowTags(api, args);
263
+ case 'search_workflows':
264
+ return handleSearchWorkflows(api, args);
265
+ case 'get_public_workflows':
266
+ return handleGetPublicWorkflows(api, args);
267
+ // ============================================
268
+ // Workflow Building Tools
269
+ // ============================================
270
+ case 'create_workflow':
271
+ return handleCreateWorkflow(api, args);
272
+ case 'delete_workflow':
273
+ return handleDeleteWorkflow(api, args);
274
+ case 'get_workflow_graph':
275
+ return handleGetWorkflowGraph(api, args);
276
+ case 'validate_workflow':
277
+ return handleValidateWorkflow(api, args);
278
+ // ============================================
279
+ // Node Operations Tools
280
+ // ============================================
281
+ case 'list_available_nodes':
282
+ return handleListAvailableNodes(api, args);
283
+ case 'get_node_schema':
284
+ return handleGetNodeSchema(api, args);
285
+ case 'add_node':
286
+ return handleAddNode(api, args);
287
+ case 'update_node':
288
+ return handleUpdateNode(api, args);
289
+ case 'delete_node':
290
+ return handleDeleteNode(api, args);
291
+ // ============================================
292
+ // Connection Operations Tools
293
+ // ============================================
294
+ case 'add_connection':
295
+ return handleAddConnection(api, args);
296
+ case 'delete_connection':
297
+ return handleDeleteConnection(api, args);
298
+ case 'get_node_connections':
299
+ return handleGetNodeConnections(api, args);
300
+ // ============================================
301
+ // Custom Node Operations Tools
302
+ // ============================================
303
+ case 'list_custom_nodes':
304
+ return handleListCustomNodes(api, args);
305
+ case 'search_public_custom_nodes':
306
+ return handleSearchPublicCustomNodes(api, args);
307
+ case 'get_custom_node':
308
+ return handleGetCustomNode(api, args);
309
+ case 'get_custom_node_comments':
310
+ return handleGetCustomNodeComments(api, args);
311
+ case 'get_custom_node_template':
312
+ return handleGetCustomNodeTemplate(args);
313
+ case 'create_custom_node':
314
+ return handleCreateCustomNode(api, args);
315
+ case 'update_custom_node':
316
+ return handleUpdateCustomNode(api, args);
317
+ case 'delete_custom_node':
318
+ return handleDeleteCustomNode(api, args);
319
+ case 'copy_custom_node':
320
+ return handleCopyCustomNode(api, args);
321
+ case 'toggle_custom_node_visibility':
322
+ return handleToggleCustomNodeVisibility(api, args);
323
+ case 'vote_custom_node':
324
+ return handleVoteCustomNode(api, args);
325
+ case 'favorite_custom_node':
326
+ return handleFavoriteCustomNode(api, args);
327
+ case 'add_custom_node_comment':
328
+ return handleAddCustomNodeComment(api, args);
329
+ // ============================================
330
+ // App Operations Tools
331
+ // ============================================
332
+ case 'list_apps':
333
+ return handleListApps(api, args);
334
+ case 'search_apps':
335
+ return handleSearchApps(api, args);
336
+ case 'get_app':
337
+ return handleGetApp(api, args);
338
+ case 'create_app':
339
+ return handleCreateApp(api, args);
340
+ case 'update_app':
341
+ return handleUpdateApp(api, args);
342
+ case 'delete_app':
343
+ return handleDeleteApp(api, args);
344
+ case 'publish_app':
345
+ return handlePublishApp(api, args);
346
+ case 'unpublish_app':
347
+ return handleUnpublishApp(api, args);
348
+ case 'clone_app':
349
+ return handleCloneApp(api, args);
350
+ case 'link_app_workflow':
351
+ return handleLinkAppWorkflow(api, args);
352
+ case 'unlink_app_workflow':
353
+ return handleUnlinkAppWorkflow(api, args);
354
+ case 'get_app_template':
355
+ return handleGetAppTemplate(args);
356
+ // ============================================
357
+ // Sharing & Public URLs Tools
358
+ // ============================================
359
+ case 'get_workflow_public_url':
360
+ return handleGetWorkflowPublicUrl(api, args);
361
+ case 'list_shared_results':
362
+ return handleListSharedResults(api, args);
363
+ case 'get_shared_result':
364
+ return handleGetSharedResult(api, args);
365
+ case 'get_shared_result_comments':
366
+ return handleGetSharedResultComments(api, args);
367
+ case 'create_shared_result':
368
+ return handleCreateSharedResult(api, args);
369
+ case 'add_workflow_comment':
370
+ return handleAddWorkflowComment(api, args);
371
+ case 'add_shared_result_comment':
372
+ return handleAddSharedResultComment(api, args);
373
+ case 'vote_workflow':
374
+ return handleVoteWorkflow(api, args);
375
+ case 'vote_shared_result':
376
+ return handleVoteSharedResult(api, args);
377
+ // ============================================
378
+ // Input Preset Tools
379
+ // ============================================
380
+ case 'list_input_presets':
381
+ return handleListInputPresets(api, args);
382
+ case 'get_input_preset':
383
+ return handleGetInputPreset(api, args);
384
+ case 'create_input_preset':
385
+ return handleCreateInputPreset(api, args);
386
+ case 'update_input_preset':
387
+ return handleUpdateInputPreset(api, args);
388
+ case 'delete_input_preset':
389
+ return handleDeleteInputPreset(api, args);
390
+ case 'vote_input_preset':
391
+ return handleVoteInputPreset(api, args);
392
+ case 'toggle_community_inputs':
393
+ return handleToggleCommunityInputs(api, args);
394
+ default:
395
+ return {
396
+ content: [
397
+ {
398
+ type: 'text',
399
+ text: `Unknown tool: ${name}`,
400
+ },
401
+ ],
402
+ isError: true,
403
+ };
404
+ }
405
+ });
406
+ }
407
+ //# sourceMappingURL=index.js.map