Publish any FormLM form and get an endpoint that accepts JSON or native HTML form POSTs. CORS is fully enabled, unknown fields can auto-create their own columns, and every endpoint documents itself in Markdown at ?help — readable by humans and AI agents alike.
An MIT-licensed npm package that controls FormLM from the terminal: generate complete assessment apps from natural language, manage fields, scales, reports, and publishing. Run formlm-cli mcp and it becomes an MCP server any AI agent can plug into.
One endpoint, two formats, zero servers to run.
Every published form exposes a Data API endpoint. POST JSON to it and each request becomes a stored, queryable record — with a data-management UI, CSV export, and aggregate statistics for free. It works from static sites, local HTML files, scripts, IoT devices, and AI-generated pages, because CORS is enabled on both reads and writes.
curl -X POST https://formlm.me/api/v3/share/<your-token> \ -H "Content-Type: application/json" \ -d '{"data":{"name":"Ada","score":92}}' # Read it back — paginated JSON, up to 1000 records per page curl "https://formlm.me/api/v3/share/<your-token>/query?page=1&size=20" # The endpoint documents itself in Markdown — for you or your agent curl "https://formlm.me/api/v3/share/<your-token>?help"
| Endpoint | Method | What it does |
|---|---|---|
/{token} | POST | Store a record — JSON body, canonical shape {"data":{...},"meta":{...}} or flat objects |
/{token}/form | POST | Store a native HTML form submission (application/x-www-form-urlencoded) |
/{token}?help | GET | Return the endpoint's own Markdown API documentation — readable by AI agents |
/{token}/query | GET | Page through stored records as JSON |
/{token}/summary | GET | Aggregate statistics over the collected records |
Proof it holds up in production: the feedback form on FormLM's own contact page is a static form that POSTs straight to a Data API endpoint — the exact pattern documented above, running on our marketing site today.
Dive deeper into the use case that matches your stack:
npm package, MIT license, Node.js ≥ 18.
Install it, log in once — copy the Access Token from formlm.me → Account Settings (no password needed), or use the in-terminal email verification-code login — and the whole platform becomes scriptable. The highlight is smart generate: one natural-language instruction runs the server-side agent pipeline and produces a complete assessment app — form design, scoring dimensions, report pages, and visual styling included.
npm install -g @formlm/cli formlm-cli auth login --token <your-token> # token: formlm.me → Account Settings → Access Token → Copy # no token? run: formlm-cli auth login → choose the email verification-code option # Form + scales + report + styling, all in one command (60–300s) formlm-cli smart generate \ --input "Create a workplace stress assessment with 10 questions, 3 dimensions, and detailed score interpretations" # Get the fill-in, editor, and data-management URLs formlm-cli app urls --app <appId> # Publish it formlm-cli share publish --app <appId>
For fine-grained control there are 50+ commands across eight modules: app, field, scale, connect (page styling), report, expert, share, and profile — plus snapshot to dump all module states as JSON or Markdown, and skill to print the domain rule documents that keep generated content well-formed.
stdio transport · 8 tools · 6 resources · works with any MCP client.
Run formlm-cli mcp and the CLI becomes a standard MCP server. Connect Claude Desktop, Cursor, Codex CLI, Windsurf, Cline — or any MCP-compatible client — and the agent can build, inspect, and publish your forms conversationally, with the platform's P0 constraints embedded in every tool description so it doesn't drift.
| Tool | Tier | What the agent can do |
|---|---|---|
auth_login / auth_email_code / auth_status | 0 | Authenticate with an Access Token (recommended), email verification code, or email + password |
formlm_generate | 1 | Generate a complete app from natural language (AssessAgent pipeline) |
formlm_snapshot | 2 | Read the aggregated state of every module in one call |
formlm_skill | 2 | Fetch the SKILL.md domain rules for any module |
formlm_exec | 3 | Run any whitelisted CLI command directly |
Six MCP resources (formlm://skills/form, scale, connect, report, expert, share) expose the same domain knowledge the platform's own agents use — so your AI reads the rules before it writes the config. Full setup instructions, including the PATH fix for macOS desktop clients and per-platform config locations, live in the INSTALL guide on GitHub.
formlm-cli smart generate, then publish it.The questions we get from builders.
Two core tools. The Data API is an HTTP endpoint that stores submissions from any page — static sites, local files, or AI-generated apps — and lets you query the records back. formlm-cli is an open-source command-line tool and MCP server that lets you or an AI agent build and manage forms from the terminal.
Two ways. Read/write data: give your agent a Data API endpoint — it can read the endpoint's own documentation by appending ?help to the URL, then POST records directly. Build and manage forms: install formlm-cli and run formlm-cli mcp, then connect any MCP-compatible client such as Claude Desktop, Cursor, Codex CLI, Windsurf, or Cline.
Yes. Publishing a form and receiving submissions through the Data API is available on the free plan; paid plans add higher volumes and team features. There is no charge per API call on the free tier.
Yes — formlm-cli is MIT-licensed and published on npm as @formlm/cli. The source lives on GitHub at github.com/formlm/cli, and it works with any FormLM account, free or paid.
The MCP server exposes eight tools: auth_login, auth_email_code and auth_status for authentication, formlm_generate to create a complete assessment app from natural language, formlm_execute to run each plan module, formlm_snapshot to read all module states, formlm_skill to fetch domain rule documents, and formlm_exec to run any whitelisted CLI command. Six MCP resources also expose the skill documents directly to the agent.
Yes. Publish a form in FormLM, copy its Data API endpoint, and point your page at it — either a native HTML form action POST or a fetch call. CORS is enabled, so it works from static hosts and even from files opened directly off disk.