Individual skill
n8n-credentials-and-security-official
Use when handling any auth, API keys, tokens, OAuth, bearer tokens, basic auth, or secret values in n8n workflows. Triggers on "API key", "token", "bearer", "OAuth", "secret", "auth", "credentials", "Authorization header", "x-api-key", or any node configuration that mentions a third-party service.
skills/n8n-credentials-and-security-official/SKILL.md
Source commit 27b6b9f429ac0be90cae764512dbc579d7107e95
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Local scripts
- Last checked
- Nov 10, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 600
- Repository last updated
- Nov 10, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- security Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesSKILL.mdcore · 6,734 bytesreferences/CREDENTIAL_SYSTEM.mddoc · 3,802 bytesreferences/CUSTOM_CREDENTIALS.mddoc · 2,923 bytesreferences/FINDING_API_DOCS.mddoc · 4,724 bytesreferences/HTTP_REQUEST_WITH_AUTH.mddoc · 5,025 bytes
Read excerpt
# n8n Credentials and Security
## Non-negotiables
1. **Secrets via the credential system, never in text fields or SDK code.** API keys, bearer tokens, OAuth secrets, passwords: all go through `newCredential()` or the node's `credentials` parameter. A Set node hardcoding a token and read via `{{$json.token}}` is a text field with extra steps.
2. **List credentials, then bind by ID.** Call `list_credentials({type})` before configuring an auth-needing node. One match: bind via 2-arg `newCredential('Label', 'credId')` at create time, or `setNodeCredential` op on `update_workflow`. Multiple matches: ask the user which. The one-arg `newCredential('Label')` is a placeholder; n8n auto-assigns the most recently edited credential of that type and silently picks wrong when the user has multiples.
3. **Credential creation is the user's job, not yours.** The n8n MCP doesn't expose credential creation. Tell the user the exact credential *type* to create in the UI, then reference it by label in your node config. Don't attempt to create credentials programmatically and don't accept secrets in chat to "set up later".
## Strong defaults
- **Use native credentials when available.** Every native node (Slack, Gmail, Postgres, OpenAI, etc.) has a credential type. Don't reach for generic credential types when a native option exists.
- **For multi-header or header-plus-query auth shapes**, use the `httpCustomAuth` credential type. See `references/CUSTOM_CREDENTIALS.md`.
## The credential system