Create contact forms, get HTML/React/Next.js snippets and read recent submissions on Formgong.
One address for any MCP client. No sign-in needed on this server.
3 read1 act
Grouped by tool name. At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
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.
https://formgong.com/mcphttps://formgong.com/oauth/register, so clients such as Claude Desktop, Cursor, VS Code, Lovable and Bolt can connect with a browser sign-in and no copy-pasted secret. A tool call without credentials returns 401 with WWW-Authenticate: Bearer realm="formgong", resource_metadata="https://formgong.com/.well-known/oauth-protected-resource/mcp", scope="forms:read forms:write" (RFC 9728); metadata is at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource/mcp. Access tokens last 1 hour and rotate with refresh tokens.Authorization: Bearer fgp_… for clients that only send static headers.initialize, ping and tools/list work unauthenticated, so clients and directories can see the tools before signing in.forms:read (always granted), forms:write, submissions:read (off unless requested).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).
A short reusable server card lists the connection details, scopes and example prompts.
X-Signature, up to 5 delivery attempts) come with step-by-step recipes for Make, n8n, Zapier and KeyCRM.| 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. |
list_webhooks | forms:read | Lists a form's webhooks (form_id): id, URL and creation time, never the signing secret. |
create_webhook | forms:write | Adds a public https webhook to a form, so n8n, Make or Zapier can register their trigger URL. Returns the form's signing secret. Plan limit per form. |
delete_webhook | forms:write | Removes one webhook from a form you own. |
list_website_templates | forms:read | Lists free, MIT-licensed website templates (complete sites with the contact form already wired to Formgong): niche, live demo, source, HTML download and a start command. Optional topic. Start a new site from one instead of generating every page. |
Clients with an OAuth connector skip this step entirely — they sign you in through the browser. Create a token only for clients that send a static Authorization header.
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.~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"formgong": {
"url": "https://formgong.com/mcp",
"auth": { "CLIENT_ID": "cursor", "scopes": ["forms:read", "forms:write"] }
}
}
}
claude mcp add --transport http formgong https://formgong.com/mcp
Approve the browser sign-in. If you prefer a personal token, add --header "Authorization: Bearer fgp_your_token".
Settings → Connectors → Add custom connector, enter https://formgong.com/mcp and click Connect. Claude Desktop discovers the OAuth metadata from the 401 challenge, registers itself dynamically and opens a browser window where you approve the scopes — no token to paste.
If your client can't do OAuth and only sends static headers, 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" }
}
}
}
.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}" }
}
}
}
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"formgong": {
"serverUrl": "https://formgong.com/mcp",
"headers": { "Authorization": "Bearer ${env:FORMGONG_TOKEN}" }
}
}
}
https://formgong.com/mcp. Keep Direct connection and OAuth; click Add & authorize, sign in to Formgong and approve the permissions. A personal token also works through Bearer token or API key.https://formgong.com/mcp?auth=required. Transport: HTTP. Authentication: MCP OAuth. Click Connect, sign in and approve the permissions, then turn on the connector for your project. API key remains available with a personal Formgong token.The setup controls are documented by Lovable and Bolt. The Bolt URL requests authentication before initialization so anonymous discovery is not mistaken for an authorized connection. A connector lets the builder obtain code; the published contact form still posts directly to Formgong.
Open the + menu beside the prompt and choose MCPs. Configure a custom server with URL https://formgong.com/mcp, choose Bearer Token and paste your personal Formgong API token. These controls are documented in v0 MCP Integrations. Use a personal token because Formgong does not currently allow v0 OAuth callbacks. The v0 contact-form guide also has a direct form prompt; the published form sends directly to Formgong.
Clients that support remote MCP over Streamable HTTP can use the same URL with a personal token. Browser sign-in requires a callback accepted by Formgong: the listed Cursor/Claude/VS Code callbacks, Lovable’s exact https://api.lovable.dev/workspaces/connectors/mcp/oauth/callback callback, HTTPS on exactly lovable.dev or bolt.new (no subdomains, nonstandard ports, userinfo, query or fragment), or an HTTP loopback callback. Each dynamic client stays bound to its complete registered URI. Other hosted origins are refused even when a client calls itself Lovable or Bolt. Stdio-only clients can use the mcp-remote bridge.
forms:read, forms:write, submissions:read), stored only as hashes, can expire, and can be revoked in the dashboard.submissions:read is never granted unless the client asks for it, access tokens expire after 1 hour, refresh tokens after 30 days with rotation, and every connected app is listed under Dashboard → Account → Connected apps, where you can revoke it. https://formgong.com/oauth/revoke implements RFC 7009.401 with a JSON-RPC error (code -32001) whose data carries resourceMetadata, so a client can start the OAuth flow or tell the user where to create a token.formgong (npx formgong init), create-formgong, @formgong/react and packages for Next.js, Vue, Svelte, Astro and AngularMIT © Formgong. This license covers the documentation and config in this repo. The hosted service is covered by https://formgong.com/terms.