@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
package/README.md ADDED
@@ -0,0 +1,162 @@
1
+ # @flowdot.ai/mcp-server
2
+
3
+ Connect Claude Desktop, Cursor, and other MCP-compatible AI tools to FlowDot workflows.
4
+
5
+ ## What is MCP?
6
+
7
+ MCP (Model Context Protocol) is an open standard that allows AI models to interact with external tools and services. With the FlowDot MCP Server, you can:
8
+
9
+ - **List and run workflows** directly from Claude Desktop or Cursor
10
+ - **Chat with the FlowDot agent** to discover and execute workflows
11
+ - **Check execution status** and get workflow results
12
+
13
+ ## Quick Start
14
+
15
+ ### 1. Get an MCP Token
16
+
17
+ 1. Go to [flowdot.ai](https://flowdot.ai)
18
+ 2. Navigate to **Settings** > **MCP Tokens**
19
+ 3. Click **Create New Token**
20
+ 4. Select the scopes you need:
21
+ - `workflows:read` - List and view workflows
22
+ - `workflows:execute` - Execute workflows
23
+ - `executions:read` - View execution results
24
+ - `agent:chat` - Chat with the FlowDot agent
25
+ 5. Copy the token (starts with `fd_mcp_`)
26
+
27
+ ### 2. Configure Claude Desktop
28
+
29
+ **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
30
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
31
+
32
+ ```json
33
+ {
34
+ "mcpServers": {
35
+ "flowdot": {
36
+ "command": "npx",
37
+ "args": ["@flowdot.ai/mcp-server"],
38
+ "env": {
39
+ "FLOWDOT_API_TOKEN": "fd_mcp_your_token_here"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ ### 3. Restart Claude Desktop
47
+
48
+ After adding the configuration, restart Claude Desktop to load the MCP server.
49
+
50
+ ## Available Tools
51
+
52
+ ### list_workflows
53
+
54
+ List your FlowDot workflows.
55
+
56
+ ```
57
+ You: "What FlowDot workflows do I have?"
58
+
59
+ Claude: I'll check your FlowDot workflows.
60
+
61
+ Found 3 workflow(s):
62
+ - News Summarizer (abc123) - Fetches and summarizes daily news
63
+ - Code Reviewer (def456) - Reviews PRs with AI
64
+ - Content Generator (ghi789) - Creates blog content
65
+ ```
66
+
67
+ ### execute_workflow
68
+
69
+ Execute a workflow by ID.
70
+
71
+ ```
72
+ You: "Run my News Summarizer workflow"
73
+
74
+ Claude: I'll execute the News Summarizer workflow.
75
+
76
+ Workflow executed successfully.
77
+
78
+ Execution ID: exec_123abc
79
+ Status: completed
80
+
81
+ Outputs:
82
+ {
83
+ "summary": "Today's top stories: ..."
84
+ }
85
+ ```
86
+
87
+ ### get_execution_status
88
+
89
+ Check the status of a running or completed execution.
90
+
91
+ ```
92
+ You: "What's the status of execution exec_123abc?"
93
+
94
+ Claude: Execution Status: Completed
95
+ Execution ID: exec_123abc
96
+ Started: 2024-12-28T10:00:00Z
97
+ Completed: 2024-12-28T10:00:15Z
98
+ Duration: 15.23s
99
+ ```
100
+
101
+ ### agent_chat
102
+
103
+ Chat with the FlowDot agent to discover workflows.
104
+
105
+ ```
106
+ You: "Ask FlowDot what workflows I have for content creation"
107
+
108
+ Claude: The FlowDot agent says:
109
+
110
+ I found 2 workflows that can help with content creation:
111
+
112
+ 1. **Content Generator** - Creates blog posts from topics
113
+ 2. **Social Media Poster** - Generates and posts to social platforms
114
+
115
+ Would you like me to run one of these?
116
+ ```
117
+
118
+ ## Environment Variables
119
+
120
+ | Variable | Required | Default | Description |
121
+ |----------|----------|---------|-------------|
122
+ | `FLOWDOT_API_TOKEN` | Yes | - | Your MCP token (starts with `fd_mcp_`) |
123
+ | `FLOWDOT_HUB_URL` | No | `https://flowdot.ai` | FlowDot Hub URL |
124
+
125
+ ## Configuring Other MCP Clients
126
+
127
+ ### Cursor
128
+
129
+ Go to **Settings** > **MCP Servers** > **Add Server** and add:
130
+
131
+ ```json
132
+ {
133
+ "flowdot": {
134
+ "command": "npx",
135
+ "args": ["@flowdot.ai/mcp-server"],
136
+ "env": {
137
+ "FLOWDOT_API_TOKEN": "fd_mcp_your_token_here"
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### Windsurf
144
+
145
+ Similar configuration as Cursor - check Windsurf documentation for MCP setup.
146
+
147
+ ## Development
148
+
149
+ ```bash
150
+ # Install dependencies
151
+ npm install
152
+
153
+ # Build
154
+ npm run build
155
+
156
+ # Run locally
157
+ FLOWDOT_API_TOKEN=fd_mcp_xxx npm start
158
+ ```
159
+
160
+ ## License
161
+
162
+ MIT
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FlowDot MCP Server CLI
4
+ *
5
+ * This is the entry point when running via npx @flowdot/mcp-server
6
+ */
7
+
8
+ import('../dist/index.js').catch((error) => {
9
+ console.error('Failed to start FlowDot MCP Server:', error.message);
10
+ console.error('');
11
+ console.error('If you see module errors, make sure the package is built:');
12
+ console.error(' cd packages/mcp-server && npm run build');
13
+ console.error('');
14
+ process.exit(1);
15
+ });
@@ -0,0 +1,349 @@
1
+ /**
2
+ * FlowDot Hub API Client
3
+ *
4
+ * Handles communication with the FlowDot Hub API using MCP tokens.
5
+ */
6
+ import { Workflow, Execution, ExecuteWorkflowResult, AgentChatResult, WorkflowMetrics, WorkflowComment, ExecutionHistoryItem, WorkflowDetails, WorkflowInputSchemaResult, CreateWorkflowResult, WorkflowGraph, ValidationResult, NodeType, NodeTypesResponse, WorkflowNode, WorkflowConnection, AddNodeResult, AddConnectionResult, SuccessResult, PublicWorkflow, PaginatedResult, RetryExecutionResult, CustomNode, CustomNodeComment, CustomNodeListFilters, CustomNodeSearchFilters, CreateCustomNodeInput, UpdateCustomNodeInput, VoteCustomNodeResult, FavoriteCustomNodeResult, CreateCustomNodeCommentResult, App, AppComment, AppWorkflow, AppListFilters, AppSearchFilters, CreateAppInput, UpdateAppInput, CreateAppResult, CloneAppResult, VoteAppResult, FavoriteAppResult, CreateAppCommentResult, LinkAppWorkflowResult, WorkflowPublicUrlResult, SharedResult, SharedResultDetails, SharedResultComment, CreateSharedResultInput, CreateSharedResultResult, CreateCommentResult, SharedResultListFilters, VoteWorkflowResult, VoteSharedResultResult, InputPreset, InputPresetListResult, CreateInputPresetInput, UpdateInputPresetInput, CreateInputPresetResult, VoteInputPresetResult, InputPresetListFilters, ToggleCommunityInputsResult } from './types.js';
7
+ export declare class FlowDotApiClient {
8
+ private hubUrl;
9
+ private apiToken;
10
+ constructor(hubUrl: string, apiToken: string);
11
+ /**
12
+ * Make an authenticated request to the FlowDot Hub API.
13
+ */
14
+ private request;
15
+ /**
16
+ * List workflows available to the user.
17
+ */
18
+ listWorkflows(filter?: string, favoritesOnly?: boolean): Promise<Workflow[]>;
19
+ /**
20
+ * Get a specific workflow by ID.
21
+ */
22
+ getWorkflow(workflowId: string): Promise<Workflow>;
23
+ /**
24
+ * Execute a workflow.
25
+ */
26
+ executeWorkflow(workflowId: string, inputs?: Record<string, unknown>, waitForCompletion?: boolean, mode?: string): Promise<ExecuteWorkflowResult>;
27
+ /**
28
+ * Get execution status and results.
29
+ */
30
+ getExecution(executionId: string): Promise<Execution>;
31
+ /**
32
+ * Chat with the FlowDot agent.
33
+ */
34
+ agentChat(message: string, conversationId?: string, mode?: string): Promise<AgentChatResult>;
35
+ /**
36
+ * Test the connection to the FlowDot Hub.
37
+ */
38
+ testConnection(): Promise<boolean>;
39
+ /**
40
+ * Get workflow execution metrics.
41
+ */
42
+ getWorkflowMetrics(workflowId: string, period?: string): Promise<WorkflowMetrics>;
43
+ /**
44
+ * Get workflow comments.
45
+ */
46
+ getWorkflowComments(workflowId: string): Promise<WorkflowComment[]>;
47
+ /**
48
+ * Get execution history for a workflow.
49
+ */
50
+ getExecutionHistory(workflowId: string, page?: number, limit?: number): Promise<PaginatedResult<ExecutionHistoryItem>>;
51
+ /**
52
+ * Get detailed workflow information including nodes, connections, signature.
53
+ */
54
+ getWorkflowDetails(workflowId: string): Promise<WorkflowDetails>;
55
+ /**
56
+ * Get the input schema for a workflow.
57
+ */
58
+ getWorkflowInputsSchema(workflowId: string): Promise<WorkflowInputSchemaResult>;
59
+ /**
60
+ * Duplicate a workflow.
61
+ */
62
+ duplicateWorkflow(workflowId: string, name?: string): Promise<CreateWorkflowResult>;
63
+ /**
64
+ * Toggle workflow public/private status.
65
+ */
66
+ toggleWorkflowPublic(workflowId: string, isPublic: boolean): Promise<SuccessResult>;
67
+ /**
68
+ * Favorite or unfavorite a workflow.
69
+ */
70
+ favoriteWorkflow(workflowId: string, favorite: boolean): Promise<SuccessResult>;
71
+ /**
72
+ * Cancel a running execution.
73
+ */
74
+ cancelExecution(executionId: string): Promise<SuccessResult>;
75
+ /**
76
+ * Retry a failed execution.
77
+ */
78
+ retryExecution(executionId: string): Promise<RetryExecutionResult>;
79
+ /**
80
+ * Get SSE stream URL for execution (client handles actual streaming).
81
+ */
82
+ getExecutionStreamUrl(executionId: string): string;
83
+ /**
84
+ * Get auth token for SSE requests.
85
+ */
86
+ getAuthToken(): string;
87
+ /**
88
+ * Get workflow tags.
89
+ */
90
+ getWorkflowTags(workflowId: string): Promise<{
91
+ workflow_id: string;
92
+ tags: string[];
93
+ }>;
94
+ /**
95
+ * Set workflow tags.
96
+ */
97
+ setWorkflowTags(workflowId: string, tags: string[]): Promise<SuccessResult>;
98
+ /**
99
+ * Search workflows by name, description, or tags.
100
+ */
101
+ searchWorkflows(query: string, tags?: string[], page?: number): Promise<PaginatedResult<Workflow>>;
102
+ /**
103
+ * Get public workflows from all users.
104
+ */
105
+ getPublicWorkflows(page?: number, sortBy?: string): Promise<PaginatedResult<PublicWorkflow>>;
106
+ /**
107
+ * Create a new empty workflow.
108
+ */
109
+ createWorkflow(name: string, description?: string): Promise<CreateWorkflowResult>;
110
+ /**
111
+ * Delete a workflow.
112
+ */
113
+ deleteWorkflow(workflowId: string): Promise<SuccessResult>;
114
+ /**
115
+ * Get the full graph (nodes and connections) of a workflow.
116
+ */
117
+ getWorkflowGraph(workflowId: string): Promise<WorkflowGraph>;
118
+ /**
119
+ * Validate a workflow for errors.
120
+ */
121
+ validateWorkflow(workflowId: string): Promise<ValidationResult>;
122
+ /**
123
+ * List all available node types.
124
+ * Note: Response may be an array or object depending on the API version.
125
+ */
126
+ listAvailableNodes(): Promise<NodeTypesResponse>;
127
+ /**
128
+ * Get schema for a specific node type.
129
+ */
130
+ getNodeSchema(nodeType: string): Promise<NodeType>;
131
+ /**
132
+ * Add a node to a workflow.
133
+ */
134
+ addNode(workflowId: string, nodeType: string, position: {
135
+ x: number;
136
+ y: number;
137
+ }, properties?: Record<string, unknown>): Promise<AddNodeResult>;
138
+ /**
139
+ * Update a node in a workflow.
140
+ */
141
+ updateNode(workflowId: string, nodeId: string, updates: {
142
+ position?: {
143
+ x: number;
144
+ y: number;
145
+ };
146
+ properties?: Record<string, unknown>;
147
+ }): Promise<WorkflowNode>;
148
+ /**
149
+ * Delete a node from a workflow.
150
+ */
151
+ deleteNode(workflowId: string, nodeId: string): Promise<SuccessResult>;
152
+ /**
153
+ * Add a connection between nodes.
154
+ */
155
+ addConnection(workflowId: string, sourceNodeId: string, sourceSocketId: string, targetNodeId: string, targetSocketId: string): Promise<AddConnectionResult>;
156
+ /**
157
+ * Delete a connection from a workflow.
158
+ */
159
+ deleteConnection(workflowId: string, connectionId: string): Promise<SuccessResult>;
160
+ /**
161
+ * Get all connections for a specific node.
162
+ */
163
+ getNodeConnections(workflowId: string, nodeId: string): Promise<WorkflowConnection[]>;
164
+ /**
165
+ * List user's own custom nodes.
166
+ */
167
+ listCustomNodes(options?: CustomNodeListFilters): Promise<PaginatedResult<CustomNode>>;
168
+ /**
169
+ * Search public custom nodes.
170
+ */
171
+ searchPublicCustomNodes(filters?: CustomNodeSearchFilters): Promise<PaginatedResult<CustomNode>>;
172
+ /**
173
+ * Get a specific custom node with full details including script_code.
174
+ */
175
+ getCustomNode(nodeId: string): Promise<CustomNode>;
176
+ /**
177
+ * Get comments for a custom node.
178
+ */
179
+ getCustomNodeComments(nodeId: string): Promise<CustomNodeComment[]>;
180
+ /**
181
+ * Create a new custom node.
182
+ */
183
+ createCustomNode(input: CreateCustomNodeInput): Promise<CreateWorkflowResult>;
184
+ /**
185
+ * Update a custom node.
186
+ */
187
+ updateCustomNode(nodeId: string, updates: UpdateCustomNodeInput): Promise<SuccessResult>;
188
+ /**
189
+ * Delete a custom node.
190
+ */
191
+ deleteCustomNode(nodeId: string): Promise<SuccessResult>;
192
+ /**
193
+ * Copy a public custom node to user's library.
194
+ */
195
+ copyCustomNode(nodeId: string, name?: string): Promise<CreateWorkflowResult>;
196
+ /**
197
+ * Toggle custom node visibility.
198
+ */
199
+ toggleCustomNodeVisibility(nodeId: string, visibility: 'private' | 'public' | 'unlisted'): Promise<SuccessResult>;
200
+ /**
201
+ * Vote on a custom node.
202
+ */
203
+ voteCustomNode(nodeId: string, vote: 'up' | 'down' | 'remove'): Promise<VoteCustomNodeResult>;
204
+ /**
205
+ * Toggle favorite on a custom node.
206
+ */
207
+ favoriteCustomNode(nodeId: string, favorite: boolean): Promise<FavoriteCustomNodeResult>;
208
+ /**
209
+ * Add a comment to a custom node.
210
+ */
211
+ addCustomNodeComment(nodeId: string, content: string, parentId?: number): Promise<CreateCustomNodeCommentResult>;
212
+ /**
213
+ * List user's own apps.
214
+ */
215
+ listApps(options?: AppListFilters): Promise<PaginatedResult<App>>;
216
+ /**
217
+ * Search public apps.
218
+ */
219
+ searchPublicApps(filters?: AppSearchFilters): Promise<PaginatedResult<App>>;
220
+ /**
221
+ * Get app categories.
222
+ */
223
+ getAppCategories(): Promise<string[]>;
224
+ /**
225
+ * Get popular app tags.
226
+ */
227
+ getAppTags(): Promise<string[]>;
228
+ /**
229
+ * Get a specific app with full details including code.
230
+ */
231
+ getApp(appId: string): Promise<App>;
232
+ /**
233
+ * Get comments for an app.
234
+ */
235
+ getAppComments(appId: string): Promise<AppComment[]>;
236
+ /**
237
+ * Create a new app.
238
+ */
239
+ createApp(input: CreateAppInput): Promise<CreateAppResult>;
240
+ /**
241
+ * Update an app.
242
+ */
243
+ updateApp(appId: string, updates: UpdateAppInput): Promise<SuccessResult>;
244
+ /**
245
+ * Delete an app.
246
+ */
247
+ deleteApp(appId: string): Promise<SuccessResult>;
248
+ /**
249
+ * Publish an app (make it public).
250
+ */
251
+ publishApp(appId: string): Promise<SuccessResult>;
252
+ /**
253
+ * Unpublish an app (make it private).
254
+ */
255
+ unpublishApp(appId: string): Promise<SuccessResult>;
256
+ /**
257
+ * Clone a public app to user's library.
258
+ */
259
+ cloneApp(appId: string, name?: string): Promise<CloneAppResult>;
260
+ /**
261
+ * Vote on an app.
262
+ */
263
+ voteApp(appId: string, vote: 'up' | 'down' | 'remove'): Promise<VoteAppResult>;
264
+ /**
265
+ * Toggle favorite on an app.
266
+ */
267
+ favoriteApp(appId: string, favorite: boolean): Promise<FavoriteAppResult>;
268
+ /**
269
+ * Add a comment to an app.
270
+ */
271
+ addAppComment(appId: string, content: string, parentId?: number): Promise<CreateAppCommentResult>;
272
+ /**
273
+ * Get workflows linked to an app.
274
+ */
275
+ getAppWorkflows(appId: string): Promise<AppWorkflow[]>;
276
+ /**
277
+ * Link a workflow to an app.
278
+ */
279
+ linkAppWorkflow(appId: string, workflowHash: string, alias?: string): Promise<LinkAppWorkflowResult>;
280
+ /**
281
+ * Unlink a workflow from an app.
282
+ */
283
+ unlinkAppWorkflow(appId: string, workflowHash: string): Promise<SuccessResult>;
284
+ /**
285
+ * Get the public URL for a workflow.
286
+ */
287
+ getWorkflowPublicUrl(workflowId: string): Promise<WorkflowPublicUrlResult>;
288
+ /**
289
+ * List shared results for a workflow.
290
+ */
291
+ listSharedResults(workflowId: string, options?: SharedResultListFilters): Promise<PaginatedResult<SharedResult>>;
292
+ /**
293
+ * Get a specific shared result.
294
+ */
295
+ getSharedResult(workflowId: string, resultHash: string): Promise<SharedResultDetails>;
296
+ /**
297
+ * Get comments for a shared result.
298
+ */
299
+ getSharedResultComments(workflowId: string, resultHash: string): Promise<SharedResultComment[]>;
300
+ /**
301
+ * Create a shared result from an execution.
302
+ */
303
+ createSharedResult(workflowId: string, input: CreateSharedResultInput): Promise<CreateSharedResultResult>;
304
+ /**
305
+ * Add a comment to a workflow.
306
+ */
307
+ addWorkflowComment(workflowId: string, content: string, parentId?: number): Promise<CreateCommentResult>;
308
+ /**
309
+ * Add a comment to a shared result.
310
+ */
311
+ addSharedResultComment(workflowId: string, resultHash: string, content: string, parentId?: number): Promise<CreateCommentResult>;
312
+ /**
313
+ * Vote on a workflow.
314
+ */
315
+ voteWorkflow(workflowId: string, vote: 'up' | 'down' | 'remove'): Promise<VoteWorkflowResult>;
316
+ /**
317
+ * Vote on a shared result.
318
+ */
319
+ voteSharedResult(workflowId: string, resultHash: string, vote: 'up' | 'down' | 'remove'): Promise<VoteSharedResultResult>;
320
+ /**
321
+ * List input presets for a workflow.
322
+ */
323
+ listInputPresets(workflowId: string, options?: InputPresetListFilters): Promise<InputPresetListResult>;
324
+ /**
325
+ * Get a specific input preset.
326
+ */
327
+ getInputPreset(workflowId: string, presetHash: string): Promise<InputPreset>;
328
+ /**
329
+ * Create a new input preset.
330
+ */
331
+ createInputPreset(workflowId: string, input: CreateInputPresetInput): Promise<CreateInputPresetResult>;
332
+ /**
333
+ * Update an input preset.
334
+ */
335
+ updateInputPreset(workflowId: string, presetHash: string, updates: UpdateInputPresetInput): Promise<InputPreset>;
336
+ /**
337
+ * Delete an input preset.
338
+ */
339
+ deleteInputPreset(workflowId: string, presetHash: string): Promise<SuccessResult>;
340
+ /**
341
+ * Vote on an input preset.
342
+ */
343
+ voteInputPreset(workflowId: string, presetHash: string, vote: 'up' | 'down' | 'remove'): Promise<VoteInputPresetResult>;
344
+ /**
345
+ * Toggle community inputs (input presets) for a workflow.
346
+ */
347
+ toggleCommunityInputs(workflowId: string, enabled: boolean): Promise<ToggleCommunityInputsResult>;
348
+ }
349
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}