Adds the Formhaus MCP server to Claude Code, Codex, Cursor and Claude Desktop. Writes, checks and repairs definitions locally, with no account · Setup for each client
Two independent ways to use it:
Use the library. MIT, no account, no key. The core is framework-agnostic and runs the form in any app; React and Vue renderers are ready to use. Your submit handler sends the data wherever you want. CI tests React 18 and 19, and Vue 3.3 and 3.5.
MCP server for authoring and checking Formhaus form definitions: validation, path simulation and capabilities.
2026-11-14
ดาว
—
เครื่องมือ
—
อัปไทม์
—
npm install @formhaus/core # plus @formhaus/react or @formhaus/vue
Use Formhaus Cloud. A hosted form backend: a submission endpoint with server validation, a dashboard and webhooks, plus hosted links, embeds and a visual builder. The first form needs no account.
Build in the browser at app.formhaus.dev, or add the remote MCP server and ask your agent: "Make me a waitlist form and give me the link."
claude mcp add --transport http formhaus https://api.formhaus.dev/mcp
Zero-dependency form engine: types, validation, visibility, multi-step
npm i @formhaus/core
@formhaus/react
React adapter with native HTML defaults and custom component support
npm i @formhaus/core @formhaus/react
@formhaus/vue
Vue 3 adapter with native HTML defaults and custom component support
npm i @formhaus/core @formhaus/vue
@formhaus/mcp
MCP server: validate definitions and simulate paths from AI agents
claude mcp add formhaus -- npx -y @formhaus/mcp
@formhaus/figma generates form mockups on the Figma canvas. It is not on Figma Community yet; build it locally, then import packages/figma/manifest.json.
Svelte, Solid, or anything else: use @formhaus/core directly. See the Svelte recipe.
Or use @formhaus/core directly with any framework. See the Svelte recipe.
Quick start
Define a form
Write the JSON by hand, or use the /formhaus:formhaus-create-form Claude Code skill to generate it from a text description, a CSV table, or a screenshot of an existing form.
By default, both adapters render native HTML inputs. A step can hide Next with next: false, and cancellable async hooks run before and after navigation and submission. See lifecycle hooks.
Custom components
Both adapters accept a components prop (a FieldComponentMap) that lets you swap native HTML inputs for your own UI kit.
Each field component receives the full FormField descriptor, the current value, and any validation error. Implement as many or as few field types as you need. Unmapped types fall back to native HTML.
Figma plugin
@formhaus/figma renders form definitions in Figma with built-in Material 3 and iOS-like kits or with your own components. Branching forms get a flow map, multi-step forms a clickable prototype, and a generated form can be selected, edited and updated in place.