n8n-pro-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| N8N_API_KEY | Yes | API key from n8n Settings → n8n API → Create API key | |
| N8N_API_URL | Yes | Base URL of your n8n instance (e.g., https://n8n.yourdomain.com) — no /api/v1 suffix | |
| N8N_MAX_RETRIES | No | Retries on 429/5xx/network errors — applied to GET requests only, never to writes or webhook calls (default 3, 0 disables) | 3 |
| N8N_API_TIMEOUT_MS | No | Per-request timeout in ms (default 30000) | 30000 |
| N8N_WEBHOOK_BASE_URL | No | Separate base URL for webhook calls (queue mode with dedicated webhook processors) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workflowsA | List workflows with optional filters (active, tag names, project, name) and automatic cursor pagination. Returns id, name, active state, tags and timestamps — never the heavy node data. |
| get_workflowA | Get a workflow by ID, including full nodes and connections JSON. Use mode='summary' to get only metadata and the node list (cheaper for inspection). |
| create_workflowA | Create a new workflow from JSON (name, nodes, connections, settings). Runs offline validation first and refuses to create invalid workflows unless skipValidation=true. New workflows are created inactive — use activate_workflow afterwards. |
| update_workflowA | Update a workflow partially: fetches the current version, merges only the fields you pass (name, nodes, connections, settings), validates offline and PUTs the result. Pass full nodes/connections arrays when changing them — they replace the existing ones. |
| delete_workflowA | Permanently delete a workflow by ID. This cannot be undone — consider deactivate_workflow instead if you only want to stop it. |
| activate_workflowA | Activate a workflow so its triggers (webhooks, schedules, queue consumers) start running. |
| deactivate_workflowA | Deactivate a workflow — triggers stop firing but the workflow and its history are kept. |
| transfer_workflowB | Transfer a workflow to another project (requires the Projects feature on the instance). |
| search_workflowsA | Search workflows by free text across name, node names and node types (client-side over the listing — finds e.g. every workflow using a given node type or touching a given service). |
| clone_workflowA | Duplicate a workflow: fetches the source and creates an inactive copy (same nodes, connections, settings and credential references) under a new name. Useful for safe experimentation on production workflows. |
| set_workflows_active_by_tagA | Bulk activate or deactivate every workflow carrying a tag — an operational kill switch (e.g. deactivate everything tagged 'client-x'). Runs as a dry run by default; set dryRun=false to apply. Workflows already in the desired state are skipped. |
| validate_workflow_jsonA | Validate a workflow JSON offline (no API call): structure, unique node names, connection integrity, orphan nodes, {{ }} expression syntax, webhook |
| list_executionsA | List executions with filters (status, workflow, project) and automatic pagination. Returns lightweight summaries with duration — use get_execution for full node-level data. |
| get_executionA | Get one execution by ID. includeData=true returns the full run data (node inputs/outputs and error details) — useful to debug a failed run. |
| delete_executionA | Delete a single execution record by ID (frees DB space; cannot be undone). |
| retry_executionA | Retry a failed or stopped execution by ID. Requires a recent n8n version exposing retry in the public API — if unavailable (404), re-trigger the workflow via run_webhook instead. |
| list_running_executionsA | Queue-mode view: list executions currently running or waiting in the queue. Tries the API status filter first and falls back to scanning recent executions for ones without a stop time. |
| run_webhookA | Trigger a workflow through its Webhook node. Calls {instance}/webhook/{path} (or /webhook-test/{path} with test=true, which requires the workflow open in 'Listen for test event' mode). In queue mode the call returns according to the webhook's response mode. |
| summarize_execution_errorA | Debug a failed execution without flooding the context: fetches the full run data and returns only the failing node, error message/description, a short stack and per-node errors. Use instead of get_execution includeData=true when you only need to know what broke. |
| wait_for_executionA | Poll an execution until it reaches a terminal state (success/error/crashed/canceled) or the timeout expires. Returns early with waiting=true if the execution pauses on a Wait node. Closes the loop after run_webhook in queue mode, where execution happens asynchronously on workers. The timeout is best-effort: each poll request has its own HTTP timeout, so total wall time can slightly exceed timeoutSeconds. |
| prune_executionsA | Bulk-delete finished execution records by filter (status, workflow, older than N days) to reclaim database space. Runs as a dry run by default — set dryRun=false to actually delete. Deletion is permanent and cannot be undone. Running/waiting executions are never touched. |
| get_execution_statsA | Aggregate execution health over a recent sample: per-workflow success/error/waiting counts, success rate and average duration. The queue-mode dashboard in one call — spot failing or slow workflows. |
| list_tagsA | List all tags on the instance with their IDs (IDs are needed by set_workflow_tags). |
| create_tagC | Create a new tag. |
| update_tagA | Rename a tag by ID (all workflows using it see the new name). |
| delete_tagA | Delete a tag by ID (removes it from every workflow; the workflows themselves are untouched). |
| get_workflow_tagsA | List the tags attached to a workflow. |
| set_workflow_tagsA | Replace the tags of a workflow. Accepts tag NAMES — resolves them to IDs automatically and, with createMissing=true, creates tags that don't exist yet. Pass an empty list to remove all tags. |
| create_credentialA | Create a credential on the instance. Use get_credential_schema first to see which fields the credential type requires. The n8n public API never returns credential secrets — only metadata. |
| delete_credentialA | Delete a credential by ID. Workflows that reference it will fail until reassigned. |
| get_credential_schemaA | Get the JSON schema of a credential type — which fields it needs (e.g. 'slackApi' → accessToken). Use before create_credential. |
| transfer_credentialB | Transfer a credential to another project (requires the Projects feature). |
| list_variablesA | List instance variables (accessible in workflows via $vars.). Requires a licensed n8n plan with the Variables feature. |
| create_variableB | Create an instance variable (then available in workflows as $vars.). |
| update_variableA | Update an existing variable's key/value by variable ID (see list_variables for IDs). |
| delete_variableA | Permanently delete a variable by ID — cannot be undone. Workflows reading $vars. will get undefined afterwards. |
| list_projectsA | List projects on the instance (requires the Projects feature, available on licensed plans). Project IDs are used by transfer_workflow / transfer_credential and as filters. |
| create_projectA | Create a new team project. |
| update_projectB | Rename a project by ID. |
| delete_projectA | Permanently delete a project by ID — cannot be undone. Move its workflows/credentials out first (transfer_workflow / transfer_credential). |
| add_user_to_projectA | Add a user to a project with a project role (admin/editor/viewer). Find user IDs with list_users and project IDs with list_projects. |
| remove_user_from_projectA | Remove a user from a project (the user keeps their instance account). |
| change_user_project_roleA | Change a user's role inside a project (admin/editor/viewer). |
| list_usersA | List users of the instance with their global roles (requires owner API key). |
| get_userA | Get one user by ID or email address. |
| create_userA | Invite a new user to the instance with a global role. Returns the invite acceptance URL when email is not configured on the instance. |
| delete_userA | Permanently remove a user from the instance by ID or email — cannot be undone; the user loses access immediately. |
| change_user_roleA | Change a user's global role (admin ↔ member). The instance owner role cannot be reassigned. |
| check_healthA | Check instance health: /healthz (process up), /healthz/readiness (DB connected & migrated) and REST API reachability/auth. In queue mode this validates the main process — pair with list_running_executions and get_execution_stats to assess queue throughput. |
| generate_auditA | Generate n8n's built-in security audit: flags abandoned workflows, unused credentials, risky nodes (filesystem/instance access), and more. Optionally restrict categories or tune the abandoned-workflow threshold. |
| pull_source_controlA | Pull changes from the connected source-control repository (requires the Source Control feature configured on the instance). force=true permanently discards local changes on the instance — cannot be undone. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/helbertparanhos/n8n-pro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server