FormLoom

FormLoom + Zed

MCP via config

Zed's assistant supports context servers (MCP). Add FormLoom to scaffold forms.

1. Add the MCP server

Add this to Zed settings.json:

Zed settings.json
{
  "mcpServers": {
    "formloom": {
      "command": "npx",
      "args": ["-y", "@formloom/mcp"]
    }
  }
}

2. Ask for a form

Type a prompt like:

Add a contact form to this Astro page using FormLoom.

What you get back

Zed calls get_snippet + provision_endpoint and writes framework-correct code with a live access key — it works on first run:

app/contact/page.tsx
// app/contact/page.tsx — Next.js 15 App Router, Server Action
export default function ContactPage() {
  async function submit(formData: FormData) {
    "use server";
    const res = await fetch("https://formloom.vercel.app/api/submit/fl_provisioned_key", {
      method: "POST",
      headers: { "Content-Type": "application/json", Accept: "application/json" },
      body: JSON.stringify(Object.fromEntries(formData)),
    });
    // FormLoom scores spam, stores the row, and emails you — no backend to wire.
    return res.json();
  }

  return (
    <form action={submit}>
      <label>
        Name
        <input type="text" name="name" required />
      </label>
      <label>
        Email
        <input type="email" name="email" required />
      </label>
      <label>
        Message
        <textarea name="message" required placeholder="How can we help?"></textarea>
      </label>
      <!-- honeypot: bots fill this, humans don't see it -->
      <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
      <button type="submit">Send</button>
    </form>
  );
}

Steps

  1. 1Add the FormLoom context server to Zed's settings.
  2. 2Restart the assistant.
  3. 3Ask it to wire a form.

FAQ

Yes — via context servers in Zed's settings. Add the FormLoom server there.
Add a form with Zed in one prompt — FormLoom MCP · FormLoom