MCP 서버

Tamgara

com.tamgara/tamgara
법률 및 컴플라이언스 생산성 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Inspects, fills, signs, and manages legal PDF templates and documents, and supports electronic signatures, postal letters, and fax workflows.

account_balance
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.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'account_id': {'type': 'string', 'description': 'Bestehendes Konto (optional).'}}, 'additionalProperties': False}
account_topup
Guthaben aufladen. Hinweis: Die Zahlung wird gerade eingerichtet — der Aufladewunsch wird vermerkt, aber noch nicht real belastet (die kostenlosen Funktionen bleiben ohnehin frei).
입력 스키마
{'type': 'object', 'required': [], 'properties': {'account_id': {'type': 'string', 'description': 'Konto (optional; sonst neu).'}, 'amount_cents': {'type': 'integer', 'description': 'Wunschbetrag in Cent (optional).'}}, 'additionalProperties': False}
add_cover_page
Stellt einem PDF ein DIN-5008-Adressblatt voran (für den Postversand). recipient = {name,street,zip,city,country}.
입력 스키마
{'type': 'object', 'required': ['pdfBase64', 'recipient'], 'properties': {'filename': {'type': 'string', 'description': 'Dateiname (optional).'}, 'pdfBase64': {'type': 'string', 'description': 'Das PDF (base64).'}, 'recipient': {'type': 'object', 'required': ['name', 'street', 'zip', 'city'], 'properties': {'zip': {'type': 'string', 'description': 'PLZ.'}, 'city': {'type': 'string', 'description': 'Ort.'}, 'name': {'type': 'string', 'description': 'Empfängername.'}, 'street': {'type': 'string', 'description': 'Straße + Nr.'}, 'country': {'type': 'string', 'description': 'ISO-2, z. B. DE/AT/CH.'}}, 'additionalProperties': False}, 'senderLine': {'type': 'string', 'description': 'Einzeilige Rücksendeangabe über dem Adressblock (optional).'}}, 'additionalProperties': False}
apply_scan_answers
Befüllt erkannte Felder eines gescannten (nicht-AcroForm-)PDFs: Text auf Schreiblinien, X in Checkboxen — per Ratio-Positionen (z. B. aus einer Feld-Erkennung).
입력 스키마
{'type': 'object', 'required': ['pdfBase64', 'fields', 'values'], 'properties': {'lang': {'type': 'string', 'description': 'Sprachhinweis für die Schrift (optional).'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type', 'pageIndex', 'xStartRatio', 'xEndRatio', 'yRatio'], 'properties': {'id': {'type': 'string', 'description': 'Feld-id (Schlüssel in values).'}, 'type': {'enum': ['line', 'checkbox', 'signature'], 'type': 'string'}, 'yRatio': {'type': 'number', 'description': 'Y 0..1 von oben (Basislinie/Mitte).'}, 'pageIndex': {'type': 'integer', 'description': 'Seitenindex (0-basiert).'}, 'xEndRatio': {'type': 'number', 'description': 'X-Ende 0..1.'}, 'xStartRatio': {'type': 'number', 'description': 'X-Start 0..1.'}}, 'additionalProperties': False}, 'description': 'Erkannte Felder.'}, 'values': {'type': 'object', 'description': 'Feld-id → Wert (Text; "true" für Checkbox).', 'additionalProperties': True}, 'filename': {'type': 'string', 'description': 'Dateiname (optional).'}, 'pdfBase64': {'type': 'string', 'description': 'Das gescannte PDF (base64).'}}, 'additionalProperties': False}
brief_cancel
Storniert einen Brief im 15-Minuten-Fenster von LetterXpress.
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Brief-id.'}}, 'additionalProperties': False}
brief_confirm
Nach Zahlung: Brief einreichen. Braucht die job_id aus brief_create_checkout.
입력 스키마
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'job_id aus brief_create_checkout.'}}, 'additionalProperties': False}
brief_create_checkout
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.)
입력 스키마
{'type': 'object', 'required': ['pdfBase64', 'recipient'], 'properties': {'pages': {'type': 'integer', 'description': 'Seitenzahl (optional).'}, 'country': {'type': 'string', 'description': 'Zielland: DE | AT | CH.'}, 'filename': {'type': 'string', 'description': 'Dateiname (optional).'}, 'pdfBase64': {'type': 'string', 'description': 'Das zu versendende PDF.'}, 'recipient': {'type': 'string', 'description': 'Anzeigename des Empfängers (für Beleg).'}, 'registered': {'type': 'boolean', 'description': 'Einwurf-Einschreiben.'}}, 'additionalProperties': False}
brief_ping
Prüft, ob Briefversand (Post via LetterXpress) verfügbar/bezahlt ist.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
brief_quote
Preis für einen Postbrief (Standard oder Einschreiben). Länder: DE/AT/CH.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'pages': {'type': 'integer', 'description': 'Seitenzahl (optional; sonst aus PDF).'}, 'country': {'type': 'string', 'description': 'Zielland: DE | AT | CH (Default DE).'}, 'pdfBase64': {'type': 'string', 'description': 'Das zu versendende PDF.'}, 'registered': {'type': 'boolean', 'description': 'Einwurf-Einschreiben statt Standard.'}}, 'additionalProperties': False}
brief_status
Status/Tracking eines Briefs per id.
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Brief-id.'}}, 'additionalProperties': False}
envelope_create
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.
입력 스키마
{'type': 'object', 'required': ['ownerName', 'docName', 'pdfBase64'], 'properties': {'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'recipient', 'pageIndex', 'xRatio', 'yRatio'], 'properties': {'type': {'enum': ['signature', 'initials', 'text', 'date', 'checkbox'], 'type': 'string'}, 'label': {'type': 'string', 'description': 'Feldbeschriftung.'}, 'xRatio': {'type': 'number', 'description': 'X-Position 0..1 (Mitte).'}, 'yRatio': {'type': 'number', 'description': 'Y-Position 0..1 von oben (Mitte).'}, 'pageIndex': {'type': 'integer', 'description': 'Seitenindex (0-basiert).'}, 'recipient': {'type': 'integer', 'description': 'Index des Empfängers (0-basiert).'}}, 'additionalProperties': False}, 'description': 'Feld-Platzierungen.'}, 'docName': {'type': 'string', 'description': 'Dokumentname, z. B. "Mietvertrag.pdf".'}, 'message': {'type': 'string', 'description': 'Begleitnachricht an die Empfänger (optional).'}, 'isPublic': {'type': 'boolean', 'description': 'Öffentlicher Signier-Link statt fester Empfänger.'}, 'ownerName': {'type': 'string', 'description': 'Name des Absenders/Erstellers.'}, 'pdfBase64': {'type': 'string', 'description': 'Das zu signierende PDF (z. B. aus fill_template).'}, 'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'lang': {'type': 'string', 'description': 'Sprache der Einladung: de | en.'}, 'name': {'type': 'string', 'description': 'Name des Unterzeichners.'}, 'email': {'type': 'string', 'description': 'E-Mail (optional; für Einladung).'}, 'order': {'type': 'integer', 'description': 'Reihenfolge (optional).'}}, 'additionalProperties': False}, 'description': 'Empfänger (bei isPublic leer).'}, 'expiresDays': {'type': 'integer', 'description': 'Ablauf in Tagen (0 = kein Ablauf).'}}, 'additionalProperties': False}
envelope_send_invite
Verschickt (erneut) die Signier-Einladung per E-Mail an einen Empfänger. Nur mit ownerKey.
입력 스키마
{'type': 'object', 'required': ['id', 'ownerKey', 'recipient', 'email'], 'properties': {'id': {'type': 'string', 'description': 'Vorgangs-id.'}, 'email': {'type': 'string', 'description': 'Ziel-E-Mail.'}, 'ownerKey': {'type': 'string', 'description': 'ownerKey.'}, 'recipient': {'type': 'integer', 'description': 'Empfänger-Index (0-basiert).'}}, 'additionalProperties': False}
envelope_status
Status eines Signier-Vorgangs (wer hat gesehen/unterschrieben) per id + ownerKey.
입력 스키마
{'type': 'object', 'required': ['id', 'ownerKey'], 'properties': {'id': {'type': 'string', 'description': 'Vorgangs-id.'}, 'ownerKey': {'type': 'string', 'description': 'Der bei create erhaltene ownerKey.'}, 'withInputs': {'type': 'boolean', 'description': 'Eingaben mitliefern.'}}, 'additionalProperties': False}
envelope_upload_final
Lädt das fertige (z. B. lokal signierte) PDF für einen Vorgang hoch. Nur mit ownerKey.
입력 스키마
{'type': 'object', 'required': ['id', 'ownerKey', 'pdfBase64'], 'properties': {'id': {'type': 'string', 'description': 'Vorgangs-id.'}, 'ownerKey': {'type': 'string', 'description': 'ownerKey.'}, 'pdfBase64': {'type': 'string', 'description': 'Fertiges PDF.'}}, 'additionalProperties': False}
envelope_void
Storniert/annulliert einen Signier-Vorgang. Nur mit ownerKey.
입력 스키마
{'type': 'object', 'required': ['id', 'ownerKey'], 'properties': {'id': {'type': 'string', 'description': 'Vorgangs-id.'}, 'ownerKey': {'type': 'string', 'description': 'ownerKey.'}}, 'additionalProperties': False}
fax_confirm
Nach erfolgter Zahlung: Fax in die Warteschlange geben. Braucht die job_id aus fax_create_checkout.
입력 스키마
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'job_id aus fax_create_checkout.'}}, 'additionalProperties': False}
fax_countries
Unterstützte Fax-Zielländer + Hinweise zur E.164-Nummer.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
fax_create_checkout
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.)
입력 스키마
{'type': 'object', 'required': ['to', 'pdfBase64'], 'properties': {'to': {'type': 'string', 'description': 'Zielnummer in E.164, z. B. +4976339202117.'}, 'pages': {'type': 'integer', 'description': 'Seitenzahl (optional).'}, 'filename': {'type': 'string', 'description': 'Dateiname (optional).'}, 'pdfBase64': {'type': 'string', 'description': 'Das zu faxende PDF.'}}, 'additionalProperties': False}
fax_ping
Prüft, ob Faxversand verfügbar ist und ob er bezahlt (Stripe) läuft.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
fax_quote
Preis für einen Faxversand. Seitenzahl aus pdfBase64 abgeleitet, wenn nicht angegeben.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'to': {'type': 'string', 'description': 'Zielnummer E.164 (optional, für Zonenpreis).'}, 'pages': {'type': 'integer', 'description': 'Seitenzahl (optional; sonst aus PDF).'}, 'pdfBase64': {'type': 'string', 'description': 'Das zu faxende PDF (z. B. aus fill_template).'}}, 'additionalProperties': False}
fax_status
Zustellstatus eines Fax (queued/sending/success/failed) per id.
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Fax-id.'}}, 'additionalProperties': False}
fill_pdf
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/…).
입력 스키마
{'type': 'object', 'required': ['pdfBase64'], 'properties': {'lang': {'type': 'string', 'description': 'Sprachhinweis für die Schrift (z. B. ar, zh, hi) — optional.'}, 'answers': {'type': 'object', 'description': 'Feldname → Wert (String/Boolean).', 'additionalProperties': True}, 'filename': {'type': 'string', 'description': 'Dateiname (optional).'}, 'extraText': {'type': 'object', 'required': [], 'properties': {'text': {'type': 'string', 'description': 'Zusatztext (z. B. Ort, Datum).'}, 'placement': {'type': 'object', 'required': [], 'properties': {'xRatio': {'type': 'number', 'description': 'X 0..1.'}, 'yRatio': {'type': 'number', 'description': 'Y 0..1 von oben.'}, 'pageIndex': {'type': 'integer', 'description': 'Seitenindex.'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'pdfBase64': {'type': 'string', 'description': 'Das auszufüllende PDF (base64).'}, 'manualPlacement': {'type': 'object', 'required': [], 'properties': {'xRatio': {'type': 'number', 'description': 'X 0..1.'}, 'yRatio': {'type': 'number', 'description': 'Y 0..1 von oben.'}, 'pageIndex': {'type': 'integer', 'description': 'Seitenindex (0-basiert).'}}, 'additionalProperties': False}, 'signaturePngDataUrl': {'type': 'string', 'description': 'Unterschrift als PNG data:-URL (optional).'}}, 'additionalProperties': False}
fill_template
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.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'ai': {'type': 'boolean', 'description': 'KI-Dokumenterstellung nutzen (kostenpflichtig, 0,20 € vom Guthaben; normales Ausfüllen ist kostenlos).'}, 'id': {'type': 'string', 'description': 'Alternativ: sprachneutrale id (mit lang).'}, 'lang': {'type': 'string', 'description': 'Basissprache, wenn per id adressiert.'}, 'slug': {'type': 'string', 'description': 'Slug der Vorlage.'}, 'answers': {'type': 'object', 'description': 'Feldname → Wert (String oder Boolean).', 'additionalProperties': True}, 'country': {'type': 'string', 'description': 'Land ISO-2 für den Rechtsraum-Vermerk (optional).'}, '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.'}, 'signaturePngDataUrl': {'type': 'string', 'description': 'Unterschrift als PNG data:-URL (optional).'}}, 'additionalProperties': False}
get_provider
Ein Anbieter per id (Kündigungsadresse, Fax, typische Frist).
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Anbieter-id.'}, 'country': {'type': 'string', 'description': 'Land: de | at | ch.'}}, 'additionalProperties': False}
get_template
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.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'id': {'type': 'string', 'description': 'Sprachneutrale Vorlagen-ID (mit lang kombinieren).'}, 'lang': {'type': 'string', 'description': 'Basissprache, wenn per id adressiert.'}, 'slug': {'type': 'string', 'description': 'Global eindeutiger Slug (aus search_templates).'}, 'country': {'type': 'string', 'description': 'Land ISO-2 für den passenden Rechtsraum.'}, 'includeBlankPdf': {'type': 'boolean', 'description': 'Blanko-PDF als base64 mitliefern.'}}, 'additionalProperties': False}
info
Überblick über Tamgara: Anzahl Vorlagen, Sprachen, Rechtsräume.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
inspect_pdf
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.
입력 스키마
{'type': 'object', 'required': ['pdfBase64'], 'properties': {'pdfBase64': {'type': 'string', 'description': 'Das PDF als base64.'}}, 'additionalProperties': False}
list_categories
Vorlagen-Kategorien mit Anzahl (cancellation, sale, rental, …).
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_languages
Alle unterstützten Basissprachen mit Vorlagen-Anzahl, RTL-Flag und Rechtsräumen.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_locales
Alle Locales (Sprache×Land) mit lokalisierter Rechtsphrase.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_providers
Anbieter für Kündigungen (Kündigungsadresse/Fax/Frist). Länder: de, at, ch. Optional Freitextsuche.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'description': 'Max. Treffer (Default 25).'}, 'query': {'type': 'string', 'description': 'Freitext über Name/Aliase (min. 2 Zeichen).'}, 'country': {'type': 'string', 'description': 'Land: "de" | "at" | "ch" (Default de).'}, 'category': {'type': 'string', 'description': 'Anbieter-Kategorie (optional).'}}, 'additionalProperties': False}
pdf_from_images
Aus einem oder mehreren Bildern (base64 PNG/JPEG) ein PDF bauen — ein Bild pro Seite (Foto/Scan → PDF).
입력 스키마
{'type': 'object', 'required': ['images'], 'properties': {'images': {'type': 'array', 'items': {'type': 'string'}, 'description': 'base64-Bilder (mit oder ohne data:-Präfix).'}, 'filename': {'type': 'string', 'description': 'Dateiname (optional).'}}, 'additionalProperties': False}
search_templates
Vorlagen suchen/filtern. Freitext über Titel/Slug/Beschreibung, optional nach Sprache, Land (ISO-2, z. B. "DE", "EG") und Kategorie. Liefert Slugs zum Weiterverwenden.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'lang': {'type': 'string', 'description': 'Basissprache, z. B. "de", "en", "ar".'}, 'limit': {'type': 'integer', 'description': 'Max. Treffer (1–200, Default 50).'}, 'query': {'type': 'string', 'description': 'Freitext, z. B. "Kündigung" oder "car purchase".'}, 'country': {'type': 'string', 'description': 'Ländercode ISO-2 groß, z. B. "DE", "AT", "EG".'}, 'category': {'type': 'string', 'description': 'Kategorie aus list_categories.'}}, 'additionalProperties': False}
추가됨
account_topup
2026년 9월 17일 12:37 PM
추가됨
account_balance
2026년 9월 17일 12:37 PM
추가됨
apply_scan_answers
2026년 9월 17일 12:37 PM
추가됨
add_cover_page
2026년 9월 17일 12:37 PM
추가됨
pdf_from_images
2026년 9월 17일 12:37 PM
추가됨
fill_pdf
2026년 9월 17일 12:37 PM
추가됨
inspect_pdf
2026년 9월 17일 12:37 PM
추가됨
envelope_upload_final
2026년 9월 17일 12:37 PM
추가됨
envelope_void
2026년 9월 17일 12:37 PM
추가됨
envelope_send_invite
2026년 9월 17일 12:37 PM
추가됨
envelope_status
2026년 9월 17일 12:37 PM
추가됨
envelope_create
2026년 9월 17일 12:37 PM
추가됨
brief_cancel
2026년 9월 17일 12:37 PM
추가됨
brief_status
2026년 9월 17일 12:37 PM
추가됨
brief_confirm
2026년 9월 17일 12:37 PM
추가됨
brief_create_checkout
2026년 9월 17일 12:37 PM
추가됨
brief_quote
2026년 9월 17일 12:37 PM
추가됨
brief_ping
2026년 9월 17일 12:37 PM
추가됨
fax_status
2026년 9월 17일 12:37 PM
추가됨
fax_confirm
2026년 9월 17일 12:37 PM
추가됨
fax_create_checkout
2026년 9월 17일 12:37 PM
추가됨
fax_quote
2026년 9월 17일 12:37 PM
추가됨
fax_ping
2026년 9월 17일 12:37 PM
추가됨
fax_countries
2026년 9월 17일 12:37 PM
추가됨
get_provider
2026년 9월 17일 12:37 PM
추가됨
list_providers
2026년 9월 17일 12:37 PM
추가됨
fill_template
2026년 9월 17일 12:37 PM
추가됨
get_template
2026년 9월 17일 12:37 PM
추가됨
search_templates
2026년 9월 17일 12:37 PM
추가됨
list_categories
2026년 9월 17일 12:37 PM