n8n MCP Community
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| N8N_API_KEY | No | Dedicated n8n Public API key | |
| N8N_API_URL | No | Base URL of your self-hosted n8n instance (HTTPS) | |
| N8N_MCP_MODE | No | Operation mode; read-only is the safe default | read-only |
| N8N_ALLOW_INSECURE_HTTP | No | Set to 1 only for non-loopback plain HTTP (not recommended) | 0 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| n8n_workflows_listA | List one Public API page of workflows visible to the configured API key. Use n8n_search_workflows for substring matching or n8n_workflows_get for a known ID. Omit cursor for page one. active, tags, and name are combined upstream; keep those filters and excludePinnedData unchanged when passing nextCursor. limit sizes only that page, and the tool never auto-paginates. Requires workflow-list permission; returns projected workflows and nextCursor, never pin/static values. |
| n8n_workflows_getA | Get one current workflow for inspection or reviewed editing. workflowId is the stable ID returned by n8n_workflows_list or create, not a workflow name or version ID. Use n8n_workflows_get_version for history. excludePinnedData changes only the upstream request and the pinDataPresent/staticDataPresent flags; pinned values are withheld whether true or false. Requires permission to read the target; returns structure, state, settings, and presence flags. |
| n8n_workflows_createA | Create and persist one workflow as an additive write without activating its triggers. name, nodes, and connections define a new record; nodes and connections must form one complete graph, while omitting settings uses an empty object. Optional pinData, staticData, description, and nodeGroups are forwarded only when supplied. Use n8n_workflows_update for an existing workflow and activate for triggers. Requires write or unsafe mode plus create permission; returns the validated projection without pin/static values. |
| n8n_workflows_updateA | Update selected top-level fields through a non-atomic full PUT. workflowId selects the current record; copy expectedVersionId from its latest read, and supply at least one writable field. The version must match both pre-write reads. Omitted fields are preserved, but each supplied array or object replaces that whole field. Use n8n_update_node for one node property and n8n_workflows_update_tags for tags. Requires write/unsafe mode plus read and update permission; returns the confirmed projection. |
| n8n_update_nodeA | Update one path on one node while preserving sibling data. workflowId selects the current workflow, nodeId selects exactly one node inside it, and path selects the mutable field whose contract validates value. Copy expectedVersionId from the latest workflow read and set acknowledgeNonAtomicRisk=true; both guards are required before the full PUT. Use n8n_workflows_update for top-level or multi-node edits. Requires write/unsafe mode plus read and update permission; returns the changed path and residual race risk. |
| n8n_workflows_deleteA | Permanently delete one workflow and its saved definition. workflowId must be the current stable ID from n8n_workflows_list or get; a name or version ID is not accepted. Use n8n_workflows_archive for reversible removal and n8n_workflows_get for inspection. This action has no rollback or transfer. Requires unsafe mode plus delete permission; returns the request-bound workflowId with deleted=true. |
| n8n_workflows_activateA | Activate one workflow so production triggers can accept future events; this does not execute it now. workflowId must be the current stable ID from n8n_workflows_list or get, not a name or version ID. Review the workflow first; use n8n_workflows_deactivate to stop future triggers. Requires unsafe mode plus activation permission; returns target-validated active state metadata. |
| n8n_workflows_deactivateA | Deactivate one workflow's future production triggers without deleting saved data or stopping runs already in progress. workflowId must be the current stable ID from n8n_workflows_list or get, not a name or version ID. Use n8n_workflows_activate to reverse the state or archive for lifecycle removal. Requires unsafe mode plus deactivation permission; returns target-validated inactive state metadata. |
| n8n_workflows_get_versionA | Get one retained workflow snapshot. workflowId is the stable workflow ID; versionId is that workflow's separate retained-version ID. Do not swap them or pass a workflow name. Use n8n_workflows_get for current state or n8n_workflows_diff for comparison. Both returned IDs must match the selectors; a missing endpoint and a pruned version share an explicit ambiguous 404 outcome. Requires history-read permission; returns validated nodes and connections subject to retention. |
| n8n_workflows_get_tagsA | List tags currently assigned to one workflow. workflowId selects the workflow from n8n_workflows_list or get; it is not a tag ID and this call does not list unassigned tags. Use it before n8n_workflows_update_tags when assignments must be preserved; use n8n_tags_list for all tags. The endpoint has no cursor, so the tool keeps at most 100 records and reports exact omissions. Requires assignment-read permission; returns validated tag metadata. |
| n8n_workflows_update_tagsA | Replace one workflow's complete tag assignment; this is not a merge. workflowId selects the workflow, while every tagIds item must be a stable tag ID from n8n_tags_list or get; tag names are not accepted. tagIds is the whole desired set, so omitted IDs are removed and [] clears all tags. Use n8n_workflows_get_tags first to preserve assignments. Requires write/unsafe mode plus assignment permission; returns n8n's validated replacement. |
| n8n_workflows_archiveA | Archive one workflow without deleting its saved definition. workflowId must be the current stable ID from n8n_workflows_list or get, not a name or version ID. Use this instead of delete for reversible removal; use deactivate only to stop triggers. The availability change can disrupt callers. Requires unsafe mode plus archive permission; returns target-validated metadata with isArchived=true. |
| n8n_workflows_unarchiveA | Restore one archived workflow without activating its triggers. workflowId must identify the archived workflow itself, not a name or version ID. Use this to reverse n8n_workflows_archive; call activate separately only if triggers should resume. Current active state is not inferred. Requires unsafe mode plus unarchive permission; returns target-validated metadata with isArchived=false. |
| n8n_workflows_diffA | Compare two states of one workflow without returning changed values. workflowId selects the workflow; fromVersionId is the retained baseline, and toVersionId is a different retained target. Omit toVersionId to compare with current state. ignoreLayout=true hides position-only changes. Use n8n_workflows_get_version for raw history. Requires workflow/history read permission; returns coverage, counts, and a byte-bounded prefix of up to 200 changes. |
| n8n_executions_listA | List one Public API page of saved execution metadata. Use it for discovery and bounded triage; use n8n_executions_get when an ID is known. status and workflowId filter upstream, cursor resumes one prior page, and includeData only reports whether data exists—values remain withheld. Requires execution-list permission and never auto-paginates; returns metadata and nextCursor. |
| n8n_executions_getA | Get metadata for one saved execution. executionId is the execution record ID from n8n_executions_list, not its workflowId. includeData=true asks n8n whether saved payload data exists, but the MCP still withholds every node input and output; false skips that request detail. Use list for discovery. Requires execution-read permission; returns identity, status, timing, retry fields, and value-free dataPolicy. |
| n8n_executions_deleteA | Permanently delete one saved execution and its retained history. executionId must be the execution record ID from n8n_executions_list or get; a workflow ID is not accepted. Confirm the target with get first. The server provides no recovery or rollback. Requires unsafe mode plus execution-delete permission; returns the request-bound executionId with deleted=true. |
| n8n_executions_retryA | Retry one saved execution that has retry data and did not finish successfully; n8n rejects queued/new executions and successful finished executions. executionId comes from n8n_executions_get or list. loadWorkflow=true uses the currently saved workflow, while false uses the original execution snapshot. A retry may repeat earlier external effects; use stop for a running execution. Requires unsafe mode and retry permission; returns metadata without payload values. |
| n8n_executions_stopA | Request cancellation of one stoppable execution: new, unknown, waiting, or running. executionId must be its record ID from n8n_executions_list or get, not a workflow ID. n8n rejects an execution that is already terminal. From a successful response, canceled maps to stopped, another terminal status maps to already_finished, and an unclear body maps to unknown; HTTP 200 alone never proves cancellation. Completed external effects remain. Requires unsafe mode and stop permission; returns the mapped state. |
| n8n_credentials_createA | Create and persist one credential as an additive write. First call n8n_credentials_schema with the planned type, then build data from its field contract; name is only the stored label. isResolvable is forwarded only when supplied. Use n8n_credentials_update for an existing credential. Requires write/unsafe mode plus create permission. Secret values belong only in data input and are excluded from logs and output; returns metadata only. |
| n8n_credentials_deleteA | Permanently delete one stored credential, which can break every referencing workflow. credentialId must be the stable ID from n8n_credentials_list, get, or create; a credential name or type is not accepted. Scan all n8n_credentials_usage pages first, or update when replacement is enough. No secret or rollback is returned. Requires unsafe mode plus credential-delete permission; returns the request-bound credentialId with deleted=true. |
| n8n_credentials_schemaA | Get n8n's Public API field contract for one credential type. credentialType is the public type name used by create/update, not a stored credential ID, name, or secret. Its result tells the caller which keys belong in data; it does not read or test a stored credential. Use n8n_credentials_get for stored metadata. Requires schema-read permission; returns the validated upstream field contract. |
| n8n_credentials_listA | List one Public API page of credential metadata; the endpoint is supported from n8n Community 2.30.5. Omit cursor for page one. For later pages, pass nextCursor back unchanged; limit sizes only that request, and the tool never auto-paginates. Use n8n_credentials_get when an ID is known. Requires credential-list permission; returns metadata and nextCursor, never stored values. |
| n8n_credentials_getA | Get public metadata for one stored credential. credentialId is the stable ID from n8n_credentials_list or create, not its name, type, or secret data. Use n8n_credentials_schema for type fields. The endpoint does not retrieve credential values or test the external service. Requires credential-read permission; returns validated identity, type, flags, and timestamps. |
| n8n_credentials_updateA | Update one stored credential, potentially breaking dependent workflows. credentialId selects the record; omit fields to keep them and supply at least one change. If type changes, data is also required and must match n8n_credentials_schema. With data, isPartialData=false replaces the saved field set, while true requests a partial merge. Use create for a new credential. Requires write/unsafe mode plus update permission; returns metadata without secret values. |
| n8n_credentials_testA | Test one already stored credential by allowing n8n to contact its external service, which receives and may log the attempt. credentialId is the stable ID from n8n_credentials_list or get; inline credential data, names, and types are not accepted. Use get for metadata-only inspection and skip this tool when network contact is unwanted. Requires unsafe mode plus test permission; returns only the target-bound OK/Error outcome and withholds the upstream diagnostic message. |
| n8n_credentials_usageA | Scan one workflow page for exact references to a credential. credentialId is the stable ID from n8n_credentials_list or get. Omit cursor for page one; keep credentialId, active, and limit unchanged when passing nextCursor. Unresolved legacy references are counted but never matched, and coverage is complete only when nextCursor is null. Use this before update/delete. Requires workflow-list permission; returns bounded workflow/node matches and omission counts. |
| n8n_tags_listA | List one Public API page of workflow tags. Omit cursor for page one; for later pages, pass nextCursor back unchanged. limit sizes only the current page, so continue until nextCursor is null for complete coverage. Use n8n_tags_get when the stable tag ID is known. Requires tag-list permission and never changes assignments; returns validated metadata and nextCursor. |
| n8n_tags_getA | Get one workflow tag. tagId is the stable tag identity returned by n8n_tags_list or create; a tag name or workflow ID is not accepted. Use it before assigning, renaming, or deleting the tag. The ID identifies the reusable tag itself, not an assignment, so this call neither lists nor changes assigned workflows. Requires tag-read permission; returns validated ID, name, and optional timestamps. |
| n8n_tags_createA | Create and persist one reusable workflow label as an additive write. name is the literal display label, not a tag ID or workflow assignment; it must already be trimmed. Duplicate-name handling belongs to n8n, and creation never assigns the tag to a workflow. Use n8n_tags_update for an existing tag and n8n_workflows_update_tags to assign it. Requires write/unsafe mode plus create permission; returns validated metadata. |
| n8n_tags_updateA | Rename one existing workflow tag while preserving its ID and assignments. tagId is the stable selector from n8n_tags_list or get; name is the complete new display label, not another ID. Duplicate-name acceptance belongs to n8n. Use n8n_tags_create for a new label and n8n_workflows_update_tags to change assignments. Requires write/unsafe mode plus tag-update permission; returns validated metadata. |
| n8n_tags_deleteA | Permanently delete one workflow tag, which can remove that label from many workflows. tagId must be the stable ID from n8n_tags_list or get; a tag name or workflow ID is not accepted. Review the target and affected workflows first, or use n8n_tags_update when a rename is enough. No rollback is provided. Requires unsafe mode plus tag-delete permission; returns the request-bound tagId with deleted=true. |
| n8n_users_listA | List one Public API page of users. Use it for discovery; use n8n_users_get when a stable ID or exact email is known. includeRole=true only asks n8n for roles, which may still be omitted by permission; cursor resumes one prior page and this call never auto-paginates. Requires user-list permission; returns redaction-protected metadata and nextCursor. |
| n8n_users_getA | Get one user by stable ID or exact email. userIdOrEmail routes ID-shaped input to ID lookup and other input to an exact percent-encoded email lookup; partial email matching is not used. includeRole=true asks n8n for the global role, but permissions may still hide it. Use n8n_users_list for discovery. Requires user-read permission; returns redaction-protected identity and account state without mutation. |
| n8n_users_createA | Create a pending invitation as an additive write that may send email. email is the future account login; use n8n_users_get first when it may exist. role is a global account role, not project membership, and omission selects global:member; owner invitations are rejected. Requires unsafe mode plus invite permission. An inconclusive response may still mean a pending user exists; returns delivery state but never the acceptance URL. |
| n8n_users_deleteA | Permanently delete one API-eligible user. userId must be the stable ID from n8n_users_list or get; an email address is not accepted. The input has no transfer target, so workflow or credential ownership handling remains entirely with n8n. Verify the target with get first. Requires unsafe mode plus user-delete permission; returns the request-bound userId with deleted=true and provides no rollback claim. |
| n8n_healthA | Perform one redirect-free same-origin /healthz request with a 10-second timeout. This tool accepts no arguments and requires the configured n8n URL and API key; remote plaintext HTTP also requires N8N_ALLOW_INSECURE_HTTP=1. Use it for HTTP reachability, then use n8n_workflows_list to test API-key capability. No workflow data is read or changed. Returns ok=true and the successful status, never the upstream body. |
| n8n_insights_summaryA | Get n8n's official instance insights aggregates. Use it when the Community endpoint exists; use n8n_introspect for one workflow's diagnostics. startDate and endDate are inclusive offset-aware bounds, and supplying both requires startDate <= endDate; omitting both requests n8n's default range. Requires insights-read permission and never fabricates unavailable metrics; returns totals, failures, rates, time saved, and runtime aggregates. |
| n8n_audit_generateA | Run n8n's broad, non-destructive instance security scan. Omit categories to use n8n's complete default, or supply the exact risk areas to include. daysAbandonedWorkflow is independent: it changes only the inactive-workflow age threshold and does not select categories. Use n8n_introspect for one workflow. Requires unsafe mode and owner-authorized API access; returns a sanitized but untrusted report without changing configuration. |
| n8n_search_workflowsA | Search one workflow page for a case-insensitive substring. query is matched locally only in the fields named by searchIn; active filters upstream first. Omit cursor for page one, then keep query, searchIn, active, and limit unchanged when passing nextCursor. This is not a global index; use n8n_workflows_list for an unsearched page. Requires workflow-list permission; returns at most 50 value-free matches and explicit scan state. |
| n8n_get_node_docsA | Return one immutable bundled reference. node is an exact local key—webhook, code, http-request, or if—not an arbitrary n8n node-type string. Use n8n_list_node_types to inventory observed types and official docs for anything else. Requires no n8n URL, API key, network, or elevated mode; it never follows the included URL. Returns source/fetched provenance, canonical type, title, summary, guidance, and official URL. |
| n8n_list_node_typesA | Inventory node types observed across workflow pages; this proves usage, not installation. Omit cursor to start at page one. maxPages limits how many pages this call follows; active and limit apply to every page, so keep them unchanged when continuing from nextCursor. Complete coverage requires starting at page one and reaching the end. Use n8n_get_node_docs for bundled references. Requires workflow-list permission; returns counts and exact coverage, capped at 30 seconds or 20,000 nodes. |
| n8n_introspectA | Inspect one workflow and saved executions with 23 deterministic local rules. profile sets paired defaults: quick uses 24h/20 and caps maxExecutions at 25; deep uses 168h/50 and reads at most four redacted details. includeSanitizedLabels=false keeps labels opaque; true opts into bounded sanitized labels. Use n8n_audit_generate for instance security or n8n_workflows_get for raw structure. Requires workflow/execution read permission; never executes or calls AI; returns findings and coverage. |
| n8n_community_packages_listA | List bounded metadata for installed n8n community packages. This call accepts no arguments, filters, cursor, or limit; it keeps at most 100 endpoint records and reports exact omissions. Use n8n_list_node_types for types observed in workflows. It does not download or inspect contents. Requires package-list permission, never installs, updates, or removes packages, and returns untrusted metadata with author emails redacted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-workflow | Plan and create a workflow through the safe Public API tools. |
| debug-workflow | Diagnose a saved workflow without executing it. |
| optimize-workflow | Review a workflow and propose evidence-backed improvements. |
| manage-credentials | Plan safe credential metadata and lifecycle operations. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| n8n-usage-guide | Connection, safety-mode, and trust-boundary guidance. |
| n8n-node-docs-webhook | Starts a workflow when its test or production webhook receives an HTTP request. |
| n8n-node-docs-code | Runs bounded custom JavaScript or Python logic inside an n8n workflow. |
| n8n-node-docs-http-request | Calls an HTTP API from a workflow using configured credentials, headers, query parameters, and body data. |
| n8n-node-docs-if | Routes each input item to a true or false output based on configured conditions. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/drzamarian/n8n-mcp-community'
If you have feedback or need assistance with the MCP directory API, please join our Discord server