> ## Documentation Index
> Fetch the complete documentation index at: https://formpaste.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# get_form

> MCP tool - read one form's config so an agent can verify its own work. Never returns the webhook signing secret.

<Info>**Free** - like the rest of the MCP server, `get_form` is not plan-gated.</Info>

Reads one of your forms so an agent can verify it is wired correctly: the `access_key`
it should have put in the snippet, whether the destination is verified (so submissions
will actually be emailed), the allowed domains, and the notification, autoresponder, and
webhook config. This is the read-back half of the "create, wire, verify" loop.

## Input schema

| Field    | Type     | Required | Notes                                     |
| -------- | -------- | -------- | ----------------------------------------- |
| `formId` | `string` | yes      | The form to read (`frm_…`), owner-scoped. |

## Example call

```json theme={null}
{
  "name": "get_form",
  "arguments": { "formId": "frm_..." }
}
```

## Returned shape

```json theme={null}
{
  "id": "frm_...",
  "name": "Contact form",
  "access_key": "fp_...",
  "destination_email": "you@example.com",
  "destination_verified": true,
  "allowed_domains": ["example.com"],
  "created_at": 1720700000000,
  "notification": { "subject": null, "sender_name": null, "reply_to_field": "email" },
  "autoresponder": { "enabled": false },
  "webhook": { "url": null, "enabled": false }
}
```

| Field                  | Type       | Meaning                                                                                                                               |
| ---------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `destination_verified` | `boolean`  | Whether the destination is verified. If `false`, submissions are stored but not emailed until the owner verifies it in the dashboard. |
| `allowed_domains`      | `string[]` | Origins allowed to submit; empty means allow all.                                                                                     |
| `webhook`              | `object`   | The webhook `url` and `enabled` flag only.                                                                                            |

<Note>
  `get_form` never returns the webhook signing secret (`webhook_secret`). That secret
  belongs to the server receiving the webhook, not to an agent wiring the form, so it is
  deliberately excluded from this response.
</Note>

## Errors

A `formId` that doesn't exist, or isn't owned by the account behind the token, returns:

```
not_found: no form with that id on your account
```

An invalid or revoked token returns the same auth error as every MCP tool - see
[MCP server](/docs/agents/mcp-server#auth).

<CardGroup cols={2}>
  <Card title="send_test_submission" icon="paper-plane" href="/docs/agents/send-test-submission">
    Prove the form is live by storing a test submission.
  </Card>

  <Card title="list_forms" icon="list" href="/docs/agents/list-forms">
    Discover the formId to read here.
  </Card>
</CardGroup>
