Skip to main content
The prompt goes into Build mode, standing rules go into the project’s Knowledge, and the app posts from the browser because the endpoint needs no key.

Connect over MCP

Connect over MCP

Formcarry’s MCP does everything you would do in the dashboard for your forms and submissions: create a form, set its recipients, spam blocker and webhooks, list and search submissions, mark spam, and read where each submission was delivered. Lovable connects to it as a chat connector, so it manages the form it built instead of only writing the front end.

Prerequisites

Before you start, you need:
  • A formcarry account. Sign up is free.
  • A form in the dashboard. Its endpoint is on the form’s Setup page. The examples use https://formcarry.com/s/AbC123xyz; put yours in its place.
  • The form’s name and id from its page in the dashboard, for the prompt.

1. Provide the instructions

In Build mode (the default), paste this into the chat field at the bottom of the panel on the left:
Build mode fetches outside documentation when asked. Lovable reads the project’s Knowledge with every message. To set a rule that holds for every later prompt, open Project settings > Knowledge and add it:

2. Check what it changed

Lovable’s reply says what changed, and Details lists every step and file change. For a diff, open History in the top bar and click View code changes. The Code tab shows every file; on the free plan it is read only. With GitHub connected under Project settings > Git, the change is also a commit. In the diff, check five things:
  • The endpoint in the form’s action or fetch URL matches the form’s Setup page, otherwise formcarry answers 401.
  • method="POST" on the form, or method: "POST" in the fetch call, otherwise the browser sends a GET and formcarry answers with a page that says GET is not allowed.
  • A name on every field, otherwise the browser leaves it out of the request and it never reaches formcarry.
  • email on the visitor’s address field, otherwise replying to the notification email goes nowhere and the auto response is not sent.
  • Accept: application/json when it posts from JavaScript, otherwise the answer is the thank you page’s HTML.

3. Send a test submission

Submit the form once in the preview on the right, or type “test this” in the chat. Browser testing then fills the form in the preview, submits it and reads the network requests. The submission is on the form’s page in the dashboard, and the notification email arrives at your account’s address. Wait 15 seconds before a second test rather than sending it at once, otherwise the same IP address gets a 429 for that form. Publish (top right) deploys a snapshot, so a change made after publishing goes live on the next publish.

Where the request runs

Lovable writes edge functions for work it decides cannot happen in the browser, such as calling other services, and for any API with a key. The formcarry endpoint needs no key, so the app calls it directly, with no edge function. If the request lands in an edge function or on a server anyway, ask Lovable to move it into the browser rather than accepting the edge function, otherwise no spam blocker token can be sent:

What’s next

Stuck? Write to help@formcarry.com. Include the form id.