@path58/p58-n8n 0.2.10 → 0.2.12-rc.1
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/AGENT_INSTALL.md +40 -1
- package/CHANGELOG.md +10 -0
- package/README.md +78 -30
- package/dist/mcp/server.bundle.cjs +24129 -16132
- package/package.json +4 -2
package/AGENT_INSTALL.md
CHANGED
|
@@ -99,6 +99,38 @@ The API key cannot be auto-discovered. The user must provide it or create one.
|
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
102
|
+
## Step 3b: Get n8n Login Credentials (Optional — for credential testing)
|
|
103
|
+
|
|
104
|
+
Some tools (`test_credential`, credential health checks) need REST session auth to access credential secrets. This requires the user's n8n login email and password.
|
|
105
|
+
|
|
106
|
+
**When to ask:** If the user wants credential management features (testing, health audits), ask:
|
|
107
|
+
> "To enable credential testing, I'll also need your n8n login email and password. These are the same credentials you use to log into the n8n web UI. Want to add them now?"
|
|
108
|
+
|
|
109
|
+
**If the user declines:** Tier 2-7 tools still work — only `test_credential` will prompt for credentials per-call.
|
|
110
|
+
|
|
111
|
+
**Security notes:**
|
|
112
|
+
- These credentials are stored in the MCP config file alongside the API key (same security model)
|
|
113
|
+
- The MCP server never logs credentials — they are only used to obtain a session cookie from n8n
|
|
114
|
+
- The session cookie is ephemeral and not persisted to disk
|
|
115
|
+
- If the user is uncomfortable storing their password in the config, they can omit it and provide credentials per-call when using `test_credential`
|
|
116
|
+
|
|
117
|
+
**Advanced: Use a credential manager instead of plaintext:**
|
|
118
|
+
|
|
119
|
+
If the user has 1Password CLI installed, they can reference secrets dynamically:
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"p58-n8n": {
|
|
124
|
+
"command": "sh",
|
|
125
|
+
"args": ["-c", "N8N_API_KEY=$(op read 'op://Vault/n8n/api-key') N8N_USER_EMAIL=$(op read 'op://Vault/n8n/email') N8N_USER_PASSWORD=$(op read 'op://Vault/n8n/password') N8N_API_URL=http://localhost:5678/api/v1 npx -y @path58/p58-n8n"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
This way no secrets are stored in the config file — they're fetched from 1Password at startup with biometric approval.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
102
134
|
## Step 4: Write the Configuration
|
|
103
135
|
|
|
104
136
|
### For Claude Desktop / Cursor / Gemini CLI / VS Code (JSON config)
|
|
@@ -114,7 +146,9 @@ Read the existing config file, then add p58-n8n inside the `mcpServers` object.
|
|
|
114
146
|
"args": ["-y", "@path58/p58-n8n"],
|
|
115
147
|
"env": {
|
|
116
148
|
"N8N_API_URL": "http://localhost:5678/api/v1",
|
|
117
|
-
"N8N_API_KEY": "<paste-api-key-here>"
|
|
149
|
+
"N8N_API_KEY": "<paste-api-key-here>",
|
|
150
|
+
"N8N_USER_EMAIL": "<n8n-login-email>",
|
|
151
|
+
"N8N_USER_PASSWORD": "<n8n-login-password>"
|
|
118
152
|
}
|
|
119
153
|
}
|
|
120
154
|
}
|
|
@@ -140,6 +174,8 @@ Read the existing config file, then add p58-n8n inside the `mcpServers` object.
|
|
|
140
174
|
claude mcp add p58-n8n \
|
|
141
175
|
-e N8N_API_URL=http://localhost:5678/api/v1 \
|
|
142
176
|
-e N8N_API_KEY=<paste-api-key-here> \
|
|
177
|
+
-e N8N_USER_EMAIL=<n8n-login-email> \
|
|
178
|
+
-e N8N_USER_PASSWORD=<n8n-login-password> \
|
|
143
179
|
-- npx -y @path58/p58-n8n
|
|
144
180
|
```
|
|
145
181
|
|
|
@@ -193,6 +229,8 @@ Ask: "List my n8n credentials"
|
|
|
193
229
|
|----------|-----------|-------------|-------------|
|
|
194
230
|
| `N8N_API_URL` | For Tier 2-7 tools | n8n instance API URL | See Step 2 above |
|
|
195
231
|
| `N8N_API_KEY` | For Tier 2-7 tools | n8n API authentication key | n8n → Settings → API Keys |
|
|
232
|
+
| `N8N_USER_EMAIL` | For `test_credential` | n8n login email (REST session auth) | Same email you use to log into n8n UI |
|
|
233
|
+
| `N8N_USER_PASSWORD` | For `test_credential` | n8n login password (REST session auth) | Same password you use to log into n8n UI |
|
|
196
234
|
|
|
197
235
|
> **Note:** `N8N_API_BASE_URL` is accepted as a fallback for `N8N_API_URL`. If neither is set, defaults to `http://localhost:5678/api/v1`.
|
|
198
236
|
|
|
@@ -215,6 +253,7 @@ Ask: "List my n8n credentials"
|
|
|
215
253
|
| "npx: command not found" | Node.js not installed | Install from https://nodejs.org/ |
|
|
216
254
|
| "Authentication failed" on deploy tools | N8N_API_KEY missing or invalid | Add API key to config, restart client |
|
|
217
255
|
| "Connection refused" on server_health | n8n not running at configured URL | Start n8n or fix N8N_API_URL |
|
|
256
|
+
| `test_credential` returns `NEEDS_N8N_LOGIN` | Session auth vars not set | Add `N8N_USER_EMAIL` and `N8N_USER_PASSWORD` to config (Step 3b) |
|
|
218
257
|
| All tools timeout | Firewall blocking localhost | Check firewall / VPN settings |
|
|
219
258
|
| Server shows "failed" status | ANSI color issue (pre-v0.2.2) | Update to latest version: `npx -y @path58/p58-n8n@latest` |
|
|
220
259
|
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
<<<<<<< HEAD
|
|
9
|
+
## [0.2.11] - 2026-03-11
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Session auth env vars** — `N8N_USER_EMAIL` and `N8N_USER_PASSWORD` now defined in env schema with Zod validation. When set in MCP config, `test_credential` works without per-call password prompts.
|
|
14
|
+
- **Security documentation** — README now includes a full Security section documenting credential security model, auth layers, and user responsibilities.
|
|
15
|
+
- **Credential helper example** — AGENT_INSTALL.md includes a 1Password CLI config pattern for users who prefer not to store passwords in plaintext config files.
|
|
16
|
+
- **Step 3b in install guide** — AGENT_INSTALL.md now documents session auth setup as an optional step during installation.
|
|
17
|
+
|
|
8
18
|
## [0.2.10] - 2026-03-11
|
|
9
19
|
|
|
10
20
|
### Fixed
|
package/README.md
CHANGED
|
@@ -126,9 +126,9 @@ p58-n8n uses 80% less token context than n8n-mcp by serving structured catalog d
|
|
|
126
126
|
|
|
127
127
|
---
|
|
128
128
|
|
|
129
|
-
## 35 Tools in
|
|
129
|
+
## 35 MCP Tools in 8 Categories
|
|
130
130
|
|
|
131
|
-
###
|
|
131
|
+
### Schema & Node Intelligence
|
|
132
132
|
|
|
133
133
|
| Tool | What it does |
|
|
134
134
|
|------|-------------|
|
|
@@ -136,66 +136,71 @@ p58-n8n uses 80% less token context than n8n-mcp by serving structured catalog d
|
|
|
136
136
|
| `get_operation_schema` | Exact parameter requirements for any node operation (ground truth, not LLM guesses) |
|
|
137
137
|
| `check_parameter` | Real-time parameter validation — type checking, enum validation, typo detection |
|
|
138
138
|
| `suggest_fix` | Concrete fix suggestions for validation issues — rename, add, remove, or replace |
|
|
139
|
-
| `list_nodes` | Browse and search 1,
|
|
139
|
+
| `list_nodes` | Browse and search 1,982 n8n nodes by category or keyword |
|
|
140
140
|
| `list_operations` | All operations for a node type, grouped by resource |
|
|
141
|
-
| `get_node_info` | Full node details — operations, credentials, properties, version |
|
|
141
|
+
| `get_node_info` | Full node details — operations, credentials, properties, config examples, version info |
|
|
142
142
|
| `find_similar_pattern` | Search 10,003 real workflows for working examples |
|
|
143
143
|
|
|
144
|
-
###
|
|
144
|
+
### Workflow CRUD
|
|
145
145
|
|
|
146
146
|
| Tool | What it does |
|
|
147
147
|
|------|-------------|
|
|
148
|
-
| `
|
|
148
|
+
| `create_workflow` | Create a workflow on your n8n server (L1-L4 validation gate) |
|
|
149
|
+
| `get_workflow` | Fetch a deployed workflow by ID |
|
|
149
150
|
| `list_workflows` | List all workflows with filtering and pagination |
|
|
150
|
-
| `create_workflow` | Create a workflow on your n8n server |
|
|
151
151
|
| `update_workflow` | Replace a workflow entirely |
|
|
152
|
-
| `delete_workflow` | Delete a workflow (
|
|
153
|
-
| `execute_workflow` | Trigger workflow execution |
|
|
154
|
-
| `get_execution_result` | Fetch
|
|
152
|
+
| `delete_workflow` | Delete a workflow (idempotent) |
|
|
153
|
+
| `execute_workflow` | Trigger workflow execution (webhook, schedule, or manual) |
|
|
154
|
+
| `get_execution_result` | Fetch execution details with per-node debug data |
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### Smart Deploy
|
|
157
157
|
|
|
158
158
|
| Tool | What it does |
|
|
159
159
|
|------|-------------|
|
|
160
|
-
| `validated_create` | Validate
|
|
161
|
-
| `validated_update` | Validate
|
|
160
|
+
| `validated_create` | Validate → autofix → auto-wire credentials → inject config → deploy atomically |
|
|
161
|
+
| `validated_update` | Validate → autofix → update atomically |
|
|
162
162
|
| `activate_workflow` | Toggle workflow active/inactive state |
|
|
163
|
-
| `get_session_metrics` | Token usage and cost tracking for the current session |
|
|
164
163
|
| `server_health` | Check your n8n instance connectivity and status |
|
|
164
|
+
| `get_session_metrics` | Token usage and cost tracking for the current session |
|
|
165
165
|
|
|
166
|
-
###
|
|
166
|
+
### Test & Iterate
|
|
167
167
|
|
|
168
168
|
| Tool | What it does |
|
|
169
169
|
|------|-------------|
|
|
170
|
-
| `test_workflow` |
|
|
171
|
-
| `server_autofix` |
|
|
172
|
-
| `partial_update_workflow` | Diff-based
|
|
173
|
-
| `manage_executions` | List,
|
|
174
|
-
| `deploy_template` |
|
|
170
|
+
| `test_workflow` | Auto-detect trigger type and execute (respondToWebhook-aware, safe deactivation) |
|
|
171
|
+
| `server_autofix` | Closed-loop: deploy → test → validate → fix → update → re-test (up to 10 iterations) |
|
|
172
|
+
| `partial_update_workflow` | Diff-based surgical updates — 6 operations, atomic pre-validation |
|
|
173
|
+
| `manage_executions` | List, get, or delete execution records with batch support |
|
|
174
|
+
| `deploy_template` | Fetch and deploy a template from the public n8n template library |
|
|
175
175
|
|
|
176
|
-
###
|
|
176
|
+
### Workflow Generation
|
|
177
177
|
|
|
178
178
|
| Tool | What it does |
|
|
179
179
|
|------|-------------|
|
|
180
|
-
| `plan_workflow` |
|
|
181
|
-
| `build_workflow` |
|
|
180
|
+
| `plan_workflow` | Research templates, schemas, credentials, and architecture before building |
|
|
181
|
+
| `build_workflow` | Assemble → validate → autofix → deploy → test from a structured spec |
|
|
182
182
|
|
|
183
|
-
###
|
|
183
|
+
### Credential Lifecycle
|
|
184
184
|
|
|
185
185
|
| Tool | What it does |
|
|
186
186
|
|------|-------------|
|
|
187
|
-
| `list_credentials` | List n8n server credentials with optional schema enrichment |
|
|
187
|
+
| `list_credentials` | List n8n server credentials with optional schema enrichment and node filtering |
|
|
188
188
|
| `get_credential_schema` | Required and optional fields for any of 679 credential types (fuzzy match) |
|
|
189
|
-
| `create_credential` |
|
|
190
|
-
| `test_credential` | Health-check probe
|
|
191
|
-
| `update_credential` |
|
|
189
|
+
| `create_credential` | Schema-validated credential creation with duplicate detection |
|
|
190
|
+
| `test_credential` | Health-check probe for 25 credential types (HTTP + TCP) |
|
|
191
|
+
| `update_credential` | Rename a credential on the server |
|
|
192
192
|
| `delete_credential` | Safe deletion with dependent workflow scan |
|
|
193
193
|
|
|
194
|
-
###
|
|
194
|
+
### Runtime Configuration
|
|
195
|
+
|
|
196
|
+
| Tool | What it does |
|
|
197
|
+
|------|-------------|
|
|
198
|
+
| `collect_config` | Interactive config collection — spreadsheet IDs, webhook URLs, channel IDs, etc. |
|
|
199
|
+
|
|
200
|
+
### Diagnostics
|
|
195
201
|
|
|
196
202
|
| Tool | What it does |
|
|
197
203
|
|------|-------------|
|
|
198
|
-
| `collect_config` | Detect missing node configuration from your live n8n instance (covers 2,494 known gaps) |
|
|
199
204
|
| `setup_check` | Diagnostic report — server version, n8n connectivity, credential count, tool availability |
|
|
200
205
|
|
|
201
206
|
Full reference with input/output schemas: [docs/TOOLS.md](docs/TOOLS.md)
|
|
@@ -280,6 +285,49 @@ p58-n8n is in **soft launch** (friends & family). Issues and feedback welcome:
|
|
|
280
285
|
|
|
281
286
|
---
|
|
282
287
|
|
|
288
|
+
## Security
|
|
289
|
+
|
|
290
|
+
p58-n8n handles your n8n API keys, credentials, and server access. We take that responsibility seriously — here's exactly how your data is protected.
|
|
291
|
+
|
|
292
|
+
### Your Data Stays on Your Machine
|
|
293
|
+
|
|
294
|
+
p58-n8n runs as a **local stdio process**. There is no cloud relay, no telemetry, no external servers. Your credentials, workflow data, and n8n API traffic never leave your machine. The MCP protocol communicates exclusively via stdin/stdout with your local AI client.
|
|
295
|
+
|
|
296
|
+
### Credential Security
|
|
297
|
+
|
|
298
|
+
| Protection | How It Works |
|
|
299
|
+
|-----------|-------------|
|
|
300
|
+
| **No credential logging** | Passwords, API keys, and session tokens are never written to logs at any level — verified by automated grep checks |
|
|
301
|
+
| **Ephemeral sessions** | n8n session cookies are created per-operation, held in memory only, and never persisted to disk |
|
|
302
|
+
| **No secrets in responses** | MCP tool responses never include credential values — only metadata (name, type, health status) |
|
|
303
|
+
| **Schema-validated config** | All environment variables are validated with Zod at startup — malformed values are rejected immediately |
|
|
304
|
+
| **Fail-closed design** | Missing credentials produce clear error messages — the server never falls back to insecure defaults or guesses |
|
|
305
|
+
| **Per-call override** | Users who prefer not to store passwords in config files can provide credentials per-tool-call instead |
|
|
306
|
+
|
|
307
|
+
### Authentication Layers
|
|
308
|
+
|
|
309
|
+
p58-n8n uses two independent auth mechanisms to talk to your n8n instance:
|
|
310
|
+
|
|
311
|
+
| Layer | Variables | What It Accesses | When Needed |
|
|
312
|
+
|-------|----------|-----------------|-------------|
|
|
313
|
+
| **API Key** | `N8N_API_KEY` | Workflow CRUD, activation, execution | All Tier 2-7 tools |
|
|
314
|
+
| **Session Auth** | `N8N_USER_EMAIL`, `N8N_USER_PASSWORD` | Credential secrets, credential testing | `test_credential` only |
|
|
315
|
+
|
|
316
|
+
Session auth is **optional**. Without it, all tools work except `test_credential`, which will prompt for credentials per-call.
|
|
317
|
+
|
|
318
|
+
### Your Responsibility
|
|
319
|
+
|
|
320
|
+
While p58-n8n implements security best practices, **you are responsible for:**
|
|
321
|
+
- Securing access to your n8n instance and API keys
|
|
322
|
+
- Protecting your MCP config files (we recommend `chmod 600`)
|
|
323
|
+
- Rotating API keys and passwords periodically
|
|
324
|
+
- Using a credential manager (1Password, macOS Keychain) for production environments instead of plaintext config files
|
|
325
|
+
- Reviewing what workflows the AI builds before deploying to production
|
|
326
|
+
|
|
327
|
+
**We recommend:** Use a credential helper to inject secrets into your MCP config rather than storing them in plaintext. See [AGENT_INSTALL.md](https://github.com/tsvika58/p58-n8n/blob/main/AGENT_INSTALL.md) for setup options.
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
283
331
|
## Architecture
|
|
284
332
|
|
|
285
333
|
p58-n8n runs as a local stdio MCP server. No cloud services required for basic use.
|