# Formgong MCP: let the agent wire a contact form that actually delivers

**URL:** <https://forum.cursor.com/t/formgong-mcp-let-the-agent-wire-a-contact-form-that-actually-delivers/173725>\
**Category:** Built for Cursor\
**Tags:** mcp, web-dev\
**Created:** [October 4, 2026, 2:40pm UTC](https://forum.cursor.com/t/formgong-mcp-let-the-agent-wire-a-contact-form-that-actually-delivers/173725 "2026-10-04T14:40:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![formgong](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/formgong/32/122662_2.png) [@formgong](https://forum.cursor.com/u/formgong)\
**Post date:** [October 4, 2026, 2:40pm UTC](https://forum.cursor.com/t/formgong-mcp-let-the-agent-wire-a-contact-form-that-actually-delivers/173725/1 "2026-10-04T14:40:55Z")

</div>

Hi all. Disclosure first: we build Formgong, a hosted form backend, and this is our MCP server.

The problem we kept seeing: Cursor (or Lovable, v0, Bolt) generates a nice contact form, and it posts nowhere. Or it needs an API route + Resend + env vars that nobody set up. So we gave the agent a way to set up the backend part itself.

**What it is**

- Remote MCP server: `formgong.com/mcp` (Streamable HTTP, stateless, JSON responses)
- Auth: a personal API token, `Authorization: Bearer fgp_…`, created in Dashboard → Account → API tokens. Tokens are scoped (`forms:read`, `forms:write`, `submissions:read`), can expire and can be revoked.
- `initialize`, `ping` and `tools/list` work without a token, so you can look at the tools before signing up.

**Tools**

- `list_forms`: your forms with id, name and public access key
- `create_form`: name + notify email, returns the access key
- `get_form_snippet`: html, react or next code for one form, with the access key, the `_lang` field and the honeypot already filled in
- `list_recent_submissions`: read-only and opt-in (separate scope); no IP or user agent; spam excluded by default

**Cursor setup** (`~/.cursor/mcp.json` or `.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "formgong": {
      "url": "https://formgong.com/mcp",
      "headers": { "Authorization": "Bearer ${env:FORMGONG_TOKEN}" }
    }
  }
}

```

Then something like: _“Create a Formgong form called ‘Contact – [acme.com](http://acme.com)’ and add it to the contact page as a React component.”_

**Where the submissions go:** email and Telegram (Telegram is on the free plan too), plus signed JSON webhooks if you want n8n / Make / Zapier. Data is stored in the EU.

**Limits, honestly**

- No OAuth yet. Clients that only accept OAuth connectors need the `mcp-remote` bridge.
- `create_form` is limited to 10 new forms per hour. Each token gets 60 requests a minute.
- It doesn’t build forms visually. It creates the backend and gives the agent code to paste.

Free plan: 300 submissions a month. Paid plans start at $5/month (as of Oct 2026).

Docs (the Cursor-specific prompt is linked from there too): [Formgong MCP server for Cursor, Claude and VS Code](https://formgong.com/en/docs/mcp/?ref=cursor-forum)

I’d really like feedback on the tool design: are four tools the right cut, and what would you want the agent to be able to do that it can’t?

---

<div class="post-metadata">

**Author:** ![formgong](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/formgong/32/122662_2.png) [@formgong](https://forum.cursor.com/u/formgong)\
**Post date:** [October 4, 2026, 6:39pm UTC](https://forum.cursor.com/t/formgong-mcp-let-the-agent-wire-a-contact-form-that-actually-delivers/173725/4 "2026-10-04T18:39:21Z")

</div>

Small update: we added a few things for people building with agents.

- Rules files for coding agents (AGENTS.md, CLAUDE.md, a Cursor .mdc rule) so the agent keeps the form wired correctly on later edits: [Formgong rules for AGENTS.md, CLAUDE.md, Cursor | Formgong](https://formgong.com/en/docs/agent-rules/)
- A copy-paste prompt for Cursor (and Claude Code, Windsurf, Lovable, Bolt, v0, Replit) that wires a contact form end to end: [Cursor prompt for a contact form | Formgong](https://formgong.com/en/prompts/cursor/)

There’s also a free read-only form checker that tells you why a form on a live page might not deliver. Feedback welcome.
