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

# MCP-Server

> Lass einen Agenten Formulare erstellen, Snippets abrufen und Einsendungen direkt lesen - ohne Dashboard-Besuch.

<Info>**Kostenlos** - der MCP-Server ist nicht plan-gebunden. Jedes Konto kann ihn nutzen.</Info>

Formpaste liefert einen entfernten **MCP-Server** - das ist der [echte KI-agenten-native](https://formpaste.com/features/ai/) Integrationsweg. Es gibt keine separate REST-"Forms-API" oder "Provisioning-API"; ein Agent, der Formulare programmatisch erstellen oder verwalten will, tut das über diese MCP-Tools - genauso wie ein Mensch es über das Dashboard tut.

## Endpoint

```
POST https://api.formpaste.com/mcp
```

Zustandsloses entferntes MCP über Streamable HTTP - kein Session-/SSE-Handshake zu verwalten. Jede Anfrage trägt ihre eigene Authentifizierung und erhält eine in sich abgeschlossene Antwort.

## Auth

Jede Anfrage benötigt ein **Konto-API-Token** (`fpat_…`) als Standard-Bearer-Header:

```
Authorization: Bearer fpat_YOUR_TOKEN
```

Das ist das *einzige* Bearer-Token in Formpaste. Es steht in keinem Zusammenhang mit dem `access_key` eines Formulars (verwendet von [`POST /submit`](/docs/quickstart), nicht von `/mcp`) - siehe [Access-Key vs. API-Token](/docs/agents/api-tokens#access-key-vs-api-token), falls du unsicher bist, welches du brauchst.

Erstelle ein Token im Dashboard unter **Settings → API & MCP** - siehe [API-Token](/docs/agents/api-tokens) für Details, einschließlich der Tatsache, dass es genau einmal angezeigt wird.

Token können **eingeschränkt** werden: ein vollständiges Token kann jedes Tool nutzen, ein Setup-Token kann alles außer Einsendungen lesen (`list_submissions`). Siehe [API-Token](/docs/agents/api-tokens).

Ein fehlendes oder widerrufenes Token führt nicht zu einem generischen 401; der Tool-Aufruf liefert einen umsetzbaren MCP-Fehler zurück:

```
unauthorized: invalid or revoked API token - generate one in Settings → API tokens.
```

## Installation (ein Befehl)

Formpaste ist ein entfernter Server, daher verbinden sich die meisten MCP-Clients (Claude Code, Cursor, Claude Desktop) über [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) statt über einen lokalen Prozess. Füge das zu deiner Client-MCP-Konfiguration hinzu und setze dein eigenes Token ein:

```json theme={null}
{
  "mcpServers": {
    "formpaste": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.formpaste.com/mcp",
        "--header",
        "Authorization: Bearer fpat_YOUR_TOKEN"
      ]
    }
  }
}
```

Starte deinen Agenten/Client nach dem Speichern neu. Er sollte `formpaste` als verbundenen MCP-Server mit **sechs verfügbaren Tools** auflisten.

Für clientspezifische Anleitungen (Claude Code, Codex, Cursor, Claude Desktop, VS Code) siehe [Installation](/docs/agents/install).

## Die sechs Tools

| Tool                                                   | Purpose                                                                                                                            |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| [`create_form`](/docs/agents/create-form)                   | Erstellt ein Formular und liefert dessen `access_key` + ein fertig verdrahtetes Snippet zurück.                                    |
| [`get_snippet`](/docs/agents/get-snippet)                   | Ruft ein verdrahtetes Snippet für ein Framework ab, optional mit einem echten eingesetzten `access_key`.                           |
| [`list_forms`](/docs/agents/list-forms)                     | Listet deine Formulare mit IDs, Access-Keys und Zählern auf - um IDs zu entdecken oder zu bestätigen, dass ein Formular existiert. |
| [`get_form`](/docs/agents/get-form)                         | Liest die Konfiguration eines Formulars, um die Verdrahtung zu prüfen. Gibt nie das Webhook-Secret zurück.                         |
| [`send_test_submission`](/docs/agents/send-test-submission) | Speichert eine Testeinsendung, um zu belegen, dass ein Formular live ist. Keine E-Mail, keine Auswirkung auf das Kontingent.       |
| [`list_submissions`](/docs/agents/list-submissions)         | Liest die Einsendungen eines Formulars - standardmäßig Metadaten, vollständiger Inhalt nach Opt-in.                                |

Drei davon - `list_forms`, `get_form` und `send_test_submission` - erlauben einem Agenten, seine eigene Arbeit zu prüfen: IDs entdecken, die Konfiguration eines Formulars zurücklesen und belegen, dass es empfängt. Das ist die gesamte Tool-Oberfläche. Es gibt kein `update_form`, `delete_form` oder generisches CRUD - das wurde nicht gebaut. Wenn du das Ziel, erlaubte Domains oder andere Einstellungen eines Formulars ändern musst, mach das im Dashboard.

## Wofür es gedacht ist

Der MCP-Server existiert, damit ein Agent (Claude Code, Cursor oder alles andere, das MCP spricht) eine vollständige Aufgabe wie "füge dieser Site ein Kontaktformular hinzu" erledigen kann, ohne dass du deinen Editor verlässt: er ruft `create_form` auf, erhält einen `access_key` und ein verdrahtetes Snippet zurück, fügt das Snippet in dein Projekt ein und ruft, falls du es später auf Antworten prüfen lassen willst, `list_submissions` auf. Siehe [Cookbook-Prompts](/docs/agents/cookbook-prompts) für einsatzbereite Prompts, die das End-to-End steuern.

Wenn du lieber nichts installieren möchtest, funktioniert auch der `.env`-Weg: erstelle das Formular selbst im Dashboard, setze den `access_key` in `.env` und lass deinen Agenten das Snippet damit verdrahten. Keine MCP-Verbindung erforderlich - siehe die `.env`-Weg-Prompts im [Cookbook](/docs/agents/cookbook-prompts).

<CardGroup cols={2}>
  <Card title="Installation" icon="download" href="/docs/agents/install">
    Clientspezifisches Setup für jeden MCP-Client.
  </Card>

  <Card title="create_form" icon="wand-magic-sparkles" href="/docs/agents/create-form">
    Stelle ein Formular bereit und erhalte ein verdrahtetes Snippet zurück.
  </Card>

  <Card title="list_forms" icon="list" href="/docs/agents/list-forms">
    Entdecke Formular-IDs und bestätige, dass ein Formular existiert.
  </Card>

  <Card title="get_form" icon="magnifying-glass" href="/docs/agents/get-form">
    Lies die Konfiguration eines Formulars, um die Verdrahtung zu prüfen.
  </Card>

  <Card title="send_test_submission" icon="paper-plane" href="/docs/agents/send-test-submission">
    Belege mit einer Testeinsendung, dass ein Formular live ist.
  </Card>

  <Card title="Fehlerbehebung" icon="wrench" href="/docs/agents/troubleshooting">
    Behebe Verbindungs-, Auth- und Scope-Probleme.
  </Card>
</CardGroup>
