Formgong
Remote MCP server for Formgong, a form backend for static and AI-built sites: create contact forms, get ready-to-paste HTML/React/Next.js code with the access key, list forms and read recent submissions. Leads go to Telegram and email, EU data. Streamable HTTP; Bearer API token.
Hosted MCP Server
npx add-mcp 'https://formgong.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Formgong MCP server
Formgong is a form backend with a free plan for static and AI-built sites: it delivers submissions to Telegram and email, stores data in the EU, and works in 12 languages.
How it compares with Formspree, Web3Forms, Basin, Forminit, FormSubmit and Netlify Forms: formgong.com/en/compare
A remote Model Context Protocol server for Formgong, a hosted form backend for static and AI-built websites. Your AI assistant can create contact forms, get ready-to-paste form code and read recent submissions, so you never have to copy access keys by hand.
- URL:
https://formgong.com/mcp - Transport: Streamable HTTP. It's stateless and returns JSON responses.
- Auth:
Authorization: Bearer fgp_…with a personal API token, needed for tool calls.initialize,pingandtools/listwork without a token, so clients and directories can see the tools. OAuth is not supported (noWWW-Authenticatechallenge, no/.well-known/oauth-*documents). - Docs: https://formgong.com/en/docs/mcp/ (in 12 languages)
There's nothing to install: the server runs on formgong.com. This repo holds the documentation and the server.json for the official MCP Registry (com.formgong/mcp).
What Formgong does
- Delivery: email and Telegram on every plan, including Free. Telegram connects with one button, groups included. Signed JSON webhooks (HMAC-SHA256
X-Signature, up to 5 delivery attempts) come with step-by-step recipes for Make, n8n, Zapier and KeyCRM. - EU data: submissions are stored in the EU (Cloudflare D1 with EU jurisdiction), and the IP address is kept only as a hash. A standard Art. 28 DPA is part of the Terms.
- Spam: no CAPTCHA puzzle and no cookies. There's a honeypot, cookie-free checks and optional Cloudflare Turnstile on every plan. Plain HTML forms without JavaScript keep working.
- 12 languages: the thank-you page, errors and auto-reply follow the visitor's language.
- Agencies: Projects group forms per client (up to 100 on every plan), with view-only client invites and handover to the client's own account.
- Pricing: the free plan has 300 submissions a month and unlimited forms. Pro is $5 a month and Business $15 (as of Oct 2026). Free shows a small "Form powered by Formgong" link on the hosted thank-you page and in emails.
Tools
| Tool | Scope | What it does |
|---|---|---|
list_forms | forms:read | Lists your forms: id, name, public access key (fk_…) and submissions this month. |
create_form | forms:write | Creates a form (name, notify_email). Submissions are emailed to your account address. It returns the form id, the access key and dashboard links for connecting Telegram and extra recipients. Limit: 10 new forms per hour. |
get_form_snippet | forms:read | Returns code for one form (form_id, framework: html / react / next, lang), with its access key, the _lang field, the botcheck honeypot, and Turnstile when it's enabled. |
list_recent_submissions | submissions:read | Read-only and opt-in. Returns up to 50 recent submissions with time and submitted fields only (no IP or user agent). Spam is excluded by default. Field values are marked as untrusted visitor input. |
1. Create an API token
- Sign up at https://formgong.com (the free plan includes 300 submissions a month, and data is stored in the EU), then confirm your email.
- Open Dashboard → Account → API tokens.
- Name the token after the tool that will use it, and choose the access:
- "Create forms" is on by default.
- "Read recent submissions" is off unless you turn it on.
- You can set an optional expiry.
- Copy the token (
fgp_…). It's shown only once, and Formgong stores only a hash of it. You can revoke it from the same page at any time.
2. Add the server to your client
Cursor
~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"formgong": {
"url": "https://formgong.com/mcp",
"headers": { "Authorization": "Bearer ${env:FORMGONG_TOKEN}" }
}
}
}
Claude Code
claude mcp add --transport http formgong https://formgong.com/mcp \
--header "Authorization: Bearer fgp_your_token"
Claude Desktop
Custom connectors in Settings → Connectors require OAuth, which Formgong doesn't support yet. Instead, use the mcp-remote bridge (it requires Node.js) in claude_desktop_config.json, then restart Claude Desktop:
{
"mcpServers": {
"formgong": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://formgong.com/mcp", "--header", "Authorization:${FORMGONG_AUTH}"],
"env": { "FORMGONG_AUTH": "Bearer fgp_your_token" }
}
}
}
VS Code (Copilot agent mode)
.vscode/mcp.json. VS Code asks for the token once and stores it securely:
{
"inputs": [{ "type": "promptString", "id": "formgong-token", "description": "Formgong API token (fgp_…)", "password": true }],
"servers": {
"formgong": {
"type": "http",
"url": "https://formgong.com/mcp",
"headers": { "Authorization": "Bearer ${input:formgong-token}" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"formgong": {
"serverUrl": "https://formgong.com/mcp",
"headers": { "Authorization": "Bearer ${env:FORMGONG_TOKEN}" }
}
}
}
Lovable and Bolt
- Lovable: go to Settings → Connectors → Custom MCP server. Enter URL
https://formgong.com/mcp, choose "Bearer token or API key", and paste only the token (without the wordBearer). - Bolt: go to Settings → Connectors (MCP) → Custom MCP server. Enter URL
https://formgong.com/mcp, set Transport to HTTP and Authentication to API key, then paste the token.
Other clients
Any client that supports remote MCP over Streamable HTTP with custom headers works with the same URL and header. Clients that only support stdio can use the mcp-remote bridge shown above.
Try it
- "Create a Formgong form called 'Contact – acme.com' and add it to the contact page as a React component."
- "List my Formgong forms and give me the Next.js snippet for the newest one in German."
- "Show the last 5 submissions of my contact form." (This needs a token with "Read recent submissions".)
Security
- Tokens are scoped (
forms:read,forms:write,submissions:read), stored only as hashes, can expire, and can be revoked in the dashboard. - Each token can make 60 requests a minute. Requests without a token are limited to 30 a minute per IP, and failed authentication attempts are rate-limited per IP.
- A tool call without a valid token gets a JSON-RPC error (code
-32001) that says how to add the header and where to create the token. - The tools only see forms the token owner owns. Submissions never include IP addresses or user agents.
- Report security issues to support@formgong.com.
Related
- Starters: nextjs-starter, astro-starter, html-starter, react-contact-form
- npm (source):
formgong(npx formgong init),create-formgong,@formgong/reactand packages for Next.js, Vue, Svelte, Astro and Angular - Integration recipes (Make, n8n, Zapier, KeyCRM): https://formgong.com/en/integrations/
- Docs for AI builders: https://formgong.com/en/docs/
License
MIT © Formgong. This license covers the documentation and config in this repo. The hosted service is covered by https://formgong.com/terms.