@thecodesaiyan/tcs-n8n-mcp 1.0.3 → 1.0.6
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 +21 -21
- package/README.md +174 -60
- package/build/index.js +2 -2
- package/build/tools/workflows.js +6 -6
- package/package.json +2 -2
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Nigel Tatschner
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nigel Tatschner
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,20 +1,72 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# @thecodesaiyan/tcs-n8n-mcp
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
**Manage your n8n workflows through AI assistants**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@thecodesaiyan/tcs-n8n-mcp)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://nodejs.org)
|
|
10
|
+
[](https://modelcontextprotocol.io)
|
|
11
|
+
[](https://github.com/ntatschner/tcs-n8n-mcp/actions/workflows/ci.yml)
|
|
12
|
+
|
|
13
|
+
An [MCP](https://modelcontextprotocol.io) server that gives AI assistants full control over your [n8n](https://n8n.io) workflow automation platform. List, create, update, execute, and manage workflows, executions, tags, variables, credentials, and users — all through natural language.
|
|
14
|
+
|
|
15
|
+
[Installation](#installation) · [Tools](#available-tools-22) · [Security](#security) · [Development](#development)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- **22 tools** covering the full n8n REST API
|
|
24
|
+
- **Works everywhere** — Claude Code, Claude Desktop, VS Code, Cursor, Windsurf, Cline
|
|
25
|
+
- **Secure by default** — ID validation, sanitised errors, masked secrets, request timeouts
|
|
26
|
+
- **Zero config** — just provide your n8n API key and go
|
|
27
|
+
- **Lightweight** — under 30KB, no runtime dependencies beyond the MCP SDK and Zod
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- [Node.js](https://nodejs.org) >= 18
|
|
34
|
+
- An [n8n](https://n8n.io) instance (self-hosted or cloud)
|
|
35
|
+
- An n8n API key ([how to create one](https://docs.n8n.io/api/authentication/))
|
|
4
36
|
|
|
5
|
-
|
|
37
|
+
---
|
|
6
38
|
|
|
7
39
|
## Installation
|
|
8
40
|
|
|
9
|
-
###
|
|
41
|
+
### Quick Start
|
|
10
42
|
|
|
11
|
-
|
|
43
|
+
```bash
|
|
44
|
+
npx @thecodesaiyan/tcs-n8n-mcp
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Set the required environment variables:
|
|
48
|
+
|
|
49
|
+
| Variable | Required | Default | Description |
|
|
50
|
+
|----------|:--------:|---------|-------------|
|
|
51
|
+
| `N8N_API_KEY` | Yes | — | Your n8n API key |
|
|
52
|
+
| `N8N_API_URL` | No | `http://localhost:5678` | Base URL of your n8n instance |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### Client Setup
|
|
57
|
+
|
|
58
|
+
<details>
|
|
59
|
+
<summary><strong>Claude Code</strong></summary>
|
|
60
|
+
|
|
61
|
+
#### Option A: CLI command
|
|
12
62
|
|
|
13
63
|
```bash
|
|
14
64
|
claude mcp add n8n -- npx -y @thecodesaiyan/tcs-n8n-mcp
|
|
15
65
|
```
|
|
16
66
|
|
|
17
|
-
|
|
67
|
+
#### Option B: Manual config
|
|
68
|
+
|
|
69
|
+
Add to `~/.claude.json`:
|
|
18
70
|
|
|
19
71
|
```json
|
|
20
72
|
{
|
|
@@ -31,12 +83,18 @@ Or add to `~/.claude.json`:
|
|
|
31
83
|
}
|
|
32
84
|
```
|
|
33
85
|
|
|
34
|
-
|
|
86
|
+
</details>
|
|
35
87
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
88
|
+
<details>
|
|
89
|
+
<summary><strong>Claude Desktop</strong></summary>
|
|
90
|
+
|
|
91
|
+
Add to your Claude Desktop config file:
|
|
92
|
+
|
|
93
|
+
| OS | Path |
|
|
94
|
+
|----|------|
|
|
95
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
96
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
97
|
+
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
40
98
|
|
|
41
99
|
```json
|
|
42
100
|
{
|
|
@@ -53,11 +111,14 @@ Add to your config file:
|
|
|
53
111
|
}
|
|
54
112
|
```
|
|
55
113
|
|
|
56
|
-
Restart Claude Desktop after saving.
|
|
114
|
+
> Restart Claude Desktop after saving.
|
|
115
|
+
|
|
116
|
+
</details>
|
|
57
117
|
|
|
58
|
-
|
|
118
|
+
<details>
|
|
119
|
+
<summary><strong>VS Code (GitHub Copilot)</strong></summary>
|
|
59
120
|
|
|
60
|
-
Add to `.vscode/mcp.json` in your project, or
|
|
121
|
+
Add to `.vscode/mcp.json` in your project, or use **Command Palette** > `MCP: Open User Configuration`:
|
|
61
122
|
|
|
62
123
|
```json
|
|
63
124
|
{
|
|
@@ -74,9 +135,12 @@ Add to `.vscode/mcp.json` in your project, or open user config via Command Palet
|
|
|
74
135
|
}
|
|
75
136
|
```
|
|
76
137
|
|
|
77
|
-
|
|
138
|
+
</details>
|
|
78
139
|
|
|
79
|
-
|
|
140
|
+
<details>
|
|
141
|
+
<summary><strong>Cursor</strong></summary>
|
|
142
|
+
|
|
143
|
+
Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project-level):
|
|
80
144
|
|
|
81
145
|
```json
|
|
82
146
|
{
|
|
@@ -93,11 +157,17 @@ Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):
|
|
|
93
157
|
}
|
|
94
158
|
```
|
|
95
159
|
|
|
96
|
-
|
|
160
|
+
</details>
|
|
161
|
+
|
|
162
|
+
<details>
|
|
163
|
+
<summary><strong>Windsurf</strong></summary>
|
|
164
|
+
|
|
165
|
+
Add to your Windsurf config file:
|
|
97
166
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
167
|
+
| OS | Path |
|
|
168
|
+
|----|------|
|
|
169
|
+
| Windows | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` |
|
|
170
|
+
| macOS / Linux | `~/.codeium/windsurf/mcp_config.json` |
|
|
101
171
|
|
|
102
172
|
```json
|
|
103
173
|
{
|
|
@@ -114,9 +184,12 @@ Add to your config file:
|
|
|
114
184
|
}
|
|
115
185
|
```
|
|
116
186
|
|
|
117
|
-
|
|
187
|
+
</details>
|
|
118
188
|
|
|
119
|
-
|
|
189
|
+
<details>
|
|
190
|
+
<summary><strong>Cline</strong></summary>
|
|
191
|
+
|
|
192
|
+
Open **MCP Servers** > **Configure** > **Advanced MCP Settings** and add:
|
|
120
193
|
|
|
121
194
|
```json
|
|
122
195
|
{
|
|
@@ -133,77 +206,80 @@ Open MCP Servers > Configure > Advanced MCP Settings, and add:
|
|
|
133
206
|
}
|
|
134
207
|
```
|
|
135
208
|
|
|
136
|
-
> **Windows
|
|
209
|
+
> **Windows**: If you encounter spawn errors, use `"command": "cmd"` with `"args": ["/c", "npx", "-y", "@thecodesaiyan/tcs-n8n-mcp"]`.
|
|
137
210
|
|
|
138
|
-
|
|
211
|
+
</details>
|
|
139
212
|
|
|
140
|
-
|
|
141
|
-
|----------|----------|---------|-------------|
|
|
142
|
-
| `N8N_API_KEY` | Yes | — | n8n API key ([how to create](https://docs.n8n.io/api/authentication/)) |
|
|
143
|
-
| `N8N_API_URL` | No | `http://localhost:5678` | Base URL of your n8n instance |
|
|
213
|
+
---
|
|
144
214
|
|
|
145
215
|
## Available Tools (22)
|
|
146
216
|
|
|
147
217
|
### Workflows (8)
|
|
148
218
|
|
|
149
219
|
| Tool | Description |
|
|
150
|
-
|
|
220
|
+
|:-----|:------------|
|
|
151
221
|
| `list_workflows` | List all workflows with pagination |
|
|
152
|
-
| `get_workflow` | Get full workflow details
|
|
153
|
-
| `create_workflow` | Create a new workflow |
|
|
154
|
-
| `update_workflow` | Update an existing workflow |
|
|
155
|
-
| `delete_workflow` |
|
|
156
|
-
| `activate_workflow` | Activate a workflow
|
|
157
|
-
| `deactivate_workflow` | Deactivate a workflow |
|
|
158
|
-
| `execute_workflow` | Execute a workflow immediately |
|
|
222
|
+
| `get_workflow` | Get full workflow details including nodes, connections, and settings |
|
|
223
|
+
| `create_workflow` | Create a new workflow with optional nodes and connections |
|
|
224
|
+
| `update_workflow` | Update an existing workflow's name, nodes, connections, or settings |
|
|
225
|
+
| `delete_workflow` | Permanently delete a workflow |
|
|
226
|
+
| `activate_workflow` | Activate a workflow so it runs on its configured triggers |
|
|
227
|
+
| `deactivate_workflow` | Deactivate a workflow to stop trigger-based execution |
|
|
228
|
+
| `execute_workflow` | Execute a workflow immediately and return the execution ID |
|
|
159
229
|
|
|
160
230
|
### Executions (3)
|
|
161
231
|
|
|
162
232
|
| Tool | Description |
|
|
163
|
-
|
|
164
|
-
| `list_executions` | List executions with filters |
|
|
165
|
-
| `get_execution` | Get execution details
|
|
233
|
+
|:-----|:------------|
|
|
234
|
+
| `list_executions` | List executions with optional filters for workflow ID and status |
|
|
235
|
+
| `get_execution` | Get full execution details including per-node results and errors |
|
|
166
236
|
| `delete_execution` | Delete an execution record |
|
|
167
237
|
|
|
168
238
|
### Tags (4)
|
|
169
239
|
|
|
170
240
|
| Tool | Description |
|
|
171
|
-
|
|
172
|
-
| `list_tags` | List all tags |
|
|
241
|
+
|:-----|:------------|
|
|
242
|
+
| `list_tags` | List all tags used for organising workflows |
|
|
173
243
|
| `create_tag` | Create a new tag |
|
|
174
|
-
| `update_tag` | Rename
|
|
244
|
+
| `update_tag` | Rename an existing tag |
|
|
175
245
|
| `delete_tag` | Delete a tag |
|
|
176
246
|
|
|
177
247
|
### Variables (4)
|
|
178
248
|
|
|
179
249
|
| Tool | Description |
|
|
180
|
-
|
|
181
|
-
| `list_variables` | List all variables (values masked) |
|
|
182
|
-
| `create_variable` | Create a new variable |
|
|
183
|
-
| `update_variable` | Update
|
|
184
|
-
| `delete_variable` | Delete
|
|
250
|
+
|:-----|:------------|
|
|
251
|
+
| `list_variables` | List all environment variables (values are masked for security) |
|
|
252
|
+
| `create_variable` | Create a new key-value environment variable |
|
|
253
|
+
| `update_variable` | Update an existing variable's key or value |
|
|
254
|
+
| `delete_variable` | Delete an environment variable |
|
|
185
255
|
|
|
186
256
|
### Credentials (1)
|
|
187
257
|
|
|
188
258
|
| Tool | Description |
|
|
189
|
-
|
|
190
|
-
| `list_credentials` | List credentials (metadata only) |
|
|
259
|
+
|:-----|:------------|
|
|
260
|
+
| `list_credentials` | List all credentials (metadata only — secrets are never exposed) |
|
|
191
261
|
|
|
192
262
|
### Users (2)
|
|
193
263
|
|
|
194
264
|
| Tool | Description |
|
|
195
|
-
|
|
196
|
-
| `list_users` | List all users |
|
|
197
|
-
| `get_user` | Get
|
|
265
|
+
|:-----|:------------|
|
|
266
|
+
| `list_users` | List all users with their roles and status |
|
|
267
|
+
| `get_user` | Get full details of a user by ID |
|
|
268
|
+
|
|
269
|
+
---
|
|
198
270
|
|
|
199
271
|
## Security
|
|
200
272
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
273
|
+
| Protection | Description |
|
|
274
|
+
|:-----------|:------------|
|
|
275
|
+
| **ID Validation** | All resource IDs are validated as numeric strings to prevent path traversal attacks |
|
|
276
|
+
| **Error Sanitisation** | API error responses only return HTTP status codes, never raw response bodies |
|
|
277
|
+
| **Secret Masking** | Variable values are hidden in list output to prevent accidental secret exposure |
|
|
278
|
+
| **Request Timeout** | All API calls have a 30-second timeout to prevent hanging connections |
|
|
279
|
+
| **No Key Logging** | API keys are never logged, echoed, or included in tool output |
|
|
280
|
+
| **Credential Safety** | The credentials tool only returns metadata — secrets are never exposed |
|
|
281
|
+
|
|
282
|
+
---
|
|
207
283
|
|
|
208
284
|
## Development
|
|
209
285
|
|
|
@@ -211,16 +287,54 @@ Open MCP Servers > Configure > Advanced MCP Settings, and add:
|
|
|
211
287
|
git clone https://github.com/ntatschner/tcs-n8n-mcp.git
|
|
212
288
|
cd tcs-n8n-mcp
|
|
213
289
|
npm install
|
|
214
|
-
npm run build
|
|
215
|
-
npm test
|
|
216
290
|
```
|
|
217
291
|
|
|
292
|
+
### Commands
|
|
293
|
+
|
|
294
|
+
| Command | Description |
|
|
295
|
+
|:--------|:------------|
|
|
296
|
+
| `npm run build` | Compile TypeScript to `build/` |
|
|
297
|
+
| `npm test` | Run test suite |
|
|
298
|
+
| `npm run test:coverage` | Run tests with coverage report |
|
|
299
|
+
| `npm start` | Start the MCP server |
|
|
300
|
+
|
|
218
301
|
### Running locally
|
|
219
302
|
|
|
220
303
|
```bash
|
|
221
304
|
N8N_API_KEY=your-key N8N_API_URL=http://localhost:5678 npm start
|
|
222
305
|
```
|
|
223
306
|
|
|
307
|
+
### Project Structure
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
src/
|
|
311
|
+
index.ts Entry point, fetch wrapper, server setup
|
|
312
|
+
types.ts Shared types, interfaces, response helpers
|
|
313
|
+
validation.ts Zod schemas for input validation
|
|
314
|
+
tools/
|
|
315
|
+
workflows.ts Workflow CRUD, activation, execution
|
|
316
|
+
executions.ts Execution listing and management
|
|
317
|
+
tags.ts Tag CRUD operations
|
|
318
|
+
variables.ts Environment variable management
|
|
319
|
+
credentials.ts Credential metadata listing
|
|
320
|
+
users.ts User listing and details
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Contributing
|
|
326
|
+
|
|
327
|
+
Contributions are welcome! Please open an issue or submit a pull request.
|
|
328
|
+
|
|
329
|
+
1. Fork the repository
|
|
330
|
+
2. Create your feature branch (`git checkout -b feat/my-feature`)
|
|
331
|
+
3. Run tests (`npm test`)
|
|
332
|
+
4. Commit your changes (`git commit -m 'feat: add my feature'`)
|
|
333
|
+
5. Push to the branch (`git push origin feat/my-feature`)
|
|
334
|
+
6. Open a Pull Request
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
224
338
|
## License
|
|
225
339
|
|
|
226
|
-
MIT
|
|
340
|
+
[MIT](LICENSE) — Made by [@ntatschner](https://github.com/ntatschner)
|
package/build/index.js
CHANGED
|
@@ -30,7 +30,7 @@ const n8nFetch = (path, options = {}) => {
|
|
|
30
30
|
};
|
|
31
31
|
const server = new McpServer({
|
|
32
32
|
name: "@thecodesaiyan/tcs-n8n-mcp",
|
|
33
|
-
version: "1.0.
|
|
33
|
+
version: "1.0.6",
|
|
34
34
|
});
|
|
35
35
|
// Register all tool modules
|
|
36
36
|
registerWorkflowTools(server, n8nFetch);
|
|
@@ -42,7 +42,7 @@ registerUserTools(server, n8nFetch);
|
|
|
42
42
|
async function main() {
|
|
43
43
|
const transport = new StdioServerTransport();
|
|
44
44
|
await server.connect(transport);
|
|
45
|
-
console.error("@thecodesaiyan/tcs-n8n-mcp v1.0.
|
|
45
|
+
console.error("@thecodesaiyan/tcs-n8n-mcp v1.0.6 running on stdio (22 tools)");
|
|
46
46
|
}
|
|
47
47
|
main().catch((error) => {
|
|
48
48
|
console.error("Fatal error:", error);
|
package/build/tools/workflows.js
CHANGED
|
@@ -7,9 +7,9 @@ const nodeSchema = z.object({
|
|
|
7
7
|
type: z.string(),
|
|
8
8
|
typeVersion: z.number(),
|
|
9
9
|
position: z.tuple([z.number(), z.number()]),
|
|
10
|
-
parameters: z.record(z.unknown()).optional().default({}),
|
|
10
|
+
parameters: z.record(z.string(), z.unknown()).optional().default({}),
|
|
11
11
|
onError: z.string().optional().describe("Error handling: 'continueRegularOutput' | 'continueErrorOutput' | 'stopWorkflow'"),
|
|
12
|
-
credentials: z.record(z.unknown()).optional().describe("Credential references for this node"),
|
|
12
|
+
credentials: z.record(z.string(), z.unknown()).optional().describe("Credential references for this node"),
|
|
13
13
|
webhookId: z.string().optional().describe("Webhook ID for trigger nodes"),
|
|
14
14
|
});
|
|
15
15
|
export function registerWorkflowTools(server, n8nFetch) {
|
|
@@ -50,8 +50,8 @@ export function registerWorkflowTools(server, n8nFetch) {
|
|
|
50
50
|
server.tool("create_workflow", "Create a new n8n workflow. Provide a name and optionally nodes/connections. Defaults to a Manual Trigger node if no nodes given.", {
|
|
51
51
|
name: z.string().describe("Workflow name"),
|
|
52
52
|
nodes: z.array(nodeSchema).optional().describe("Array of workflow nodes (defaults to Manual Trigger)"),
|
|
53
|
-
connections: z.record(z.unknown()).optional().default({}).describe("Node connections mapping"),
|
|
54
|
-
settings: z.record(z.unknown()).optional().default({}).describe("Workflow settings"),
|
|
53
|
+
connections: z.record(z.string(), z.unknown()).optional().default({}).describe("Node connections mapping"),
|
|
54
|
+
settings: z.record(z.string(), z.unknown()).optional().default({}).describe("Workflow settings"),
|
|
55
55
|
}, async ({ name, nodes, connections, settings }) => {
|
|
56
56
|
const defaultNodes = [
|
|
57
57
|
{
|
|
@@ -77,8 +77,8 @@ export function registerWorkflowTools(server, n8nFetch) {
|
|
|
77
77
|
workflowId: n8nId.describe("ID of the workflow to update"),
|
|
78
78
|
name: z.string().optional().describe("New workflow name"),
|
|
79
79
|
nodes: z.array(nodeSchema).optional().describe("Updated nodes array"),
|
|
80
|
-
connections: z.record(z.unknown()).optional().describe("Updated connections"),
|
|
81
|
-
settings: z.record(z.unknown()).optional().describe("Updated settings"),
|
|
80
|
+
connections: z.record(z.string(), z.unknown()).optional().describe("Updated connections"),
|
|
81
|
+
settings: z.record(z.string(), z.unknown()).optional().describe("Updated settings"),
|
|
82
82
|
}, async ({ workflowId, name, nodes, connections, settings }) => {
|
|
83
83
|
const getRes = await n8nFetch(`/workflows/${workflowId}`);
|
|
84
84
|
if (!getRes.ok)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thecodesaiyan/tcs-n8n-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "MCP server for n8n workflow automation. Manage workflows, executions, tags, variables, credentials and users via the Model Context Protocol.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"homepage": "https://github.com/ntatschner/tcs-n8n-mcp#readme",
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
49
|
-
"zod": "^3.
|
|
49
|
+
"zod": "^4.3.6"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/node": "^20.0.0",
|