MCP server (overview)
FormNode runs a hosted Model Context Protocol server at mcp.formnode.io. Connect any MCP-compatible agent — Claude Desktop, Claude Code, Codex, OpenAI Agents — and the agent gains tools to build forms, manage organizations, wire dynamic dropdowns, pull submissions, and run approvals. In plain English. From a single conversation.
Why this exists
Building a useful MSP form is a stack: the form fields, the dynamic dropdowns wired to a PSA/RMM/CIPP webhook, the n8n workflow that powers each dropdown, the submission webhook that fans the result back into provisioning, and the optional approval that gates the work. Done by hand, that's a half-day project per form. Done with an agent connected to FormNode + your n8n, it's a single prompt.
The MCP server exposes everything the dashboard does — except instead of clicking, the agent calls tools. Anything you can do in the GUI, you can describe in a sentence.
What the agent can do
- Build forms. Create, update, duplicate, and publish forms. Add and remove fields. Configure validation, conditions, and page breaks.
- Manage organizations. Create new organizations, configure integration mappings (CW company ID, CIPP tenant ID, etc.), assign forms to organizations.
- Wire dynamic dropdowns. Configure webhook-powered dropdowns and cascading dependencies. Test the webhook response from inside the agent.
- Submit and read. Pull submissions for analysis, create test submissions, query the submission history.
- Run approvals. Create approvals, list pending approvals, cancel approvals, inspect callbacks.
What an actual prompt looks like
This is the kind of prompt that builds a working onboarding form + wires the dynamic dropdown end-to-end. Drop it into Claude Code with FormNode connected:
Build me a new-user onboarding form for Acme. Add fields for first name,
last name, title, manager (text), start date, and a dynamic license dropdown
that pulls available Microsoft 365 licenses live from CIPP for Acme's
tenant. When the form is submitted, post the payload to my n8n webhook at
https://your-n8n.example.com/webhook/onboard-acme.The agent calls create_form, add_field for each input, configure_dynamic_fieldfor the license dropdown, then either generates the n8n workflow JSON for you to import (if it's connected to a code editor) or instructs you on the n8n side. Either way, the FormNode side is wired and tested before the agent declares done.
How to connect
The full setup walkthrough — Claude Desktop config, Claude Code mcp add, OpenAI Responses + Agents SDK examples, and how to scope API keys — lives on the MCP setup page.
Security model
MCP keys are workspace-scoped — they never expose other workspaces' data. Each key has a permission scope you set at creation time:
- View only (
READ_ONLY) — read forms, organizations, and submissions. The agent can inspect but not change anything. Useful for analytics and reporting agents. - Build and update (
SYNC) — read + write forms, organizations, and integration mappings. The right scope for most agentic form-building. Cannot create test submissions or call approvals. - Everything (
FULL) — adds submission and approval write access. Use this only when the agent needs to test the round-trip itself.
Rotate or revoke each key independently from Settings → API. Revocation is immediate; in-flight agent calls fail with a 401 within seconds.
What the agent cannot do
For safety reasons, MCP keys cannot delete organizations or forms with existing submissions, change the workspace plan, manage billing, or invite/remove users. Those are dashboard-only actions.