send.webforms.toRead the docs →

Documentation

MCP server

A Model Context Protocol server at agents.webforms.to lets Claude, ChatGPT and any MCP-compatible client answer questions about your forms directly - no copy-pasting submissions into a chat. Available on Pro and Agency, the same plans as the Submissions API.

Why a separate server

The REST APIs (read and write) are for your own code. MCP is for handing an AI agent direct, structured access to a workspace so it can answer questions and take action on your behalf inside whatever client you already use - Claude Desktop, Cursor, or your own agent runtime.

Connecting a client

Endpoint: https://agents.webforms.to. Transport is JSON-RPC 2.0 over a single POST /. Authenticate with the same API key you would use for the REST API, as a bearer token or X-API-Key header.

claude_desktop_config.json
{
  "mcpServers": {
    "webforms": {
      "url": "https://agents.webforms.to",
      "headers": {
        "Authorization": "Bearer wf_live_your_key"
      }
    }
  }
}

Create the key the same way as any other: Settings → API keys in the dashboard. A key created for MCP works for the REST APIs too and vice versa - scopes, not the transport, decide what it can do.

Tools

Deliberately read-only. An API key handed to a language model should not be able to delete a form or change a plan, and a model that can only read cannot be talked into a destructive action by a prompt injected through a form submission - which is exactly the kind of content these tools return. To create or configure forms programmatically, use the write API directly.

  • list_formsList the forms in this workspace with their submission and spam counts.limit (1-100, default 25)
  • get_submissionsRead recent submissions for a form, newest first.formId (required), limit (1-50, default 20), includeSpam (default false)
  • search_submissionsSearch submission content across every form in the workspace.query (required), limit (1-50, default 20)
  • get_usageCurrent plan, submission quota and usage for this workspace.(none)
  • get_statsSubmission counts for this workspace over the last N days.days (1-90, default 7)

Scoping

Every tool call is scoped to the workspace the API key belongs to - there is no tool that accepts an organization id or a workspace parameter, so one customer's assistant cannot read another customer's submissions by guessing an id, and a prompt cannot talk it into trying.

Trying it without a client

The server answers a plain GET at the root with its own capabilities:

Terminal
curl https://agents.webforms.to/

And a tool call is a standard MCP JSON-RPC request:

Terminal
curl -X POST https://agents.webforms.to/ \
  -H "Authorization: Bearer wf_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_usage", "arguments": {}}}'

Get your endpoint

Free for 300 submissions a month. No card required.

Start free