Zum Inhalt springen

Anleitung · Framework

Formfeed in Claude Agent SDK

Das Agent SDK ist Claude Code als Bibliothek. Übergeben Sie Formfeed als MCP-Server und erlauben Sie seine Werkzeuge per Namensmuster; das SDK startet den Server und führt die Werkzeugschleife.

  1. Test-Schlüssel anlegen

    Melden Sie sich in der App an, öffnen Sie API-Schlüssel und legen Sie einen Schlüssel in der Testumgebung an. Testrenderings werden nicht berechnet, genau richtig, solange ein Agent Ihre Vorlagen noch kennenlernt. Für den Produktivbetrieb wechseln Sie auf einen Live-Schlüssel.

  2. Pakete installieren

    Shell
    npm install @anthropic-ai/claude-agent-sdk
    # or: pip install claude-agent-sdk
  3. Den Formfeed-Server hinzufügen

    mcpServers (TypeScript) oder mcp_servers (Python) nimmt dieselbe stdio-Form wie eine Claude-Code-Konfiguration. MCP-Werkzeuge heißen mcp__<server>__<tool>, mcp__formfeed__* erlaubt also alle acht.

    agent.tsTypeScript
    import { query } from '@anthropic-ai/claude-agent-sdk';
    
    const prompt = 'Render invoice 2026-0042 for Olvarest GmbH: 8 hours of consulting at 120 EUR.';
    
    for await (const message of query({
      prompt,
      options: {
        mcpServers: {
          formfeed: {
            command: 'npx',
            args: ['-y', '@formfeed/mcp'],
            env: { FORMFEED_API_KEY: process.env.FORMFEED_API_KEY! },
          },
        },
        allowedTools: ['mcp__formfeed__*'],
      },
    })) {
      if (message.type === 'result' && message.subtype === 'success') {
        console.log(message.result);
      }
    }
    agent.pyPython
    import asyncio
    import os
    
    from claude_agent_sdk import ClaudeAgentOptions, ResultMessage, query
    
    options = ClaudeAgentOptions(
        mcp_servers={
            "formfeed": {
                "command": "npx",
                "args": ["-y", "@formfeed/mcp"],
                "env": {"FORMFEED_API_KEY": os.environ["FORMFEED_API_KEY"]},
            }
        },
        allowed_tools=["mcp__formfeed__*"],
    )
    
    
    async def main() -> None:
        prompt = "Render invoice 2026-0042 for Olvarest GmbH: 8 hours of consulting at 120 EUR."
        async for message in query(prompt=prompt, options=options):
            if isinstance(message, ResultMessage):
                print(message.result)
    
    
    asyncio.run(main())
  4. Verbindung prüfen

    Die erste Nachricht eines Laufs ist eine System-Nachricht init mit den verbundenen MCP-Servern; formfeed sollte dort mit Status connected stehen.

Ausprobieren

  • Rechnung

    “Rendere Rechnung 2026-0042 an Olvarest GmbH: 8 Stunden Beratung zu 120 € und 20 Stunden Umsetzung zu 110 €. Nimm die deutsche Rechnungsvorlage.”

  • Prüfung

    “Prüfe, ob orders/2026-0042.json zur Vorlage invoice-de passt, bevor du irgendetwas renderst.”

  • HTML

    “Mach aus diesen Besprechungsnotizen ein einseitiges PDF. Ohne Vorlage, einfaches HTML genügt.”

Tipps

  • Für einen Agenten, den Ihre Kunden nutzen, bekommt jede Sitzung den Schlüssel des Workspace dieses Kunden. Der Schlüssel entscheidet, was der Agent sieht, nicht der Prompt.

Die acht Werkzeuge

list_templates
Vorlagen des Workspace mit Slug, Art (PDF, Bild, Word oder PowerPoint), Engine und veröffentlichter Version; filterbar nach Art, Engine, Tag oder Suchtext.
kostenlos
get_template_schema
Das JSON-Schema der Daten, die eine Vorlage erwartet, mit den Beispieldaten, mit denen sie gestaltet wurde. Speichert eine Vorlage kein Schema, wird eines aus den Beispieldaten abgeleitet: ein Anhaltspunkt, kein Vertrag.
kostenlos
validate_template
Prüft eine Vorlage mit den Daten, ohne zu rendern: Syntax, Variablen, die in den Daten fehlen, Fehler, die erst mit diesen Daten auftreten, und die Daten gegen das gespeicherte Schema der Vorlage. Ad-hoc-HTML wird offline geprüft.
kostenlos
check_invoice
Prüft den _invoice-Block einer E-Rechnung offline, wie die API es vor dem Rendern tut: die Felder, die EN 16931 verlangt, die Summen auf den Cent, Umsatzsteuerkategorien und Codelisten sowie die Regeln Frankreichs. Nennt jedes Feld und jede Regel, die er verletzt.
kostenlos
render
Rendert eine Vorlage oder rohes HTML zu PDF, PNG, JPG oder WebP (Word- und PowerPoint-Vorlagen auch zu DOCX oder PPTX) und liefert Download-URL, Seitenzahl und Einheiten. Mit einvoice wird das PDF eine ZUGFeRD- / Factur-X-E-Rechnung mit dem Bericht des Validators, für eine Einheit mehr (live ab dem Starter-Plan).
1 Einheit, PDFs je 5 Seiten
convert_to_pdf
Wandelt ein Word-, Excel-, PowerPoint-, OpenDocument-, RTF- oder HTML-Dokument bis 20 MB oder das Rendering einer Word- oder PowerPoint-Vorlage in ein PDF um und liefert die Download-URL; das Dokument wird nicht aufbewahrt. Der lokale Server liest eine Datei auch über ihren Pfad. Ab dem Starter-Plan.
wie ein PDF
get_render
Status, Download-URL und Fehler eines Renderings: für Renderings, die der Agent mit wait: false eingereiht hat, und für einen frischen Link, wenn der alte abgelaufen ist.
kostenlos
get_workspace
Workspace und Organisation, in denen der Server arbeitet, der Tarif, die Umgebung und die Einheiten des Zeitraums: wie viele Renderings noch bleiben.
kostenlos

Konfigurationsreferenz: Anthropic — Claude Agent SDK (geprüft 17. Oktober 2026)

Weitere Anleitungen

Automatisierung

Heute mit dem Rendern beginnen

Der kostenlose Plan enthält 100 Einheiten im Monat und kostenlose Testrenderings. Wechseln Sie den Plan, wenn Sie mehr brauchen.