> ## 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.

# Cookbook prompts

> Copy-paste prompts for AI coding agents, in matched .env and MCP pairs.

Two integration paths work today, and each has its own kind of prompt. Pick whichever
matches your setup - you don't need both.

* **`.env` path** - works with *any* agent, no install. You create the form yourself in
  the dashboard, put the `access_key` in `.env`, and prompt your agent to wire the
  snippet using it.
* **MCP path** - frictionless after a one-time install. Your agent is connected to the
  [MCP server](/docs/agents/mcp-server) and provisions the form itself via
  [`create_form`](/docs/agents/create-form), with no dashboard visit at all.

Every prompt below targets a capability that's actually shipped - nothing here
describes a REST API, a component that doesn't exist yet, or a CAPTCHA step.

## Contact form

**`.env` path** - create the form in the [dashboard](https://app.formpaste.com)
first, put `FORM_PASTE_ACCESS_KEY=fp_...` in `.env`, then prompt:

```
Create a contact form using the access key in .env
```

**MCP path** - with the MCP server connected (see [Install](/docs/agents/mcp-server#install-one-command)):

```
Create a contact form for my site
```

The agent calls `create_form`, gets back an `access_key` and a wired snippet, and
pastes the snippet into your project. If the destination email is new, it'll tell you
to check your inbox for a verification code - see
[create\_form → Destination verification](/docs/agents/create-form#destination-verification-two-outcomes)
for why that step can't be automated away.

## Feedback form

```
Create a feedback form using the access key in .env
```

```
Create a feedback form for my site
```

Same mechanics as the contact form - this just tells the agent which fields make
sense (feedback text, optional rating) rather than name/email/message.

## Newsletter signup

```
Create a newsletter signup form using the access key in .env
```

```
Create a newsletter signup form for my site
```

A minimal form (email + submit) - good for testing the redirect-after-submit flow;
see [Redirects](/docs/features/redirects) if you want visitors to land on a "thanks for
subscribing" page.

## Framework-specific

Name the framework and Formpaste renders that framework's snippet instead of plain
HTML:

```
Create a contact form for my Next.js app using the access key in .env
```

```
Create a contact form for my Astro site
```

Supported framework names: HTML, React, Next.js, Astro, Vue, Svelte - see
[Framework snippets](/docs/framework-snippets) for what each one looks like.

## Checking submissions

MCP-only (this needs a live tool call, not just a snippet to paste):

```
Has anyone submitted my contact form today?
```

The agent calls [`list_submissions`](/docs/agents/list-submissions) and summarizes the
result. By default it only sees metadata (counts, timestamps, status) - it won't see
message content or visitor emails unless you specifically ask for that, e.g.:

```
Show me the last 5 messages from my contact form, including what people wrote.
```

That phrasing is what should push the agent to pass `includeContent: true` - see
[list\_submissions → PII posture](/docs/agents/list-submissions#metadata-only-by-default-the-pii-posture)
for why that's opt-in rather than the default.

## Verify your work

Once a form is created and wired, have the agent prove it is live before you move on.

**Create, wire, and verify end to end:**

```
Using the Formpaste MCP server, create a contact form, wire the snippet into my site,
then send a test submission and confirm the form is receiving.
```

**Confirm an existing form is wired correctly:**

```
Using the Formpaste MCP server, read back my contact form's config and check the
destination is verified, then send a test submission to confirm it is live.
```

**List my forms:**

```
Using the Formpaste MCP server, list my forms and tell me which ones have unread
submissions.
```

## Why prompts, not docs, are the integration unit

The prompt - not the endpoint - is what developers actually copy and share. Every
prompt above is a real, working instruction against a shipped capability: no fictional
REST calls, no components that don't exist yet, no CAPTCHA step to configure. If a
prompt here ever stops working against the current build, that's a docs bug - open an
issue rather than assuming your agent did something wrong.

<CardGroup cols={2}>
  <Card title="MCP server" icon="server" href="/docs/agents/mcp-server">
    Install steps for the MCP path.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/docs/quickstart">
    The manual, no-agent version of the same flow.
  </Card>
</CardGroup>
