FormLM — Claude Code MCP server: build forms and reports
Lets an AI agent create forms, scored quizzes and reports on the FormLM platform from the terminal, with no web UI involved.
claude mcp add --env FORMLM_TOKEN=<FORMLM_TOKEN> --env FORMLM_BASE_URL=<FORMLM_BASE_URL> --transport stdio formlm -- npx -y @formlm/cliWhat FormLM does
FormLM is a form and assessment platform. The @formlm/cli package reaches it in two ways: as a standalone CLI and as an MCP server you attach to Claude, Codex, Cursor, Copilot, Gemini CLI or another client. The agent gets 10 tools and turns a text description into a working app.
Generation runs in stages. smart plan locks the structure, smart execute builds the app, then you publish and audit. Dimension names stay put if you pass --dimensions "A|B|C"; --app-name pins the display name; --dry-run checks a prompt without leaving a leftover app behind. A plan can be written to a file with --save-plan and resumed later, after the server-side cache has expired.
You need a FORMLM_TOKEN, and some commands also want FORMLM_BASE_URL. Without the token the auth tools cannot sign in, so set it up in FormLM first. Read-only calls retry on 408, 429 and 5xx; writes are never retried automatically, which matters when you run batches.
What it helps with
- turn a written description into a working form
- pin scoring dimension names and count in a quiz
- audit an app for scoring gaps and empty expert blocks
- publish a form with anonymous access and get its link
- save a plan and resume the build after the cache expires
Example prompts for the agent
- Generate a feedback form with formlm_generate
- Run doctor on this app and list the findings
- Publish the form for anyone and give me the link
How to install FormLM
Platform CLI
claude mcp add --env FORMLM_TOKEN=<FORMLM_TOKEN> --env FORMLM_BASE_URL=<FORMLM_BASE_URL> --transport stdio formlm -- npx -y @formlm/cliReplace <…> with your own values
Platform CLI
codex mcp add formlm --env FORMLM_TOKEN=<FORMLM_TOKEN> --env FORMLM_BASE_URL=<FORMLM_BASE_URL> -- npx -y @formlm/cliReplace <…> with your own values
Config file
{
"mcpServers": {
"formlm": {
"command": "npx",
"args": [
"-y",
"@formlm/cli"
],
"env": {
"FORMLM_TOKEN": "<FORMLM_TOKEN>",
"FORMLM_BASE_URL": "<FORMLM_BASE_URL>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"formlm": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@formlm/cli"
],
"env": {
"FORMLM_TOKEN": "<FORMLM_TOKEN>",
"FORMLM_BASE_URL": "<FORMLM_BASE_URL>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e FORMLM_TOKEN=<FORMLM_TOKEN> -e FORMLM_BASE_URL=<FORMLM_BASE_URL> formlm npx -y @formlm/cliReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about FormLM
How do I install FormLM in Claude Code?
Run claude mcp add cli -e FORMLM_TOKEN=<FORMLM_TOKEN> -- npx -y @formlm/cli. The longer form is claude mcp add --env FORMLM_TOKEN=<FORMLM_TOKEN> --env FORMLM_BASE_URL=<FORMLM_BASE_URL> --transport stdio formlm -- npx -y @formlm/cli.
What does FormLM do?
It exposes the FormLM form and assessment platform to an agent: app generation, scoring, publishing and auditing, all driven from the terminal or a chat.
What do I need before running FormLM?
A FORMLM_TOKEN, plus FORMLM_BASE_URL for some commands. The package runs through npx, so Node.js has to be present.