Furrow Forms

AI site builders · works with Furrow Forms

Contact forms for sites built with Claude Code

A form backend Claude Code can bootstrap in one MCP call.

paste this into your agent

Fetch furrowforms.com/ai and set up forms for this site.

agent-readable recipe: /forms-for/claude-code.md

prefer clicking? start in the dashboard

What the agent writes · src/pages/contact.astro
<form action="https://api.furrowforms.com/s/fp_k7m2" method="POST">
  <input type="text" name="_gotcha" style="display:none" tabindex="-1" />
  <input type="hidden" name="_ft" value="" />
  <script>document.currentScript.previousElementSibling.value = Date.now();</script>
  <input name="name" type="text" required />
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>

The gap

Why Claude Code sites need a form backend

Claude Code builds the site from the terminal — and then, like every agent, hits the form: there is a POST with nowhere to go, and every form service wants a human to sign up and paste a key back. Furrow Forms was built for this moment. The agent fetches one URL, registers the account via the API (you read a 6-digit code), provisions the client, site, and forms in a single bootstrap_site call, writes the snippet, and verifies the webhook. With the Furrow MCP server installed, every later change — new forms, Turnstile keys, notify emails, key rotation — is a prompt, not a dashboard visit.

01

Every form service breaks the agent’s run

The agent gets to the form and has to hand off. Furrow’s cold-start registration over REST means Claude Code can create the account and continue in the same session.

02

Spam arrives with the first deploy

Honeypot, timing field, and quarantine ship in every snippet the agent writes. Turnstile, allowed domains, and rate limits are project-level settings it can set in the same call.

03

Repeat sites, repeat setup

Project-level inheritance means the agent configures spam, email, and webhooks once per site and every form picks them up. bootstrap_site is idempotent, so re-running it is safe.

Two ways in

Set it up yourself, or don’t

Hand it to your agent

[ recommended ]

Furrow’s whole control plane is an API and MCP server. Paste this prompt into Claude Code, Cursor, or any agent — it does the rest:

paste this into your agent

Fetch furrowforms.com/ai and set up forms for this site.
  1. 1.Registers the account over POST /api/register — you read one 6-digit email code
  2. 2.Provisions the site: client, project, and forms in one idempotent bootstrap_site call
  3. 3.Pastes the generated snippet into your codebase
  4. 4.Fires test_webhook and verifies the signed delivery

Or do it by hand

  1. 01Paste the prompt into Claude Code. No account needed first.
  2. 02Read the 6-digit code Furrow emails you and paste it into the session.
  3. 03The agent provisions the site, edits your form markup, and fires a test webhook.
  4. 04Install the Furrow MCP server so future changes are one prompt away.

free tier: 100 subs/mo · unlimited forms · full API + MCP · pricing →

FAQ

Claude Code + Furrow Forms, answered

How do I add the Furrow MCP server to Claude Code?

Run `claude mcp add furrow-forms --transport http https://api.furrowforms.com/mcp` and authenticate with your frw_ token. The server exposes the full control plane — clients, projects, forms, snippets, submissions, and webhooks — as typed tools, including bootstrap_site.

Can Claude Code set this up with zero clicks from me?

One step is yours: reading the 6-digit registration code from your email and pasting it into the session. Everything else — account, site, forms, snippet, webhook verification — the agent does over the API.

Is this only for static sites?

It is for any site where the form lives in your codebase: plain HTML, Astro, Next.js, SvelteKit, and so on. Furrow is the backend behind the form; there is no hosted form page and no visual builder.

The form backend your agent can run.

paste this into your agent

Fetch furrowforms.com/ai and set up forms for this site.

Setup for agents →