MCP N8n vs Formio MCP

A side-by-side look at the MCP N8n and Formio MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

MCP N8n logoMCP N8nDeveloper Tools · Local subprocess (stdio)Operate and build n8n: 61 tools, 560-node catalog, validation, autofix, snapshots and backups.64GoodAuth: not declaredFormio MCP logoFormio MCPDeveloper Tools · Local subprocess (stdio)Create and manage Form.io forms, resources, actions, roles, and projects from your AI agent.64GoodAuth: not declared

Verdict: choose MCP N8n for developer tools work as a local process; choose Formio MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

MCP N8n logoChoose MCP N8n when

  • You need dedicated capabilities in the Developer Tools domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: N8N_BASE_URL, N8N_API_KEY.
  • You want tools like n8n_create_workflow, n8n_list_workflows, n8n_list_workflows_summary.
Explore MCP N8n

Formio MCP logoChoose Formio MCP when

  • You need dedicated capabilities in the Developer Tools domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like hello, form_create, form_get.
Explore Formio MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP N8n logoMCP N8nFormio MCP logoFormio MCP
CategoryDeveloper ToolsDeveloper Tools
Quality signal64/100 · Good64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsN8N_BASE_URLN8N_API_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars218
Directory activity 1 views 0 installs 0 upvotes 3 views 0 installs 0 upvotes
Tools6121

Tools & capabilities

MCP N8n tools 61

  • n8n_create_workflowCreate a new workflow in n8n. Prefer n8n_search_nodes + n8n_validate_workflow first so the JSON is valid. You can specify nodes, connections, and settings.
  • n8n_list_workflowsList all workflows with full details. Can filter by active status, tags, name, or project. WARNING: Returns complete workflow data including nodes and connections - use n8n_list_workflows_summary for better token efficiency.
  • n8n_list_workflows_summaryList workflows with minimal data (id, name, active, tags, updatedAt only). Recommended for browsing and listing - uses 90% fewer tokens than n8n_list_workflows. Use n8n_get_workflow to fetch full details of a specific workflow.
  • n8n_get_workflowGet detailed information about a specific workflow by ID.
  • n8n_update_workflowUpdate an existing workflow. Supports partial updates: omitted fields keep their current values (the current workflow is fetched and merged automatically).
  • n8n_delete_workflowDelete a workflow permanently. A local snapshot is saved first so it can be restored with n8n_rollback_workflow (into a new workflow).
  • n8n_activate_workflowActivate a workflow to start receiving triggers.
  • n8n_deactivate_workflowDeactivate a workflow to stop receiving triggers.
  • n8n_transfer_workflowTransfer a workflow to another project.
  • n8n_get_workflow_tagsGet all tags associated with a workflow.
  • n8n_update_workflow_tagsUpdate tags for a workflow.
  • n8n_list_executionsList workflow executions. Can filter by status, workflow ID, or project. TIP: Set includeData=false and use fields parameter to reduce token usage.
  • +49 more on the listing page

Formio MCP tools 21

  • helloSay hello — a connectivity check that confirms the server is running and reachable. Needs no Form.io project or credentials, so it is the first thing to try when other tools fail.
  • form_createCreate a new form in the Form.io project mapped to the user's current working directory. IMPORTANT: Before calling this tool, use the formio-schema skill to construct a properly structured Form.io form JSON definition based on the user's requirements. The skill documents all component types, validation options, layout patterns, and conditional logic available in Form.io. New forms default to `revisions: 'original'` so form change history is preserved. NOT for: creating a draft revision of an existing form. When the user says "create/save a draft", "draft <change>", call form_update with `formId` and `draft: true` instead.
  • form_getFetch a single form definition from the Form.io project mapped to the user's current working directory, by form ID or path. Pass `draft: true` to fetch the form's current in-flight draft instead of the published form.
  • form_listList forms from the Form.io project mapped to the user's current working directory with optional filtering and pagination.
  • form_revision_getFetch a single immutable form revision from the Form.io project mapped to the current working directory. `version` accepts either the revision `_vid` (e.g. "3") or the revision document `_id` (24-character hex). To revert the live form to this revision, pass its `form` body to `form_update` with a `note` like `Revert to v<vid>`.
  • form_revisions_listList immutable published revision summaries for a single form in the Form.io project mapped to the current working directory. Returns compact revision metadata (_vid, _id, modified, user, _vnote) for the form identified by `formIdOrPath`. To inspect a specific revision body, call `form_revision_get` with the desired `_vid`. To revert the live form to a prior revision, pass that revision body to `form_update` with a `note` like `Revert to v<vid>`.
  • form_updateUpdate an existing form in the Form.io project mapped to the user's current working directory. IMPORTANT: Before calling this tool, first use form_get to fetch the current form definition, then use the formio-schema skill to understand the schema so that you can apply the requested modifications (add, remove, or modify fields and settings), and finally call this tool with the complete updated form JSON. `draft`, `publish`, and `revert` are mutually exclusive — pass at most one. If `revisions` in the response differs from the stored value, the per-form revisions-mode gate prompted the USER and they chose.
  • project_exportExport the complete template (roles, resources, forms, actions) of the Form.io project mapped to the user's current working directory as a portable JSON document. Use this to snapshot a project before importing changes.
  • project_getReport which Form.io project the given working directory resolves to, which deployment hosts it, and which layer supplied each — the preflight to run before the first tool call that reads from or writes to a deployment. Answers from inside this server, using the same resolver every other tool uses, so what it reports is what the next call targets. There is no need to run any shell command to ask this. Branch on `status`. "ok" means both URLs resolved and you may proceed. "not-configured" means nothing is mapped for this directory: relay the message, ask the user for the single value it names, record it with project_set, and call this again. "base-url-unresolved" means the project IS recorded and only its deployment is missing — ask for the Base URL alone and do NOT re-ask for the Project URL. Reads only. It resolves and reports; project_set is what records a choice.
  • project_importImport a template JSON into the existing Form.io project mapped to the user's current working directory, merging roles, resources, forms, and actions in one call. Use the formio-resource-planner skill to construct the template before calling this tool. WARNING: import merges into the existing project — use project_export first to snapshot.
  • project_setSet the active Form.io project for the given working directory by recording its URL in ~/.formio/projects.json You MUST call this tool whenever the user asks to set, change, or switch the active Form.io project — do not merely acknowledge the request in text. Persisting the choice requires the tool call. The chosen URL is persisted to ~/.formio/projects.json keyed by the cwd argument when provided (or the MCP server process cwd otherwise). Pass the `cwd` argument whenever you know the user's current working directory — the server process cwd is fixed at spawn and may not match where the user actually is. Every Form.io tool resolves its project on each call, so a mapping written here needs no restart. It takes effect only where the mapping is the record that WINS, though: under a committed formio.json the mapping is the fallback if that file goes away, and this call reports the pair that actually resolves rather than the one it recorded. Read `ok` and `projectUrl` on the result rather than assuming the write governs. You normally pass only projectUrl. The base URL — which builds the portal-login URL and keys the cached token — is derived from it — https://api.form.io for a project on a form.io host, and the parent path for a project addressed as a sub-directory — so there is nothing to supply. Pass baseUrl ONLY when the server reports that it cannot be determined, which happens for a project URL that carries no path on a customer domain: there the deployment is a sibling sub-domain and nothing in the project URL names it. Do not ask the user for a base URL before the server says it needs one. This tool writes the machine-local mapping, which is keyed by absolute path and therefore does not survive a clone. To record the target with the code instead — versioned, visible in a diff, and shared with everyone who clones the repository — write a committed formio.json yourself, in the application's own folder: a JSON object holding {"projectUrl": "..."}, plus "baseUrl" only when it cannot be derived. This server reads that file and never writes it. Resolution is by scope, narrowest first, and precedence runs: a committed formio.json, then the working-directory mapping, then FORMIO_PROJECT_URL in the environment, which is the weakest of the three. So a mapping written here DOES override an environment value, and a committed file overrides both.
  • role_createCreate a new role in the Form.io project mapped to the user's current working directory.
  • +9 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

MCP N8n

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mcp-n8n": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-n8n"
      ],
      "env": {
        "N8N_BASE_URL": "YOUR_N8N_BASE_URL_HERE",
        "N8N_API_KEY": "YOUR_N8N_API_KEY_HERE"
      }
    }
  }
}

Formio MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "formio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@formio/mcp@0.14.1"
      ]
    }
  }
}

Frequently asked questions

MCP N8n is categorized under Developer Tools and uses a local stdio subprocess. Formio MCP belongs to Developer Tools and uses a local stdio subprocess. Pick MCP N8n for developer tools work and Formio MCP for developer tools.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

MCP N8n has no declared pricing — check the project's own site. Formio MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add mcp-n8n and formio-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, MCP N8n has a quality signal of 64/100 (Good) with 1 views, 0 installs and 21 GitHub stars. Formio MCP has 64/100 (Good) with 3 views, 0 installs and 8 GitHub stars.