NestDaddy

Formio Mcp

io.form/formio-mcp · v1.0.1

Create and manage Form.io forms, resources, actions, roles, and projects from your AI agent.

Connect Runs on your machine

Terminal
claude mcp add formio-mcp -e FORMIO_PROJECT_URL=<FORMIO_PROJECT_URL> -e FORMIO_BASE_URL=<FORMIO_BASE_URL> -e FORMIO_API_KEY=<FORMIO_API_KEY> -e FORMIO_LOGIN_FORM=<FORMIO_LOGIN_FORM> -e FORMIO_AUTH_HOST=<FORMIO_AUTH_HOST> -e FORMIO_AUTH_PORT=<FORMIO_AUTH_PORT> -e FORMIO_AUTH_TIMEOUT=<FORMIO_AUTH_TIMEOUT> -e FORMIO_FORCE_BROWSER=<FORMIO_FORCE_BROWSER> -e FORMIO_REQUEST_TIMEOUT=<FORMIO_REQUEST_TIMEOUT> -e FORMIO_INSECURE_TLS=<FORMIO_INSECURE_TLS> -- npx -y @formio/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "formio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@formio/[email protected]"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "<FORMIO_PROJECT_URL>",
        "FORMIO_BASE_URL": "<FORMIO_BASE_URL>",
        "FORMIO_API_KEY": "<FORMIO_API_KEY>",
        "FORMIO_LOGIN_FORM": "<FORMIO_LOGIN_FORM>",
        "FORMIO_AUTH_HOST": "<FORMIO_AUTH_HOST>",
        "FORMIO_AUTH_PORT": "<FORMIO_AUTH_PORT>",
        "FORMIO_AUTH_TIMEOUT": "<FORMIO_AUTH_TIMEOUT>",
        "FORMIO_FORCE_BROWSER": "<FORMIO_FORCE_BROWSER>",
        "FORMIO_REQUEST_TIMEOUT": "<FORMIO_REQUEST_TIMEOUT>",
        "FORMIO_INSECURE_TLS": "<FORMIO_INSECURE_TLS>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "formio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@formio/[email protected]"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "<FORMIO_PROJECT_URL>",
        "FORMIO_BASE_URL": "<FORMIO_BASE_URL>",
        "FORMIO_API_KEY": "<FORMIO_API_KEY>",
        "FORMIO_LOGIN_FORM": "<FORMIO_LOGIN_FORM>",
        "FORMIO_AUTH_HOST": "<FORMIO_AUTH_HOST>",
        "FORMIO_AUTH_PORT": "<FORMIO_AUTH_PORT>",
        "FORMIO_AUTH_TIMEOUT": "<FORMIO_AUTH_TIMEOUT>",
        "FORMIO_FORCE_BROWSER": "<FORMIO_FORCE_BROWSER>",
        "FORMIO_REQUEST_TIMEOUT": "<FORMIO_REQUEST_TIMEOUT>",
        "FORMIO_INSECURE_TLS": "<FORMIO_INSECURE_TLS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "formio-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@formio/[email protected]"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "<FORMIO_PROJECT_URL>",
        "FORMIO_BASE_URL": "<FORMIO_BASE_URL>",
        "FORMIO_API_KEY": "<FORMIO_API_KEY>",
        "FORMIO_LOGIN_FORM": "<FORMIO_LOGIN_FORM>",
        "FORMIO_AUTH_HOST": "<FORMIO_AUTH_HOST>",
        "FORMIO_AUTH_PORT": "<FORMIO_AUTH_PORT>",
        "FORMIO_AUTH_TIMEOUT": "<FORMIO_AUTH_TIMEOUT>",
        "FORMIO_FORCE_BROWSER": "<FORMIO_FORCE_BROWSER>",
        "FORMIO_REQUEST_TIMEOUT": "<FORMIO_REQUEST_TIMEOUT>",
        "FORMIO_INSECURE_TLS": "<FORMIO_INSECURE_TLS>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
FORMIO_PROJECT_URL
Optional
Optional, and the WEAKEST of the three project sources: a committed formio.json found by walking up from the working directory wins, then the per-directory mapping project_set writes, then this. It pins nothing — project_set can redirect a directory whose environment names a different project. Usef…
FORMIO_BASE_URL
Optional
Optional, and usually unnecessary: the base URL is DERIVED from the project URL — https://api.form.io for a project on a form.io host, the parent path for a project addressed as a sub-directory — and is asked for only when it cannot be derived, which is a path-less project URL on a customer domain.…
FORMIO_API_KEY
Optional, secret
Form.io project API key. Optional — applied only to the project FORMIO_PROJECT_URL names, so set FORMIO_PROJECT_URL beside it; any other project, and every project when it is omitted, uses the browser-based portal login flow to obtain a JWT.
FORMIO_LOGIN_FORM
Optional
URL of a custom login form used by the browser-based portal login flow. Defaults to the deployment's portal login form.
FORMIO_AUTH_HOST
Optional
Address the browser-login page binds to. Optional; defaults to 127.0.0.1. Set it to 0.0.0.0, together with FORMIO_AUTH_PORT, when the server runs in a container or on a remote machine and the login page must be reachable through a published port. 0.0.0.0 exposes the page on every interface for the…
FORMIO_AUTH_PORT
Optional
Fixed port for the browser-login page, so a container can publish it (e.g. 43117). Optional; a positive integer, and by default the page takes an ephemeral port.
FORMIO_AUTH_TIMEOUT
Optional
Seconds to wait for a browser login before the call fails with an error naming the remedies. Optional; a positive integer no larger than 2147483, and any other value is ignored. Defaults to 900.
FORMIO_FORCE_BROWSER
Optional
Set to 1 to attempt the browser login even where the server detects it cannot present one (CI, a container, a remote shell with no display). Use it when the login page is reachable from a browser elsewhere.
FORMIO_REQUEST_TIMEOUT
Optional
Seconds a Form.io request may go unanswered before the call fails with a network error naming the URL. Optional; a positive integer no larger than 2147483, and any other value is ignored. Defaults to 60. project_import and project_export wait 300 seconds, or this value when it is longer.
FORMIO_INSECURE_TLS
Optional
Set to 1 to skip TLS certificate verification only for requests to the configured deployment (the hosts of the resolved project URL and base URL); every other host is verified as usual. For local development against self-signed certificates only — never enable in production.

Details

Package@formio/[email protected] (NPM, stdio)
First published14 Oct 2026
Last updated14 Oct 2026
Registry nameio.form/formio-mcp

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.