@flowdot.ai/mcp-server 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +45 -21
- package/README.md +439 -162
- package/bin/flowdot-mcp.js +15 -15
- package/dist/api-client.d.ts +0 -6
- package/dist/api-client.js +0 -6
- package/dist/index.d.ts +0 -23
- package/dist/index.js +0 -24
- package/dist/resources/index.d.ts +1 -11
- package/dist/resources/index.js +2882 -2127
- package/dist/server.d.ts +0 -12
- package/dist/server.js +23 -21
- package/dist/tools/add-connection.d.ts +2 -8
- package/dist/tools/add-connection.js +0 -6
- package/dist/tools/add-custom-node-comment.d.ts +2 -9
- package/dist/tools/add-custom-node-comment.js +0 -7
- package/dist/tools/add-node.d.ts +2 -8
- package/dist/tools/add-node.js +0 -6
- package/dist/tools/add-recipe-step.d.ts +3 -9
- package/dist/tools/add-recipe-step.js +95 -101
- package/dist/tools/add-recipe-store.d.ts +2 -8
- package/dist/tools/add-recipe-store.js +30 -36
- package/dist/tools/add-shared-result-comment.d.ts +2 -8
- package/dist/tools/add-shared-result-comment.js +0 -7
- package/dist/tools/add-workflow-comment.d.ts +2 -8
- package/dist/tools/add-workflow-comment.js +0 -7
- package/dist/tools/agent-chat.d.ts +2 -8
- package/dist/tools/agent-chat.js +0 -10
- package/dist/tools/agent-toolkits.d.ts +3 -10
- package/dist/tools/agent-toolkits.js +294 -336
- package/dist/tools/append-app-code.d.ts +2 -10
- package/dist/tools/append-app-code.js +27 -35
- package/dist/tools/browse-recipes.d.ts +2 -8
- package/dist/tools/browse-recipes.js +0 -7
- package/dist/tools/cancel-execution.d.ts +2 -8
- package/dist/tools/cancel-execution.js +0 -7
- package/dist/tools/clone-app.d.ts +2 -9
- package/dist/tools/clone-app.js +20 -27
- package/dist/tools/copy-custom-node.d.ts +2 -9
- package/dist/tools/copy-custom-node.js +0 -7
- package/dist/tools/create-app-file.d.ts +2 -9
- package/dist/tools/create-app-file.js +18 -25
- package/dist/tools/create-app.d.ts +2 -9
- package/dist/tools/create-app.js +123 -130
- package/dist/tools/create-custom-node.d.ts +3 -10
- package/dist/tools/create-custom-node.js +66 -75
- package/dist/tools/create-input-preset.d.ts +2 -8
- package/dist/tools/create-input-preset.js +0 -7
- package/dist/tools/create-knowledge-category.d.ts +2 -9
- package/dist/tools/create-knowledge-category.js +0 -7
- package/dist/tools/create-recipe.d.ts +2 -8
- package/dist/tools/create-recipe.js +21 -27
- package/dist/tools/create-shared-result.d.ts +2 -8
- package/dist/tools/create-shared-result.js +0 -6
- package/dist/tools/create-workflow.d.ts +2 -8
- package/dist/tools/create-workflow.js +0 -6
- package/dist/tools/delete-app-file.d.ts +2 -9
- package/dist/tools/delete-app-file.js +9 -16
- package/dist/tools/delete-app.d.ts +2 -9
- package/dist/tools/delete-app.js +3 -10
- package/dist/tools/delete-connection.d.ts +2 -8
- package/dist/tools/delete-connection.js +0 -7
- package/dist/tools/delete-custom-node.d.ts +2 -9
- package/dist/tools/delete-custom-node.js +0 -7
- package/dist/tools/delete-input-preset.d.ts +2 -8
- package/dist/tools/delete-input-preset.js +0 -6
- package/dist/tools/delete-knowledge-category.d.ts +2 -8
- package/dist/tools/delete-knowledge-category.js +0 -6
- package/dist/tools/delete-knowledge-document.d.ts +2 -8
- package/dist/tools/delete-knowledge-document.js +0 -6
- package/dist/tools/delete-node.d.ts +2 -8
- package/dist/tools/delete-node.js +0 -7
- package/dist/tools/delete-recipe-step.d.ts +2 -8
- package/dist/tools/delete-recipe-step.js +2 -8
- package/dist/tools/delete-recipe-store.d.ts +2 -8
- package/dist/tools/delete-recipe-store.js +2 -8
- package/dist/tools/delete-recipe.d.ts +2 -8
- package/dist/tools/delete-recipe.js +0 -6
- package/dist/tools/delete-workflow.d.ts +2 -8
- package/dist/tools/delete-workflow.js +0 -7
- package/dist/tools/duplicate-workflow.d.ts +2 -8
- package/dist/tools/duplicate-workflow.js +0 -6
- package/dist/tools/edit-app-code.d.ts +2 -10
- package/dist/tools/edit-app-code.js +34 -43
- package/dist/tools/execute-workflow.d.ts +2 -8
- package/dist/tools/execute-workflow.js +0 -11
- package/dist/tools/favorite-custom-node.d.ts +2 -9
- package/dist/tools/favorite-custom-node.js +0 -8
- package/dist/tools/favorite-recipe.d.ts +2 -8
- package/dist/tools/favorite-recipe.js +2 -8
- package/dist/tools/favorite-workflow.d.ts +2 -8
- package/dist/tools/favorite-workflow.js +0 -7
- package/dist/tools/fork-recipe.d.ts +2 -8
- package/dist/tools/fork-recipe.js +7 -13
- package/dist/tools/get-app-file.d.ts +2 -9
- package/dist/tools/get-app-file.js +20 -28
- package/dist/tools/get-app-template.d.ts +1 -8
- package/dist/tools/get-app-template.js +827 -834
- package/dist/tools/get-app.d.ts +2 -9
- package/dist/tools/get-app.js +54 -66
- package/dist/tools/get-custom-node-comments.d.ts +2 -9
- package/dist/tools/get-custom-node-comments.js +0 -7
- package/dist/tools/get-custom-node-template.d.ts +1 -8
- package/dist/tools/get-custom-node-template.js +60 -73
- package/dist/tools/get-custom-node.d.ts +2 -9
- package/dist/tools/get-custom-node.js +0 -12
- package/dist/tools/get-execution-history.d.ts +2 -8
- package/dist/tools/get-execution-history.js +0 -7
- package/dist/tools/get-execution.d.ts +2 -8
- package/dist/tools/get-execution.js +0 -7
- package/dist/tools/get-input-preset.d.ts +2 -8
- package/dist/tools/get-input-preset.js +0 -7
- package/dist/tools/get-knowledge-document-content.d.ts +6 -0
- package/dist/tools/get-knowledge-document-content.js +42 -0
- package/dist/tools/get-knowledge-document.d.ts +2 -8
- package/dist/tools/get-knowledge-document.js +0 -6
- package/dist/tools/get-knowledge-storage.d.ts +2 -8
- package/dist/tools/get-knowledge-storage.js +0 -7
- package/dist/tools/get-node-connections.d.ts +2 -8
- package/dist/tools/get-node-connections.js +0 -7
- package/dist/tools/get-node-schema.d.ts +2 -8
- package/dist/tools/get-node-schema.js +0 -13
- package/dist/tools/get-public-workflows.d.ts +2 -8
- package/dist/tools/get-public-workflows.js +0 -7
- package/dist/tools/get-recipe-definition.d.ts +2 -10
- package/dist/tools/get-recipe-definition.js +1 -10
- package/dist/tools/get-recipe.d.ts +2 -8
- package/dist/tools/get-recipe.js +10 -19
- package/dist/tools/get-shared-result-comments.d.ts +2 -8
- package/dist/tools/get-shared-result-comments.js +0 -6
- package/dist/tools/get-shared-result.d.ts +2 -8
- package/dist/tools/get-shared-result.js +0 -8
- package/dist/tools/get-workflow-comments.d.ts +2 -8
- package/dist/tools/get-workflow-comments.js +0 -7
- package/dist/tools/get-workflow-details.d.ts +2 -8
- package/dist/tools/get-workflow-details.js +0 -8
- package/dist/tools/get-workflow-graph.d.ts +2 -8
- package/dist/tools/get-workflow-graph.js +1 -10
- package/dist/tools/get-workflow-inputs-schema.d.ts +2 -8
- package/dist/tools/get-workflow-inputs-schema.js +0 -7
- package/dist/tools/get-workflow-metrics.d.ts +2 -8
- package/dist/tools/get-workflow-metrics.js +1 -9
- package/dist/tools/get-workflow-public-url.d.ts +2 -8
- package/dist/tools/get-workflow-public-url.js +0 -6
- package/dist/tools/get-workflow-tags.d.ts +2 -8
- package/dist/tools/get-workflow-tags.js +0 -7
- package/dist/tools/index.d.ts +2 -11
- package/dist/tools/index.js +12 -139
- package/dist/tools/insert-app-code.d.ts +2 -10
- package/dist/tools/insert-app-code.js +35 -43
- package/dist/tools/link-app-workflow.d.ts +2 -9
- package/dist/tools/link-app-workflow.js +21 -28
- package/dist/tools/link-recipe.d.ts +2 -8
- package/dist/tools/link-recipe.js +18 -24
- package/dist/tools/list-app-files.d.ts +2 -9
- package/dist/tools/list-app-files.js +10 -20
- package/dist/tools/list-apps.d.ts +2 -9
- package/dist/tools/list-apps.js +8 -15
- package/dist/tools/list-available-nodes.d.ts +2 -8
- package/dist/tools/list-available-nodes.js +0 -13
- package/dist/tools/list-custom-nodes.d.ts +2 -9
- package/dist/tools/list-custom-nodes.js +0 -7
- package/dist/tools/list-input-presets.d.ts +2 -8
- package/dist/tools/list-input-presets.js +0 -7
- package/dist/tools/list-knowledge-categories.d.ts +2 -9
- package/dist/tools/list-knowledge-categories.js +0 -11
- package/dist/tools/list-knowledge-documents.d.ts +2 -9
- package/dist/tools/list-knowledge-documents.js +0 -10
- package/dist/tools/list-recipe-steps.d.ts +2 -8
- package/dist/tools/list-recipe-steps.js +1 -8
- package/dist/tools/list-recipe-stores.d.ts +2 -8
- package/dist/tools/list-recipe-stores.js +0 -6
- package/dist/tools/list-recipes.d.ts +2 -8
- package/dist/tools/list-recipes.js +22 -31
- package/dist/tools/list-shared-results.d.ts +2 -8
- package/dist/tools/list-shared-results.js +0 -6
- package/dist/tools/list-user-teams.d.ts +2 -9
- package/dist/tools/list-user-teams.js +0 -7
- package/dist/tools/list-workflows.d.ts +2 -8
- package/dist/tools/list-workflows.js +0 -8
- package/dist/tools/move-document-to-category.d.ts +2 -8
- package/dist/tools/move-document-to-category.js +0 -6
- package/dist/tools/patch-knowledge-document-section.d.ts +8 -0
- package/dist/tools/patch-knowledge-document-section.js +47 -0
- package/dist/tools/prepend-app-code.d.ts +2 -10
- package/dist/tools/prepend-app-code.js +23 -31
- package/dist/tools/publish-app.d.ts +2 -9
- package/dist/tools/publish-app.js +7 -14
- package/dist/tools/query-knowledge-base.d.ts +2 -9
- package/dist/tools/query-knowledge-base.js +1 -15
- package/dist/tools/rename-app-file.d.ts +2 -9
- package/dist/tools/rename-app-file.js +16 -23
- package/dist/tools/reprocess-document.d.ts +2 -8
- package/dist/tools/reprocess-document.js +0 -6
- package/dist/tools/retry-execution.d.ts +2 -8
- package/dist/tools/retry-execution.js +0 -6
- package/dist/tools/search-apps.d.ts +2 -9
- package/dist/tools/search-apps.js +13 -20
- package/dist/tools/search-public-custom-nodes.d.ts +2 -9
- package/dist/tools/search-public-custom-nodes.js +0 -7
- package/dist/tools/search-workflows.d.ts +2 -8
- package/dist/tools/search-workflows.js +0 -8
- package/dist/tools/search.d.ts +2 -8
- package/dist/tools/search.js +1 -7
- package/dist/tools/set-app-entry-file.d.ts +2 -9
- package/dist/tools/set-app-entry-file.js +13 -20
- package/dist/tools/set-workflow-tags.d.ts +2 -8
- package/dist/tools/set-workflow-tags.js +0 -7
- package/dist/tools/stream-execution.d.ts +2 -9
- package/dist/tools/stream-execution.js +0 -8
- package/dist/tools/toggle-community-inputs.d.ts +2 -8
- package/dist/tools/toggle-community-inputs.js +0 -6
- package/dist/tools/toggle-custom-node-visibility.d.ts +2 -9
- package/dist/tools/toggle-custom-node-visibility.js +0 -8
- package/dist/tools/toggle-workflow-public.d.ts +2 -8
- package/dist/tools/toggle-workflow-public.js +0 -7
- package/dist/tools/transfer-document-ownership.d.ts +2 -9
- package/dist/tools/transfer-document-ownership.js +0 -7
- package/dist/tools/unlink-app-workflow.d.ts +2 -9
- package/dist/tools/unlink-app-workflow.js +2 -9
- package/dist/tools/unpublish-app.d.ts +2 -9
- package/dist/tools/unpublish-app.js +2 -9
- package/dist/tools/update-app-file.d.ts +2 -9
- package/dist/tools/update-app-file.js +15 -22
- package/dist/tools/update-app.d.ts +2 -9
- package/dist/tools/update-app.js +14 -21
- package/dist/tools/update-custom-node.d.ts +3 -10
- package/dist/tools/update-custom-node.js +11 -24
- package/dist/tools/update-input-preset.d.ts +2 -8
- package/dist/tools/update-input-preset.js +0 -7
- package/dist/tools/update-knowledge-category.d.ts +2 -8
- package/dist/tools/update-knowledge-category.js +0 -6
- package/dist/tools/update-knowledge-document-content.d.ts +7 -0
- package/dist/tools/update-knowledge-document-content.js +42 -0
- package/dist/tools/update-node.d.ts +2 -8
- package/dist/tools/update-node.js +0 -7
- package/dist/tools/update-recipe-step.d.ts +2 -8
- package/dist/tools/update-recipe-step.js +6 -12
- package/dist/tools/update-recipe-store.d.ts +2 -8
- package/dist/tools/update-recipe-store.js +5 -11
- package/dist/tools/update-recipe.d.ts +2 -8
- package/dist/tools/update-recipe.js +14 -20
- package/dist/tools/upload-document-from-url.d.ts +2 -9
- package/dist/tools/upload-document-from-url.js +0 -7
- package/dist/tools/upload-text-document.d.ts +2 -9
- package/dist/tools/upload-text-document.js +0 -7
- package/dist/tools/validate-workflow.d.ts +2 -8
- package/dist/tools/validate-workflow.js +0 -8
- package/dist/tools/vote-custom-node.d.ts +2 -9
- package/dist/tools/vote-custom-node.js +0 -7
- package/dist/tools/vote-input-preset.d.ts +2 -8
- package/dist/tools/vote-input-preset.js +0 -6
- package/dist/tools/vote-recipe.d.ts +2 -8
- package/dist/tools/vote-recipe.js +2 -8
- package/dist/tools/vote-shared-result.d.ts +2 -8
- package/dist/tools/vote-shared-result.js +0 -6
- package/dist/tools/vote-workflow.d.ts +2 -8
- package/dist/tools/vote-workflow.js +0 -6
- package/dist/types.d.ts +0 -6
- package/dist/types.js +0 -6
- package/dist/utils/script-validator.d.ts +1 -18
- package/dist/utils/script-validator.js +5 -44
- package/package.json +81 -62
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tools/add-connection.d.ts.map +0 -1
- package/dist/tools/add-connection.js.map +0 -1
- package/dist/tools/add-custom-node-comment.d.ts.map +0 -1
- package/dist/tools/add-custom-node-comment.js.map +0 -1
- package/dist/tools/add-node.d.ts.map +0 -1
- package/dist/tools/add-node.js.map +0 -1
- package/dist/tools/add-recipe-step.d.ts.map +0 -1
- package/dist/tools/add-recipe-step.js.map +0 -1
- package/dist/tools/add-recipe-store.d.ts.map +0 -1
- package/dist/tools/add-recipe-store.js.map +0 -1
- package/dist/tools/add-shared-result-comment.d.ts.map +0 -1
- package/dist/tools/add-shared-result-comment.js.map +0 -1
- package/dist/tools/add-workflow-comment.d.ts.map +0 -1
- package/dist/tools/add-workflow-comment.js.map +0 -1
- package/dist/tools/agent-chat.d.ts.map +0 -1
- package/dist/tools/agent-chat.js.map +0 -1
- package/dist/tools/agent-toolkits.d.ts.map +0 -1
- package/dist/tools/agent-toolkits.js.map +0 -1
- package/dist/tools/append-app-code.d.ts.map +0 -1
- package/dist/tools/append-app-code.js.map +0 -1
- package/dist/tools/browse-recipes.d.ts.map +0 -1
- package/dist/tools/browse-recipes.js.map +0 -1
- package/dist/tools/cancel-execution.d.ts.map +0 -1
- package/dist/tools/cancel-execution.js.map +0 -1
- package/dist/tools/clone-app.d.ts.map +0 -1
- package/dist/tools/clone-app.js.map +0 -1
- package/dist/tools/copy-custom-node.d.ts.map +0 -1
- package/dist/tools/copy-custom-node.js.map +0 -1
- package/dist/tools/create-app-file.d.ts.map +0 -1
- package/dist/tools/create-app-file.js.map +0 -1
- package/dist/tools/create-app.d.ts.map +0 -1
- package/dist/tools/create-app.js.map +0 -1
- package/dist/tools/create-custom-node.d.ts.map +0 -1
- package/dist/tools/create-custom-node.js.map +0 -1
- package/dist/tools/create-input-preset.d.ts.map +0 -1
- package/dist/tools/create-input-preset.js.map +0 -1
- package/dist/tools/create-knowledge-category.d.ts.map +0 -1
- package/dist/tools/create-knowledge-category.js.map +0 -1
- package/dist/tools/create-recipe.d.ts.map +0 -1
- package/dist/tools/create-recipe.js.map +0 -1
- package/dist/tools/create-shared-result.d.ts.map +0 -1
- package/dist/tools/create-shared-result.js.map +0 -1
- package/dist/tools/create-workflow.d.ts.map +0 -1
- package/dist/tools/create-workflow.js.map +0 -1
- package/dist/tools/delete-app-file.d.ts.map +0 -1
- package/dist/tools/delete-app-file.js.map +0 -1
- package/dist/tools/delete-app.d.ts.map +0 -1
- package/dist/tools/delete-app.js.map +0 -1
- package/dist/tools/delete-connection.d.ts.map +0 -1
- package/dist/tools/delete-connection.js.map +0 -1
- package/dist/tools/delete-custom-node.d.ts.map +0 -1
- package/dist/tools/delete-custom-node.js.map +0 -1
- package/dist/tools/delete-input-preset.d.ts.map +0 -1
- package/dist/tools/delete-input-preset.js.map +0 -1
- package/dist/tools/delete-knowledge-category.d.ts.map +0 -1
- package/dist/tools/delete-knowledge-category.js.map +0 -1
- package/dist/tools/delete-knowledge-document.d.ts.map +0 -1
- package/dist/tools/delete-knowledge-document.js.map +0 -1
- package/dist/tools/delete-node.d.ts.map +0 -1
- package/dist/tools/delete-node.js.map +0 -1
- package/dist/tools/delete-recipe-step.d.ts.map +0 -1
- package/dist/tools/delete-recipe-step.js.map +0 -1
- package/dist/tools/delete-recipe-store.d.ts.map +0 -1
- package/dist/tools/delete-recipe-store.js.map +0 -1
- package/dist/tools/delete-recipe.d.ts.map +0 -1
- package/dist/tools/delete-recipe.js.map +0 -1
- package/dist/tools/delete-workflow.d.ts.map +0 -1
- package/dist/tools/delete-workflow.js.map +0 -1
- package/dist/tools/duplicate-workflow.d.ts.map +0 -1
- package/dist/tools/duplicate-workflow.js.map +0 -1
- package/dist/tools/edit-app-code.d.ts.map +0 -1
- package/dist/tools/edit-app-code.js.map +0 -1
- package/dist/tools/execute-workflow.d.ts.map +0 -1
- package/dist/tools/execute-workflow.js.map +0 -1
- package/dist/tools/favorite-custom-node.d.ts.map +0 -1
- package/dist/tools/favorite-custom-node.js.map +0 -1
- package/dist/tools/favorite-recipe.d.ts.map +0 -1
- package/dist/tools/favorite-recipe.js.map +0 -1
- package/dist/tools/favorite-workflow.d.ts.map +0 -1
- package/dist/tools/favorite-workflow.js.map +0 -1
- package/dist/tools/fork-recipe.d.ts.map +0 -1
- package/dist/tools/fork-recipe.js.map +0 -1
- package/dist/tools/get-app-file.d.ts.map +0 -1
- package/dist/tools/get-app-file.js.map +0 -1
- package/dist/tools/get-app-template.d.ts.map +0 -1
- package/dist/tools/get-app-template.js.map +0 -1
- package/dist/tools/get-app.d.ts.map +0 -1
- package/dist/tools/get-app.js.map +0 -1
- package/dist/tools/get-custom-node-comments.d.ts.map +0 -1
- package/dist/tools/get-custom-node-comments.js.map +0 -1
- package/dist/tools/get-custom-node-template.d.ts.map +0 -1
- package/dist/tools/get-custom-node-template.js.map +0 -1
- package/dist/tools/get-custom-node.d.ts.map +0 -1
- package/dist/tools/get-custom-node.js.map +0 -1
- package/dist/tools/get-execution-history.d.ts.map +0 -1
- package/dist/tools/get-execution-history.js.map +0 -1
- package/dist/tools/get-execution.d.ts.map +0 -1
- package/dist/tools/get-execution.js.map +0 -1
- package/dist/tools/get-input-preset.d.ts.map +0 -1
- package/dist/tools/get-input-preset.js.map +0 -1
- package/dist/tools/get-knowledge-document.d.ts.map +0 -1
- package/dist/tools/get-knowledge-document.js.map +0 -1
- package/dist/tools/get-knowledge-storage.d.ts.map +0 -1
- package/dist/tools/get-knowledge-storage.js.map +0 -1
- package/dist/tools/get-node-connections.d.ts.map +0 -1
- package/dist/tools/get-node-connections.js.map +0 -1
- package/dist/tools/get-node-schema.d.ts.map +0 -1
- package/dist/tools/get-node-schema.js.map +0 -1
- package/dist/tools/get-public-workflows.d.ts.map +0 -1
- package/dist/tools/get-public-workflows.js.map +0 -1
- package/dist/tools/get-recipe-definition.d.ts.map +0 -1
- package/dist/tools/get-recipe-definition.js.map +0 -1
- package/dist/tools/get-recipe.d.ts.map +0 -1
- package/dist/tools/get-recipe.js.map +0 -1
- package/dist/tools/get-shared-result-comments.d.ts.map +0 -1
- package/dist/tools/get-shared-result-comments.js.map +0 -1
- package/dist/tools/get-shared-result.d.ts.map +0 -1
- package/dist/tools/get-shared-result.js.map +0 -1
- package/dist/tools/get-workflow-comments.d.ts.map +0 -1
- package/dist/tools/get-workflow-comments.js.map +0 -1
- package/dist/tools/get-workflow-details.d.ts.map +0 -1
- package/dist/tools/get-workflow-details.js.map +0 -1
- package/dist/tools/get-workflow-graph.d.ts.map +0 -1
- package/dist/tools/get-workflow-graph.js.map +0 -1
- package/dist/tools/get-workflow-inputs-schema.d.ts.map +0 -1
- package/dist/tools/get-workflow-inputs-schema.js.map +0 -1
- package/dist/tools/get-workflow-metrics.d.ts.map +0 -1
- package/dist/tools/get-workflow-metrics.js.map +0 -1
- package/dist/tools/get-workflow-public-url.d.ts.map +0 -1
- package/dist/tools/get-workflow-public-url.js.map +0 -1
- package/dist/tools/get-workflow-tags.d.ts.map +0 -1
- package/dist/tools/get-workflow-tags.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/insert-app-code.d.ts.map +0 -1
- package/dist/tools/insert-app-code.js.map +0 -1
- package/dist/tools/link-app-workflow.d.ts.map +0 -1
- package/dist/tools/link-app-workflow.js.map +0 -1
- package/dist/tools/link-recipe.d.ts.map +0 -1
- package/dist/tools/link-recipe.js.map +0 -1
- package/dist/tools/list-app-files.d.ts.map +0 -1
- package/dist/tools/list-app-files.js.map +0 -1
- package/dist/tools/list-apps.d.ts.map +0 -1
- package/dist/tools/list-apps.js.map +0 -1
- package/dist/tools/list-available-nodes.d.ts.map +0 -1
- package/dist/tools/list-available-nodes.js.map +0 -1
- package/dist/tools/list-custom-nodes.d.ts.map +0 -1
- package/dist/tools/list-custom-nodes.js.map +0 -1
- package/dist/tools/list-input-presets.d.ts.map +0 -1
- package/dist/tools/list-input-presets.js.map +0 -1
- package/dist/tools/list-knowledge-categories.d.ts.map +0 -1
- package/dist/tools/list-knowledge-categories.js.map +0 -1
- package/dist/tools/list-knowledge-documents.d.ts.map +0 -1
- package/dist/tools/list-knowledge-documents.js.map +0 -1
- package/dist/tools/list-recipe-steps.d.ts.map +0 -1
- package/dist/tools/list-recipe-steps.js.map +0 -1
- package/dist/tools/list-recipe-stores.d.ts.map +0 -1
- package/dist/tools/list-recipe-stores.js.map +0 -1
- package/dist/tools/list-recipes.d.ts.map +0 -1
- package/dist/tools/list-recipes.js.map +0 -1
- package/dist/tools/list-shared-results.d.ts.map +0 -1
- package/dist/tools/list-shared-results.js.map +0 -1
- package/dist/tools/list-user-teams.d.ts.map +0 -1
- package/dist/tools/list-user-teams.js.map +0 -1
- package/dist/tools/list-workflows.d.ts.map +0 -1
- package/dist/tools/list-workflows.js.map +0 -1
- package/dist/tools/move-document-to-category.d.ts.map +0 -1
- package/dist/tools/move-document-to-category.js.map +0 -1
- package/dist/tools/prepend-app-code.d.ts.map +0 -1
- package/dist/tools/prepend-app-code.js.map +0 -1
- package/dist/tools/publish-app.d.ts.map +0 -1
- package/dist/tools/publish-app.js.map +0 -1
- package/dist/tools/query-knowledge-base.d.ts.map +0 -1
- package/dist/tools/query-knowledge-base.js.map +0 -1
- package/dist/tools/rename-app-file.d.ts.map +0 -1
- package/dist/tools/rename-app-file.js.map +0 -1
- package/dist/tools/reprocess-document.d.ts.map +0 -1
- package/dist/tools/reprocess-document.js.map +0 -1
- package/dist/tools/retry-execution.d.ts.map +0 -1
- package/dist/tools/retry-execution.js.map +0 -1
- package/dist/tools/search-apps.d.ts.map +0 -1
- package/dist/tools/search-apps.js.map +0 -1
- package/dist/tools/search-public-custom-nodes.d.ts.map +0 -1
- package/dist/tools/search-public-custom-nodes.js.map +0 -1
- package/dist/tools/search-workflows.d.ts.map +0 -1
- package/dist/tools/search-workflows.js.map +0 -1
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/set-app-entry-file.d.ts.map +0 -1
- package/dist/tools/set-app-entry-file.js.map +0 -1
- package/dist/tools/set-workflow-tags.d.ts.map +0 -1
- package/dist/tools/set-workflow-tags.js.map +0 -1
- package/dist/tools/stream-execution.d.ts.map +0 -1
- package/dist/tools/stream-execution.js.map +0 -1
- package/dist/tools/toggle-community-inputs.d.ts.map +0 -1
- package/dist/tools/toggle-community-inputs.js.map +0 -1
- package/dist/tools/toggle-custom-node-visibility.d.ts.map +0 -1
- package/dist/tools/toggle-custom-node-visibility.js.map +0 -1
- package/dist/tools/toggle-workflow-public.d.ts.map +0 -1
- package/dist/tools/toggle-workflow-public.js.map +0 -1
- package/dist/tools/transfer-document-ownership.d.ts.map +0 -1
- package/dist/tools/transfer-document-ownership.js.map +0 -1
- package/dist/tools/unlink-app-workflow.d.ts.map +0 -1
- package/dist/tools/unlink-app-workflow.js.map +0 -1
- package/dist/tools/unpublish-app.d.ts.map +0 -1
- package/dist/tools/unpublish-app.js.map +0 -1
- package/dist/tools/update-app-file.d.ts.map +0 -1
- package/dist/tools/update-app-file.js.map +0 -1
- package/dist/tools/update-app.d.ts.map +0 -1
- package/dist/tools/update-app.js.map +0 -1
- package/dist/tools/update-custom-node.d.ts.map +0 -1
- package/dist/tools/update-custom-node.js.map +0 -1
- package/dist/tools/update-input-preset.d.ts.map +0 -1
- package/dist/tools/update-input-preset.js.map +0 -1
- package/dist/tools/update-knowledge-category.d.ts.map +0 -1
- package/dist/tools/update-knowledge-category.js.map +0 -1
- package/dist/tools/update-node.d.ts.map +0 -1
- package/dist/tools/update-node.js.map +0 -1
- package/dist/tools/update-recipe-step.d.ts.map +0 -1
- package/dist/tools/update-recipe-step.js.map +0 -1
- package/dist/tools/update-recipe-store.d.ts.map +0 -1
- package/dist/tools/update-recipe-store.js.map +0 -1
- package/dist/tools/update-recipe.d.ts.map +0 -1
- package/dist/tools/update-recipe.js.map +0 -1
- package/dist/tools/upload-document-from-url.d.ts.map +0 -1
- package/dist/tools/upload-document-from-url.js.map +0 -1
- package/dist/tools/upload-text-document.d.ts.map +0 -1
- package/dist/tools/upload-text-document.js.map +0 -1
- package/dist/tools/validate-workflow.d.ts.map +0 -1
- package/dist/tools/validate-workflow.js.map +0 -1
- package/dist/tools/vote-custom-node.d.ts.map +0 -1
- package/dist/tools/vote-custom-node.js.map +0 -1
- package/dist/tools/vote-input-preset.d.ts.map +0 -1
- package/dist/tools/vote-input-preset.js.map +0 -1
- package/dist/tools/vote-recipe.d.ts.map +0 -1
- package/dist/tools/vote-recipe.js.map +0 -1
- package/dist/tools/vote-shared-result.d.ts.map +0 -1
- package/dist/tools/vote-shared-result.js.map +0 -1
- package/dist/tools/vote-workflow.d.ts.map +0 -1
- package/dist/tools/vote-workflow.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/script-validator.d.ts.map +0 -1
- package/dist/utils/script-validator.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,162 +1,439 @@
|
|
|
1
|
-
# @flowdot.ai/mcp-server
|
|
2
|
-
|
|
3
|
-
Connect Claude Desktop, Cursor, and other MCP-compatible AI
|
|
4
|
-
|
|
5
|
-
## What is MCP?
|
|
6
|
-
|
|
7
|
-
MCP (Model Context Protocol) is an open standard that
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Claude
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
1
|
+
# @flowdot.ai/mcp-server
|
|
2
|
+
|
|
3
|
+
Connect Claude Desktop, Cursor, Windsurf, Claude Code, and any other MCP-compatible AI client to the **entire FlowDot platform** — workflows, recipes, custom nodes, apps, knowledge bases, agent toolkits, and the full community/sharing layer.
|
|
4
|
+
|
|
5
|
+
## What is MCP?
|
|
6
|
+
|
|
7
|
+
MCP (Model Context Protocol) is an open standard that lets AI models interact with external tools and services. The FlowDot MCP Server exposes **142 tools across 16 functional categories**, plus **7 educational `learn://` resources**, giving an AI client a complete operational interface to FlowDot — no web UI required.
|
|
8
|
+
|
|
9
|
+
With this server, an AI client can:
|
|
10
|
+
|
|
11
|
+
- **Build workflows from scratch** — create graphs, add nodes, wire connections, validate, execute, stream results
|
|
12
|
+
- **Author and share custom nodes** — write JavaScript components, validate them with AST parsing, publish to the community
|
|
13
|
+
- **Develop FlowDot Apps** — full React multi-file projects with surgical code editing operations
|
|
14
|
+
- **Design agent recipes** — multi-step agentic programs with stores, gates, branches, loops, parallel steps, and sub-recipes
|
|
15
|
+
- **Manage knowledge bases (RAG)** — categories, documents, uploads, semantic queries
|
|
16
|
+
- **Create and invoke agent toolkits** — define new tools, configure OAuth/API-key credentials, install, invoke
|
|
17
|
+
- **Share and discover** — public URLs, voting, comments, favorites, community browsing
|
|
18
|
+
- **Run and observe executions** — start, stream via SSE, cancel, retry, view history and metrics
|
|
19
|
+
|
|
20
|
+
> **Note:** Recipes can be **designed** through MCP but must be **executed** via the FlowDot CLI (`@flowdot.ai/cli`). Recipes are long-running agentic programs that exceed AI client timeouts and require local file/code/shell access.
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
### 1. Get an MCP Token
|
|
25
|
+
|
|
26
|
+
1. Go to [flowdot.ai](https://flowdot.ai)
|
|
27
|
+
2. Navigate to **Settings** > **MCP Tokens**
|
|
28
|
+
3. Click **Create New Token**
|
|
29
|
+
4. Select the scopes you need (see [Token Scopes](#token-scopes) below)
|
|
30
|
+
5. Copy the token (starts with `fd_mcp_`)
|
|
31
|
+
|
|
32
|
+
### 2. Configure Claude Desktop
|
|
33
|
+
|
|
34
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
35
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"mcpServers": {
|
|
40
|
+
"flowdot": {
|
|
41
|
+
"command": "npx",
|
|
42
|
+
"args": ["@flowdot.ai/mcp-server"],
|
|
43
|
+
"env": {
|
|
44
|
+
"FLOWDOT_API_TOKEN": "fd_mcp_your_token_here"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 3. Restart Claude Desktop
|
|
52
|
+
|
|
53
|
+
After adding the configuration, restart Claude Desktop to load the MCP server.
|
|
54
|
+
|
|
55
|
+
## Installation Options
|
|
56
|
+
|
|
57
|
+
### Option A: Claude Desktop Extension (.mcpb)
|
|
58
|
+
|
|
59
|
+
Download the `.mcpb` extension bundle and double-click to install in Claude Desktop. The extension includes Node.js runtime and all dependencies — no separate installation needed.
|
|
60
|
+
|
|
61
|
+
### Option B: npm (Cursor, Claude Code, manual config)
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx @flowdot.ai/mcp-server
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Or install globally:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm install -g @flowdot.ai/mcp-server
|
|
71
|
+
flowdot-mcp
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Educational Resources (`learn://`)
|
|
75
|
+
|
|
76
|
+
The server exposes 7 standalone concept guides via the MCP `ReadResourceRequest` interface. Read these *before* invoking tools to scaffold your understanding:
|
|
77
|
+
|
|
78
|
+
| Resource | Content |
|
|
79
|
+
|----------|---------|
|
|
80
|
+
| `learn://overview` | FlowDot platform overview |
|
|
81
|
+
| `learn://workflows` | Workflow creation guide |
|
|
82
|
+
| `learn://recipes` | Agent recipe orchestration guide |
|
|
83
|
+
| `learn://custom-nodes` | Custom node development guide |
|
|
84
|
+
| `learn://apps` | App development guide |
|
|
85
|
+
| `learn://toolkits` | Agent toolkit guide |
|
|
86
|
+
| `learn://knowledge-base` | Knowledge base & RAG guide |
|
|
87
|
+
|
|
88
|
+
## Available Tools
|
|
89
|
+
|
|
90
|
+
The server exposes **142 tools** organized into 16 categories.
|
|
91
|
+
|
|
92
|
+
### Core (4)
|
|
93
|
+
- `list_workflows` — List all workflows accessible to the authenticated user
|
|
94
|
+
- `execute_workflow` — Execute a workflow with optional inputs (sync or async)
|
|
95
|
+
- `get_execution_status` — Get the status and results of a workflow execution
|
|
96
|
+
- `agent_chat` — Chat with the FlowDot AI agent for workflow assistance
|
|
97
|
+
|
|
98
|
+
### Analytics & Feedback (3)
|
|
99
|
+
- `get_workflow_metrics` — Impressions, success/failure rates, average duration
|
|
100
|
+
- `get_workflow_comments` — Comments and ratings on workflows
|
|
101
|
+
- `get_execution_history` — Past execution history with timestamps and status
|
|
102
|
+
|
|
103
|
+
### Workflow Management (5)
|
|
104
|
+
- `get_workflow_details` — Detailed workflow info including nodes, connections, signature
|
|
105
|
+
- `get_workflow_inputs_schema` — Input schema with expected types and required fields
|
|
106
|
+
- `duplicate_workflow` — Create a copy of an existing workflow
|
|
107
|
+
- `toggle_workflow_public` — Make a workflow public or private
|
|
108
|
+
- `favorite_workflow` — Add/remove workflow from favorites
|
|
109
|
+
|
|
110
|
+
### Execution Enhancements (3)
|
|
111
|
+
- `cancel_execution` — Cancel running/pending workflow executions
|
|
112
|
+
- `retry_execution` — Retry failed executions with the same inputs
|
|
113
|
+
- `stream_execution` — Real-time SSE streaming of workflow execution
|
|
114
|
+
|
|
115
|
+
### Discovery & Search (5)
|
|
116
|
+
- `get_workflow_tags` — Get tags associated with a workflow
|
|
117
|
+
- `set_workflow_tags` — Set/update workflow tags
|
|
118
|
+
- `search_workflows` — Search workflows by name, description, tags
|
|
119
|
+
- `search` — Unified search across workflows, apps, custom nodes
|
|
120
|
+
- `get_public_workflows` — Browse public workflows shared by other users
|
|
121
|
+
|
|
122
|
+
### Workflow Building (4)
|
|
123
|
+
- `create_workflow` — Create a new empty workflow
|
|
124
|
+
- `delete_workflow` — Permanently delete a workflow
|
|
125
|
+
- `get_workflow_graph` — Get complete graph structure (all nodes + connections)
|
|
126
|
+
- `validate_workflow` — Validate for missing connections, invalid config, disconnected nodes
|
|
127
|
+
|
|
128
|
+
### Node Operations (5)
|
|
129
|
+
- `list_available_nodes` — List all node types organized by category
|
|
130
|
+
- `get_node_schema` — Full schema for a node type (inputs, outputs, properties)
|
|
131
|
+
- `add_node` — Add new node (built-in or custom via `custom_node_{hash}`)
|
|
132
|
+
- `update_node` — Update node position or properties
|
|
133
|
+
- `delete_node` — Delete node and all its connections
|
|
134
|
+
|
|
135
|
+
### Connection Operations (3)
|
|
136
|
+
- `add_connection` — Connect a node output to a node input
|
|
137
|
+
- `delete_connection` — Remove a connection between two nodes
|
|
138
|
+
- `get_node_connections` — Get all connections to/from a specific node
|
|
139
|
+
|
|
140
|
+
### Custom Nodes (13)
|
|
141
|
+
- `list_custom_nodes` — List your custom nodes with search/category filtering
|
|
142
|
+
- `search_public_custom_nodes` — Search public nodes shared by the community
|
|
143
|
+
- `get_custom_node` — Detailed custom node info (inputs, outputs, script code)
|
|
144
|
+
- `get_custom_node_comments` — Comments and ratings on a custom node
|
|
145
|
+
- `get_custom_node_template` — Generate a working script template based on I/O definitions
|
|
146
|
+
- `create_custom_node` — Create new custom node with script, inputs, outputs (validated with AST parsing)
|
|
147
|
+
- `update_custom_node` — Update name, description, code, properties
|
|
148
|
+
- `delete_custom_node` — Permanently delete a custom node
|
|
149
|
+
- `copy_custom_node` — Copy a public node to your library
|
|
150
|
+
- `toggle_custom_node_visibility` — Change visibility (private/public/unlisted)
|
|
151
|
+
- `vote_custom_node` — Upvote/downvote/remove vote
|
|
152
|
+
- `favorite_custom_node` — Add/remove from favorites
|
|
153
|
+
- `add_custom_node_comment` — Add comment or reply
|
|
154
|
+
|
|
155
|
+
### Apps (23)
|
|
156
|
+
|
|
157
|
+
#### Core App Operations (12)
|
|
158
|
+
- `list_apps` — List your React frontend apps
|
|
159
|
+
- `search_apps` — Search the public app marketplace
|
|
160
|
+
- `get_app` — Detailed app info including React code and linked workflows
|
|
161
|
+
- `create_app` — Create a new React app (Tailwind + React 18, sandboxed)
|
|
162
|
+
- `update_app` — Update name, description, code, config, mobile settings
|
|
163
|
+
- `delete_app` — Permanently delete app
|
|
164
|
+
- `publish_app` — Publish to the public marketplace
|
|
165
|
+
- `unpublish_app` — Make a published app private
|
|
166
|
+
- `clone_app` — Clone a public app to your library
|
|
167
|
+
- `link_app_workflow` — Link a workflow to an app for `invokeWorkflow()` use
|
|
168
|
+
- `unlink_app_workflow` — Unlink a workflow from an app
|
|
169
|
+
- `get_app_template` — Get starter code templates (basic, chat, dashboard, form-builder, data-viewer)
|
|
170
|
+
|
|
171
|
+
#### Surgical Code Editing (4)
|
|
172
|
+
- `edit_app_code` — Find/replace specific strings in app code
|
|
173
|
+
- `append_app_code` — Append content before the closing brace
|
|
174
|
+
- `prepend_app_code` — Prepend content to the start
|
|
175
|
+
- `insert_app_code` — Insert content after a specific pattern match
|
|
176
|
+
|
|
177
|
+
#### Multi-File App Operations (7)
|
|
178
|
+
- `list_app_files` — List all files in a multi-file app
|
|
179
|
+
- `get_app_file` — Get content of a specific file
|
|
180
|
+
- `create_app_file` — Create new file (jsx, js, ts, tsx, css, json, md)
|
|
181
|
+
- `update_app_file` — Update file content and type
|
|
182
|
+
- `delete_app_file` — Delete a file
|
|
183
|
+
- `rename_app_file` — Rename or move a file
|
|
184
|
+
- `set_app_entry_file` — Set a file as the app's entry point
|
|
185
|
+
|
|
186
|
+
### Sharing & Public URLs (9)
|
|
187
|
+
- `get_workflow_public_url` — Public shareable URL for a workflow
|
|
188
|
+
- `list_shared_results` — Shared execution results for a workflow
|
|
189
|
+
- `get_shared_result` — Specific shared result with outputs/inputs
|
|
190
|
+
- `get_shared_result_comments` — Comments on a shared result
|
|
191
|
+
- `create_shared_result` — Create a shareable link (with optional expiry)
|
|
192
|
+
- `add_workflow_comment` — Comment on a workflow
|
|
193
|
+
- `add_shared_result_comment` — Comment on a shared result
|
|
194
|
+
- `vote_workflow` — Upvote/downvote a workflow
|
|
195
|
+
- `vote_shared_result` — Upvote/downvote a shared result
|
|
196
|
+
|
|
197
|
+
### Input Presets (7)
|
|
198
|
+
- `list_input_presets` — Pre-configured input sets for a workflow
|
|
199
|
+
- `get_input_preset` — Specific preset with all values
|
|
200
|
+
- `create_input_preset` — Create a shareable preset
|
|
201
|
+
- `update_input_preset` — Update preset description/values
|
|
202
|
+
- `delete_input_preset` — Delete a preset
|
|
203
|
+
- `vote_input_preset` — Vote on a preset
|
|
204
|
+
- `toggle_community_inputs` — Enable/disable community inputs for a workflow
|
|
205
|
+
|
|
206
|
+
### Teams (1)
|
|
207
|
+
- `list_user_teams` — List all teams the user belongs to (with role + member count)
|
|
208
|
+
|
|
209
|
+
### Knowledge Base / RAG (14)
|
|
210
|
+
- `list_knowledge_categories` — Document categories in your knowledge base
|
|
211
|
+
- `create_knowledge_category` — New category with name, description, color
|
|
212
|
+
- `update_knowledge_category` — Update category properties
|
|
213
|
+
- `delete_knowledge_category` — Delete a category (documents become uncategorized)
|
|
214
|
+
- `list_knowledge_documents` — Documents with category/team/status filters
|
|
215
|
+
- `get_knowledge_document` — Document details by ID/hash
|
|
216
|
+
- `upload_text_document` — Upload text content directly
|
|
217
|
+
- `upload_document_from_url` — Download and add a document from a URL
|
|
218
|
+
- `move_document_to_category` — Move a document or make it uncategorized
|
|
219
|
+
- `transfer_document_ownership` — Transfer between personal and team knowledge base
|
|
220
|
+
- `reprocess_document` — Reprocess a failed/stuck document
|
|
221
|
+
- `delete_knowledge_document` — Permanently delete a document
|
|
222
|
+
- `query_knowledge_base` — Semantic + keyword RAG search
|
|
223
|
+
- `get_knowledge_storage` — Storage usage and limits
|
|
224
|
+
|
|
225
|
+
### Agent Toolkits (24)
|
|
226
|
+
|
|
227
|
+
Agent Toolkits let an AI client *create new tools* through the MCP interface — effectively MCP within MCP. Once installed, toolkit tools become callable via `invoke_toolkit_tool`.
|
|
228
|
+
|
|
229
|
+
#### Toolkit Management (12)
|
|
230
|
+
- `list_agent_toolkits` — Your toolkits
|
|
231
|
+
- `search_agent_toolkits` — Search public toolkit marketplace
|
|
232
|
+
- `get_agent_toolkit` — Toolkit details (tools, credentials, metadata)
|
|
233
|
+
- `get_toolkit_comments` — Comments on a toolkit
|
|
234
|
+
- `create_agent_toolkit` — Create a new toolkit with credential requirements
|
|
235
|
+
- `update_agent_toolkit` — Update title, description, category, credentials
|
|
236
|
+
- `delete_agent_toolkit` — Delete a toolkit
|
|
237
|
+
- `copy_agent_toolkit` — Create a private copy of a public toolkit
|
|
238
|
+
- `toggle_toolkit_visibility` — Change visibility (private/public/unlisted)
|
|
239
|
+
- `vote_toolkit` — Vote on a toolkit
|
|
240
|
+
- `favorite_toolkit` — Add/remove from favorites
|
|
241
|
+
- `add_toolkit_comment` — Add comment to a toolkit
|
|
242
|
+
|
|
243
|
+
#### Toolkit Usage & Invocation (12)
|
|
244
|
+
- `install_toolkit` — Install a toolkit on your account
|
|
245
|
+
- `uninstall_toolkit` — Uninstall
|
|
246
|
+
- `list_installed_toolkits` — Installed toolkits with credential status
|
|
247
|
+
- `toggle_toolkit_active` — Enable/disable an installation
|
|
248
|
+
- `check_toolkit_credentials` — Show which credentials are missing
|
|
249
|
+
- `update_toolkit_installation` — Map toolkit credentials to your API keys
|
|
250
|
+
- `invoke_toolkit_tool` — Execute a tool from an installed toolkit
|
|
251
|
+
- `list_toolkit_tools` — All tools in a toolkit
|
|
252
|
+
- `get_toolkit_tool` — Tool details with input/output schemas
|
|
253
|
+
- `create_toolkit_tool` — Create an HTTP- or Workflow-backed tool inside a toolkit
|
|
254
|
+
- `update_toolkit_tool` — Update tool configuration, schema, endpoint
|
|
255
|
+
- `delete_toolkit_tool` — Delete a tool from a toolkit
|
|
256
|
+
|
|
257
|
+
**Credential types supported:** `api_key`, `oauth` (with PKCE + scopes + refresh tokens), `bearer`, `basic`, `custom`
|
|
258
|
+
**Tool types supported:** `http` (REST API), `workflow` (invoke a FlowDot workflow)
|
|
259
|
+
|
|
260
|
+
### Agent Recipes (19)
|
|
261
|
+
|
|
262
|
+
Recipes are reusable agentic programs with multiple step types and persistent stores. **MCP can DESIGN recipes; only the CLI can RUN them.**
|
|
263
|
+
|
|
264
|
+
#### Recipe Core (8)
|
|
265
|
+
- `list_recipes` — List recipes (with `favorites_only` filter)
|
|
266
|
+
- `get_recipe` — Recipe details with steps, stores, metadata
|
|
267
|
+
- `get_recipe_definition` — Full recipe in YAML or JSON format
|
|
268
|
+
- `browse_recipes` — Public recipe browsing with pagination/sorting
|
|
269
|
+
- `create_recipe` — Create a new agent recipe
|
|
270
|
+
- `update_recipe` — Update metadata and `entry_step_id` (critical for execution)
|
|
271
|
+
- `delete_recipe` — Delete a recipe
|
|
272
|
+
- `fork_recipe` — Create a private copy of a public recipe
|
|
273
|
+
|
|
274
|
+
#### Step Management (4)
|
|
275
|
+
- `list_recipe_steps` — All steps with types, connections, config
|
|
276
|
+
- `add_recipe_step` — Add step (`agent`, `parallel`, `loop`, `gate`, `branch`, `invoke`)
|
|
277
|
+
- `update_recipe_step` — Update step name, description, config, connections
|
|
278
|
+
- `delete_recipe_step` — Delete a step
|
|
279
|
+
|
|
280
|
+
#### Store Management (4)
|
|
281
|
+
- `list_recipe_stores` — Stores (variables) in a recipe
|
|
282
|
+
- `add_recipe_store` — Add a store for data flow between steps
|
|
283
|
+
- `update_recipe_store` — Update key, label, type, default, I/O flags
|
|
284
|
+
- `delete_recipe_store` — Delete a store
|
|
285
|
+
|
|
286
|
+
#### Engagement (3)
|
|
287
|
+
- `link_recipe` — Link recipe for CLI execution with an alias
|
|
288
|
+
- `vote_recipe` — Vote on a public recipe
|
|
289
|
+
- `favorite_recipe` — Add/remove from favorites
|
|
290
|
+
|
|
291
|
+
**Step types:** `agent` (LLM with tools), `parallel` (concurrent), `loop` (iterate array), `gate` (approval checkpoint), `branch` (conditional), `invoke` (subroutine)
|
|
292
|
+
|
|
293
|
+
> To **execute** a recipe, use the FlowDot CLI:
|
|
294
|
+
> ```bash
|
|
295
|
+
> npx @flowdot.ai/cli recipes run <aliasOrHash> --input '{"key":"value"}'
|
|
296
|
+
> ```
|
|
297
|
+
|
|
298
|
+
## Token Scopes
|
|
299
|
+
|
|
300
|
+
When creating an MCP token in FlowDot Settings, you can select exactly which scopes to grant. Restrict tokens to the minimum scope they need:
|
|
301
|
+
|
|
302
|
+
| Scope namespace | Tools it covers |
|
|
303
|
+
|---|---|
|
|
304
|
+
| `workflows:read` | List, search, get, view public workflows |
|
|
305
|
+
| `workflows:execute` | Execute workflows |
|
|
306
|
+
| `workflows:manage` | Create, update, delete, validate, build workflow graphs |
|
|
307
|
+
| `executions:read` | Status, history, stream |
|
|
308
|
+
| `executions:manage` | Cancel, retry |
|
|
309
|
+
| `agent:chat` | Agent chat |
|
|
310
|
+
| `custom_nodes:read` | List, search, get, get template |
|
|
311
|
+
| `custom_nodes:manage` | Create, update, delete, copy, toggle visibility, vote, comment |
|
|
312
|
+
| `apps:read` | List, search, get apps and files |
|
|
313
|
+
| `apps:manage` | Create, update, delete, publish, code editing, file management |
|
|
314
|
+
| `recipes:read` | List, get, browse, get definition |
|
|
315
|
+
| `recipes:manage` | Create, update, delete, fork, link, manage steps and stores |
|
|
316
|
+
| `knowledge:read` | List, get, query |
|
|
317
|
+
| `knowledge:manage` | Upload, delete, categorize, transfer, reprocess |
|
|
318
|
+
| `agent_toolkits:read` | List, search, get toolkits and tools |
|
|
319
|
+
| `agent_toolkits:manage` | Create, update, delete, install, invoke |
|
|
320
|
+
| `sharing:read` | Get shared results, public URLs |
|
|
321
|
+
| `sharing:manage` | Create shared results, vote, comment |
|
|
322
|
+
| `input_presets:read` | List, get presets |
|
|
323
|
+
| `input_presets:manage` | Create, update, delete |
|
|
324
|
+
| `teams:read` | List teams |
|
|
325
|
+
| `discovery:read` | Search, tags, public browsing |
|
|
326
|
+
| `analytics:read` | Metrics, comments, history |
|
|
327
|
+
|
|
328
|
+
## Environment Variables
|
|
329
|
+
|
|
330
|
+
| Variable | Required | Default | Description |
|
|
331
|
+
|----------|----------|---------|-------------|
|
|
332
|
+
| `FLOWDOT_API_TOKEN` | Yes | — | Your MCP token (must start with `fd_mcp_`) |
|
|
333
|
+
| `FLOWDOT_HUB_URL` | No | `https://flowdot.ai` | FlowDot Hub URL (override for self-hosted) |
|
|
334
|
+
| `INTERNAL_API_SECRET` | No | — | Optional shared secret for internal API calls |
|
|
335
|
+
|
|
336
|
+
## Configuring Other MCP Clients
|
|
337
|
+
|
|
338
|
+
### Cursor
|
|
339
|
+
|
|
340
|
+
**Settings** > **MCP Servers** > **Add Server**:
|
|
341
|
+
|
|
342
|
+
```json
|
|
343
|
+
{
|
|
344
|
+
"flowdot": {
|
|
345
|
+
"command": "npx",
|
|
346
|
+
"args": ["@flowdot.ai/mcp-server"],
|
|
347
|
+
"env": {
|
|
348
|
+
"FLOWDOT_API_TOKEN": "fd_mcp_your_token_here"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Windsurf
|
|
355
|
+
|
|
356
|
+
Same configuration as Cursor — see the Windsurf documentation for the exact location of the MCP config file.
|
|
357
|
+
|
|
358
|
+
### Claude Code
|
|
359
|
+
|
|
360
|
+
Add to your Claude Code MCP configuration (typically `~/.config/claude-code/mcp.json`):
|
|
361
|
+
|
|
362
|
+
```json
|
|
363
|
+
{
|
|
364
|
+
"mcpServers": {
|
|
365
|
+
"flowdot": {
|
|
366
|
+
"command": "npx",
|
|
367
|
+
"args": ["@flowdot.ai/mcp-server"],
|
|
368
|
+
"env": { "FLOWDOT_API_TOKEN": "fd_mcp_your_token_here" }
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## Development
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
# Install dependencies
|
|
378
|
+
npm install
|
|
379
|
+
|
|
380
|
+
# Build
|
|
381
|
+
npm run build
|
|
382
|
+
|
|
383
|
+
# Run locally
|
|
384
|
+
FLOWDOT_API_TOKEN=fd_mcp_xxx npm start
|
|
385
|
+
|
|
386
|
+
# Watch mode
|
|
387
|
+
npm run dev
|
|
388
|
+
|
|
389
|
+
# Run tests
|
|
390
|
+
npm test
|
|
391
|
+
|
|
392
|
+
# Coverage report
|
|
393
|
+
npm run test:coverage
|
|
394
|
+
|
|
395
|
+
# Build the .mcpb Claude Desktop extension bundle
|
|
396
|
+
npm run build:mcpb
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## Architecture
|
|
400
|
+
|
|
401
|
+
The MCP server is a **thin protocol adapter**. All HTTP communication with the FlowDot Hub is delegated to a shared `@flowdot.ai/api` package, which is also used by the FlowDot CLI and daemon. This means the same client logic, authentication, retry semantics, and pagination apply across every FlowDot surface.
|
|
402
|
+
|
|
403
|
+
### Source Layout
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
mcp-server/
|
|
407
|
+
├── bin/
|
|
408
|
+
│ └── flowdot-mcp.js # Executable wrapper
|
|
409
|
+
├── src/
|
|
410
|
+
│ ├── index.ts # Entry point
|
|
411
|
+
│ ├── server.ts # createServer() / startServer()
|
|
412
|
+
│ ├── api-client.ts # FlowDotApiClient re-export
|
|
413
|
+
│ ├── tools/
|
|
414
|
+
│ │ ├── index.ts # Central registry (one switch case per tool)
|
|
415
|
+
│ │ └── *.ts # 119 individual tool source files
|
|
416
|
+
│ └── utils/
|
|
417
|
+
│ └── script-validator.ts # AST-based custom node script validation
|
|
418
|
+
├── manifest.json # MCPB Claude Desktop bundle manifest
|
|
419
|
+
├── scripts/
|
|
420
|
+
│ └── build-mcpb.js # Builds the .mcpb extension archive
|
|
421
|
+
└── package.json
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Custom Node Script Validation
|
|
425
|
+
|
|
426
|
+
User-submitted custom node JavaScript is validated using **`acorn` AST parsing**, not regex. The validator checks:
|
|
427
|
+
|
|
428
|
+
- Syntax correctness
|
|
429
|
+
- Required `processData(inputs, properties, llm)` function exists
|
|
430
|
+
- Return statement exists and matches declared output keys exactly
|
|
431
|
+
- No top-level return statements
|
|
432
|
+
- Security patterns (no `eval`, `process`, `global`, `require`, etc.)
|
|
433
|
+
- Best practices (unused inputs, unhandled errors)
|
|
434
|
+
|
|
435
|
+
The script validator has its own test suite with **100% coverage thresholds** enforced via `vitest.config.ts`.
|
|
436
|
+
|
|
437
|
+
## License
|
|
438
|
+
|
|
439
|
+
See `LICENSE`.
|
package/bin/flowdot-mcp.js
CHANGED
|
@@ -1,15 +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.ai/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
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* FlowDot MCP Server CLI
|
|
4
|
+
*
|
|
5
|
+
* This is the entry point when running via npx @flowdot.ai/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
|
+
});
|
package/dist/api-client.d.ts
CHANGED