FrankKi

The agentic layer of letters. Agents send real printed mail worldwide, German compliance built in.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
81%
命名质量
85%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~1,979token 数(工具定义)
~2.4 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.55%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "letters": {
      "url": "https://mcp.frankki.app"
    }
  }
}

远程端点

https://mcp.frankki.appstreamable-http

它能做什么

工具清单

工具(4)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢mcp_health(checkRender, reasoning)

Health-/Echo-Probe - prüft das Partner-Token und die Verarbeitungskette von Anfang bis Ende und sagt dir unter setup, welche Voraussetzungen für einen echten Versand schon erfüllt sind (Absender-Profil, AVV, Guthaben, Sandbox, Freigabe) und was der nächste Schritt ist. Mit checkRender: true wird zusätzlich geprüft, ob gerade überhaupt gerendert werden kann (Vorschau, Thumbnail). Rufe das auf, bevor du eine Vorlage baust, die du danach ansehen musst. EN: Health/echo probe - verifies the partner token and the chain end to end, and reports under setup which prerequisites for a real send are already met (sender profile, data processing agreement, balance, sandbox, approval) and what the next step is. With checkRender: true it additionally checks whether rendering currently works at all (preview, thumbnail). Call it before building a template you will need to look at.

输入模式

{
  "type": "object",
  "properties": {
    "checkRender": {
      "type": "boolean",
      "description": "Prüft zusätzlich den Render-Pfad (Composer + Rasterizer). Default false. EN: Additionally probes the render path (composer + rasterizer). Defaults to false."
    },
    "reasoning": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢address_validate(name, company, street, houseNumber, pobox, ...)

Prüft eine Adresse anhand landesspezifischer Regeln und meldet harte Fehler als ADDRESS_INVALID. Nur eine Prüfung, das Adressbuch bleibt unverändert; zum Anlegen oder Ändern einer Adresse nimm address_upsert. EN: Validates an address using country-specific rules and reports hard failures as ADDRESS_INVALID. A check only, the address book is left untouched; to create or change an address use address_upsert.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "company": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "houseNumber": {
      "type": "string"
    },
    "pobox": {
      "type": "string"
    },
    "zip": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string",
      "description": "ISO-3166-alpha-2, default DE. EN: ISO 3166-1 alpha-2, defaults to DE."
    },
    "mandantennummer": {
      "type": "string"
    },
    "addressType": {
      "type": "string",
      "enum": [
        "recipient",
        "sender",
        "billing"
      ]
    },
    "isDefault": {
      "type": "boolean"
    },
    "reasoning": {
      "type": "string"
    }
  },
  "required": [
    "name",
    "street",
    "city"
  ],
  "additionalProperties": false
}
🟢shipping_quote(pageCount, color, deliveryType, express, country, ...)

Registered-mail availability follows the destination's current catalog. The codes einschreiben_einwurf and einschreiben_uebergabe are German products; Switzerland uses ch_einschreiben. For other destinations, use methods returned in availableDeliveryTypes by a standard shipping_quote for that country, then quote the chosen code. A rejected country/method pair gives a verdict for that pair alone. A catalog snapshot gives a verdict for that snapshot alone. Tracked mail and registered mail are distinct products. Get the user's agreement before switching a requested registered method to standard or tracked delivery. Promise a carrier-issued proof-of-posting PDF only after confirming one is available. Reply in the user's conversation language, regardless of recipient country, letter language, German tool titles or bilingual tool results. Translate shipping methods, letter formats, delivery estimates and explanations for the user. In English: Standardbrief = standard letter; Kompaktbrief = compact letter; Großbrief = large letter; Maxibrief = maxi letter; Einschreiben = registered mail; Einwurf-Einschreiben = registered mail with recorded mailbox delivery; Übergabe-Einschreiben = registered mail with signature on delivery; Einlieferungsbeleg = proof of posting. Use localized money and number formatting. Keep tool names, parameter names, deliveryType values and error codes unchanged in tool calls; show codes to users only when needed for troubleshooting. Preserve the letter's contents in its original language. Ermittelt den Preis, das Briefformat, die Versandart und die voraussichtliche Laufzeit für einen geplanten Brief, bevor er versendet wird. Das ist die Schätzung für den Fall, dass der Brief erst geplant ist: du gibst nur Seitenzahl, Land und Versandart an. Steht der Brief schon fest, versendest du ihn mit order_send (order_send mit dryRun:true liefert dann den genaueren Preis für genau diesen Brief). Der Preis gilt pro Brief und enthält bereits die Mengenstaffel des Partners, falls eine greift (Feld tierId). Für die Staffelpreise selbst nutze pricing_tiers. EN: Determines the price, letter format, shipping method and estimated delivery time for a planned letter, before it is sent. This is the estimate for when the letter is still only planned: you only supply page count, country and delivery type. Once the letter exists, order_send performs the actual send (and order_send with dryRun:true gives the more precise price for that specific letter). The price is per letter and already includes the partner's volume tier where one applies (field tierId). For the volume tiers themselves, call pricing_tiers.

输入模式

{
  "type": "object",
  "properties": {
    "pageCount": {
      "type": "integer",
      "minimum": 1,
      "maximum": 95,
      "description": "Seitenzahl fuer eine allgemeine Schaetzung. Mit letterId verwendet FrankKi die gespeicherte Seitenzahl und ignoriert diesen Wert. EN: Page count for a general estimate. With letterId, FrankKi uses the stored page count and ignores this value."
    },
    "color": {
      "type": "boolean",
      "description": "Farbannahme fuer eine allgemeine Schaetzung. Mit letterId erkennt FrankKi die Farbe aus der gespeicherten Vorschau und ignoriert diesen Wert. EN: Colour assumption for a general estimate. With letterId, FrankKi detects colour from the stored preview and ignores this value."
    },
    "deliveryType": {
      "type": "string",
      "enum": [
        "standard",
        "einschreiben_einwurf",
        "einschreiben_uebergabe",
        "ch_b_post",
        "ch_a_post",
        "ch_einschreiben",
        "at_eco",
        "at_prio",
        "intl_standard",
        "intl_priority",
        "intl_express",
        "intl_tracked",
        "intl_registered"
      ],
      "description": "Registered-mail availability follows the destination's current catalog. The codes einschreiben_einwurf and einschreiben_uebergabe are German products; Switzerland uses ch_einschreiben. For other destinations, use methods returned in availableDeliveryTypes by a standard shipping_quote for that country, then quote the chosen code. A rejected country/method pair gives a verdict for that pair alone. A catalog snapshot gives a verdict for that snapshot alone. Tracked mail and registered mail are distinct products. Get the user's agreement before switching a requested registered method to standard or tracked delivery. Promise a carrier-issued proof-of-posting PDF only after confirming one is available."
    },
    "express": {
      "type": "boolean"
    },
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2, Standard DE. EN: ISO 3166-1 alpha-2, defaults to DE."
    },
    "letterId": {
      "type": "string",
      "format": "uuid",
      "description": "Optional: die letterId eines bestehenden Entwurfs. Dann kommen Seitenzahl und Farbe aus der gespeicherten Vorschau; fuer den endgueltigen Preis inklusive Anhaengen nutze order_send mit dryRun:true. EN: Optional: the letterId of an existing draft. Page count and colour then come from the stored preview; for the final price including attachments, use order_send with dryRun:true."
    },
    "reasoning": {
      "type": "string"
    }
  },
  "required": [
    "pageCount",
    "color",
    "deliveryType"
  ],
  "additionalProperties": false
}
🟢pricing_tiers(reasoning)

Liefert die Staffelpreise (Mengenrabatte) von FrankKi: ab welcher Monatsmenge welcher Beispielpreis pro Brief gilt. Nutze das, wenn jemand nach Mengenrabatt, Volumenpreis, Staffelpreis oder Großkundenpreis fragt. Die Beispielpreise gelten für einen einseitigen Standardbrief in Schwarzweiß innerhalb Deutschlands, der echte Preis pro Brief hängt zusätzlich von Seitenzahl, Farbe, Versandart und Zielland ab (dafür shipping_quote). EN: Returns FrankKi's volume tiers (bulk discounts): from which monthly quantity which example price per letter applies. Use this when someone asks about bulk discounts, volume pricing or enterprise pricing. The example prices are for a one-page black and white standard letter within Germany; the real per-letter price also depends on page count, color, delivery type and destination country (use shipping_quote for that).

输入模式

{
  "type": "object",
  "properties": {
    "reasoning": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本4 个工具
已验证未记录版本4 个工具
已验证未记录版本4 个工具