mcpField
P
pixelletter-mcp

pixelletter-mcp

本地服务
github.com/bitterdev通信协作01 周前更新

关于 pixelletter-mcp

pixelletter-mcp 是本地 MCP 服务,通过 PixelLetter HTTPS 接口寄送实体信件和传真。它还支持取消订单、查询账户信息和电子发票签名,发送操作需明确设置测试模式。

主要功能

  1. 01从文件或文本寄送信件
  2. 02发送传真
  3. 03挂号邮件选项
  4. 04取消已提交订单
  5. 05读取账户信息和余额
  6. 06提交电子发票签名

适用场景

  1. 01邮寄生成的 PDF 信件
  2. 02通过传真发送文档
  3. 03寄送前测试订单
  4. 04按订单 ID 取消订单

MCP 相关

向 MCP 客户端提供 PixelLetter 的寄信、传真、取消订单、账户查询、发票签名和接口参考工具。发送工具要求明确设置 testMode。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bitterdev-pixelletter": {
"command": "npx",
"args": [
"-y",
"pixelletter-mcp"
],
"env": {
"PIXELLETTER_EMAIL": "<PIXELLETTER_EMAIL>",
"PIXELLETTER_PASSWORD": "<PIXELLETTER_PASSWORD>",
"PIXELLETTER_DEFAULT_DESTINATION": "<PIXELLETTER_DEFAULT_DESTINATION>",
"PIXELLETTER_FORCE_TEST_MODE": "<PIXELLETTER_FORCE_TEST_MODE>"
}
}
}
}
启动命令npx -y pixelletter-mcp
需要配置的环境变量
PIXELLETTER_EMAILE-mail address the PixelLetter account is registered with
PIXELLETTER_PASSWORD密钥PixelLetter account password
PIXELLETTER_DEFAULT_DESTINATIONDefault destination country as a two letter ISO code, for example DE
PIXELLETTER_FORCE_TEST_MODEForce test mode for every order, so nothing is printed, sent or charged

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpixelletter-mcp1.0.3

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
textstring否信件纯文本,不含 HTML。长文本会自动分页,PixelLetter 会添加发件人地址。单独一行的 "%Unterschrift%" 会插入 PixelLetter 账户中存储的签名。
filesarray否要发送文档的绝对路径,例如 pdf-letter-mcp 写入的 PDF。多个文件会按此顺序转换并合并为一封信。允许的格式:.pdf、.doc、.xls、.ppt、.rtf、.wpd、.psd;只有 PDF 始终可用。
duplexboolean否双面打印(true,PixelLetter 的默认设置)或仅单面打印(false,发送为控制值 NODUPLEX)。仅适用于信件。
addressarray否收件人地址,每个数组条目一行,包括国家/地区。由 PixelLetter 排版。未发送文件时为必填项。
controlstring否接口 control 字段的原始值。公开使用的唯一值是 NODUPLEX,duplex 参数会为你设置该值;因此,只有在 PixelLetter 返回其他令牌时才使用此参数。
goGreenboolean否GoGreen,CO2 中和邮资(添加选项 44)。仅适用于信件。
subjectstring否信件主题。
locationenum否寄送中心:1 = Munich (DE),2 = Hausleiten near Vienna (AT),3 = Hamburg (DE)。API 的默认值为 1。1 | 2 | 3
testModeboolean是测试模式。true 会像真实订单一样运行,但 PixelLetter 不会打印、发送或收费。false 会真正寄出信件。始终必填,以免意外寄出。
faxNumberstring否国际格式的传真号码,例如 "+49 89 72448483"。仅在使用 alsoSendFax 时需要。
colorPrintboolean否彩色打印而非黑白打印(附加服务 33)。仅适用于信件,并非所有投递中心均提供,参见错误 038。
registeredboolean否挂号信(代码 27)。仅限德国。
alsoSendFaxboolean否同时将同一文档作为传真发送。需要 faxNumber。附加服务仍仅适用于信件。
destinationstring否目标国家的双字母 ISO 代码,例如 DE、AT、CH。寄送信件时必填;代码错误会导致邮资错误。
inlineFilesarray否以 base64 而非路径传入的文档。
transactionstring否您自己的交易 ID 或简短备注。PixelLetter 会在响应中返回该值。
returnAddressstring否接口 returnaddress 字段的原始值。公开手册中未作说明。
returnReceiptboolean否回执,签收回执(代码 28)。仅可与 registered 一起使用。
cashOnDeliveryobject否货到付款的银行信息。设置此对象会添加附加服务 31。
cashOnDelivery.namestring是收款人,1 至 27 个字符。
cashOnDelivery.amountstring是金额格式为 XXXX,XX,范围为 3,00 至 1600,00 EUR。
cashOnDelivery.bankCodestring是收款人的德国银行代码(BLZ),必须为 8 位数字。
cashOnDelivery.bankNamestring是收款人的银行名称,1 至 27 个字符。
cashOnDelivery.bankAccountIdstring是收款人的账号,6 至 10 位数字。
cashOnDelivery.reasonForPayment1string否付款用途的第一行,最多 27 个字符。
cashOnDelivery.reasonForPayment2string否付款用途的第二行,最多 27 个字符。
personalDeliveryboolean否亲自递送(代码 29)。仅可与 registered 一起使用。
registeredDropInboolean否投递式挂号信(代码 30)。不能与其他挂号信类型组合使用。
additionalServiceCodesarray否PixelLetter 在其他文档中说明或按账户约定的服务原始 addoption 代码。仅使用 PixelLetter 提供给你的数字。

详细介绍

pixelletter-mcp

面向 PixelLetter HTTPS 接口的本地 MCP 服务(stdio)。提供 PDF 和目的地国家后,PixelLetter 会打印、折叠、贴邮资并寄出信件,也可选择使用挂号邮件。它还可发送传真、取消订单、读取账户余额并处理电子发票签名。

它与 pdf-letter-mcp 配合使用:该服务会生成 DIN 5008 信件 PDF,本服务则负责将其寄出。send_letter 接受 create_letter 返回的绝对路径。

本实现遵循已发布的文档:HTTPS 手册、电子邮件手册、两份签名手册、参考 PHP 类(版本 2.01)以及公开错误代码列表。其中有三个值未在这些文档中列出:彩色打印、GoGreen 邮资和 NODUPLEX 开关。这些值取自 hudora/pyPostal 客户端,该客户端一直使用这些值发送真实订单。下表中已对此作出标注。除此之外,没有任何内容是凭空编造的。

接口工作方式

所有操作都会通过一个 multipart HTTPS POST 请求发送到 https://www.pixelletter.de/xml/index.php。表单字段 xml 携带订单文档,其中包含凭据;字段 uploadfile0、uploadfile1 等则携带文件。响应是一个简短的 XML 文档:代码 100 表示订单已被接受,其他代码均为已发布列表中的错误代码。最终结果(包括收件人地址是否符合地址窗口要求)会在几小时后通过电子邮件送达。

测试模式

每个发送工具都必须显式设置 testMode 标志,没有默认值。testMode: true 会像真实订单一样执行整个流程,但 PixelLetter 不会打印、寄送或收取费用。testMode: false 会实际寄出信件。配置时设置 PIXELLETTER_FORCE_TEST_MODE=true,即可将整个服务固定为测试模式。

安装

npm install
npm run build

在 Claude Code 中注册该服务:

claude mcp add pixelletter \
  --env [email protected] \
  --env PIXELLETTER_PASSWORD=your-password \
  -- node "/absolute/path/to/pixelletter-mcp/dist/src/index.js"

也可以在 ~/.claude.json / claude_desktop_config.json 中注册:

{
  "mcpServers": {
    "pixelletter": {
      "command": "node",
      "args": ["/absolute/path/to/pixelletter-mcp/dist/src/index.js"],
      "env": {
        "PIXELLETTER_EMAIL": "[email protected]",
        "PIXELLETTER_PASSWORD": "your-password",
        "PIXELLETTER_DEFAULT_DESTINATION": "DE"
      }
    }
  }
}

环境变量

变量用途
PIXELLETTER_EMAIL必填。注册 PixelLetter 账户时使用的电子邮件地址。
PIXELLETTER_PASSWORD必填。PixelLetter 密码。
PIXELLETTER_ENDPOINT接口端点。默认为 https://www.pixelletter.de/xml/index.php。
PIXELLETTER_ACCEPT_TERMS每笔订单均接受 PixelLetter 条款,默认为 true。否则 API 会拒绝订单(错误代码 013)。
PIXELLETTER_WAIVE_WITHDRAWAL_RIGHT放弃两周撤销权,以便立即处理订单,默认为 true。设为 false 时,每笔订单都会延迟两周。
PIXELLETTER_DEFAULT_LOCATION默认寄件中心:1 慕尼黑(DE)、2 维也纳附近的 Hausleiten(AT)、3 汉堡(DE)。
PIXELLETTER_DEFAULT_DESTINATION默认目的地国家,两字母 ISO 代码,例如 DE。
PIXELLETTER_FORCE_TEST_MODE强制所有订单使用测试模式,默认为 false。
PIXELLETTER_TIMEOUT_MS请求超时时间,单位为毫秒,默认为 120000。

凭据仅从环境变量读取,不会存储在代码仓库中,也不会写入磁盘。

工具

工具用途
send_letter将文档或纯文本作为实体信件寄出,也可选择同时发送传真。
send_fax仅将文档或纯文本作为传真发送。
get_account_info读取已保存的客户数据和当前余额。
cancel_order根据 PixelLetter 订单 ID 取消已提交的订单。
sign_invoice将文档发送至电子发票签名服务,也可选择继续通过电子邮件发送签名后的 PDF。
get_interface_reference离线查询操作值、寄件中心、服务代码、限制和错误代码。
send_letter

已准备好的 PDF(常见情况):

{
  "testMode": true,
  "files": ["/Users/you/Documents/Briefe/2026-07-24-widerspruch.pdf"],
  "destination": "DE",
  "transaction": "widerspruch-4711"
}

挂号信并附回执,仅单面彩色打印:

{
  "testMode": false,
  "files": ["/Users/you/Documents/Briefe/kuendigung.pdf"],
  "destination": "DE",
  "registered": true,
  "returnReceipt": true,
  "colorPrint": true,
  "duplex": false
}

纯文本,由 PixelLetter 排版,签名存储在账户中:

{
  "testMode": true,
  "address": ["Erika Mustermann", "Musterstr. 28", "81237 Musterstadt", "Deutschland"],
  "subject": "Ihre Anfrage vom 12.07.2026",
  "text": "Hallo Frau Mustermann,\n\nvielen Dank für Ihre Anfrage.\n\nMit freundlichen Grüßen\n\n%Unterschrift%\nMax Mustermann",
  "destination": "DE"
}

发送前工具会执行以下规则:

  • 一个订单只能包含文档或文本,不能两者兼有。多个文档会按给定顺序转换并合并为一封信。
  • 信件必须指定目的地国家,代码错误会导致邮资错误。
  • 收件人地址必须显示在文档的信封窗口区域内,PixelLetter 会在寄出前检查这一点。
  • 允许上传的文件类型为 .pdf、.doc、.xls、.ppt、.rtf、.wpd、.psd,最大 50 MB。错误 053 表明 PixelLetter 可以将此限制为 PDF,因此 PDF 是稳妥的选择。
  • 附加服务、彩色打印和双面打印仅适用于信件,纯传真订单不接受这些选项。代码 28(回执)和 29(亲自递送)需要代码 27(挂号),代码 30(投递挂号)可单独使用。挂号信是德国的产品,其他目的地会触发错误 026。

界面的所有选项

全面涵盖界面文档中列出的字段。“适用范围”说明哪些寄送类型接受该选项;无效组合会在请求发出前被拒绝。

API 字段工具参数允许的值适用对象来源
emailPIXELLETTER_EMAIL账户电子邮箱全部HTTPS 手册
passwordPIXELLETTER_PASSWORD账户密码全部HTTPS 手册
agbPIXELLETTER_ACCEPT_TERMSja、nein全部HTTPS 手册
widerrufsverzichtPIXELLETTER_WAIVE_WITHDRAWAL_RIGHTja、nein;nein 会将订单延迟两周全部HTTPS 手册
testmodustestMode、PIXELLETTER_FORCE_TEST_MODEtrue、false全部HTTPS 手册
order type根据输入选择text、upload、cancel全部HTTPS 手册、参考类
actionsend_letter、alsoSendFax、send_fax、sign_invoice1 信件、2 传真、3 信件和传真、4 发票签名全部HTTPS 手册、签名手册
transactiontransaction任意文本,会随响应返回全部HTTPS 手册
faxfaxNumber国际格式,+49 89 72448483传真HTTPS 手册
locationlocation1 慕尼黑(DE)、2 维也纳附近的 Hausleiten(AT)、3 汉堡(DE),默认值为 1信件、传真HTTPS 手册
destinationdestination、PIXELLETTER_DEFAULT_DESTINATION两字母 ISO 代码;信件必填;纯传真会忽略此项信件HTTPS 手册
addoption 27registeredEinschreiben,挂号信信件HTTPS 手册
addoption 28returnReceiptRückschein,回执;仅可与 27 搭配信件HTTPS 手册
addoption 29personalDeliveryEigenhändig,亲收;仅可与 27 搭配信件HTTPS 手册
addoption 30registeredDropInEinschreiben Einwurf,投递挂号信;不可与 27、28、29 组合信件HTTPS 手册
addoption 31cashOnDeliveryNachnahme,提供银行信息块时自动设置信件参考类 2.01
addoption 33colorPrint彩色打印,而非黑白打印信件pyPostal,错误 038
addoption 44goGreenGoGreen,CO2 中和邮资信件pyPostal
其他 addoptionadditionalServiceCodesPixelLetter 为你的账户约定的原始编号信件HTTPS 手册
controlduplextrue 为双面打印(PixelLetter 默认值),false 会为单面打印发送 NODUPLEX信件pyPostal
原始 controlcontrolPixelLetter 提供的任意标记;不可与 duplex 组合信件、传真参考类 2.01
returnaddressreturnAddress原始值,无公开定义信件、传真参考类 2.01
wiretransfer/recipient/namecashOnDelivery.name1 至 27 个字符信件参考类,错误 030 至 037
wiretransfer/recipient/bankaccountidcashOnDelivery.bankAccountId6 至 10 位数字信件参考类,错误 036
wiretransfer/recipient/blzcashOnDelivery.bankCode恰好 8 位数字信件参考类,错误 037
wiretransfer/recipient/banknamecashOnDelivery.bankName1 至 27 个字符信件参考类,错误 031
wiretransfer/reasonforpayment1cashOnDelivery.reasonForPayment1最多 27 个字符信件参考类,错误 032
wiretransfer/reasonforpayment2cashOnDelivery.reasonForPayment2最多 27 个字符信件参考类,错误 033
wiretransfer/amountcashOnDelivery.amountXXXX,XX,3,00 至 1600,00 EUR信件参考类,错误 034、035
text/addressaddress收件人地址行,包含国家信件、传真HTTPS 手册
text/subjectsubject信件主题信件、传真HTTPS 手册
text/messagetext纯文本,不含 HTML;%Unterschrift% 会插入已保存的签名信件、传真HTTPS 手册
uploadfile0、uploadfile1、...files、inlineFiles.pdf、.doc、.xls、.ppt、.rtf、.wpd、.psd,每个文件 50 MB信件、传真、签名HTTPS 手册
order type="cancel"/idcancel_order.orderIdPixelLetter 订单 ID取消参考类 2.01
sender、recipient、cc、bcc、subject、body、filenamesign_invoice.notification.*签名通知的电子邮件字段签名签名手册
info/account:info type="all"get_account_info无参数账户HTTPS 手册
get_interface_reference 在运行时会返回相同的列表,包括完整的错误代码表。

该接口不提供的功能

明确列出这些内容,因为它们的缺失是 API 的特性,而不是此服务的疏漏:

  • 没有订单列表。 没有文档说明可通过哪个调用来列出或查询已提交的订单。cancel_order 使用确认邮件中的订单 ID;get_account_info 会报告余额;其他所有内容都在 PixelLetter 客户专区中。
  • 没有信封或纸张格式、邮资类别、投递速度、封面、回邮信封或寄件人标识。 这些都不是接口字段。信件会装入 DIN C6/5 窗口信封,邮资根据重量和目的地国家确定。
  • 没有地址更正功能。 错误 088 中提到了 Premiumadress,但必须由 PixelLetter 支持团队为账户启用,且没有对应的请求字段。
  • 明信片、上传模板和批量订单。 参考类和错误代码表明这些功能确实存在(font、模板编号、操作 5),但手册没有记录它们的操作值或字段布局。猜测操作值可能导致真实的错误寄送,因此不提供这些功能。
  • 身份验证块中的 ref 没有文档说明其含义,并且始终为空发送,与参考类完全相同。

验证

npm test    # XML payloads, response parsing, option rules, configuration, HTTP layer with a mocked fetch

测试不会访问线上 API。HTTP 层通过注入的 fetch 进行测试,以检查端点、xml 字段、uploadfileN 部分、测试模式标记和错误代码映射。

许可证

MIT,参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。