n8n-workflow-builder-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/cursor_rules.mdc +53 -0
- package/.cursor/rules/dev_workflow.mdc +219 -0
- package/.cursor/rules/mcp.mdc +430 -0
- package/.cursor/rules/self_improve.mdc +72 -0
- package/.cursor/rules/taskmaster.mdc +382 -0
- package/.cursorignore +1 -0
- package/.cursorrules +4 -0
- package/.env.example +23 -0
- package/.eslintrc.json +38 -0
- package/.github/workflows/npm-publish-github-packages.yml +55 -0
- package/.prettierrc +9 -0
- package/.roo/rules/dev_workflow.md +219 -0
- package/.roo/rules/mcp.md +430 -0
- package/.roo/rules/roo_rules.md +53 -0
- package/.roo/rules/self_improve.md +72 -0
- package/.roo/rules/taskmaster.md +382 -0
- package/.roo/rules-architect/architect-rules +93 -0
- package/.roo/rules-ask/ask-rules +89 -0
- package/.roo/rules-boomerang/boomerang-rules +181 -0
- package/.roo/rules-code/code-rules +61 -0
- package/.roo/rules-debug/debug-rules +68 -0
- package/.roo/rules-test/test-rules +61 -0
- package/.roomodes +63 -0
- package/.taskmasterconfig +31 -0
- package/.windsurfrules +2382 -0
- package/LICENSE +21 -0
- package/README.md +210 -0
- package/config/credentials/credentials.json +1 -0
- package/config/default.js +41 -0
- package/package.json +56 -0
- package/scripts/demo-n8n-integration.js +161 -0
- package/scripts/demo-workflow-generator.js +102 -0
- package/scripts/init.sh +36 -0
- package/scripts/prd.txt +197 -0
- package/src/index.ts +1440 -0
- package/src/middleware/auth.js +273 -0
- package/src/middleware/authorize.js +183 -0
- package/src/middleware/logging.js +64 -0
- package/src/middleware/mcp.js +187 -0
- package/src/middleware/rateLimiter.js +82 -0
- package/src/middleware/validation.js +241 -0
- package/src/models/credential.js +359 -0
- package/src/models/llmService.js +236 -0
- package/src/models/n8nIntegration.js +542 -0
- package/src/models/storage.js +196 -0
- package/src/models/tool.js +148 -0
- package/src/models/user.js +164 -0
- package/src/models/workflow.js +229 -0
- package/src/routes/toolDefinitions.js +62 -0
- package/src/routes/toolExecution.js +79 -0
- package/src/tools/__index.js +242 -0
- package/src/tools/connectionManagement.js +500 -0
- package/src/tools/n8nIntegration.js +370 -0
- package/src/tools/nodeDiscovery.js +488 -0
- package/src/tools/nodeManagement.js +674 -0
- package/src/tools/toolDefinitions.js +660 -0
- package/src/tools/workflowCreation.js +100 -0
- package/src/tools/workflowGenerator.js +152 -0
- package/src/tools/workflowStorage.js +113 -0
- package/src/tools/workflowTesting.js +285 -0
- package/src/utils/encryption.js +164 -0
- package/src/utils/logger.js +84 -0
- package/src/utils/mcp.js +85 -0
- package/src/utils/securityLogger.js +109 -0
- package/tests/auth.test.js +402 -0
- package/tests/authorize.test.js +208 -0
- package/tests/run-memory-tests.js +55 -0
- package/tests/run-tests.js +55 -0
- package/tests/server.test.js +203 -0
- package/tests/unit/add-ai-connections.test.js +385 -0
- package/tests/unit/connectionManagement.test.js +309 -0
- package/tests/unit/langchain-llm-format.test.js +259 -0
- package/tests/unit/memory-connection.test.js +140 -0
- package/tests/unit/memory-integration.test.js +253 -0
- package/tests/unit/n8nIntegration.test.js +291 -0
- package/tests/unit/nodeDiscovery.test.js +270 -0
- package/tests/unit/nodeManagement.test.js +522 -0
- package/tests/unit/utils/mcp-test-utils.js +94 -0
- package/tests/unit/workflowCreation.test.js +110 -0
- package/tests/unit/workflowTesting.test.js +269 -0
- package/tests/user.test.js +181 -0
- package/tsconfig.json +20 -0
- package/workflow_nodes/Brandfetch.json +85 -0
- package/workflow_nodes/WorkflowTrigger.json +28 -0
- package/workflow_nodes/actionNetwork.json +218 -0
- package/workflow_nodes/activeCampaign.json +722 -0
- package/workflow_nodes/activeCampaignTrigger.json +52 -0
- package/workflow_nodes/acuitySchedulingTrigger.json +8 -0
- package/workflow_nodes/adalo.json +123 -0
- package/workflow_nodes/affinity.json +203 -0
- package/workflow_nodes/affinityTrigger.json +124 -0
- package/workflow_nodes/aggregate.json +119 -0
- package/workflow_nodes/agileCrm.json +503 -0
- package/workflow_nodes/aiTransform.json +17 -0
- package/workflow_nodes/airtable.json +226 -0
- package/workflow_nodes/airtableTrigger.json +120 -0
- package/workflow_nodes/airtop.json +10 -0
- package/workflow_nodes/amqp.json +62 -0
- package/workflow_nodes/amqpTrigger.json +8 -0
- package/workflow_nodes/apiTemplateIo.json +147 -0
- package/workflow_nodes/asana.json +446 -0
- package/workflow_nodes/asanaTrigger.json +52 -0
- package/workflow_nodes/automizy.json +195 -0
- package/workflow_nodes/autopilot.json +287 -0
- package/workflow_nodes/autopilotTrigger.json +8 -0
- package/workflow_nodes/awsCertificateManager.json +223 -0
- package/workflow_nodes/awsComprehend.json +125 -0
- package/workflow_nodes/awsDynamoDb.json +251 -0
- package/workflow_nodes/awsElb.json +174 -0
- package/workflow_nodes/awsLambda.json +69 -0
- package/workflow_nodes/awsRekognition.json +191 -0
- package/workflow_nodes/awsS3.json +32 -0
- package/workflow_nodes/awsSes.json +302 -0
- package/workflow_nodes/awsSns.json +110 -0
- package/workflow_nodes/awsSnsTrigger.json +47 -0
- package/workflow_nodes/awsSqs.json +140 -0
- package/workflow_nodes/awsTextract.json +43 -0
- package/workflow_nodes/awsTranscribe.json +217 -0
- package/workflow_nodes/azureCosmosDb.json +8 -0
- package/workflow_nodes/azureStorage.json +17 -0
- package/workflow_nodes/bambooHr.json +8 -0
- package/workflow_nodes/bannerbear.json +126 -0
- package/workflow_nodes/baserow.json +277 -0
- package/workflow_nodes/beeminder.json +146 -0
- package/workflow_nodes/bitbucketTrigger.json +62 -0
- package/workflow_nodes/bitly.json +130 -0
- package/workflow_nodes/bitwarden.json +224 -0
- package/workflow_nodes/box.json +457 -0
- package/workflow_nodes/boxTrigger.json +8 -0
- package/workflow_nodes/brevo.json +41 -0
- package/workflow_nodes/brevoTrigger.json +145 -0
- package/workflow_nodes/bubble.json +212 -0
- package/workflow_nodes/calTrigger.json +91 -0
- package/workflow_nodes/calendlyTrigger.json +71 -0
- package/workflow_nodes/chargebee.json +217 -0
- package/workflow_nodes/chargebeeTrigger.json +187 -0
- package/workflow_nodes/circleCi.json +89 -0
- package/workflow_nodes/ciscoWebex.json +593 -0
- package/workflow_nodes/ciscoWebexTrigger.json +159 -0
- package/workflow_nodes/clearbit.json +138 -0
- package/workflow_nodes/clickUp.json +793 -0
- package/workflow_nodes/clickUpTrigger.json +188 -0
- package/workflow_nodes/clockify.json +372 -0
- package/workflow_nodes/clockifyTrigger.json +26 -0
- package/workflow_nodes/cloudflare.json +103 -0
- package/workflow_nodes/cockpit.json +161 -0
- package/workflow_nodes/coda.json +242 -0
- package/workflow_nodes/code.json +40 -0
- package/workflow_nodes/coinGecko.json +363 -0
- package/workflow_nodes/compareDatasets.json +14 -0
- package/workflow_nodes/compression.json +66 -0
- package/workflow_nodes/contentful.json +29 -0
- package/workflow_nodes/convertKit.json +159 -0
- package/workflow_nodes/convertKitTrigger.json +109 -0
- package/workflow_nodes/convertToFile.json +64 -0
- package/workflow_nodes/copper.json +239 -0
- package/workflow_nodes/copperTrigger.json +8 -0
- package/workflow_nodes/cortex.json +348 -0
- package/workflow_nodes/crateDb.json +90 -0
- package/workflow_nodes/cron.json +23 -0
- package/workflow_nodes/crowdDev.json +8 -0
- package/workflow_nodes/crowdDevTrigger.json +8 -0
- package/workflow_nodes/crypto.json +147 -0
- package/workflow_nodes/customerIo.json +206 -0
- package/workflow_nodes/customerIoTrigger.json +185 -0
- package/workflow_nodes/dateTime.json +39 -0
- package/workflow_nodes/debughelper.json +162 -0
- package/workflow_nodes/deepL.json +103 -0
- package/workflow_nodes/demio.json +187 -0
- package/workflow_nodes/dhl.json +53 -0
- package/workflow_nodes/discord.json +81 -0
- package/workflow_nodes/discourse.json +319 -0
- package/workflow_nodes/disqus.json +254 -0
- package/workflow_nodes/drift.json +112 -0
- package/workflow_nodes/dropbox.json +258 -0
- package/workflow_nodes/dropcontact.json +154 -0
- package/workflow_nodes/e2eTest.json +70 -0
- package/workflow_nodes/editImage.json +132 -0
- package/workflow_nodes/egoi.json +220 -0
- package/workflow_nodes/elasticSecurity.json +401 -0
- package/workflow_nodes/elasticsearch.json +422 -0
- package/workflow_nodes/emailReadImap.json +88 -0
- package/workflow_nodes/emailSend.json +38 -0
- package/workflow_nodes/emelia.json +201 -0
- package/workflow_nodes/emeliaTrigger.json +57 -0
- package/workflow_nodes/erpNext.json +139 -0
- package/workflow_nodes/errorTrigger.json +15 -0
- package/workflow_nodes/evaluationMetrics.json +21 -0
- package/workflow_nodes/eventbriteTrigger.json +125 -0
- package/workflow_nodes/executeCommand.json +25 -0
- package/workflow_nodes/executeWorkflow.json +102 -0
- package/workflow_nodes/executeWorkflowTrigger.json +65 -0
- package/workflow_nodes/executionData.json +35 -0
- package/workflow_nodes/extractFromFile.json +71 -0
- package/workflow_nodes/facebookGraphApi.json +234 -0
- package/workflow_nodes/facebookLeadAdsTrigger.json +8 -0
- package/workflow_nodes/facebookTrigger.json +112 -0
- package/workflow_nodes/figmaTrigger.json +8 -0
- package/workflow_nodes/filemaker.json +268 -0
- package/workflow_nodes/filter.json +24 -0
- package/workflow_nodes/flow.json +323 -0
- package/workflow_nodes/flowTrigger.json +52 -0
- package/workflow_nodes/form.json +25 -0
- package/workflow_nodes/formIoTrigger.json +59 -0
- package/workflow_nodes/formTrigger.json +8 -0
- package/workflow_nodes/formstackTrigger.json +8 -0
- package/workflow_nodes/freshdesk.json +584 -0
- package/workflow_nodes/freshservice.json +899 -0
- package/workflow_nodes/freshworksCrm.json +772 -0
- package/workflow_nodes/ftp.json +127 -0
- package/workflow_nodes/function.json +22 -0
- package/workflow_nodes/functionItem.json +22 -0
- package/workflow_nodes/gSuiteAdmin.json +562 -0
- package/workflow_nodes/getResponse.json +310 -0
- package/workflow_nodes/getResponseTrigger.json +82 -0
- package/workflow_nodes/ghost.json +290 -0
- package/workflow_nodes/git.json +184 -0
- package/workflow_nodes/github.json +732 -0
- package/workflow_nodes/githubTrigger.json +317 -0
- package/workflow_nodes/gitlab.json +544 -0
- package/workflow_nodes/gitlabTrigger.json +61 -0
- package/workflow_nodes/gmail.json +62 -0
- package/workflow_nodes/gmailTrigger.json +127 -0
- package/workflow_nodes/goToWebinar.json +430 -0
- package/workflow_nodes/gong.json +22 -0
- package/workflow_nodes/googleAds.json +116 -0
- package/workflow_nodes/googleAnalytics.json +28 -0
- package/workflow_nodes/googleBigQuery.json +38 -0
- package/workflow_nodes/googleBooks.json +154 -0
- package/workflow_nodes/googleBusinessProfile.json +277 -0
- package/workflow_nodes/googleBusinessProfileTrigger.json +55 -0
- package/workflow_nodes/googleCalendar.json +474 -0
- package/workflow_nodes/googleCalendarTrigger.json +72 -0
- package/workflow_nodes/googleChat.json +187 -0
- package/workflow_nodes/googleCloudNaturalLanguage.json +171 -0
- package/workflow_nodes/googleCloudStorage.json +466 -0
- package/workflow_nodes/googleContacts.json +481 -0
- package/workflow_nodes/googleDocs.json +312 -0
- package/workflow_nodes/googleDrive.json +920 -0
- package/workflow_nodes/googleDriveTrigger.json +181 -0
- package/workflow_nodes/googleFirebaseCloudFirestore.json +156 -0
- package/workflow_nodes/googleFirebaseRealtimeDatabase.json +75 -0
- package/workflow_nodes/googlePerspective.json +94 -0
- package/workflow_nodes/googleSheets.json +98 -0
- package/workflow_nodes/googleSheetsTrigger.json +192 -0
- package/workflow_nodes/googleSlides.json +186 -0
- package/workflow_nodes/googleTasks.json +198 -0
- package/workflow_nodes/googleTranslate.json +80 -0
- package/workflow_nodes/gotify.json +110 -0
- package/workflow_nodes/grafana.json +155 -0
- package/workflow_nodes/graphql.json +165 -0
- package/workflow_nodes/grist.json +13 -0
- package/workflow_nodes/gumroadTrigger.json +8 -0
- package/workflow_nodes/hackerNews.json +100 -0
- package/workflow_nodes/haloPSA.json +286 -0
- package/workflow_nodes/harvest.json +699 -0
- package/workflow_nodes/helpScout.json +629 -0
- package/workflow_nodes/helpScoutTrigger.json +8 -0
- package/workflow_nodes/highLevel.json +8 -0
- package/workflow_nodes/homeAssistant.json +201 -0
- package/workflow_nodes/html.json +118 -0
- package/workflow_nodes/htmlExtract.json +87 -0
- package/workflow_nodes/httpRequest.json +472 -0
- package/workflow_nodes/hubspot.json +62 -0
- package/workflow_nodes/hubspotTrigger.json +138 -0
- package/workflow_nodes/humanticAi.json +82 -0
- package/workflow_nodes/hunter.json +168 -0
- package/workflow_nodes/iCal.json +20 -0
- package/workflow_nodes/if.json +24 -0
- package/workflow_nodes/intercom.json +335 -0
- package/workflow_nodes/interval.json +8 -0
- package/workflow_nodes/invoiceNinja.json +882 -0
- package/workflow_nodes/invoiceNinjaTrigger.json +11 -0
- package/workflow_nodes/itemLists.json +313 -0
- package/workflow_nodes/iterable.json +168 -0
- package/workflow_nodes/jenkins.json +172 -0
- package/workflow_nodes/jira.json +529 -0
- package/workflow_nodes/jiraTrigger.json +308 -0
- package/workflow_nodes/jotFormTrigger.json +44 -0
- package/workflow_nodes/jwt.json +195 -0
- package/workflow_nodes/kafka.json +132 -0
- package/workflow_nodes/kafkaTrigger.json +11 -0
- package/workflow_nodes/keap.json +915 -0
- package/workflow_nodes/keapTrigger.json +37 -0
- package/workflow_nodes/kitemaker.json +153 -0
- package/workflow_nodes/koBoToolbox.json +337 -0
- package/workflow_nodes/koBoToolboxTrigger.json +8 -0
- package/workflow_nodes/langchain_Summarization Chain.json +60 -0
- package/workflow_nodes/langchain_agent.json +145 -0
- package/workflow_nodes/langchain_allowFileUploads.json +180 -0
- package/workflow_nodes/langchain_chainLlm.json +16 -0
- package/workflow_nodes/langchain_chainSummarization.json +119 -0
- package/workflow_nodes/langchain_code.json +62 -0
- package/workflow_nodes/langchain_documentBinaryInputLoader.json +8 -0
- package/workflow_nodes/langchain_documentDefaultDataLoader.json +8 -0
- package/workflow_nodes/langchain_documentGithubLoader.json +8 -0
- package/workflow_nodes/langchain_documentJsonInputLoader.json +8 -0
- package/workflow_nodes/langchain_embeddingDimensions.json +17 -0
- package/workflow_nodes/langchain_embeddingsAwsBedrock.json +8 -0
- package/workflow_nodes/langchain_embeddingsAzureOpenAi.json +151 -0
- package/workflow_nodes/langchain_embeddingsCohere.json +8 -0
- package/workflow_nodes/langchain_embeddingsGoogleGemini.json +8 -0
- package/workflow_nodes/langchain_embeddingsGoogleVertex.json +8 -0
- package/workflow_nodes/langchain_embeddingsHuggingFaceInference.json +8 -0
- package/workflow_nodes/langchain_embeddingsMistralCloud.json +8 -0
- package/workflow_nodes/langchain_embeddingsOllama.json +8 -0
- package/workflow_nodes/langchain_informationExtractor.json +81 -0
- package/workflow_nodes/langchain_lmChatAwsBedrock.json +8 -0
- package/workflow_nodes/langchain_lmChatAzureOpenAi.json +151 -0
- package/workflow_nodes/langchain_lmChatDeepSeek.json +10 -0
- package/workflow_nodes/langchain_lmChatGoogleGemini.json +31 -0
- package/workflow_nodes/langchain_lmChatGoogleVertex.json +32 -0
- package/workflow_nodes/langchain_lmChatGroq.json +8 -0
- package/workflow_nodes/langchain_lmChatMistralCloud.json +8 -0
- package/workflow_nodes/langchain_lmChatOllama.json +8 -0
- package/workflow_nodes/langchain_lmChatOpenAi.json +155 -0
- package/workflow_nodes/langchain_lmChatOpenRouter.json +10 -0
- package/workflow_nodes/langchain_lmChatXAiGrok.json +10 -0
- package/workflow_nodes/langchain_lmCohere.json +8 -0
- package/workflow_nodes/langchain_lmOllama.json +8 -0
- package/workflow_nodes/langchain_lmOpenAi.json +251 -0
- package/workflow_nodes/langchain_lmOpenHuggingFaceInference.json +8 -0
- package/workflow_nodes/langchain_manualChatTrigger.json +11 -0
- package/workflow_nodes/langchain_mcpClientTool.json +86 -0
- package/workflow_nodes/langchain_mcpTrigger.json +8 -0
- package/workflow_nodes/langchain_memoryBufferWindow.json +13 -0
- package/workflow_nodes/langchain_memoryChatRetriever.json +22 -0
- package/workflow_nodes/langchain_memoryManager.json +106 -0
- package/workflow_nodes/langchain_memoryMongoDbChat.json +10 -0
- package/workflow_nodes/langchain_memoryMotorhead.json +13 -0
- package/workflow_nodes/langchain_memoryPostgresChat.json +13 -0
- package/workflow_nodes/langchain_memoryRedisChat.json +15 -0
- package/workflow_nodes/langchain_memoryXata.json +14 -0
- package/workflow_nodes/langchain_memoryZep.json +13 -0
- package/workflow_nodes/langchain_model.json +155 -0
- package/workflow_nodes/langchain_mongoCollection.json +16 -0
- package/workflow_nodes/langchain_notice.json +22 -0
- package/workflow_nodes/langchain_openAiAssistant.json +132 -0
- package/workflow_nodes/langchain_options.json +17 -0
- package/workflow_nodes/langchain_outputParserAutofixing.json +8 -0
- package/workflow_nodes/langchain_outputParserItemList.json +8 -0
- package/workflow_nodes/langchain_outputParserStructured.json +12 -0
- package/workflow_nodes/langchain_pineconeNamespace.json +16 -0
- package/workflow_nodes/langchain_queryName.json +16 -0
- package/workflow_nodes/langchain_retrieverContextualCompression.json +8 -0
- package/workflow_nodes/langchain_retrieverMultiQuery.json +8 -0
- package/workflow_nodes/langchain_retrieverVectorStore.json +8 -0
- package/workflow_nodes/langchain_retrieverWorkflow.json +103 -0
- package/workflow_nodes/langchain_sentimentAnalysis.json +52 -0
- package/workflow_nodes/langchain_systemPromptTemplate.json +47 -0
- package/workflow_nodes/langchain_tableName.json +23 -0
- package/workflow_nodes/langchain_textClassifier.json +66 -0
- package/workflow_nodes/langchain_textSplitterCharacterTextSplitter.json +8 -0
- package/workflow_nodes/langchain_textSplitterRecursiveCharacterTextSplitter.json +8 -0
- package/workflow_nodes/langchain_textSplitterTokenSplitter.json +8 -0
- package/workflow_nodes/langchain_toolCalculator.json +8 -0
- package/workflow_nodes/langchain_toolCode.json +12 -0
- package/workflow_nodes/langchain_toolHttpRequest.json +232 -0
- package/workflow_nodes/langchain_toolSearXng.json +8 -0
- package/workflow_nodes/langchain_toolSerpApi.json +8 -0
- package/workflow_nodes/langchain_toolThink.json +8 -0
- package/workflow_nodes/langchain_toolVectorStore.json +11 -0
- package/workflow_nodes/langchain_toolWikipedia.json +8 -0
- package/workflow_nodes/langchain_toolWolframAlpha.json +8 -0
- package/workflow_nodes/langchain_toolWorkflow.json +8 -0
- package/workflow_nodes/langchain_vectorStoreInMemoryInsert.json +29 -0
- package/workflow_nodes/langchain_vectorStoreInMemoryLoad.json +8 -0
- package/workflow_nodes/langchain_vectorStorePineconeInsert.json +37 -0
- package/workflow_nodes/langchain_vectorStorePineconeLoad.json +8 -0
- package/workflow_nodes/langchain_vectorStoreSupabaseInsert.json +32 -0
- package/workflow_nodes/langchain_vectorStoreSupabaseLoad.json +8 -0
- package/workflow_nodes/langchain_vectorStoreZepInsert.json +46 -0
- package/workflow_nodes/langchain_vectorStoreZepLoad.json +8 -0
- package/workflow_nodes/ldap.json +182 -0
- package/workflow_nodes/lemlist.json +44 -0
- package/workflow_nodes/lemlistTrigger.json +45 -0
- package/workflow_nodes/limit.json +26 -0
- package/workflow_nodes/line.json +95 -0
- package/workflow_nodes/linear.json +151 -0
- package/workflow_nodes/linearTrigger.json +71 -0
- package/workflow_nodes/lingvaNex.json +66 -0
- package/workflow_nodes/linkedIn.json +142 -0
- package/workflow_nodes/localFileTrigger.json +120 -0
- package/workflow_nodes/lonescale.json +171 -0
- package/workflow_nodes/lonescaleTrigger.json +8 -0
- package/workflow_nodes/magento2.json +164 -0
- package/workflow_nodes/mailcheck.json +46 -0
- package/workflow_nodes/mailchimp.json +507 -0
- package/workflow_nodes/mailchimpTrigger.json +100 -0
- package/workflow_nodes/mailerLite.json +24 -0
- package/workflow_nodes/mailerLiteTrigger.json +74 -0
- package/workflow_nodes/mailgun.json +81 -0
- package/workflow_nodes/mailjet.json +201 -0
- package/workflow_nodes/mailjetTrigger.json +8 -0
- package/workflow_nodes/mandrill.json +372 -0
- package/workflow_nodes/manualTrigger.json +8 -0
- package/workflow_nodes/markdown.json +376 -0
- package/workflow_nodes/marketstack.json +126 -0
- package/workflow_nodes/matrix.json +264 -0
- package/workflow_nodes/mattermost.json +8 -0
- package/workflow_nodes/mautic.json +564 -0
- package/workflow_nodes/mauticTrigger.json +54 -0
- package/workflow_nodes/medium.json +209 -0
- package/workflow_nodes/merge.json +125 -0
- package/workflow_nodes/messageBird.json +182 -0
- package/workflow_nodes/metabase.json +175 -0
- package/workflow_nodes/microsoftDynamicsCrm.json +100 -0
- package/workflow_nodes/microsoftEntra.json +51 -0
- package/workflow_nodes/microsoftExcel.json +35 -0
- package/workflow_nodes/microsoftGraphSecurity.json +113 -0
- package/workflow_nodes/microsoftOneDrive.json +232 -0
- package/workflow_nodes/microsoftOneDriveTrigger.json +80 -0
- package/workflow_nodes/microsoftOutlook.json +40 -0
- package/workflow_nodes/microsoftOutlookTrigger.json +24 -0
- package/workflow_nodes/microsoftSql.json +81 -0
- package/workflow_nodes/microsoftTeams.json +36 -0
- package/workflow_nodes/microsoftToDo.json +181 -0
- package/workflow_nodes/mindee.json +86 -0
- package/workflow_nodes/misp.json +399 -0
- package/workflow_nodes/mocean.json +103 -0
- package/workflow_nodes/mondayCom.json +290 -0
- package/workflow_nodes/mongoDb.json +16 -0
- package/workflow_nodes/monicaCrm.json +543 -0
- package/workflow_nodes/moveBinaryData.json +121 -0
- package/workflow_nodes/mqtt.json +67 -0
- package/workflow_nodes/mqttTrigger.json +47 -0
- package/workflow_nodes/msg91.json +65 -0
- package/workflow_nodes/mySql.json +111 -0
- package/workflow_nodes/n8n.json +75 -0
- package/workflow_nodes/n8nTrigger.json +27 -0
- package/workflow_nodes/nasa.json +310 -0
- package/workflow_nodes/netlify.json +87 -0
- package/workflow_nodes/netlifyTrigger.json +68 -0
- package/workflow_nodes/netscalerAdc.json +243 -0
- package/workflow_nodes/nextCloud.json +312 -0
- package/workflow_nodes/noOp.json +8 -0
- package/workflow_nodes/nocoDb.json +276 -0
- package/workflow_nodes/notion.json +8 -0
- package/workflow_nodes/notionTrigger.json +75 -0
- package/workflow_nodes/npm.json +64 -0
- package/workflow_nodes/odoo.json +344 -0
- package/workflow_nodes/okta.json +97 -0
- package/workflow_nodes/oneSimpleApi.json +281 -0
- package/workflow_nodes/onfleet.json +316 -0
- package/workflow_nodes/onfleetTrigger.json +8 -0
- package/workflow_nodes/openAi.json +154 -0
- package/workflow_nodes/openThesaurus.json +81 -0
- package/workflow_nodes/openWeatherMap.json +129 -0
- package/workflow_nodes/orbit.json +375 -0
- package/workflow_nodes/oura.json +74 -0
- package/workflow_nodes/paddle.json +403 -0
- package/workflow_nodes/pagerDuty.json +351 -0
- package/workflow_nodes/payPal.json +196 -0
- package/workflow_nodes/payPalTrigger.json +40 -0
- package/workflow_nodes/peekalink.json +41 -0
- package/workflow_nodes/phantombuster.json +172 -0
- package/workflow_nodes/philipsHue.json +177 -0
- package/workflow_nodes/pipedrive.json +860 -0
- package/workflow_nodes/pipedriveTrigger.json +11 -0
- package/workflow_nodes/plivo.json +91 -0
- package/workflow_nodes/postHog.json +122 -0
- package/workflow_nodes/postbin.json +60 -0
- package/workflow_nodes/postgres.json +109 -0
- package/workflow_nodes/postgresTrigger.json +8 -0
- package/workflow_nodes/postmarkTrigger.json +72 -0
- package/workflow_nodes/profitWell.json +305 -0
- package/workflow_nodes/pushbullet.json +186 -0
- package/workflow_nodes/pushcut.json +75 -0
- package/workflow_nodes/pushcutTrigger.json +8 -0
- package/workflow_nodes/pushover.json +159 -0
- package/workflow_nodes/questDb.json +94 -0
- package/workflow_nodes/quickChart.json +188 -0
- package/workflow_nodes/quickbase.json +205 -0
- package/workflow_nodes/quickbooks.json +550 -0
- package/workflow_nodes/rabbitmq.json +165 -0
- package/workflow_nodes/rabbitmqTrigger.json +8 -0
- package/workflow_nodes/raindrop.json +216 -0
- package/workflow_nodes/readBinaryFile.json +26 -0
- package/workflow_nodes/readBinaryFiles.json +26 -0
- package/workflow_nodes/readPDF.json +31 -0
- package/workflow_nodes/readWriteFile.json +27 -0
- package/workflow_nodes/reddit.json +309 -0
- package/workflow_nodes/redis.json +183 -0
- package/workflow_nodes/redisTrigger.json +8 -0
- package/workflow_nodes/removeDuplicates.json +8 -0
- package/workflow_nodes/renameKeys.json +67 -0
- package/workflow_nodes/respondToWebhook.json +126 -0
- package/workflow_nodes/rocketchat.json +216 -0
- package/workflow_nodes/rssFeedRead.json +28 -0
- package/workflow_nodes/rssFeedReadTrigger.json +17 -0
- package/workflow_nodes/rundeck.json +79 -0
- package/workflow_nodes/s3.json +425 -0
- package/workflow_nodes/salesforce.json +1137 -0
- package/workflow_nodes/salesforceTrigger.json +122 -0
- package/workflow_nodes/salesmate.json +467 -0
- package/workflow_nodes/scheduleTrigger.json +270 -0
- package/workflow_nodes/seaTable.json +8 -0
- package/workflow_nodes/seaTableTrigger.json +87 -0
- package/workflow_nodes/securityScorecard.json +459 -0
- package/workflow_nodes/segment.json +219 -0
- package/workflow_nodes/sendGrid.json +359 -0
- package/workflow_nodes/sendy.json +225 -0
- package/workflow_nodes/sentryIo.json +426 -0
- package/workflow_nodes/serviceNow.json +544 -0
- package/workflow_nodes/set.json +124 -0
- package/workflow_nodes/shopify.json +707 -0
- package/workflow_nodes/shopifyTrigger.json +8 -0
- package/workflow_nodes/signl4.json +133 -0
- package/workflow_nodes/simulate.json +30 -0
- package/workflow_nodes/simulateTrigger.json +8 -0
- package/workflow_nodes/slack.json +62 -0
- package/workflow_nodes/slackTrigger.json +135 -0
- package/workflow_nodes/sms77.json +121 -0
- package/workflow_nodes/snowflake.json +65 -0
- package/workflow_nodes/sort.json +57 -0
- package/workflow_nodes/splitInBatches.json +30 -0
- package/workflow_nodes/splitOut.json +62 -0
- package/workflow_nodes/splunk.json +40 -0
- package/workflow_nodes/spontit.json +123 -0
- package/workflow_nodes/spotify.json +285 -0
- package/workflow_nodes/spreadsheetFile.json +8 -0
- package/workflow_nodes/sseTrigger.json +8 -0
- package/workflow_nodes/ssh.json +105 -0
- package/workflow_nodes/stackby.json +85 -0
- package/workflow_nodes/start.json +15 -0
- package/workflow_nodes/stickyNote.json +36 -0
- package/workflow_nodes/stopAndError.json +8 -0
- package/workflow_nodes/storyblok.json +138 -0
- package/workflow_nodes/strapi.json +138 -0
- package/workflow_nodes/strava.json +427 -0
- package/workflow_nodes/stravaTrigger.json +79 -0
- package/workflow_nodes/stripe.json +357 -0
- package/workflow_nodes/stripeTrigger.json +775 -0
- package/workflow_nodes/summarize.json +124 -0
- package/workflow_nodes/supabase.json +136 -0
- package/workflow_nodes/surveyMonkeyTrigger.json +160 -0
- package/workflow_nodes/switch.json +91 -0
- package/workflow_nodes/syncroMsp.json +8 -0
- package/workflow_nodes/taiga.json +340 -0
- package/workflow_nodes/taigaTrigger.json +81 -0
- package/workflow_nodes/tapfiliate.json +241 -0
- package/workflow_nodes/telegram.json +612 -0
- package/workflow_nodes/telegramTrigger.json +142 -0
- package/workflow_nodes/theHive.json +497 -0
- package/workflow_nodes/theHiveProject.json +8 -0
- package/workflow_nodes/theHiveProjectTrigger.json +162 -0
- package/workflow_nodes/theHiveTrigger.json +101 -0
- package/workflow_nodes/timescaleDb.json +95 -0
- package/workflow_nodes/todoist.json +285 -0
- package/workflow_nodes/togglTrigger.json +24 -0
- package/workflow_nodes/totp.json +86 -0
- package/workflow_nodes/travisCi.json +142 -0
- package/workflow_nodes/trello.json +609 -0
- package/workflow_nodes/trelloTrigger.json +8 -0
- package/workflow_nodes/twake.json +76 -0
- package/workflow_nodes/twilio.json +95 -0
- package/workflow_nodes/twilioTrigger.json +46 -0
- package/workflow_nodes/twist.json +376 -0
- package/workflow_nodes/twitter.json +40 -0
- package/workflow_nodes/typeformTrigger.json +62 -0
- package/workflow_nodes/unleashedSoftware.json +154 -0
- package/workflow_nodes/uplead.json +72 -0
- package/workflow_nodes/uproc.json +26 -0
- package/workflow_nodes/uptimeRobot.json +453 -0
- package/workflow_nodes/urlScanIo.json +113 -0
- package/workflow_nodes/venafiTlsProtectCloud.json +310 -0
- package/workflow_nodes/venafiTlsProtectCloudTrigger.json +38 -0
- package/workflow_nodes/venafiTlsProtectDatacenter.json +491 -0
- package/workflow_nodes/vero.json +158 -0
- package/workflow_nodes/vonage.json +125 -0
- package/workflow_nodes/wait.json +71 -0
- package/workflow_nodes/webflow.json +38 -0
- package/workflow_nodes/webflowTrigger.json +8 -0
- package/workflow_nodes/webhook.json +55 -0
- package/workflow_nodes/wekan.json +460 -0
- package/workflow_nodes/whatsApp.json +476 -0
- package/workflow_nodes/whatsAppTrigger.json +103 -0
- package/workflow_nodes/wise.json +330 -0
- package/workflow_nodes/wiseTrigger.json +8 -0
- package/workflow_nodes/wooCommerce.json +812 -0
- package/workflow_nodes/wooCommerceTrigger.json +8 -0
- package/workflow_nodes/wordpress.json +500 -0
- package/workflow_nodes/workableTrigger.json +51 -0
- package/workflow_nodes/writeBinaryFile.json +34 -0
- package/workflow_nodes/wufooTrigger.json +37 -0
- package/workflow_nodes/xero.json +530 -0
- package/workflow_nodes/xml.json +129 -0
- package/workflow_nodes/youTube.json +578 -0
- package/workflow_nodes/yourls.json +71 -0
- package/workflow_nodes/zammad.json +406 -0
- package/workflow_nodes/zendesk.json +526 -0
- package/workflow_nodes/zendeskTrigger.json +187 -0
- package/workflow_nodes/zohoCrm.json +721 -0
- package/workflow_nodes/zoom.json +507 -0
- package/workflow_nodes/zulip.json +371 -0
|
@@ -0,0 +1,660 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* This file defines all MCP tools with proper JSON Schema for inputs and outputs.
|
|
5
|
+
* These definitions are used to generate the MCP tool definitions endpoint.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Import tool function implementations - comment out ones that don't exist yet
|
|
9
|
+
const { searchNodes } = require('./nodeDiscovery');
|
|
10
|
+
const { createWorkflowExecute } = require('./workflowCreation');
|
|
11
|
+
const {
|
|
12
|
+
saveWorkflowExecute,
|
|
13
|
+
loadWorkflowExecute,
|
|
14
|
+
listWorkflowsExecute,
|
|
15
|
+
deleteWorkflowExecute
|
|
16
|
+
} = require('./workflowStorage');
|
|
17
|
+
|
|
18
|
+
// Mock implementations for tools not yet implemented
|
|
19
|
+
// In a real implementation, these would be imported from actual modules
|
|
20
|
+
const mockExecute = async (params) => {
|
|
21
|
+
return {
|
|
22
|
+
success: true,
|
|
23
|
+
message: 'Operation would be executed here',
|
|
24
|
+
params
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Mock implementations for n8n integration
|
|
29
|
+
const deployWorkflowExecute = mockExecute;
|
|
30
|
+
const activateWorkflowExecute = mockExecute;
|
|
31
|
+
const getWorkflowExecute = mockExecute;
|
|
32
|
+
const checkExecutionStatusExecute = mockExecute;
|
|
33
|
+
const n8nListWorkflowsExecute = mockExecute;
|
|
34
|
+
|
|
35
|
+
// Mock implementations for workflow generation
|
|
36
|
+
const generateWorkflow = mockExecute;
|
|
37
|
+
|
|
38
|
+
// Mock implementations for node management
|
|
39
|
+
const addNode = mockExecute;
|
|
40
|
+
const replaceNode = mockExecute;
|
|
41
|
+
|
|
42
|
+
// Mock implementations for connection management
|
|
43
|
+
const createConnection = mockExecute;
|
|
44
|
+
const removeConnection = mockExecute;
|
|
45
|
+
const removeAllConnections = mockExecute;
|
|
46
|
+
|
|
47
|
+
// Mock implementations for workflow testing
|
|
48
|
+
const testWorkflowExecute = mockExecute;
|
|
49
|
+
const getTestStatusExecute = mockExecute;
|
|
50
|
+
|
|
51
|
+
// Mock implementations for credential management
|
|
52
|
+
const storeCredentialExecute = mockExecute;
|
|
53
|
+
const getCredentialExecute = mockExecute;
|
|
54
|
+
const updateCredentialExecute = mockExecute;
|
|
55
|
+
const deleteCredentialExecute = mockExecute;
|
|
56
|
+
const listCredentialsExecute = mockExecute;
|
|
57
|
+
const rotateEncryptionKeyExecute = mockExecute;
|
|
58
|
+
|
|
59
|
+
// Define individual tool definitions for import/reference
|
|
60
|
+
const individualToolDefinitions = {
|
|
61
|
+
// Workflow Tools
|
|
62
|
+
workflow_create: {
|
|
63
|
+
name: 'workflow_create',
|
|
64
|
+
description: 'Create a new workflow',
|
|
65
|
+
execute: createWorkflowExecute,
|
|
66
|
+
input_schema: {
|
|
67
|
+
type: 'object',
|
|
68
|
+
properties: {
|
|
69
|
+
name: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
description: 'Name of the workflow'
|
|
72
|
+
},
|
|
73
|
+
workflow_filename: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
description: 'Custom filename for the workflow (optional)'
|
|
76
|
+
},
|
|
77
|
+
description: {
|
|
78
|
+
type: 'string',
|
|
79
|
+
description: 'Description of the workflow'
|
|
80
|
+
},
|
|
81
|
+
active: {
|
|
82
|
+
type: 'boolean',
|
|
83
|
+
description: 'Whether the workflow should be active'
|
|
84
|
+
},
|
|
85
|
+
settings: {
|
|
86
|
+
type: 'object',
|
|
87
|
+
description: 'Workflow settings'
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
required: ['name']
|
|
91
|
+
},
|
|
92
|
+
output_schema: {
|
|
93
|
+
type: 'object',
|
|
94
|
+
properties: {
|
|
95
|
+
workflowId: {
|
|
96
|
+
type: 'string',
|
|
97
|
+
description: 'ID of the created workflow'
|
|
98
|
+
},
|
|
99
|
+
workflowData: {
|
|
100
|
+
type: 'object',
|
|
101
|
+
description: 'Full workflow data'
|
|
102
|
+
},
|
|
103
|
+
filePath: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Path where the workflow file was saved'
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
// ... other individual tool definitions
|
|
112
|
+
|
|
113
|
+
// We keep these available for internal reference
|
|
114
|
+
// but don't export them directly in our consolidated approach
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
// Consolidated tool definitions that will be exported
|
|
118
|
+
const toolDefinitions = {
|
|
119
|
+
// =============================================================
|
|
120
|
+
// 1. Consolidated Workflow Management Tool
|
|
121
|
+
// =============================================================
|
|
122
|
+
workflow_manage: {
|
|
123
|
+
name: 'workflow_manage',
|
|
124
|
+
description: 'Manage workflows (create, save, load, list, delete, generate)',
|
|
125
|
+
execute: async (params) => {
|
|
126
|
+
const { operation, ...rest } = params;
|
|
127
|
+
|
|
128
|
+
// Route to appropriate handler based on operation
|
|
129
|
+
switch (operation) {
|
|
130
|
+
case 'create':
|
|
131
|
+
return createWorkflowExecute(rest);
|
|
132
|
+
case 'save':
|
|
133
|
+
return saveWorkflowExecute(rest);
|
|
134
|
+
case 'load':
|
|
135
|
+
return loadWorkflowExecute(rest);
|
|
136
|
+
case 'list':
|
|
137
|
+
return listWorkflowsExecute(rest);
|
|
138
|
+
case 'delete':
|
|
139
|
+
return deleteWorkflowExecute(rest);
|
|
140
|
+
case 'generate':
|
|
141
|
+
return generateWorkflow(rest);
|
|
142
|
+
default:
|
|
143
|
+
throw new Error(`Unknown workflow operation: ${operation}`);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
input_schema: {
|
|
147
|
+
type: 'object',
|
|
148
|
+
properties: {
|
|
149
|
+
operation: {
|
|
150
|
+
type: 'string',
|
|
151
|
+
description: 'Workflow operation to perform',
|
|
152
|
+
enum: ['create', 'save', 'load', 'list', 'delete', 'generate']
|
|
153
|
+
},
|
|
154
|
+
// Parameters for create
|
|
155
|
+
name: {
|
|
156
|
+
type: 'string',
|
|
157
|
+
description: 'Name of the workflow (for create operation)'
|
|
158
|
+
},
|
|
159
|
+
workflow_filename: {
|
|
160
|
+
type: 'string',
|
|
161
|
+
description: 'Custom filename for the workflow (for create operation)'
|
|
162
|
+
},
|
|
163
|
+
description: {
|
|
164
|
+
type: 'string',
|
|
165
|
+
description: 'Description of the workflow (for create operation)'
|
|
166
|
+
},
|
|
167
|
+
active: {
|
|
168
|
+
type: 'boolean',
|
|
169
|
+
description: 'Whether the workflow should be active'
|
|
170
|
+
},
|
|
171
|
+
settings: {
|
|
172
|
+
type: 'object',
|
|
173
|
+
description: 'Workflow settings'
|
|
174
|
+
},
|
|
175
|
+
// Parameters for save/load/delete
|
|
176
|
+
workflowId: {
|
|
177
|
+
type: 'string',
|
|
178
|
+
description: 'ID of the workflow (for save, load, delete operations)'
|
|
179
|
+
},
|
|
180
|
+
workflowData: {
|
|
181
|
+
type: 'object',
|
|
182
|
+
description: 'Workflow data to save (for save operation)'
|
|
183
|
+
},
|
|
184
|
+
// Parameters for generate
|
|
185
|
+
prompt: {
|
|
186
|
+
type: 'string',
|
|
187
|
+
description: 'Natural language description of the workflow to generate (for generate operation)'
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
required: ['operation'],
|
|
191
|
+
allOf: [
|
|
192
|
+
{
|
|
193
|
+
if: { properties: { operation: { enum: ['create'] } } },
|
|
194
|
+
then: { required: ['name'] }
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
if: { properties: { operation: { enum: ['save'] } } },
|
|
198
|
+
then: { required: ['workflowId', 'workflowData'] }
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
if: { properties: { operation: { enum: ['load', 'delete'] } } },
|
|
202
|
+
then: { required: ['workflowId'] }
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
if: { properties: { operation: { enum: ['generate'] } } },
|
|
206
|
+
then: { required: ['prompt'] }
|
|
207
|
+
}
|
|
208
|
+
]
|
|
209
|
+
},
|
|
210
|
+
output_schema: {
|
|
211
|
+
type: 'object',
|
|
212
|
+
properties: {
|
|
213
|
+
success: {
|
|
214
|
+
type: 'boolean',
|
|
215
|
+
description: 'Whether the operation was successful'
|
|
216
|
+
},
|
|
217
|
+
data: {
|
|
218
|
+
type: 'object',
|
|
219
|
+
description: 'Operation result data'
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
// =============================================================
|
|
226
|
+
// 2. Consolidated n8n Integration Tool
|
|
227
|
+
// =============================================================
|
|
228
|
+
n8n_manage: {
|
|
229
|
+
name: 'n8n_manage',
|
|
230
|
+
description: 'Manage workflows in n8n (deploy, activate, get, check execution, list)',
|
|
231
|
+
execute: async (params) => {
|
|
232
|
+
const { operation, ...rest } = params;
|
|
233
|
+
|
|
234
|
+
switch (operation) {
|
|
235
|
+
case 'deploy':
|
|
236
|
+
return deployWorkflowExecute(rest);
|
|
237
|
+
case 'activate':
|
|
238
|
+
return activateWorkflowExecute(rest);
|
|
239
|
+
case 'get':
|
|
240
|
+
return getWorkflowExecute(rest);
|
|
241
|
+
case 'check_execution':
|
|
242
|
+
return checkExecutionStatusExecute(rest);
|
|
243
|
+
case 'list':
|
|
244
|
+
return n8nListWorkflowsExecute(rest);
|
|
245
|
+
default:
|
|
246
|
+
throw new Error(`Unknown n8n operation: ${operation}`);
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
input_schema: {
|
|
250
|
+
type: 'object',
|
|
251
|
+
properties: {
|
|
252
|
+
operation: {
|
|
253
|
+
type: 'string',
|
|
254
|
+
description: 'n8n operation to perform',
|
|
255
|
+
enum: ['deploy', 'activate', 'get', 'check_execution', 'list']
|
|
256
|
+
},
|
|
257
|
+
workflowId: {
|
|
258
|
+
type: 'string',
|
|
259
|
+
description: 'ID of the workflow (for deploy, activate, get operations)'
|
|
260
|
+
},
|
|
261
|
+
workflowData: {
|
|
262
|
+
type: 'object',
|
|
263
|
+
description: 'Workflow data to deploy (for deploy operation)'
|
|
264
|
+
},
|
|
265
|
+
active: {
|
|
266
|
+
type: 'boolean',
|
|
267
|
+
description: 'Whether to activate the workflow (for activate operation)'
|
|
268
|
+
},
|
|
269
|
+
executionId: {
|
|
270
|
+
type: 'string',
|
|
271
|
+
description: 'Execution ID to check (for check_execution operation)'
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
required: ['operation'],
|
|
275
|
+
allOf: [
|
|
276
|
+
{
|
|
277
|
+
if: { properties: { operation: { enum: ['deploy'] } } },
|
|
278
|
+
then: { required: ['workflowId', 'workflowData'] }
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
if: { properties: { operation: { enum: ['activate'] } } },
|
|
282
|
+
then: { required: ['workflowId', 'active'] }
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
if: { properties: { operation: { enum: ['get'] } } },
|
|
286
|
+
then: { required: ['workflowId'] }
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
if: { properties: { operation: { enum: ['check_execution'] } } },
|
|
290
|
+
then: { required: ['executionId'] }
|
|
291
|
+
}
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
output_schema: {
|
|
295
|
+
type: 'object',
|
|
296
|
+
properties: {
|
|
297
|
+
success: {
|
|
298
|
+
type: 'boolean',
|
|
299
|
+
description: 'Whether the operation was successful'
|
|
300
|
+
},
|
|
301
|
+
data: {
|
|
302
|
+
type: 'object',
|
|
303
|
+
description: 'Operation result data'
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
|
|
309
|
+
// =============================================================
|
|
310
|
+
// 3. Consolidated Node Management Tool
|
|
311
|
+
// =============================================================
|
|
312
|
+
node_manage: {
|
|
313
|
+
name: 'node_manage',
|
|
314
|
+
description: 'Manage nodes in workflows (search, add, replace)',
|
|
315
|
+
execute: async (params) => {
|
|
316
|
+
const { operation, ...rest } = params;
|
|
317
|
+
|
|
318
|
+
switch (operation) {
|
|
319
|
+
case 'search':
|
|
320
|
+
return searchNodes(rest);
|
|
321
|
+
case 'add':
|
|
322
|
+
return addNode(rest);
|
|
323
|
+
case 'replace':
|
|
324
|
+
return replaceNode(rest);
|
|
325
|
+
default:
|
|
326
|
+
throw new Error(`Unknown node operation: ${operation}`);
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
input_schema: {
|
|
330
|
+
type: 'object',
|
|
331
|
+
properties: {
|
|
332
|
+
operation: {
|
|
333
|
+
type: 'string',
|
|
334
|
+
description: 'Node operation to perform',
|
|
335
|
+
enum: ['search', 'add', 'replace']
|
|
336
|
+
},
|
|
337
|
+
// Search parameters
|
|
338
|
+
query: {
|
|
339
|
+
type: 'string',
|
|
340
|
+
description: 'Search query for nodes (for search operation)'
|
|
341
|
+
},
|
|
342
|
+
// Add/replace parameters
|
|
343
|
+
workflowId: {
|
|
344
|
+
type: 'string',
|
|
345
|
+
description: 'ID of the workflow to modify (for add, replace operations)'
|
|
346
|
+
},
|
|
347
|
+
nodeType: {
|
|
348
|
+
type: 'string',
|
|
349
|
+
description: 'Type of node to add (for add, replace operations)'
|
|
350
|
+
},
|
|
351
|
+
nodeName: {
|
|
352
|
+
type: 'string',
|
|
353
|
+
description: 'Name for the node (for add, replace operations)'
|
|
354
|
+
},
|
|
355
|
+
position: {
|
|
356
|
+
type: 'object',
|
|
357
|
+
description: 'Position of the node (for add operation)',
|
|
358
|
+
properties: {
|
|
359
|
+
x: { type: 'number' },
|
|
360
|
+
y: { type: 'number' }
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
parameters: {
|
|
364
|
+
type: 'object',
|
|
365
|
+
description: 'Parameters for the node (for add, replace operations)'
|
|
366
|
+
},
|
|
367
|
+
nodeId: {
|
|
368
|
+
type: 'string',
|
|
369
|
+
description: 'ID of the node to replace (for replace operation)'
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
required: ['operation'],
|
|
373
|
+
allOf: [
|
|
374
|
+
{
|
|
375
|
+
if: { properties: { operation: { enum: ['search'] } } },
|
|
376
|
+
then: { required: ['query'] }
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
if: { properties: { operation: { enum: ['add'] } } },
|
|
380
|
+
then: { required: ['workflowId', 'nodeType', 'nodeName'] }
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
if: { properties: { operation: { enum: ['replace'] } } },
|
|
384
|
+
then: { required: ['workflowId', 'nodeId', 'nodeType'] }
|
|
385
|
+
}
|
|
386
|
+
]
|
|
387
|
+
},
|
|
388
|
+
output_schema: {
|
|
389
|
+
type: 'object',
|
|
390
|
+
properties: {
|
|
391
|
+
success: {
|
|
392
|
+
type: 'boolean',
|
|
393
|
+
description: 'Whether the operation was successful'
|
|
394
|
+
},
|
|
395
|
+
data: {
|
|
396
|
+
type: 'object',
|
|
397
|
+
description: 'Operation result data'
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
|
|
403
|
+
// =============================================================
|
|
404
|
+
// 4. Consolidated Connection Management Tool
|
|
405
|
+
// =============================================================
|
|
406
|
+
connection_manage: {
|
|
407
|
+
name: 'connection_manage',
|
|
408
|
+
description: 'Manage connections between nodes (create, remove, remove all)',
|
|
409
|
+
execute: async (params) => {
|
|
410
|
+
const { operation, ...rest } = params;
|
|
411
|
+
|
|
412
|
+
switch (operation) {
|
|
413
|
+
case 'create':
|
|
414
|
+
return createConnection(rest);
|
|
415
|
+
case 'remove':
|
|
416
|
+
return removeConnection(rest);
|
|
417
|
+
case 'remove_all':
|
|
418
|
+
return removeAllConnections(rest);
|
|
419
|
+
default:
|
|
420
|
+
throw new Error(`Unknown connection operation: ${operation}`);
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
input_schema: {
|
|
424
|
+
type: 'object',
|
|
425
|
+
properties: {
|
|
426
|
+
operation: {
|
|
427
|
+
type: 'string',
|
|
428
|
+
description: 'Connection operation to perform',
|
|
429
|
+
enum: ['create', 'remove', 'remove_all']
|
|
430
|
+
},
|
|
431
|
+
workflowId: {
|
|
432
|
+
type: 'string',
|
|
433
|
+
description: 'ID of the workflow to modify'
|
|
434
|
+
},
|
|
435
|
+
sourceNodeId: {
|
|
436
|
+
type: 'string',
|
|
437
|
+
description: 'ID of the source node (for create, remove operations)'
|
|
438
|
+
},
|
|
439
|
+
targetNodeId: {
|
|
440
|
+
type: 'string',
|
|
441
|
+
description: 'ID of the target node (for create, remove operations)'
|
|
442
|
+
},
|
|
443
|
+
sourceOutputIndex: {
|
|
444
|
+
type: 'number',
|
|
445
|
+
description: 'Index of the output on the source node (for create operation)'
|
|
446
|
+
},
|
|
447
|
+
targetInputIndex: {
|
|
448
|
+
type: 'number',
|
|
449
|
+
description: 'Index of the input on the target node (for create operation)'
|
|
450
|
+
},
|
|
451
|
+
nodeId: {
|
|
452
|
+
type: 'string',
|
|
453
|
+
description: 'ID of the node to remove all connections for (for remove_all operation)'
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
required: ['operation', 'workflowId'],
|
|
457
|
+
allOf: [
|
|
458
|
+
{
|
|
459
|
+
if: { properties: { operation: { enum: ['create'] } } },
|
|
460
|
+
then: { required: ['sourceNodeId', 'targetNodeId'] }
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
if: { properties: { operation: { enum: ['remove'] } } },
|
|
464
|
+
then: { required: ['sourceNodeId', 'targetNodeId'] }
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
if: { properties: { operation: { enum: ['remove_all'] } } },
|
|
468
|
+
then: { required: ['nodeId'] }
|
|
469
|
+
}
|
|
470
|
+
]
|
|
471
|
+
},
|
|
472
|
+
output_schema: {
|
|
473
|
+
type: 'object',
|
|
474
|
+
properties: {
|
|
475
|
+
success: {
|
|
476
|
+
type: 'boolean',
|
|
477
|
+
description: 'Whether the operation was successful'
|
|
478
|
+
},
|
|
479
|
+
data: {
|
|
480
|
+
type: 'object',
|
|
481
|
+
description: 'Operation result data'
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
// =============================================================
|
|
488
|
+
// 5. Consolidated Workflow Testing Tool
|
|
489
|
+
// =============================================================
|
|
490
|
+
workflow_test: {
|
|
491
|
+
name: 'workflow_test',
|
|
492
|
+
description: 'Test workflows and check test status',
|
|
493
|
+
execute: async (params) => {
|
|
494
|
+
const { operation, ...rest } = params;
|
|
495
|
+
|
|
496
|
+
switch (operation) {
|
|
497
|
+
case 'execute':
|
|
498
|
+
return testWorkflowExecute(rest);
|
|
499
|
+
case 'status':
|
|
500
|
+
return getTestStatusExecute(rest);
|
|
501
|
+
default:
|
|
502
|
+
throw new Error(`Unknown test operation: ${operation}`);
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
input_schema: {
|
|
506
|
+
type: 'object',
|
|
507
|
+
properties: {
|
|
508
|
+
operation: {
|
|
509
|
+
type: 'string',
|
|
510
|
+
description: 'Test operation to perform',
|
|
511
|
+
enum: ['execute', 'status']
|
|
512
|
+
},
|
|
513
|
+
workflowId: {
|
|
514
|
+
type: 'string',
|
|
515
|
+
description: 'ID of the workflow to test (for execute operation)'
|
|
516
|
+
},
|
|
517
|
+
testInput: {
|
|
518
|
+
type: 'object',
|
|
519
|
+
description: 'Input data for the test (for execute operation)'
|
|
520
|
+
},
|
|
521
|
+
testId: {
|
|
522
|
+
type: 'string',
|
|
523
|
+
description: 'ID of the test to check status for (for status operation)'
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
required: ['operation'],
|
|
527
|
+
allOf: [
|
|
528
|
+
{
|
|
529
|
+
if: { properties: { operation: { enum: ['execute'] } } },
|
|
530
|
+
then: { required: ['workflowId'] }
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
if: { properties: { operation: { enum: ['status'] } } },
|
|
534
|
+
then: { required: ['testId'] }
|
|
535
|
+
}
|
|
536
|
+
]
|
|
537
|
+
},
|
|
538
|
+
output_schema: {
|
|
539
|
+
type: 'object',
|
|
540
|
+
properties: {
|
|
541
|
+
success: {
|
|
542
|
+
type: 'boolean',
|
|
543
|
+
description: 'Whether the operation was successful'
|
|
544
|
+
},
|
|
545
|
+
testId: {
|
|
546
|
+
type: 'string',
|
|
547
|
+
description: 'ID of the test (for execute operation)'
|
|
548
|
+
},
|
|
549
|
+
status: {
|
|
550
|
+
type: 'string',
|
|
551
|
+
description: 'Status of the test (for status operation)'
|
|
552
|
+
},
|
|
553
|
+
results: {
|
|
554
|
+
type: 'object',
|
|
555
|
+
description: 'Test results (for status operation when complete)'
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
|
|
561
|
+
// =============================================================
|
|
562
|
+
// 6. Consolidated Credential Management Tool
|
|
563
|
+
// =============================================================
|
|
564
|
+
credential_manage: {
|
|
565
|
+
name: 'credential_manage',
|
|
566
|
+
description: 'Manage credentials (store, get, update, delete, list, rotate key)',
|
|
567
|
+
execute: async (params) => {
|
|
568
|
+
const { operation, ...rest } = params;
|
|
569
|
+
|
|
570
|
+
switch (operation) {
|
|
571
|
+
case 'store':
|
|
572
|
+
return storeCredentialExecute(rest);
|
|
573
|
+
case 'get':
|
|
574
|
+
return getCredentialExecute(rest);
|
|
575
|
+
case 'update':
|
|
576
|
+
return updateCredentialExecute(rest);
|
|
577
|
+
case 'delete':
|
|
578
|
+
return deleteCredentialExecute(rest);
|
|
579
|
+
case 'list':
|
|
580
|
+
return listCredentialsExecute(rest);
|
|
581
|
+
case 'rotate_key':
|
|
582
|
+
return rotateEncryptionKeyExecute(rest);
|
|
583
|
+
default:
|
|
584
|
+
throw new Error(`Unknown credential operation: ${operation}`);
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
input_schema: {
|
|
588
|
+
type: 'object',
|
|
589
|
+
properties: {
|
|
590
|
+
operation: {
|
|
591
|
+
type: 'string',
|
|
592
|
+
description: 'Credential operation to perform',
|
|
593
|
+
enum: ['store', 'get', 'update', 'delete', 'list', 'rotate_key']
|
|
594
|
+
},
|
|
595
|
+
name: {
|
|
596
|
+
type: 'string',
|
|
597
|
+
description: 'Name of the credential (for store, get, update, delete operations)'
|
|
598
|
+
},
|
|
599
|
+
credentialType: {
|
|
600
|
+
type: 'string',
|
|
601
|
+
description: 'Type of credential (for store, update operations)'
|
|
602
|
+
},
|
|
603
|
+
data: {
|
|
604
|
+
type: 'object',
|
|
605
|
+
description: 'Credential data (for store, update operations)'
|
|
606
|
+
},
|
|
607
|
+
newKey: {
|
|
608
|
+
type: 'string',
|
|
609
|
+
description: 'New encryption key (for rotate_key operation)'
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
required: ['operation'],
|
|
613
|
+
allOf: [
|
|
614
|
+
{
|
|
615
|
+
if: { properties: { operation: { enum: ['store'] } } },
|
|
616
|
+
then: { required: ['name', 'credentialType', 'data'] }
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
if: { properties: { operation: { enum: ['get', 'delete'] } } },
|
|
620
|
+
then: { required: ['name'] }
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
if: { properties: { operation: { enum: ['update'] } } },
|
|
624
|
+
then: { required: ['name', 'data'] }
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
if: { properties: { operation: { enum: ['rotate_key'] } } },
|
|
628
|
+
then: { required: ['newKey'] }
|
|
629
|
+
}
|
|
630
|
+
]
|
|
631
|
+
},
|
|
632
|
+
output_schema: {
|
|
633
|
+
type: 'object',
|
|
634
|
+
properties: {
|
|
635
|
+
success: {
|
|
636
|
+
type: 'boolean',
|
|
637
|
+
description: 'Whether the operation was successful'
|
|
638
|
+
},
|
|
639
|
+
data: {
|
|
640
|
+
type: 'object',
|
|
641
|
+
description: 'Operation result data'
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* Get all tool definitions
|
|
650
|
+
*
|
|
651
|
+
* @returns {Object} All tool definitions
|
|
652
|
+
*/
|
|
653
|
+
const getAllToolDefinitions = () => {
|
|
654
|
+
return toolDefinitions;
|
|
655
|
+
};
|
|
656
|
+
|
|
657
|
+
module.exports = {
|
|
658
|
+
toolDefinitions,
|
|
659
|
+
getAllToolDefinitions
|
|
660
|
+
};
|