Home/Docs/MCP Server

MCP Server

Form Dump exposes a Model Context Protocol server so AI agents can create forms, read submissions, and manage your account programmatically — no custom API integration required.

Zero-config — no account needed

AI builders like Lovable, v0, and Bolt can create a live form backend with a single fetch call — no account, no API key, no configuration. Just POST to https://formdump.com/api/new and use the returned URL as the form's action.

Create an endpoint (no auth)
const res = await fetch("https://formdump.com/api/new", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "Contact Form" }),
});
const { endpoint_url, claim_url } = await res.json();
// endpoint_url → use as <form action={endpoint_url}>
// claim_url    → show to the user so they can claim their data
Response
{
  "endpoint_url": "https://formdump.com/api/f/<id>",
  "claim_url":    "https://formdump.com/claim/<token>",
  "expires_at":   "2025-05-02T00:00:00.000Z"
}

Endpoints expire after 7 days unless the user visits the claim_url and creates a free account. After claiming, the form and all its submissions are theirs permanently.

Quick start (with account)

Connect an authenticated agent to unlock all tools — form management, submission history, and more.

  1. 1

    Generate an API key

    Go to Dashboard → Settings, click Generate API key, and copy the key that appears. Keep it secret — it grants full access to your forms and submissions.

  2. 2

    Add the server to your client

    Paste the following into your MCP client config, replacing YOUR_API_KEY with the key from step 1.

    claude_desktop_config.json
    {
      "mcpServers": {
        "form-dump": {
          "url": "https://formdump.com/api/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_KEY"
          }
        }
      }
    }
  3. 3

    Start talking to your forms

    Restart your AI client and ask it something like "List my forms" or "Create a form called Contact and give me the submission URL". The agent will call the right tool automatically.

Connection details

The server uses the Streamable HTTP transport — the standard for remote MCP servers. It is stateless: each request is fully independent, so no persistent connection is required.

PropertyValue
URLhttps://formdump.com/api/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer <api_key> (optional for create_endpoint)
Session modeStateless

Available tools

The server exposes ten tools covering the full lifecycle of forms and submissions. create_endpoint is available without authentication — all others require a Bearer token.

create_endpoint

no auth required

Creates an anonymous form endpoint with zero configuration. Returns a submission URL ready to use as a form action, a claim link for the user to take ownership, a ready-to-paste HTML snippet, and an expiry date (7 days). No account or API key needed.

namestring · optionalHuman-readable label for the form (e.g. 'Contact Form', 'Waitlist').
notify_emailstring · optionalEmail address to notify on each new submission.
redirect_urlstring · optionalURL to redirect the browser to after a successful submission.
Response shape
{
  "endpoint_url": "https://formdump.com/api/f/<id>",
  "claim_url":    "https://formdump.com/claim/<token>",
  "html_snippet": "<form action="..." method="POST">...</form>",
  "expires_at":   "2025-05-02T00:00:00.000Z"
}

list_templates

no parameters

Returns all available form templates with their IDs, names, descriptions, and HTML snippets. Use this before create_form to browse available options.

list_forms

no parameters

Returns every form in your account with its ID, name, creation date, submission count, and submission endpoint URL.

get_form

Returns details for a single form.

form_idstring — The ID of the form to look up.

create_form

Creates a new form and returns its ID and the HTTPS endpoint to which HTML forms or API clients should POST submissions.

namestringA human-readable label for the form (e.g. Contact form).
templatestring · optionalTemplate ID (e.g. "contact", "waitlist"). Run list_templates to see all available options.
stylestring · optional"classic" (default) or "conversational". Determines which snippet variant is returned. Only used when template is provided.

delete_form

irreversible

Permanently deletes the form and every submission it contains.

form_idstring — The ID of the form to delete.

list_submissions

Returns submissions for a form, newest first. Supports pagination and optional spam inclusion.

form_idstring The form to query.
limitnumber · optional Maximum results to return. Defaults to 25, max 100.
offsetnumber · optional Number of results to skip for pagination. Defaults to 0.
include_spamboolean · optional Include spam-flagged submissions. Defaults to false.

get_submission

Returns the full data payload for a single submission, including its spam score and timestamp.

form_idstring The form the submission belongs to.
submission_idstring The submission ID.

delete_submission

irreversible

Permanently deletes a single submission.

form_idstring The form the submission belongs to.
submission_idstring The submission to delete.

Example prompts

Natural language requests your agent can handle once the server is connected.

"

Create a contact form endpoint and give me the HTML snippet and claim link.

"
"

List all my forms and how many submissions each has received.

"
"

Create a form called 'Job Applications' and give me the endpoint URL.

"
"

Show me the last 10 submissions from my Contact form.

"
"

Delete all spam submissions from form abc123.

"
"

Read the most recent submission and summarise it.

"
"

List available form templates

"
"

Create a waitlist form and give me the conversational HTML snippet

"
"

What templates do you have for job applications?

"

Security

A few things worth knowing about how API keys work.

One key per account

Each account has at most one MCP API key at a time. Generating a new key immediately invalidates the previous one.

Full account scope

The key grants access to all forms and submissions in your account. Treat it like a password — do not commit it to source control or share it publicly. Use environment variables or a secrets manager to store it.

Revoking a key

Go to Dashboard → Settings and click Revoke. All MCP clients using the old key will immediately lose access. Generate a new key whenever you need to reconnect.

Questions? Contact support