Form backend an agent runs end to end: provision forms, snippets, spam, signed webhooks.
One address for any MCP client. No sign-in needed on this server.
11 read13 act3 other
Grouped by tool name. At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
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.
| Path | What |
|---|---|
packages/mcp | @furrowforms/mcp — stdio bridge to the hosted MCP server (npx -y @furrowforms/mcp) |
skills/furrow-forms | Installable 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.json | Official MCP Registry entry |
AGENTS.md | The 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 |
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.
POST /api/register mints a token without a human signup flow.bootstrap_site is idempotent; re-run it freely._gotcha honeypot, _ft timing field, server-side quarantine; Turnstile, domain allowlist, and rate limits at the project./ai.md, /llms.txt)MIT