@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
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Toolkit MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* Tools for managing MCP agent toolkits - creating, installing, and using
|
|
5
|
-
* custom tool collections for AI agents.
|
|
6
|
-
*/
|
|
7
|
-
// ============================================
|
|
8
|
-
// Discovery & Browsing Tools
|
|
9
|
-
// ============================================
|
|
10
1
|
export const listAgentToolkitsTool = {
|
|
11
2
|
name: 'mcp__flowdot__list_agent_toolkits',
|
|
12
|
-
description: `List your own MCP agent toolkits with optional filtering.
|
|
13
|
-
|
|
3
|
+
description: `List your own MCP agent toolkits with optional filtering.
|
|
4
|
+
|
|
14
5
|
Toolkits are collections of custom tools that can be installed and used by AI agents. Each toolkit can contain multiple related tools with shared credentials and configuration.`,
|
|
15
6
|
inputSchema: {
|
|
16
7
|
type: 'object',
|
|
@@ -58,15 +49,15 @@ export async function handleListAgentToolkits(api, args) {
|
|
|
58
49
|
const tags = toolkit.tags?.length ? `[${toolkit.tags.join(', ')}]` : '';
|
|
59
50
|
const status = toolkit.visibility === 'public' ? 'Public' : 'Private';
|
|
60
51
|
const verified = toolkit.is_verified ? '✓ Verified' : '';
|
|
61
|
-
return `- **${toolkit.title}** (${toolkit.name})
|
|
62
|
-
ID: ${toolkit.id}
|
|
63
|
-
${toolkit.description || 'No description'}
|
|
64
|
-
Category: ${toolkit.category} | Status: ${status} ${verified}
|
|
65
|
-
Tools: ${toolkit.tools_count} | Installations: ${toolkit.installation_count}
|
|
52
|
+
return `- **${toolkit.title}** (${toolkit.name})
|
|
53
|
+
ID: ${toolkit.id}
|
|
54
|
+
${toolkit.description || 'No description'}
|
|
55
|
+
Category: ${toolkit.category} | Status: ${status} ${verified}
|
|
56
|
+
Tools: ${toolkit.tools_count} | Installations: ${toolkit.installation_count}
|
|
66
57
|
${tags ? `Tags: ${tags}` : ''}`;
|
|
67
58
|
});
|
|
68
|
-
const text = `Found ${result.total || result.data.length} toolkit(s):
|
|
69
|
-
|
|
59
|
+
const text = `Found ${result.total || result.data.length} toolkit(s):
|
|
60
|
+
|
|
70
61
|
${toolkitsInfo.join('\n\n')}`;
|
|
71
62
|
return { content: [{ type: 'text', text }] };
|
|
72
63
|
}
|
|
@@ -80,8 +71,8 @@ ${toolkitsInfo.join('\n\n')}`;
|
|
|
80
71
|
}
|
|
81
72
|
export const searchAgentToolkitsTool = {
|
|
82
73
|
name: 'mcp__flowdot__search_agent_toolkits',
|
|
83
|
-
description: `Search the public MCP toolkit marketplace for toolkits created by other users.
|
|
84
|
-
|
|
74
|
+
description: `Search the public MCP toolkit marketplace for toolkits created by other users.
|
|
75
|
+
|
|
85
76
|
Discover reusable tool collections for various use cases like API integrations, data processing, automation, and more.`,
|
|
86
77
|
inputSchema: {
|
|
87
78
|
type: 'object',
|
|
@@ -149,21 +140,21 @@ export async function handleSearchAgentToolkits(api, args) {
|
|
|
149
140
|
const toolkitsInfo = result.data.map((toolkit) => {
|
|
150
141
|
const verified = toolkit.is_verified ? '✓ Verified' : '';
|
|
151
142
|
const featured = toolkit.is_featured ? '⭐ Featured' : '';
|
|
152
|
-
return `### ${toolkit.title} ${verified} ${featured}
|
|
153
|
-
- **ID:** ${toolkit.id}
|
|
154
|
-
- **Name:** ${toolkit.name}
|
|
155
|
-
- **Description:** ${toolkit.description || 'No description'}
|
|
156
|
-
- **Category:** ${toolkit.category}
|
|
157
|
-
- **Tools:** ${toolkit.tools_count}
|
|
158
|
-
- **Installations:** ${toolkit.installation_count} | **Votes:** ${toolkit.vote_count || 0}
|
|
159
|
-
- **Author:** ${toolkit.user_name || 'Unknown'}
|
|
160
|
-
${toolkit.tags?.length ? `- **Tags:** ${toolkit.tags.join(', ')}` : ''}
|
|
143
|
+
return `### ${toolkit.title} ${verified} ${featured}
|
|
144
|
+
- **ID:** ${toolkit.id}
|
|
145
|
+
- **Name:** ${toolkit.name}
|
|
146
|
+
- **Description:** ${toolkit.description || 'No description'}
|
|
147
|
+
- **Category:** ${toolkit.category}
|
|
148
|
+
- **Tools:** ${toolkit.tools_count}
|
|
149
|
+
- **Installations:** ${toolkit.installation_count} | **Votes:** ${toolkit.vote_count || 0}
|
|
150
|
+
- **Author:** ${toolkit.user_name || 'Unknown'}
|
|
151
|
+
${toolkit.tags?.length ? `- **Tags:** ${toolkit.tags.join(', ')}` : ''}
|
|
161
152
|
`;
|
|
162
153
|
});
|
|
163
|
-
const text = `## Toolkit Search Results
|
|
164
|
-
|
|
165
|
-
Found ${result.total || result.data.length} toolkit(s):
|
|
166
|
-
|
|
154
|
+
const text = `## Toolkit Search Results
|
|
155
|
+
|
|
156
|
+
Found ${result.total || result.data.length} toolkit(s):
|
|
157
|
+
|
|
167
158
|
${toolkitsInfo.join('\n')}`;
|
|
168
159
|
return { content: [{ type: 'text', text }] };
|
|
169
160
|
}
|
|
@@ -177,8 +168,8 @@ ${toolkitsInfo.join('\n')}`;
|
|
|
177
168
|
}
|
|
178
169
|
export const getAgentToolkitTool = {
|
|
179
170
|
name: 'mcp__flowdot__get_agent_toolkit',
|
|
180
|
-
description: `Get detailed information about a specific agent toolkit.
|
|
181
|
-
|
|
171
|
+
description: `Get detailed information about a specific agent toolkit.
|
|
172
|
+
|
|
182
173
|
Returns comprehensive toolkit details including tools, credentials, and metadata.`,
|
|
183
174
|
inputSchema: {
|
|
184
175
|
type: 'object',
|
|
@@ -196,32 +187,32 @@ export async function handleGetAgentToolkit(api, args) {
|
|
|
196
187
|
const toolkitId = String(args.toolkit_id);
|
|
197
188
|
const toolkit = await api.getAgentToolkit(toolkitId);
|
|
198
189
|
const verified = toolkit.is_verified ? '✓ Verified' : '';
|
|
199
|
-
const text = `# ${toolkit.title} ${verified}
|
|
200
|
-
|
|
201
|
-
**ID:** ${toolkit.id}
|
|
202
|
-
**Name:** ${toolkit.name}
|
|
203
|
-
**Category:** ${toolkit.category}
|
|
204
|
-
**Version:** ${toolkit.version}
|
|
205
|
-
**Visibility:** ${toolkit.visibility}
|
|
206
|
-
**Author:** ${toolkit.user_name || 'Unknown'}
|
|
207
|
-
|
|
208
|
-
**Description:**
|
|
209
|
-
${toolkit.description || 'No description'}
|
|
210
|
-
|
|
211
|
-
**Stats:**
|
|
212
|
-
- Tools: ${toolkit.tools_count}
|
|
213
|
-
- Installations: ${toolkit.installation_count}
|
|
214
|
-
- Votes: ${toolkit.vote_count || 0}
|
|
215
|
-
- Copies: ${toolkit.copy_count}
|
|
216
|
-
|
|
217
|
-
${toolkit.tags?.length ? `**Tags:** ${toolkit.tags.join(', ')}` : ''}
|
|
218
|
-
|
|
219
|
-
${toolkit.tools && toolkit.tools.length > 0 ? `
|
|
220
|
-
**Tools:**
|
|
221
|
-
${toolkit.tools.map(tool => `- ${tool.name}: ${tool.description}`).join('\n')}
|
|
222
|
-
` : ''}
|
|
223
|
-
|
|
224
|
-
Created: ${toolkit.created_at}
|
|
190
|
+
const text = `# ${toolkit.title} ${verified}
|
|
191
|
+
|
|
192
|
+
**ID:** ${toolkit.id}
|
|
193
|
+
**Name:** ${toolkit.name}
|
|
194
|
+
**Category:** ${toolkit.category}
|
|
195
|
+
**Version:** ${toolkit.version}
|
|
196
|
+
**Visibility:** ${toolkit.visibility}
|
|
197
|
+
**Author:** ${toolkit.user_name || 'Unknown'}
|
|
198
|
+
|
|
199
|
+
**Description:**
|
|
200
|
+
${toolkit.description || 'No description'}
|
|
201
|
+
|
|
202
|
+
**Stats:**
|
|
203
|
+
- Tools: ${toolkit.tools_count}
|
|
204
|
+
- Installations: ${toolkit.installation_count}
|
|
205
|
+
- Votes: ${toolkit.vote_count || 0}
|
|
206
|
+
- Copies: ${toolkit.copy_count}
|
|
207
|
+
|
|
208
|
+
${toolkit.tags?.length ? `**Tags:** ${toolkit.tags.join(', ')}` : ''}
|
|
209
|
+
|
|
210
|
+
${toolkit.tools && toolkit.tools.length > 0 ? `
|
|
211
|
+
**Tools:**
|
|
212
|
+
${toolkit.tools.map(tool => `- ${tool.name}: ${tool.description}`).join('\n')}
|
|
213
|
+
` : ''}
|
|
214
|
+
|
|
215
|
+
Created: ${toolkit.created_at}
|
|
225
216
|
Updated: ${toolkit.updated_at}`;
|
|
226
217
|
return { content: [{ type: 'text', text }] };
|
|
227
218
|
}
|
|
@@ -235,8 +226,8 @@ Updated: ${toolkit.updated_at}`;
|
|
|
235
226
|
}
|
|
236
227
|
export const getToolkitCommentsTool = {
|
|
237
228
|
name: 'mcp__flowdot__get_toolkit_comments',
|
|
238
|
-
description: `Get comments on a toolkit.
|
|
239
|
-
|
|
229
|
+
description: `Get comments on a toolkit.
|
|
230
|
+
|
|
240
231
|
View community feedback and discussions about a toolkit.`,
|
|
241
232
|
inputSchema: {
|
|
242
233
|
type: 'object',
|
|
@@ -270,8 +261,8 @@ export async function handleGetToolkitComments(api, args) {
|
|
|
270
261
|
return text;
|
|
271
262
|
};
|
|
272
263
|
const commentsText = comments.map((c) => formatComment(c)).join('\n\n');
|
|
273
|
-
const text = `## Toolkit Comments
|
|
274
|
-
|
|
264
|
+
const text = `## Toolkit Comments
|
|
265
|
+
|
|
275
266
|
${commentsText}`;
|
|
276
267
|
return { content: [{ type: 'text', text }] };
|
|
277
268
|
}
|
|
@@ -283,75 +274,72 @@ ${commentsText}`;
|
|
|
283
274
|
};
|
|
284
275
|
}
|
|
285
276
|
}
|
|
286
|
-
// ============================================
|
|
287
|
-
// Toolkit Management Tools
|
|
288
|
-
// ============================================
|
|
289
277
|
export const createAgentToolkitTool = {
|
|
290
278
|
name: 'mcp__flowdot__create_agent_toolkit',
|
|
291
|
-
description: `Create a new MCP agent toolkit.
|
|
292
|
-
|
|
293
|
-
Toolkits organize related tools and credentials for specific integrations or use cases.
|
|
294
|
-
|
|
295
|
-
## Credential Requirements
|
|
296
|
-
|
|
297
|
-
Use credential_requirements to define what credentials users need to provide. Each credential can be:
|
|
298
|
-
- **api_key**: Standard API key (most common)
|
|
299
|
-
- **oauth**: OAuth 2.0 token that can be refreshed via OAuth flow
|
|
300
|
-
- **bearer**: Bearer token
|
|
301
|
-
- **basic**: Basic auth credentials
|
|
302
|
-
- **custom**: Custom credential type
|
|
303
|
-
|
|
304
|
-
## OAuth Configuration
|
|
305
|
-
|
|
306
|
-
For OAuth credentials, set credential_type: "oauth" and provide oauth_config with:
|
|
307
|
-
|
|
308
|
-
Required OAuth fields:
|
|
309
|
-
- **authorization_url**: OAuth authorization endpoint (e.g., "https://api.schwabapi.com/v1/oauth/authorize")
|
|
310
|
-
- **token_endpoint**: Token exchange endpoint (e.g., "https://api.schwabapi.com/v1/oauth/token")
|
|
311
|
-
- **scopes**: Array of OAuth scopes (e.g., ["api"])
|
|
312
|
-
|
|
313
|
-
Client credential references (reference OTHER credentials in the same toolkit):
|
|
314
|
-
- **client_id_credential_key**: Key name of the credential that stores the client ID (e.g., "SCHWAB_APP_KEY")
|
|
315
|
-
- **client_secret_credential_key**: Key name of the credential that stores the client secret (e.g., "SCHWAB_APP_SECRET")
|
|
316
|
-
|
|
317
|
-
Optional OAuth fields:
|
|
318
|
-
- **pkce_enabled**: Enable PKCE (default: true, recommended for security)
|
|
319
|
-
- **auth_error_codes**: HTTP codes indicating auth failure (default: [401, 403])
|
|
320
|
-
- **auth_error_patterns**: Error message patterns indicating auth failure
|
|
321
|
-
- **extra_auth_params**: Additional URL params for authorization request
|
|
322
|
-
|
|
323
|
-
## Example: OAuth Toolkit Setup (e.g., Schwab API)
|
|
324
|
-
|
|
325
|
-
credential_requirements: [
|
|
326
|
-
{
|
|
327
|
-
key_name: "SCHWAB_APP_KEY",
|
|
328
|
-
label: "Schwab App Key (Client ID)",
|
|
329
|
-
credential_type: "api_key",
|
|
330
|
-
is_required: true,
|
|
331
|
-
description: "Your Schwab Developer App Key"
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
key_name: "SCHWAB_APP_SECRET",
|
|
335
|
-
label: "Schwab App Secret (Client Secret)",
|
|
336
|
-
credential_type: "api_key",
|
|
337
|
-
is_required: true,
|
|
338
|
-
description: "Your Schwab Developer App Secret"
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
key_name: "SCHWAB_ACCESS_TOKEN",
|
|
342
|
-
label: "Schwab Access Token",
|
|
343
|
-
credential_type: "oauth",
|
|
344
|
-
is_required: true,
|
|
345
|
-
description: "OAuth access token (auto-refreshed via Reconnect)",
|
|
346
|
-
oauth_config: {
|
|
347
|
-
authorization_url: "https://api.schwabapi.com/v1/oauth/authorize",
|
|
348
|
-
token_endpoint: "https://api.schwabapi.com/v1/oauth/token",
|
|
349
|
-
scopes: ["api"],
|
|
350
|
-
client_id_credential_key: "SCHWAB_APP_KEY",
|
|
351
|
-
client_secret_credential_key: "SCHWAB_APP_SECRET",
|
|
352
|
-
pkce_enabled: true
|
|
353
|
-
}
|
|
354
|
-
}
|
|
279
|
+
description: `Create a new MCP agent toolkit.
|
|
280
|
+
|
|
281
|
+
Toolkits organize related tools and credentials for specific integrations or use cases.
|
|
282
|
+
|
|
283
|
+
## Credential Requirements
|
|
284
|
+
|
|
285
|
+
Use credential_requirements to define what credentials users need to provide. Each credential can be:
|
|
286
|
+
- **api_key**: Standard API key (most common)
|
|
287
|
+
- **oauth**: OAuth 2.0 token that can be refreshed via OAuth flow
|
|
288
|
+
- **bearer**: Bearer token
|
|
289
|
+
- **basic**: Basic auth credentials
|
|
290
|
+
- **custom**: Custom credential type
|
|
291
|
+
|
|
292
|
+
## OAuth Configuration
|
|
293
|
+
|
|
294
|
+
For OAuth credentials, set credential_type: "oauth" and provide oauth_config with:
|
|
295
|
+
|
|
296
|
+
Required OAuth fields:
|
|
297
|
+
- **authorization_url**: OAuth authorization endpoint (e.g., "https://api.schwabapi.com/v1/oauth/authorize")
|
|
298
|
+
- **token_endpoint**: Token exchange endpoint (e.g., "https://api.schwabapi.com/v1/oauth/token")
|
|
299
|
+
- **scopes**: Array of OAuth scopes (e.g., ["api"])
|
|
300
|
+
|
|
301
|
+
Client credential references (reference OTHER credentials in the same toolkit):
|
|
302
|
+
- **client_id_credential_key**: Key name of the credential that stores the client ID (e.g., "SCHWAB_APP_KEY")
|
|
303
|
+
- **client_secret_credential_key**: Key name of the credential that stores the client secret (e.g., "SCHWAB_APP_SECRET")
|
|
304
|
+
|
|
305
|
+
Optional OAuth fields:
|
|
306
|
+
- **pkce_enabled**: Enable PKCE (default: true, recommended for security)
|
|
307
|
+
- **auth_error_codes**: HTTP codes indicating auth failure (default: [401, 403])
|
|
308
|
+
- **auth_error_patterns**: Error message patterns indicating auth failure
|
|
309
|
+
- **extra_auth_params**: Additional URL params for authorization request
|
|
310
|
+
|
|
311
|
+
## Example: OAuth Toolkit Setup (e.g., Schwab API)
|
|
312
|
+
|
|
313
|
+
credential_requirements: [
|
|
314
|
+
{
|
|
315
|
+
key_name: "SCHWAB_APP_KEY",
|
|
316
|
+
label: "Schwab App Key (Client ID)",
|
|
317
|
+
credential_type: "api_key",
|
|
318
|
+
is_required: true,
|
|
319
|
+
description: "Your Schwab Developer App Key"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
key_name: "SCHWAB_APP_SECRET",
|
|
323
|
+
label: "Schwab App Secret (Client Secret)",
|
|
324
|
+
credential_type: "api_key",
|
|
325
|
+
is_required: true,
|
|
326
|
+
description: "Your Schwab Developer App Secret"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
key_name: "SCHWAB_ACCESS_TOKEN",
|
|
330
|
+
label: "Schwab Access Token",
|
|
331
|
+
credential_type: "oauth",
|
|
332
|
+
is_required: true,
|
|
333
|
+
description: "OAuth access token (auto-refreshed via Reconnect)",
|
|
334
|
+
oauth_config: {
|
|
335
|
+
authorization_url: "https://api.schwabapi.com/v1/oauth/authorize",
|
|
336
|
+
token_endpoint: "https://api.schwabapi.com/v1/oauth/token",
|
|
337
|
+
scopes: ["api"],
|
|
338
|
+
client_id_credential_key: "SCHWAB_APP_KEY",
|
|
339
|
+
client_secret_credential_key: "SCHWAB_APP_SECRET",
|
|
340
|
+
pkce_enabled: true
|
|
341
|
+
}
|
|
342
|
+
}
|
|
355
343
|
]`,
|
|
356
344
|
inputSchema: {
|
|
357
345
|
type: 'object',
|
|
@@ -518,18 +506,18 @@ export async function handleCreateAgentToolkit(api, args) {
|
|
|
518
506
|
const toolkit = result;
|
|
519
507
|
const credsCount = input.credential_requirements?.length || 0;
|
|
520
508
|
const oauthCreds = input.credential_requirements?.filter(c => c.credential_type === 'oauth').length || 0;
|
|
521
|
-
const text = `✓ Toolkit created successfully!
|
|
522
|
-
|
|
523
|
-
**ID:** ${toolkit.id}
|
|
524
|
-
**Name:** ${toolkit.name}
|
|
525
|
-
**Title:** ${toolkit.title}
|
|
526
|
-
**Visibility:** ${toolkit.visibility}
|
|
527
|
-
${credsCount > 0 ? `**Credentials Defined:** ${credsCount} (${oauthCreds} OAuth)` : ''}
|
|
528
|
-
|
|
529
|
-
Next steps:
|
|
530
|
-
1. Add tools to your toolkit using mcp__flowdot__create_toolkit_tool
|
|
531
|
-
2. Install the toolkit using mcp__flowdot__install_toolkit
|
|
532
|
-
3. Configure credential mappings in the installation
|
|
509
|
+
const text = `✓ Toolkit created successfully!
|
|
510
|
+
|
|
511
|
+
**ID:** ${toolkit.id}
|
|
512
|
+
**Name:** ${toolkit.name}
|
|
513
|
+
**Title:** ${toolkit.title}
|
|
514
|
+
**Visibility:** ${toolkit.visibility}
|
|
515
|
+
${credsCount > 0 ? `**Credentials Defined:** ${credsCount} (${oauthCreds} OAuth)` : ''}
|
|
516
|
+
|
|
517
|
+
Next steps:
|
|
518
|
+
1. Add tools to your toolkit using mcp__flowdot__create_toolkit_tool
|
|
519
|
+
2. Install the toolkit using mcp__flowdot__install_toolkit
|
|
520
|
+
3. Configure credential mappings in the installation
|
|
533
521
|
${oauthCreds > 0 ? '4. Use the "Reconnect" button in the UI to authorize OAuth credentials' : ''}`;
|
|
534
522
|
return { content: [{ type: 'text', text }] };
|
|
535
523
|
}
|
|
@@ -543,22 +531,22 @@ ${oauthCreds > 0 ? '4. Use the "Reconnect" button in the UI to authorize OAuth c
|
|
|
543
531
|
}
|
|
544
532
|
export const updateAgentToolkitTool = {
|
|
545
533
|
name: 'mcp__flowdot__update_agent_toolkit',
|
|
546
|
-
description: `Update an existing agent toolkit's metadata.
|
|
547
|
-
|
|
548
|
-
Modify title, description, category, tags, and other toolkit properties.
|
|
549
|
-
|
|
550
|
-
## Updating Credential Requirements
|
|
551
|
-
|
|
552
|
-
Use credential_requirements to update the toolkit's credential definitions. This REPLACES all existing credentials.
|
|
553
|
-
|
|
554
|
-
For OAuth credentials, include oauth_config with:
|
|
555
|
-
- **authorization_url**: OAuth authorization endpoint
|
|
556
|
-
- **token_endpoint**: Token exchange endpoint
|
|
557
|
-
- **scopes**: Array of OAuth scopes
|
|
558
|
-
- **client_id_credential_key**: Key name of credential containing client ID
|
|
559
|
-
- **client_secret_credential_key**: Key name of credential containing client secret
|
|
560
|
-
- **pkce_enabled**: Enable PKCE (default: true)
|
|
561
|
-
|
|
534
|
+
description: `Update an existing agent toolkit's metadata.
|
|
535
|
+
|
|
536
|
+
Modify title, description, category, tags, and other toolkit properties.
|
|
537
|
+
|
|
538
|
+
## Updating Credential Requirements
|
|
539
|
+
|
|
540
|
+
Use credential_requirements to update the toolkit's credential definitions. This REPLACES all existing credentials.
|
|
541
|
+
|
|
542
|
+
For OAuth credentials, include oauth_config with:
|
|
543
|
+
- **authorization_url**: OAuth authorization endpoint
|
|
544
|
+
- **token_endpoint**: Token exchange endpoint
|
|
545
|
+
- **scopes**: Array of OAuth scopes
|
|
546
|
+
- **client_id_credential_key**: Key name of credential containing client ID
|
|
547
|
+
- **client_secret_credential_key**: Key name of credential containing client secret
|
|
548
|
+
- **pkce_enabled**: Enable PKCE (default: true)
|
|
549
|
+
|
|
562
550
|
See mcp__flowdot__create_agent_toolkit documentation for full OAuth configuration details and examples.`,
|
|
563
551
|
inputSchema: {
|
|
564
552
|
type: 'object',
|
|
@@ -698,9 +686,9 @@ export async function handleUpdateAgentToolkit(api, args) {
|
|
|
698
686
|
};
|
|
699
687
|
}
|
|
700
688
|
const credsUpdated = input.credential_requirements ? ` (${input.credential_requirements.length} credentials)` : '';
|
|
701
|
-
const text = `✓ Toolkit updated successfully!${credsUpdated}
|
|
702
|
-
|
|
703
|
-
**ID:** ${result.id}
|
|
689
|
+
const text = `✓ Toolkit updated successfully!${credsUpdated}
|
|
690
|
+
|
|
691
|
+
**ID:** ${result.id}
|
|
704
692
|
**Title:** ${result.title}`;
|
|
705
693
|
return { content: [{ type: 'text', text }] };
|
|
706
694
|
}
|
|
@@ -714,8 +702,8 @@ export async function handleUpdateAgentToolkit(api, args) {
|
|
|
714
702
|
}
|
|
715
703
|
export const deleteAgentToolkitTool = {
|
|
716
704
|
name: 'mcp__flowdot__delete_agent_toolkit',
|
|
717
|
-
description: `Delete a toolkit permanently.
|
|
718
|
-
|
|
705
|
+
description: `Delete a toolkit permanently.
|
|
706
|
+
|
|
719
707
|
WARNING: This cannot be undone. All tools, installations, and related data will be deleted.`,
|
|
720
708
|
inputSchema: {
|
|
721
709
|
type: 'object',
|
|
@@ -731,13 +719,9 @@ WARNING: This cannot be undone. All tools, installations, and related data will
|
|
|
731
719
|
export async function handleDeleteAgentToolkit(api, args) {
|
|
732
720
|
try {
|
|
733
721
|
const toolkitId = String(args.toolkit_id);
|
|
734
|
-
|
|
735
|
-
const text = result.success
|
|
736
|
-
? `✓ Toolkit deleted successfully.`
|
|
737
|
-
: `Error: ${'Failed to delete toolkit'}`;
|
|
722
|
+
await api.deleteAgentToolkit(toolkitId);
|
|
738
723
|
return {
|
|
739
|
-
content: [{ type: 'text', text }],
|
|
740
|
-
isError: !result.success,
|
|
724
|
+
content: [{ type: 'text', text: `✓ Toolkit deleted successfully.` }],
|
|
741
725
|
};
|
|
742
726
|
}
|
|
743
727
|
catch (error) {
|
|
@@ -750,8 +734,8 @@ export async function handleDeleteAgentToolkit(api, args) {
|
|
|
750
734
|
}
|
|
751
735
|
export const copyAgentToolkitTool = {
|
|
752
736
|
name: 'mcp__flowdot__copy_agent_toolkit',
|
|
753
|
-
description: `Copy/duplicate a toolkit.
|
|
754
|
-
|
|
737
|
+
description: `Copy/duplicate a toolkit.
|
|
738
|
+
|
|
755
739
|
Creates a private copy of a toolkit that you can customize.`,
|
|
756
740
|
inputSchema: {
|
|
757
741
|
type: 'object',
|
|
@@ -779,12 +763,12 @@ export async function handleCopyAgentToolkit(api, args) {
|
|
|
779
763
|
isError: true,
|
|
780
764
|
};
|
|
781
765
|
}
|
|
782
|
-
const text = `✓ Toolkit copied successfully!
|
|
783
|
-
|
|
784
|
-
**New ID:** ${result.id}
|
|
785
|
-
**Name:** ${result.name}
|
|
786
|
-
**Title:** ${result.title}
|
|
787
|
-
|
|
766
|
+
const text = `✓ Toolkit copied successfully!
|
|
767
|
+
|
|
768
|
+
**New ID:** ${result.id}
|
|
769
|
+
**Name:** ${result.name}
|
|
770
|
+
**Title:** ${result.title}
|
|
771
|
+
|
|
788
772
|
The copy is private. You can now customize it as needed.`;
|
|
789
773
|
return { content: [{ type: 'text', text }] };
|
|
790
774
|
}
|
|
@@ -798,8 +782,8 @@ The copy is private. You can now customize it as needed.`;
|
|
|
798
782
|
}
|
|
799
783
|
export const toggleToolkitVisibilityTool = {
|
|
800
784
|
name: 'mcp__flowdot__toggle_toolkit_visibility',
|
|
801
|
-
description: `Change toolkit visibility (private, public, or unlisted).
|
|
802
|
-
|
|
785
|
+
description: `Change toolkit visibility (private, public, or unlisted).
|
|
786
|
+
|
|
803
787
|
Public toolkits are searchable by others. Unlisted are accessible via direct link only.`,
|
|
804
788
|
inputSchema: {
|
|
805
789
|
type: 'object',
|
|
@@ -821,13 +805,9 @@ export async function handleToggleToolkitVisibility(api, args) {
|
|
|
821
805
|
try {
|
|
822
806
|
const toolkitId = String(args.toolkit_id);
|
|
823
807
|
const visibility = args.visibility;
|
|
824
|
-
|
|
825
|
-
const text = result.success
|
|
826
|
-
? `✓ Toolkit visibility changed to: ${visibility}`
|
|
827
|
-
: `Error: ${'Failed to change visibility'}`;
|
|
808
|
+
await api.toggleToolkitVisibility(toolkitId, visibility);
|
|
828
809
|
return {
|
|
829
|
-
content: [{ type: 'text', text }],
|
|
830
|
-
isError: !result.success,
|
|
810
|
+
content: [{ type: 'text', text: `✓ Toolkit visibility changed to: ${visibility}` }],
|
|
831
811
|
};
|
|
832
812
|
}
|
|
833
813
|
catch (error) {
|
|
@@ -923,8 +903,8 @@ export async function handleFavoriteToolkit(api, args) {
|
|
|
923
903
|
}
|
|
924
904
|
export const addToolkitCommentTool = {
|
|
925
905
|
name: 'mcp__flowdot__add_toolkit_comment',
|
|
926
|
-
description: `Add a comment to a toolkit.
|
|
927
|
-
|
|
906
|
+
description: `Add a comment to a toolkit.
|
|
907
|
+
|
|
928
908
|
Share feedback, ask questions, or discuss the toolkit with the community.`,
|
|
929
909
|
inputSchema: {
|
|
930
910
|
type: 'object',
|
|
@@ -968,13 +948,10 @@ export async function handleAddToolkitComment(api, args) {
|
|
|
968
948
|
};
|
|
969
949
|
}
|
|
970
950
|
}
|
|
971
|
-
// ============================================
|
|
972
|
-
// Installation Management Tools
|
|
973
|
-
// ============================================
|
|
974
951
|
export const installToolkitTool = {
|
|
975
952
|
name: 'mcp__flowdot__install_toolkit',
|
|
976
|
-
description: `Install a toolkit to your account.
|
|
977
|
-
|
|
953
|
+
description: `Install a toolkit to your account.
|
|
954
|
+
|
|
978
955
|
After installation, you can configure credentials and use the toolkit's tools.`,
|
|
979
956
|
inputSchema: {
|
|
980
957
|
type: 'object',
|
|
@@ -998,20 +975,20 @@ export async function handleInstallToolkit(api, args) {
|
|
|
998
975
|
};
|
|
999
976
|
}
|
|
1000
977
|
const installation = result;
|
|
1001
|
-
const text = `✓ Toolkit installed successfully!
|
|
1002
|
-
|
|
1003
|
-
**Installation ID:** ${installation.id}
|
|
1004
|
-
**Toolkit:** ${installation.toolkit_name}
|
|
1005
|
-
**Status:** ${installation.is_active ? 'Active' : 'Inactive'}
|
|
1006
|
-
**Credentials:** ${installation.credentials_configured ? 'Configured' : 'Not configured'}
|
|
1007
|
-
|
|
1008
|
-
${!installation.credentials_configured ? `
|
|
1009
|
-
⚠️ Missing credentials: ${installation.missing_credentials.join(', ')}
|
|
1010
|
-
|
|
1011
|
-
Next steps:
|
|
1012
|
-
1. Use mcp__flowdot__check_toolkit_credentials to see required credentials
|
|
1013
|
-
2. Use mcp__flowdot__update_toolkit_installation to map credentials
|
|
1014
|
-
3. Use mcp__flowdot__toggle_toolkit_active to activate
|
|
978
|
+
const text = `✓ Toolkit installed successfully!
|
|
979
|
+
|
|
980
|
+
**Installation ID:** ${installation.id}
|
|
981
|
+
**Toolkit:** ${installation.toolkit_name}
|
|
982
|
+
**Status:** ${installation.is_active ? 'Active' : 'Inactive'}
|
|
983
|
+
**Credentials:** ${installation.credentials_configured ? 'Configured' : 'Not configured'}
|
|
984
|
+
|
|
985
|
+
${!installation.credentials_configured ? `
|
|
986
|
+
⚠️ Missing credentials: ${installation.missing_credentials.join(', ')}
|
|
987
|
+
|
|
988
|
+
Next steps:
|
|
989
|
+
1. Use mcp__flowdot__check_toolkit_credentials to see required credentials
|
|
990
|
+
2. Use mcp__flowdot__update_toolkit_installation to map credentials
|
|
991
|
+
3. Use mcp__flowdot__toggle_toolkit_active to activate
|
|
1015
992
|
` : 'You can now use this toolkit!'}`;
|
|
1016
993
|
return { content: [{ type: 'text', text }] };
|
|
1017
994
|
}
|
|
@@ -1025,8 +1002,8 @@ Next steps:
|
|
|
1025
1002
|
}
|
|
1026
1003
|
export const uninstallToolkitTool = {
|
|
1027
1004
|
name: 'mcp__flowdot__uninstall_toolkit',
|
|
1028
|
-
description: `Uninstall a toolkit from your account.
|
|
1029
|
-
|
|
1005
|
+
description: `Uninstall a toolkit from your account.
|
|
1006
|
+
|
|
1030
1007
|
Removes the installation and credential mapping (toolkit itself remains available).`,
|
|
1031
1008
|
inputSchema: {
|
|
1032
1009
|
type: 'object',
|
|
@@ -1042,13 +1019,9 @@ Removes the installation and credential mapping (toolkit itself remains availabl
|
|
|
1042
1019
|
export async function handleUninstallToolkit(api, args) {
|
|
1043
1020
|
try {
|
|
1044
1021
|
const installationId = String(args.installation_id);
|
|
1045
|
-
|
|
1046
|
-
const text = result.success
|
|
1047
|
-
? `✓ Toolkit uninstalled successfully.`
|
|
1048
|
-
: `Error: ${'Failed to uninstall toolkit'}`;
|
|
1022
|
+
await api.uninstallToolkit(installationId);
|
|
1049
1023
|
return {
|
|
1050
|
-
content: [{ type: 'text', text }],
|
|
1051
|
-
isError: !result.success,
|
|
1024
|
+
content: [{ type: 'text', text: `✓ Toolkit uninstalled successfully.` }],
|
|
1052
1025
|
};
|
|
1053
1026
|
}
|
|
1054
1027
|
catch (error) {
|
|
@@ -1061,15 +1034,15 @@ export async function handleUninstallToolkit(api, args) {
|
|
|
1061
1034
|
}
|
|
1062
1035
|
export const listInstalledToolkitsTool = {
|
|
1063
1036
|
name: 'mcp__flowdot__list_installed_toolkits',
|
|
1064
|
-
description: `List all toolkits you have installed.
|
|
1065
|
-
|
|
1037
|
+
description: `List all toolkits you have installed.
|
|
1038
|
+
|
|
1066
1039
|
Shows installation status and credential configuration for each toolkit.`,
|
|
1067
1040
|
inputSchema: {
|
|
1068
1041
|
type: 'object',
|
|
1069
1042
|
properties: {},
|
|
1070
1043
|
},
|
|
1071
1044
|
};
|
|
1072
|
-
export async function handleListInstalledToolkits(api,
|
|
1045
|
+
export async function handleListInstalledToolkits(api, _args) {
|
|
1073
1046
|
try {
|
|
1074
1047
|
const installations = await api.listInstalledToolkits();
|
|
1075
1048
|
if (!installations || installations.length === 0) {
|
|
@@ -1083,16 +1056,16 @@ export async function handleListInstalledToolkits(api, args) {
|
|
|
1083
1056
|
const installationsInfo = installations.map((install) => {
|
|
1084
1057
|
const status = install.is_active ? '✓ Active' : '○ Inactive';
|
|
1085
1058
|
const creds = install.credentials_configured ? '✓ Configured' : '⚠️ Missing credentials';
|
|
1086
|
-
return `- **${install.toolkit_title}** ${status}
|
|
1087
|
-
Installation ID: ${install.id}
|
|
1088
|
-
Toolkit ID: ${install.toolkit_id}
|
|
1089
|
-
Credentials: ${creds}
|
|
1090
|
-
Version: ${install.toolkit_version}
|
|
1091
|
-
Last used: ${install.last_used_at || 'Never'}
|
|
1059
|
+
return `- **${install.toolkit_title}** ${status}
|
|
1060
|
+
Installation ID: ${install.id}
|
|
1061
|
+
Toolkit ID: ${install.toolkit_id}
|
|
1062
|
+
Credentials: ${creds}
|
|
1063
|
+
Version: ${install.toolkit_version}
|
|
1064
|
+
Last used: ${install.last_used_at || 'Never'}
|
|
1092
1065
|
Usage count: ${install.usage_count}`;
|
|
1093
1066
|
});
|
|
1094
|
-
const text = `## Installed Toolkits (${installations.length})
|
|
1095
|
-
|
|
1067
|
+
const text = `## Installed Toolkits (${installations.length})
|
|
1068
|
+
|
|
1096
1069
|
${installationsInfo.join('\n\n')}`;
|
|
1097
1070
|
return { content: [{ type: 'text', text }] };
|
|
1098
1071
|
}
|
|
@@ -1106,8 +1079,8 @@ ${installationsInfo.join('\n\n')}`;
|
|
|
1106
1079
|
}
|
|
1107
1080
|
export const toggleToolkitActiveTool = {
|
|
1108
1081
|
name: 'mcp__flowdot__toggle_toolkit_active',
|
|
1109
|
-
description: `Enable or disable a toolkit installation.
|
|
1110
|
-
|
|
1082
|
+
description: `Enable or disable a toolkit installation.
|
|
1083
|
+
|
|
1111
1084
|
Inactive toolkits won't be available for use but remain installed.`,
|
|
1112
1085
|
inputSchema: {
|
|
1113
1086
|
type: 'object',
|
|
@@ -1128,13 +1101,9 @@ export async function handleToggleToolkitActive(api, args) {
|
|
|
1128
1101
|
try {
|
|
1129
1102
|
const installationId = String(args.installation_id);
|
|
1130
1103
|
const isActive = Boolean(args.is_active);
|
|
1131
|
-
|
|
1132
|
-
const text = result.success
|
|
1133
|
-
? `✓ Toolkit ${isActive ? 'activated' : 'deactivated'} successfully.`
|
|
1134
|
-
: `Error: ${'Failed to toggle toolkit'}`;
|
|
1104
|
+
await api.toggleToolkitActive(installationId, isActive);
|
|
1135
1105
|
return {
|
|
1136
|
-
content: [{ type: 'text', text }],
|
|
1137
|
-
isError: !result.success,
|
|
1106
|
+
content: [{ type: 'text', text: `✓ Toolkit ${isActive ? 'activated' : 'deactivated'} successfully.` }],
|
|
1138
1107
|
};
|
|
1139
1108
|
}
|
|
1140
1109
|
catch (error) {
|
|
@@ -1147,8 +1116,8 @@ export async function handleToggleToolkitActive(api, args) {
|
|
|
1147
1116
|
}
|
|
1148
1117
|
export const checkToolkitCredentialsTool = {
|
|
1149
1118
|
name: 'mcp__flowdot__check_toolkit_credentials',
|
|
1150
|
-
description: `Check credential status for a toolkit installation.
|
|
1151
|
-
|
|
1119
|
+
description: `Check credential status for a toolkit installation.
|
|
1120
|
+
|
|
1152
1121
|
Shows which credentials are required and which are missing.`,
|
|
1153
1122
|
inputSchema: {
|
|
1154
1123
|
type: 'object',
|
|
@@ -1175,23 +1144,23 @@ export async function handleCheckToolkitCredentials(api, args) {
|
|
|
1175
1144
|
const requirements = status.required_credentials.map(req => {
|
|
1176
1145
|
const required = req.is_required ? '[REQUIRED]' : '[optional]';
|
|
1177
1146
|
const missing = status.missing_credentials.includes(req.key_name) ? '⚠️ MISSING' : '✓';
|
|
1178
|
-
return ` ${missing} ${req.label} ${required}
|
|
1179
|
-
Key: ${req.key_name}
|
|
1180
|
-
Type: ${req.credential_type}
|
|
1147
|
+
return ` ${missing} ${req.label} ${required}
|
|
1148
|
+
Key: ${req.key_name}
|
|
1149
|
+
Type: ${req.credential_type}
|
|
1181
1150
|
${req.description || ''}`;
|
|
1182
1151
|
});
|
|
1183
|
-
const text = `## Credential Status: ${status.toolkit_name}
|
|
1184
|
-
|
|
1185
|
-
**Status:** ${status.credentials_configured ? '✓ All credentials configured' : '⚠️ Missing required credentials'}
|
|
1186
|
-
|
|
1187
|
-
**Required Credentials:**
|
|
1188
|
-
|
|
1189
|
-
${requirements.join('\n\n')}
|
|
1190
|
-
|
|
1191
|
-
${status.missing_credentials.length > 0 ? `
|
|
1192
|
-
**Missing:** ${status.missing_credentials.join(', ')}
|
|
1193
|
-
|
|
1194
|
-
Use mcp__flowdot__update_toolkit_installation to map these credentials to your API keys.
|
|
1152
|
+
const text = `## Credential Status: ${status.toolkit_name}
|
|
1153
|
+
|
|
1154
|
+
**Status:** ${status.credentials_configured ? '✓ All credentials configured' : '⚠️ Missing required credentials'}
|
|
1155
|
+
|
|
1156
|
+
**Required Credentials:**
|
|
1157
|
+
|
|
1158
|
+
${requirements.join('\n\n')}
|
|
1159
|
+
|
|
1160
|
+
${status.missing_credentials.length > 0 ? `
|
|
1161
|
+
**Missing:** ${status.missing_credentials.join(', ')}
|
|
1162
|
+
|
|
1163
|
+
Use mcp__flowdot__update_toolkit_installation to map these credentials to your API keys.
|
|
1195
1164
|
` : ''}`;
|
|
1196
1165
|
return { content: [{ type: 'text', text }] };
|
|
1197
1166
|
}
|
|
@@ -1205,8 +1174,8 @@ Use mcp__flowdot__update_toolkit_installation to map these credentials to your A
|
|
|
1205
1174
|
}
|
|
1206
1175
|
export const updateToolkitInstallationTool = {
|
|
1207
1176
|
name: 'mcp__flowdot__update_toolkit_installation',
|
|
1208
|
-
description: `Update toolkit installation (configure credential mapping).
|
|
1209
|
-
|
|
1177
|
+
description: `Update toolkit installation (configure credential mapping).
|
|
1178
|
+
|
|
1210
1179
|
Map toolkit credential requirements to your stored API keys.`,
|
|
1211
1180
|
inputSchema: {
|
|
1212
1181
|
type: 'object',
|
|
@@ -1234,12 +1203,12 @@ export async function handleUpdateToolkitInstallation(api, args) {
|
|
|
1234
1203
|
isError: true,
|
|
1235
1204
|
};
|
|
1236
1205
|
}
|
|
1237
|
-
const text = `✓ Installation updated successfully!
|
|
1238
|
-
|
|
1239
|
-
**Credentials configured:** ${result.credentials_configured ? 'Yes' : 'No'}
|
|
1240
|
-
|
|
1241
|
-
${result.missing_credentials && result.missing_credentials.length > 0 ? `
|
|
1242
|
-
⚠️ Still missing: ${result.missing_credentials.join(', ')}
|
|
1206
|
+
const text = `✓ Installation updated successfully!
|
|
1207
|
+
|
|
1208
|
+
**Credentials configured:** ${result.credentials_configured ? 'Yes' : 'No'}
|
|
1209
|
+
|
|
1210
|
+
${result.missing_credentials && result.missing_credentials.length > 0 ? `
|
|
1211
|
+
⚠️ Still missing: ${result.missing_credentials.join(', ')}
|
|
1243
1212
|
` : '✓ All credentials configured! You can now use this toolkit.'}`;
|
|
1244
1213
|
return { content: [{ type: 'text', text }] };
|
|
1245
1214
|
}
|
|
@@ -1251,15 +1220,12 @@ ${result.missing_credentials && result.missing_credentials.length > 0 ? `
|
|
|
1251
1220
|
};
|
|
1252
1221
|
}
|
|
1253
1222
|
}
|
|
1254
|
-
// ============================================
|
|
1255
|
-
// Execution Tools
|
|
1256
|
-
// ============================================
|
|
1257
1223
|
export const invokeToolkitToolTool = {
|
|
1258
1224
|
name: 'mcp__flowdot__invoke_toolkit_tool',
|
|
1259
|
-
description: `Execute a tool from an installed toolkit.
|
|
1260
|
-
|
|
1261
|
-
Runs the tool with provided inputs using your configured credentials.
|
|
1262
|
-
|
|
1225
|
+
description: `Execute a tool from an installed toolkit.
|
|
1226
|
+
|
|
1227
|
+
Runs the tool with provided inputs using your configured credentials.
|
|
1228
|
+
|
|
1263
1229
|
You can optionally pass credential_overrides to provide dynamic credentials (like tokens from a previous tool call).`,
|
|
1264
1230
|
inputSchema: {
|
|
1265
1231
|
type: 'object',
|
|
@@ -1293,17 +1259,17 @@ export async function handleInvokeToolkitTool(api, args) {
|
|
|
1293
1259
|
credential_overrides: args.credential_overrides,
|
|
1294
1260
|
};
|
|
1295
1261
|
const result = await api.invokeToolkitTool(input);
|
|
1296
|
-
if (!result.success) {
|
|
1262
|
+
if (!result || !result.success) {
|
|
1297
1263
|
return {
|
|
1298
|
-
content: [{ type: 'text', text: result
|
|
1264
|
+
content: [{ type: 'text', text: result?.error || 'Tool execution failed' }],
|
|
1299
1265
|
isError: true,
|
|
1300
1266
|
};
|
|
1301
1267
|
}
|
|
1302
|
-
const text = `✓ Tool executed successfully!
|
|
1303
|
-
|
|
1304
|
-
**Result:**
|
|
1305
|
-
${JSON.stringify(result.data, null, 2)}
|
|
1306
|
-
|
|
1268
|
+
const text = `✓ Tool executed successfully!
|
|
1269
|
+
|
|
1270
|
+
**Result:**
|
|
1271
|
+
${JSON.stringify(result.data, null, 2)}
|
|
1272
|
+
|
|
1307
1273
|
${result.execution_time_ms ? `Execution time: ${result.execution_time_ms}ms` : ''}`;
|
|
1308
1274
|
return { content: [{ type: 'text', text }] };
|
|
1309
1275
|
}
|
|
@@ -1315,13 +1281,10 @@ ${result.execution_time_ms ? `Execution time: ${result.execution_time_ms}ms` : '
|
|
|
1315
1281
|
};
|
|
1316
1282
|
}
|
|
1317
1283
|
}
|
|
1318
|
-
// ============================================
|
|
1319
|
-
// Tool Management Tools (Read-Only)
|
|
1320
|
-
// ============================================
|
|
1321
1284
|
export const listToolkitToolsTool = {
|
|
1322
1285
|
name: 'mcp__flowdot__list_toolkit_tools',
|
|
1323
|
-
description: `List all tools in a toolkit.
|
|
1324
|
-
|
|
1286
|
+
description: `List all tools in a toolkit.
|
|
1287
|
+
|
|
1325
1288
|
Shows tool names, descriptions, and types (HTTP or Workflow).`,
|
|
1326
1289
|
inputSchema: {
|
|
1327
1290
|
type: 'object',
|
|
@@ -1351,13 +1314,13 @@ export async function handleListToolkitTools(api, args) {
|
|
|
1351
1314
|
const creds = tool.credential_keys && tool.credential_keys.length > 0
|
|
1352
1315
|
? `Requires: ${tool.credential_keys.join(', ')}`
|
|
1353
1316
|
: 'No credentials required';
|
|
1354
|
-
return `${enabled} **${tool.title}** (${tool.name})
|
|
1355
|
-
Type: ${tool.tool_type}
|
|
1356
|
-
Description: ${tool.description}
|
|
1317
|
+
return `${enabled} **${tool.title}** (${tool.name})
|
|
1318
|
+
Type: ${tool.tool_type}
|
|
1319
|
+
Description: ${tool.description}
|
|
1357
1320
|
${creds}`;
|
|
1358
1321
|
});
|
|
1359
|
-
const text = `## Toolkit Tools (${tools.length})
|
|
1360
|
-
|
|
1322
|
+
const text = `## Toolkit Tools (${tools.length})
|
|
1323
|
+
|
|
1361
1324
|
${toolsInfo.join('\n\n')}`;
|
|
1362
1325
|
return { content: [{ type: 'text', text }] };
|
|
1363
1326
|
}
|
|
@@ -1371,8 +1334,8 @@ ${toolsInfo.join('\n\n')}`;
|
|
|
1371
1334
|
}
|
|
1372
1335
|
export const getToolkitToolTool = {
|
|
1373
1336
|
name: 'mcp__flowdot__get_toolkit_tool',
|
|
1374
|
-
description: `Get detailed information about a specific tool in a toolkit.
|
|
1375
|
-
|
|
1337
|
+
description: `Get detailed information about a specific tool in a toolkit.
|
|
1338
|
+
|
|
1376
1339
|
Shows input schema, configuration, and requirements.`,
|
|
1377
1340
|
inputSchema: {
|
|
1378
1341
|
type: 'object',
|
|
@@ -1401,33 +1364,33 @@ export async function handleGetToolkitTool(api, args) {
|
|
|
1401
1364
|
};
|
|
1402
1365
|
}
|
|
1403
1366
|
const tool = result;
|
|
1404
|
-
const text = `# ${tool.title}
|
|
1405
|
-
|
|
1406
|
-
**Name:** ${tool.name}
|
|
1407
|
-
**Type:** ${tool.tool_type}
|
|
1408
|
-
**Status:** ${tool.is_enabled ? 'Enabled' : 'Disabled'}
|
|
1409
|
-
|
|
1410
|
-
**Description:**
|
|
1411
|
-
${tool.description}
|
|
1412
|
-
|
|
1413
|
-
**Input Schema:**
|
|
1414
|
-
${JSON.stringify(tool.input_schema, null, 2)}
|
|
1415
|
-
|
|
1416
|
-
${tool.credential_keys && tool.credential_keys.length > 0 ? `
|
|
1417
|
-
**Required Credentials:**
|
|
1418
|
-
${tool.credential_keys.join(', ')}
|
|
1419
|
-
` : ''}
|
|
1420
|
-
|
|
1421
|
-
${tool.tool_type === 'http' && tool.endpoint_config ? `
|
|
1422
|
-
**HTTP Configuration:**
|
|
1423
|
-
- URL: ${tool.endpoint_config.url}
|
|
1424
|
-
- Method: ${tool.endpoint_config.method}
|
|
1425
|
-
` : ''}
|
|
1426
|
-
|
|
1427
|
-
${tool.tool_type === 'workflow' && tool.workflow_hash ? `
|
|
1428
|
-
**Workflow:** ${tool.workflow_hash}
|
|
1429
|
-
` : ''}
|
|
1430
|
-
|
|
1367
|
+
const text = `# ${tool.title}
|
|
1368
|
+
|
|
1369
|
+
**Name:** ${tool.name}
|
|
1370
|
+
**Type:** ${tool.tool_type}
|
|
1371
|
+
**Status:** ${tool.is_enabled ? 'Enabled' : 'Disabled'}
|
|
1372
|
+
|
|
1373
|
+
**Description:**
|
|
1374
|
+
${tool.description}
|
|
1375
|
+
|
|
1376
|
+
**Input Schema:**
|
|
1377
|
+
${JSON.stringify(tool.input_schema, null, 2)}
|
|
1378
|
+
|
|
1379
|
+
${tool.credential_keys && tool.credential_keys.length > 0 ? `
|
|
1380
|
+
**Required Credentials:**
|
|
1381
|
+
${tool.credential_keys.join(', ')}
|
|
1382
|
+
` : ''}
|
|
1383
|
+
|
|
1384
|
+
${tool.tool_type === 'http' && tool.endpoint_config ? `
|
|
1385
|
+
**HTTP Configuration:**
|
|
1386
|
+
- URL: ${tool.endpoint_config.url}
|
|
1387
|
+
- Method: ${tool.endpoint_config.method}
|
|
1388
|
+
` : ''}
|
|
1389
|
+
|
|
1390
|
+
${tool.tool_type === 'workflow' && tool.workflow_hash ? `
|
|
1391
|
+
**Workflow:** ${tool.workflow_hash}
|
|
1392
|
+
` : ''}
|
|
1393
|
+
|
|
1431
1394
|
**Timeout:** ${tool.timeout_ms || 30000}ms`;
|
|
1432
1395
|
return { content: [{ type: 'text', text }] };
|
|
1433
1396
|
}
|
|
@@ -1441,8 +1404,8 @@ ${tool.tool_type === 'workflow' && tool.workflow_hash ? `
|
|
|
1441
1404
|
}
|
|
1442
1405
|
export const createToolkitToolTool = {
|
|
1443
1406
|
name: 'mcp__flowdot__create_toolkit_tool',
|
|
1444
|
-
description: `Create a new tool in a toolkit.
|
|
1445
|
-
|
|
1407
|
+
description: `Create a new tool in a toolkit.
|
|
1408
|
+
|
|
1446
1409
|
Add HTTP or Workflow-based tools to your agent toolkit with custom input/output schemas and credentials.`,
|
|
1447
1410
|
inputSchema: {
|
|
1448
1411
|
type: 'object',
|
|
@@ -1535,13 +1498,13 @@ export async function handleCreateToolkitTool(api, args) {
|
|
|
1535
1498
|
isError: true,
|
|
1536
1499
|
};
|
|
1537
1500
|
}
|
|
1538
|
-
const text = `✓ Tool created successfully!
|
|
1539
|
-
|
|
1540
|
-
**Name:** ${result.name}
|
|
1541
|
-
**Title:** ${result.title}
|
|
1542
|
-
**Type:** ${result.tool_type}
|
|
1543
|
-
**ID:** ${result.id}
|
|
1544
|
-
|
|
1501
|
+
const text = `✓ Tool created successfully!
|
|
1502
|
+
|
|
1503
|
+
**Name:** ${result.name}
|
|
1504
|
+
**Title:** ${result.title}
|
|
1505
|
+
**Type:** ${result.tool_type}
|
|
1506
|
+
**ID:** ${result.id}
|
|
1507
|
+
|
|
1545
1508
|
Your tool is now available in the toolkit.`;
|
|
1546
1509
|
return { content: [{ type: 'text', text }] };
|
|
1547
1510
|
}
|
|
@@ -1555,8 +1518,8 @@ Your tool is now available in the toolkit.`;
|
|
|
1555
1518
|
}
|
|
1556
1519
|
export const updateToolkitToolTool = {
|
|
1557
1520
|
name: 'mcp__flowdot__update_toolkit_tool',
|
|
1558
|
-
description: `Update an existing tool in a toolkit.
|
|
1559
|
-
|
|
1521
|
+
description: `Update an existing tool in a toolkit.
|
|
1522
|
+
|
|
1560
1523
|
Modify tool configuration, schemas, endpoints, or credentials.`,
|
|
1561
1524
|
inputSchema: {
|
|
1562
1525
|
type: 'object',
|
|
@@ -1654,9 +1617,9 @@ export async function handleUpdateToolkitTool(api, args) {
|
|
|
1654
1617
|
isError: true,
|
|
1655
1618
|
};
|
|
1656
1619
|
}
|
|
1657
|
-
const text = `✓ Tool updated successfully!
|
|
1658
|
-
|
|
1659
|
-
**Name:** ${result.name}
|
|
1620
|
+
const text = `✓ Tool updated successfully!
|
|
1621
|
+
|
|
1622
|
+
**Name:** ${result.name}
|
|
1660
1623
|
**Title:** ${result.title}`;
|
|
1661
1624
|
return { content: [{ type: 'text', text }] };
|
|
1662
1625
|
}
|
|
@@ -1670,8 +1633,8 @@ export async function handleUpdateToolkitTool(api, args) {
|
|
|
1670
1633
|
}
|
|
1671
1634
|
export const deleteToolkitToolTool = {
|
|
1672
1635
|
name: 'mcp__flowdot__delete_toolkit_tool',
|
|
1673
|
-
description: `Delete a tool from a toolkit.
|
|
1674
|
-
|
|
1636
|
+
description: `Delete a tool from a toolkit.
|
|
1637
|
+
|
|
1675
1638
|
WARNING: This cannot be undone. The tool will be permanently removed.`,
|
|
1676
1639
|
inputSchema: {
|
|
1677
1640
|
type: 'object',
|
|
@@ -1692,13 +1655,9 @@ export async function handleDeleteToolkitTool(api, args) {
|
|
|
1692
1655
|
try {
|
|
1693
1656
|
const toolkitId = String(args.toolkit_id);
|
|
1694
1657
|
const toolId = String(args.tool_id);
|
|
1695
|
-
|
|
1696
|
-
const text = result.success
|
|
1697
|
-
? `✓ Tool deleted successfully.`
|
|
1698
|
-
: `Error: ${'Failed to delete tool'}`;
|
|
1658
|
+
await api.deleteToolkitTool(toolkitId, toolId);
|
|
1699
1659
|
return {
|
|
1700
|
-
content: [{ type: 'text', text }],
|
|
1701
|
-
isError: !result.success,
|
|
1660
|
+
content: [{ type: 'text', text: `✓ Tool '${toolId}' deleted successfully.` }],
|
|
1702
1661
|
};
|
|
1703
1662
|
}
|
|
1704
1663
|
catch (error) {
|
|
@@ -1709,4 +1668,3 @@ export async function handleDeleteToolkitTool(api, args) {
|
|
|
1709
1668
|
};
|
|
1710
1669
|
}
|
|
1711
1670
|
}
|
|
1712
|
-
//# sourceMappingURL=agent-toolkits.js.map
|