Briefflink – Briefe mit KI versenden

Send real paper letters from AI chat: print, envelope, postage, delivery. Pay per letter.

Should I use this

Quality & Safety

B
Description quality
73%
Schema completeness
83%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_letter_price' description lacks action verbin get_letter_price

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~814Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (0.64% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "letter": {
      "url": "https://briefflink.de/api/mcp.php"
    }
  }
}

Remote endpoints

https://briefflink.de/api/mcp.phpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_letter_price(pages, einschreiben, country)

Berechnet den Endpreis eines Briefes (Druck, Kuvert, Porto) aus Seitenzahl, Einschreiben-Wahl und Zielland. Kein Auftrag, keine Kosten.

Input Schema

{
  "type": "object",
  "properties": {
    "pages": {
      "type": "integer",
      "minimum": 1,
      "description": "Anzahl PDF-Seiten (1–20). 1–3 Standardbrief, 4–9 Kompaktbrief, 10–20 Großbrief",
      "maximum": 20
    },
    "einschreiben": {
      "type": "string",
      "enum": [
        "nein",
        "einwurf"
      ],
      "default": "nein",
      "description": "nein = Standardbrief, einwurf = Einwurf-Einschreiben mit Sendungsnummer (+5,49 € national, +7,49 € Ausland)"
    },
    "country": {
      "type": "string",
      "default": "DE",
      "description": "ISO-Ländercode des Empfängers, z. B. DE, AT, CH, US"
    }
  },
  "required": [
    "pages"
  ]
}
🟡create_upload_link

Erstellt einen Link (24 h gültig), über den der Nutzer sein PDF selbst hochlädt. Die upload_id danach an send_letter übergeben.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡send_letter(upload_id, pdf_base64, recipient_name, recipient_street, recipient_zip_city, ...)

Legt einen Briefauftrag an und gibt einen Stripe-Bezahllink zurück. Der Brief wird erst gedruckt und versendet, wenn der Nutzer bezahlt hat. Dokument per upload_id (aus create_upload_link) oder pdf_base64.

Input Schema

{
  "type": "object",
  "properties": {
    "upload_id": {
      "type": "string",
      "description": "ID aus create_upload_link"
    },
    "pdf_base64": {
      "type": "string",
      "description": "Alternativ: PDF als Base64 (max. 10 MB)"
    },
    "recipient_name": {
      "type": "string",
      "description": "Name / Firma des Empfängers"
    },
    "recipient_street": {
      "type": "string",
      "description": "Straße und Hausnummer"
    },
    "recipient_zip_city": {
      "type": "string",
      "description": "PLZ und Ort, z. B. \"10115 Berlin\""
    },
    "country": {
      "type": "string",
      "default": "DE",
      "description": "ISO-Ländercode des Empfängers, z. B. DE, AT, CH, US"
    },
    "einschreiben": {
      "type": "string",
      "enum": [
        "nein",
        "einwurf"
      ],
      "default": "nein",
      "description": "nein = Standardbrief, einwurf = Einwurf-Einschreiben mit Sendungsnummer (+5,49 € national, +7,49 € Ausland)"
    },
    "email": {
      "type": "string",
      "description": "E-Mail des Nutzers für Versandbeleg und Rechnung"
    },
    "sender_name": {
      "type": "string",
      "description": "Absender: Name / Firma (Pflicht, erscheint als Rücksendeadresse)"
    },
    "sender_street": {
      "type": "string",
      "description": "Absender: Straße und Hausnummer (Pflicht)"
    },
    "sender_zip_city": {
      "type": "string",
      "description": "Absender: PLZ und Ort (Pflicht)"
    }
  },
  "required": [
    "recipient_name",
    "recipient_street",
    "recipient_zip_city",
    "email",
    "sender_name",
    "sender_street",
    "sender_zip_city"
  ]
}
🟢get_letter_status(letter_id)

Zeigt, ob ein Auftrag noch auf Zahlung wartet, bezahlt, versendet oder fehlgeschlagen ist.

Input Schema

{
  "type": "object",
  "properties": {
    "letter_id": {
      "type": "string",
      "description": "letter_id aus send_letter"
    }
  },
  "required": [
    "letter_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools