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