Anleitung · Framework
Formfeed in Claude API
Es gibt zwei Wege, Claude die Formfeed-Werkzeuge über die Messages API zu geben. Das Python-SDK kann die Werkzeuge eines lokalen MCP-Servers für seinen Tool Runner einbinden, das funktioniert jetzt. Der MCP-Connector lässt die API einen entfernten Server selbst aufrufen; dafür braucht es den HTTP-Endpunkt.
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.
Pakete installieren
Shell pip install "anthropic[mcp]"Den Formfeed-Server hinzufügen
Beim Connector braucht jeder Server in
mcp_serverseinen passendenmcp_toolset-Eintrag intoolsund die Betamcp-client-2025-11-20.import asyncio import os from anthropic import AsyncAnthropic from anthropic.lib.tools.mcp import async_mcp_tool from mcp import ClientSession from mcp.client.stdio import StdioServerParameters, stdio_client formfeed = StdioServerParameters( command="npx", args=["-y", "@formfeed/mcp"], env={"FORMFEED_API_KEY": os.environ["FORMFEED_API_KEY"]}, ) prompt = "Render the certificate for Jane Doe, course Analytical Engines 101." async def main() -> None: client = AsyncAnthropic() async with stdio_client(formfeed) as (read, write): async with ClientSession(read, write) as session: await session.initialize() tools = (await session.list_tools()).tools runner = client.beta.messages.tool_runner( model="claude-opus-5-5", max_tokens=16000, tools=[async_mcp_tool(t, session) for t in tools], messages=[{"role": "user", "content": prompt}], ) async for message in runner: print(message.content) asyncio.run(main())import os import anthropic client = anthropic.Anthropic() response = client.beta.messages.create( model="claude-opus-5-5", max_tokens=16000, betas=["mcp-client-2025-11-20"], mcp_servers=[ { "type": "url", "url": "https://mcp.formfeed.dev/mcp", "name": "formfeed", "authorization_token": os.environ["FORMFEED_API_KEY"], } ], tools=[{"type": "mcp_toolset", "mcp_server_name": "formfeed"}], messages=[{"role": "user", "content": "Which Formfeed templates can render an invoice?"}], ) for block in response.content: if block.type == "text": print(block.text)Anmeldung statt Schlüssel: Verbinden Sie
https://mcp.formfeed.dev/mcpohne Header, und der Client öffnet die Formfeed-Anmeldung, in der Sie den Workspace des Agenten wählen. Ein angemeldeter Agent rendert immer live und verbraucht Einheiten; kostenlose Testrenderings gibt es nur mit einem Test-Schlüssel. Ein selbst betriebener Endpunkt (npx -y @formfeed/mcp --http) nimmt nur API-Schlüssel.Verbindung prüfen
Mit dem Tool Runner liefert jede Runde eine Nachricht; die
tool_use-Blöcke zeigen, welches Formfeed-Werkzeug mit welcher Eingabe lief.
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
- Wenn der Agent immer nur eine Art Dokument erzeugen soll, ist ein eigenes Werkzeug oft besser: siehe einfaches Tool Calling.
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
einvoicewird 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: falseeingereiht 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 API (geprüft 17. Oktober 2026)