Tamgara
Fill in 1,000+ legal PDF templates in many languages, get a signed PDF back. Free, no API key.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (16)
- LOWin info
- LOWin list_languages
- LOWin list_locales
- LOWin get_template
- LOWin list_providers
- LOWin get_provider
- LOWin fax_countries
- LOWin fax_ping
- LOWin fax_quote
- LOWin brief_ping
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"tamgara": {
"url": "https://api.tamgara.com/api/mcp"
}
}
}Remote-Endpunkte
https://api.tamgara.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (33)
⚪info
Überblick über Tamgara: Anzahl Vorlagen, Sprachen, Rechtsräume.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢list_languages
Alle unterstützten Basissprachen mit Vorlagen-Anzahl, RTL-Flag und Rechtsräumen.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢list_locales
Alle Locales (Sprache×Land) mit lokalisierter Rechtsphrase.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢list_categories
Vorlagen-Kategorien mit Anzahl (cancellation, sale, rental, …).
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢search_templates(query, lang, country, category, limit)
Vorlagen suchen/filtern. Freitext über Titel/Slug/Beschreibung, optional nach Sprache, Land (ISO-2, z. B. "DE", "EG") und Kategorie. Liefert Slugs zum Weiterverwenden.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Freitext, z. B. \"Kündigung\" oder \"car purchase\"."
},
"lang": {
"type": "string",
"description": "Basissprache, z. B. \"de\", \"en\", \"ar\"."
},
"country": {
"type": "string",
"description": "Ländercode ISO-2 groß, z. B. \"DE\", \"AT\", \"EG\"."
},
"category": {
"type": "string",
"description": "Kategorie aus list_categories."
},
"limit": {
"type": "integer",
"description": "Max. Treffer (1–200, Default 50)."
}
},
"required": [],
"additionalProperties": false
}🟢get_template(slug, id, lang, country, includeBlankPdf)
Details + Feld-Schema einer Vorlage: welche Felder (Name, Typ, Label, Optionen) auszufüllen sind, plus Rechtsraum. Adressierbar per slug ODER per id+lang. Feldnamen sind sprachübergreifend gleich.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Global eindeutiger Slug (aus search_templates)."
},
"id": {
"type": "string",
"description": "Sprachneutrale Vorlagen-ID (mit lang kombinieren)."
},
"lang": {
"type": "string",
"description": "Basissprache, wenn per id adressiert."
},
"country": {
"type": "string",
"description": "Land ISO-2 für den passenden Rechtsraum."
},
"includeBlankPdf": {
"type": "boolean",
"description": "Blanko-PDF als base64 mitliefern."
}
},
"required": [],
"additionalProperties": false
}🟢fill_template(slug, id, lang, answers, signaturePngDataUrl, ...)
Vorlage ausfüllen (und optional signieren) → fertiges PDF als base64. answers ist ein Objekt Feldname→Wert (Text/Datum "TT.MM.JJJJ" als String, Checkbox true/false, Radio/Dropdown = Option). Feldnamen vorher mit get_template abfragen.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Slug der Vorlage."
},
"id": {
"type": "string",
"description": "Alternativ: sprachneutrale id (mit lang)."
},
"lang": {
"type": "string",
"description": "Basissprache, wenn per id adressiert."
},
"answers": {
"type": "object",
"description": "Feldname → Wert (String oder Boolean).",
"additionalProperties": true
},
"signaturePngDataUrl": {
"type": "string",
"description": "Unterschrift als PNG data:-URL (optional)."
},
"country": {
"type": "string",
"description": "Land ISO-2 für den Rechtsraum-Vermerk (optional)."
},
"ai": {
"type": "boolean",
"description": "KI-Dokumenterstellung nutzen (kostenpflichtig, 0,20 € vom Guthaben; normales Ausfüllen ist kostenlos)."
},
"account_id": {
"type": "string",
"description": "Guthaben-Konto (nur für ai:true). Fehlt es, wird eins mit 1 € Startguthaben ausgestellt und in der Antwort zurückgegeben."
}
},
"required": [],
"additionalProperties": false
}🟢list_providers(country, query, category, limit)
Anbieter für Kündigungen (Kündigungsadresse/Fax/Frist). Länder: de, at, ch. Optional Freitextsuche.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Land: \"de\" | \"at\" | \"ch\" (Default de)."
},
"query": {
"type": "string",
"description": "Freitext über Name/Aliase (min. 2 Zeichen)."
},
"category": {
"type": "string",
"description": "Anbieter-Kategorie (optional)."
},
"limit": {
"type": "integer",
"description": "Max. Treffer (Default 25)."
}
},
"required": [],
"additionalProperties": false
}🟢get_provider(country, id)
Ein Anbieter per id (Kündigungsadresse, Fax, typische Frist).
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Land: de | at | ch."
},
"id": {
"type": "string",
"description": "Anbieter-id."
}
},
"required": [
"id"
],
"additionalProperties": false
}⚪fax_countries
Unterstützte Fax-Zielländer + Hinweise zur E.164-Nummer.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}⚪fax_ping
Prüft, ob Faxversand verfügbar ist und ob er bezahlt (Stripe) läuft.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}⚪fax_quote(pdfBase64, pages, to)
Preis für einen Faxversand. Seitenzahl aus pdfBase64 abgeleitet, wenn nicht angegeben.
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das zu faxende PDF (z. B. aus fill_template)."
},
"pages": {
"type": "integer",
"description": "Seitenzahl (optional; sonst aus PDF)."
},
"to": {
"type": "string",
"description": "Zielnummer E.164 (optional, für Zonenpreis)."
}
},
"required": [],
"additionalProperties": false
}🟡fax_create_checkout(to, pdfBase64, filename, pages)
Startet den bezahlten Faxversand: liefert eine Stripe-Checkout-URL. Der MENSCH bezahlt über diese URL; danach fax_confirm mit der job_id. (Kein kostenloser Direktversand über die KI.)
Eingabe-Schema
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "Zielnummer in E.164, z. B. +4976339202117."
},
"pdfBase64": {
"type": "string",
"description": "Das zu faxende PDF."
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
},
"pages": {
"type": "integer",
"description": "Seitenzahl (optional)."
}
},
"required": [
"to",
"pdfBase64"
],
"additionalProperties": false
}🟡fax_confirm(jobId)
Nach erfolgter Zahlung: Fax in die Warteschlange geben. Braucht die job_id aus fax_create_checkout.
Eingabe-Schema
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "job_id aus fax_create_checkout."
}
},
"required": [
"jobId"
],
"additionalProperties": false
}⚪fax_status(id)
Zustellstatus eines Fax (queued/sending/success/failed) per id.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Fax-id."
}
},
"required": [
"id"
],
"additionalProperties": false
}⚪brief_ping
Prüft, ob Briefversand (Post via LetterXpress) verfügbar/bezahlt ist.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}⚪brief_quote(pdfBase64, pages, registered, country)
Preis für einen Postbrief (Standard oder Einschreiben). Länder: DE/AT/CH.
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das zu versendende PDF."
},
"pages": {
"type": "integer",
"description": "Seitenzahl (optional; sonst aus PDF)."
},
"registered": {
"type": "boolean",
"description": "Einwurf-Einschreiben statt Standard."
},
"country": {
"type": "string",
"description": "Zielland: DE | AT | CH (Default DE)."
}
},
"required": [],
"additionalProperties": false
}🟡brief_create_checkout(pdfBase64, recipient, country, registered, filename, ...)
Startet den bezahlten Briefversand: liefert eine Stripe-Checkout-URL. Der MENSCH bezahlt; danach brief_confirm mit der job_id. (Kein kostenloser Direktversand über die KI.)
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das zu versendende PDF."
},
"recipient": {
"type": "string",
"description": "Anzeigename des Empfängers (für Beleg)."
},
"country": {
"type": "string",
"description": "Zielland: DE | AT | CH."
},
"registered": {
"type": "boolean",
"description": "Einwurf-Einschreiben."
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
},
"pages": {
"type": "integer",
"description": "Seitenzahl (optional)."
}
},
"required": [
"pdfBase64",
"recipient"
],
"additionalProperties": false
}🟡brief_confirm(jobId)
Nach Zahlung: Brief einreichen. Braucht die job_id aus brief_create_checkout.
Eingabe-Schema
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "job_id aus brief_create_checkout."
}
},
"required": [
"jobId"
],
"additionalProperties": false
}⚪brief_status(id)
Status/Tracking eines Briefs per id.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Brief-id."
}
},
"required": [
"id"
],
"additionalProperties": false
}🔴brief_cancel(id)
Storniert einen Brief im 15-Minuten-Fenster von LetterXpress.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Brief-id."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟡envelope_create(ownerName, docName, pdfBase64, message, expiresDays, ...)
Sendet ein PDF zur mehrparteiigen elektronischen Signatur (DocuSign-Stil). Liefert die Vorgangs-id, einen ownerKey (geheim halten!) und pro Empfänger einen Signier-Link. fields platzieren Signatur-/Text-/Datum-/Checkbox-Felder per Ratio (0..1, y von oben). Emails an Empfänger nur über den zurückgegebenen ownerKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"ownerName": {
"type": "string",
"description": "Name des Absenders/Erstellers."
},
"docName": {
"type": "string",
"description": "Dokumentname, z. B. \"Mietvertrag.pdf\"."
},
"pdfBase64": {
"type": "string",
"description": "Das zu signierende PDF (z. B. aus fill_template)."
},
"message": {
"type": "string",
"description": "Begleitnachricht an die Empfänger (optional)."
},
"expiresDays": {
"type": "integer",
"description": "Ablauf in Tagen (0 = kein Ablauf)."
},
"isPublic": {
"type": "boolean",
"description": "Öffentlicher Signier-Link statt fester Empfänger."
},
"recipients": {
"type": "array",
"description": "Empfänger (bei isPublic leer).",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name des Unterzeichners."
},
"email": {
"type": "string",
"description": "E-Mail (optional; für Einladung)."
},
"order": {
"type": "integer",
"description": "Reihenfolge (optional)."
},
"lang": {
"type": "string",
"description": "Sprache der Einladung: de | en."
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"fields": {
"type": "array",
"description": "Feld-Platzierungen.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"signature",
"initials",
"text",
"date",
"checkbox"
]
},
"label": {
"type": "string",
"description": "Feldbeschriftung."
},
"recipient": {
"type": "integer",
"description": "Index des Empfängers (0-basiert)."
},
"pageIndex": {
"type": "integer",
"description": "Seitenindex (0-basiert)."
},
"xRatio": {
"type": "number",
"description": "X-Position 0..1 (Mitte)."
},
"yRatio": {
"type": "number",
"description": "Y-Position 0..1 von oben (Mitte)."
}
},
"required": [
"type",
"recipient",
"pageIndex",
"xRatio",
"yRatio"
],
"additionalProperties": false
}
}
},
"required": [
"ownerName",
"docName",
"pdfBase64"
],
"additionalProperties": false
}⚪envelope_status(id, ownerKey, withInputs)
Status eines Signier-Vorgangs (wer hat gesehen/unterschrieben) per id + ownerKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Vorgangs-id."
},
"ownerKey": {
"type": "string",
"description": "Der bei create erhaltene ownerKey."
},
"withInputs": {
"type": "boolean",
"description": "Eingaben mitliefern."
}
},
"required": [
"id",
"ownerKey"
],
"additionalProperties": false
}🟡envelope_send_invite(id, ownerKey, recipient, email)
Verschickt (erneut) die Signier-Einladung per E-Mail an einen Empfänger. Nur mit ownerKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Vorgangs-id."
},
"ownerKey": {
"type": "string",
"description": "ownerKey."
},
"recipient": {
"type": "integer",
"description": "Empfänger-Index (0-basiert)."
},
"email": {
"type": "string",
"description": "Ziel-E-Mail."
}
},
"required": [
"id",
"ownerKey",
"recipient",
"email"
],
"additionalProperties": false
}⚪envelope_void(id, ownerKey)
Storniert/annulliert einen Signier-Vorgang. Nur mit ownerKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Vorgangs-id."
},
"ownerKey": {
"type": "string",
"description": "ownerKey."
}
},
"required": [
"id",
"ownerKey"
],
"additionalProperties": false
}🟡envelope_upload_final(id, ownerKey, pdfBase64)
Lädt das fertige (z. B. lokal signierte) PDF für einen Vorgang hoch. Nur mit ownerKey.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Vorgangs-id."
},
"ownerKey": {
"type": "string",
"description": "ownerKey."
},
"pdfBase64": {
"type": "string",
"description": "Fertiges PDF."
}
},
"required": [
"id",
"ownerKey",
"pdfBase64"
],
"additionalProperties": false
}🟢inspect_pdf(pdfBase64)
Ein BELIEBIGES PDF (base64) analysieren: Seitenzahl/-größen, ausfüllbare Formularfelder (Name, Typ, Label, Optionen), Signaturfelder und Unterschrifts-Positionen. Grundlage zum Ausfüllen fremder PDFs.
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das PDF als base64."
}
},
"required": [
"pdfBase64"
],
"additionalProperties": false
}🟢fill_pdf(pdfBase64, answers, signaturePngDataUrl, lang, manualPlacement, ...)
Ein BELIEBIGES (nicht-Katalog-)PDF ausfüllen und optional signieren → fertiges PDF (base64). answers = Feldname→Wert (aus inspect_pdf). Unterschrift wird in erkannte Signaturfelder gesetzt oder per manualPlacement platziert. lang (optional) wählt die Schrift für nicht-lateinische Eingaben (ar/zh/hi/…).
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das auszufüllende PDF (base64)."
},
"answers": {
"type": "object",
"description": "Feldname → Wert (String/Boolean).",
"additionalProperties": true
},
"signaturePngDataUrl": {
"type": "string",
"description": "Unterschrift als PNG data:-URL (optional)."
},
"lang": {
"type": "string",
"description": "Sprachhinweis für die Schrift (z. B. ar, zh, hi) — optional."
},
"manualPlacement": {
"type": "object",
"properties": {
"pageIndex": {
"type": "integer",
"description": "Seitenindex (0-basiert)."
},
"xRatio": {
"type": "number",
"description": "X 0..1."
},
"yRatio": {
"type": "number",
"description": "Y 0..1 von oben."
}
},
"required": [],
"additionalProperties": false
},
"extraText": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Zusatztext (z. B. Ort, Datum)."
},
"placement": {
"type": "object",
"properties": {
"pageIndex": {
"type": "integer",
"description": "Seitenindex."
},
"xRatio": {
"type": "number",
"description": "X 0..1."
},
"yRatio": {
"type": "number",
"description": "Y 0..1 von oben."
}
},
"required": [],
"additionalProperties": false
}
},
"required": [],
"additionalProperties": false
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
}
},
"required": [
"pdfBase64"
],
"additionalProperties": false
}⚪pdf_from_images(images, filename)
Aus einem oder mehreren Bildern (base64 PNG/JPEG) ein PDF bauen — ein Bild pro Seite (Foto/Scan → PDF).
Eingabe-Schema
{
"type": "object",
"properties": {
"images": {
"type": "array",
"items": {
"type": "string"
},
"description": "base64-Bilder (mit oder ohne data:-Präfix)."
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
}
},
"required": [
"images"
],
"additionalProperties": false
}🟡add_cover_page(pdfBase64, recipient, senderLine, filename)
Stellt einem PDF ein DIN-5008-Adressblatt voran (für den Postversand). recipient = {name,street,zip,city,country}.
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das PDF (base64)."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Empfängername."
},
"street": {
"type": "string",
"description": "Straße + Nr."
},
"zip": {
"type": "string",
"description": "PLZ."
},
"city": {
"type": "string",
"description": "Ort."
},
"country": {
"type": "string",
"description": "ISO-2, z. B. DE/AT/CH."
}
},
"required": [
"name",
"street",
"zip",
"city"
],
"additionalProperties": false
},
"senderLine": {
"type": "string",
"description": "Einzeilige Rücksendeangabe über dem Adressblock (optional)."
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
}
},
"required": [
"pdfBase64",
"recipient"
],
"additionalProperties": false
}⚪apply_scan_answers(pdfBase64, fields, values, lang, filename)
Befüllt erkannte Felder eines gescannten (nicht-AcroForm-)PDFs: Text auf Schreiblinien, X in Checkboxen — per Ratio-Positionen (z. B. aus einer Feld-Erkennung).
Eingabe-Schema
{
"type": "object",
"properties": {
"pdfBase64": {
"type": "string",
"description": "Das gescannte PDF (base64)."
},
"fields": {
"type": "array",
"description": "Erkannte Felder.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Feld-id (Schlüssel in values)."
},
"type": {
"type": "string",
"enum": [
"line",
"checkbox",
"signature"
]
},
"pageIndex": {
"type": "integer",
"description": "Seitenindex (0-basiert)."
},
"xStartRatio": {
"type": "number",
"description": "X-Start 0..1."
},
"xEndRatio": {
"type": "number",
"description": "X-Ende 0..1."
},
"yRatio": {
"type": "number",
"description": "Y 0..1 von oben (Basislinie/Mitte)."
}
},
"required": [
"id",
"type",
"pageIndex",
"xStartRatio",
"xEndRatio",
"yRatio"
],
"additionalProperties": false
}
},
"values": {
"type": "object",
"description": "Feld-id → Wert (Text; \"true\" für Checkbox).",
"additionalProperties": true
},
"lang": {
"type": "string",
"description": "Sprachhinweis für die Schrift (optional)."
},
"filename": {
"type": "string",
"description": "Dateiname (optional)."
}
},
"required": [
"pdfBase64",
"fields",
"values"
],
"additionalProperties": false
}⚪account_balance(account_id)
Guthaben-Konto abfragen (Kostendeckel für kostenpflichtige KI-Calls). Das Konto mit 1 € Startgutschein wird beim ersten kostenpflichtigen Call ausgestellt und dort zurückgegeben — merken und künftig mitschicken. Kostenlose Funktionen brauchen kein Konto.
Eingabe-Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"description": "Bestehendes Konto (optional)."
}
},
"required": [],
"additionalProperties": false
}⚪account_topup(account_id, amount_cents)
Guthaben aufladen. Hinweis: Die Zahlung wird gerade eingerichtet — der Aufladewunsch wird vermerkt, aber noch nicht real belastet (die kostenlosen Funktionen bleiben ohnehin frei).
Eingabe-Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"description": "Konto (optional; sonst neu)."
},
"amount_cents": {
"type": "integer",
"description": "Wunschbetrag in Cent (optional)."
}
},
"required": [],
"additionalProperties": false
}Community
Nachweis