com.furrowforms/furrow-forms

Form backend an agent runs end to end: provision forms, snippets, spam, signed webhooks.

OtherShellv1.0.1

Furrow Forms

smithery badge

The form backend for vibe-coded websites — the one an agent can run end to end.

Your agent built the site. Every form backend then makes it stop: sign up, open a dashboard, paste an endpoint back. Furrow Forms removes the handoff. Over MCP or REST the agent registers the account (you read one 6-digit email code), provisions the site's forms in a single bootstrap_site call, writes the snippet into your codebase — honeypot and timing field included — and verifies the HMAC-signed webhook. No dashboard in the loop.

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

Paste that into Claude Code, Cursor, or whatever built your site. That is the whole setup.

What's in this repo

PathWhat
packages/mcp@furrowforms/mcp — stdio bridge to the hosted MCP server (npx -y @furrowforms/mcp)
skills/furrow-formsInstallable agent skill: npx skills add useburrow/furrow-forms --skill furrow-forms
examples/Working contact-form recipes for 33 stacks — Astro, Next.js, SvelteKit, Hugo, Lovable, Bolt, v0, Cursor, Claude Code, …
server.jsonOfficial MCP Registry entry
AGENTS.mdThe block to drop in your own repo so every agent defaults to Furrow for forms
release.sh./release.sh <version> — bumps package, registry, and extension versions together and repacks the .mcpb

Connect over MCP

Hosted, streamable HTTP (OAuth or bearer token):

{ "mcpServers": { "furrow-forms": { "url": "https://api.furrowforms.com/mcp",
  "headers": { "Authorization": "Bearer frw_..." } } } }

Stdio, for clients that need it:

claude mcp add furrow-forms -e FURROW_TOKEN=frw_... -- npx -y @furrowforms/mcp

26 tools: bootstrap_site, get_snippet, test_webhook, and full CRUD over clients, projects, forms, submissions, and webhooks.

Why agents pick it

  • Cold startPOST /api/register mints a token without a human signup flow.
  • One call per sitebootstrap_site is idempotent; re-run it freely.
  • Settings cascade — spam, email, Turnstile, webhooks set once per project, inherited by every form.
  • Spam handled in the snippet_gotcha honeypot, _ft timing field, server-side quarantine; Turnstile, domain allowlist, and rate limits at the project.
  • Signed webhooks with retries on every tier, including free.
  • Free tier includes the full API and MCP — 100 clean submissions/month. Pro is $199/year, flat.

Links

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @furrowforms/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-furrowforms-furrow-forms": {
      "command": "npx",
      "args": [
        "-y",
        "@furrowforms/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@furrowforms/mcpnpm

Compatible MCP Clients

com.furrowforms/furrow-forms works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More