Human Mailbox
A physical postal address in Germany for AI agents. A human opens, scans and forwards your mail.
Should I use this
Quality & Safety
Findings (12)
- HIGH
- MEDIUMin register_mailbox
- LOWin buy_bundle
- LOWin list_shipments
- LOWin get_item
- LOWin list_requests
- LOWin list_invoices
- LOWin check_inquiry
- LOWin get_balance
- LOWin pay_subscription
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"mailbox": {
"url": "https://humanmailbox.com/mcp"
}
}
}Remote endpoints
https://humanmailbox.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (32)
π‘register_mailbox(agent_name, address_name, operator_name, operator_email, accept_terms, ...)
Create your own mailbox at a physical street address in Germany. Returns an API key (shown once) and a mailbox code HM-XXXXX that must be written on every envelope. operator_* is the responsible human or company (the contract partner). No human? Leave operator_* out: the mailbox runs on its own with limits (250 β¬ in per month, letters only are forwarded, no parcels). address_name = the name on your mail (yours, an artist or made-up name; not a company, brand, authority or famous person). Read https://humanmailbox.com/legal/terms first.
Input Schema
{
"type": "object",
"properties": {
"agent_name": {
"type": "string"
},
"address_name": {
"type": "string",
"description": "Name on your mail (2β60 chars), e.g. your own or an artist name. Default: agent_name when there is no operator."
},
"operator_name": {
"type": "string",
"description": "Responsible human or company. Optional: leave out (with operator_email) for a mailbox without a human, with limits."
},
"operator_email": {
"type": "string",
"format": "email"
},
"accept_terms": {
"type": "boolean",
"const": true
},
"operator_type": {
"type": "string",
"enum": [
"individual",
"company"
]
},
"operator_country": {
"type": "string"
},
"purpose": {
"type": "string",
"description": "What you will receive mail for."
},
"agent_model": {
"type": "string"
},
"webhook_url": {
"type": "string",
"description": "https URL that gets events (item.received, quote.ready ...)."
},
"open_policy": {
"type": "string",
"enum": [
"standard",
"same_day",
"never"
],
"description": "standard = open + scan within 3 business days (included), same_day = on arrival day (+2 β¬), never = keep sealed."
},
"found_via": {
"type": "string",
"description": "Optional: where you found Human Mailbox (e.g. mcp_registry, smithery, glama, pulsemcp, mcp_so, x402_bazaar, x402scan, search_engine, llms_txt, github, hacker_news, reddit, x, word_of_mouth, other)."
}
},
"required": [
"agent_name",
"accept_terms"
]
}βͺstart_demo(agent_name, agent_model, found_via)
Free demo mailbox, no registration: play money (β¬60 + letter credits), a scanned sample letter and a sealed sample parcel, a sample gift card code. A simulated human handles your orders about 20 seconds later. Returns an api_key for all other tools. Deleted after 7 days; nothing is shipped.
Input Schema
{
"type": "object",
"properties": {
"agent_name": {
"type": "string"
},
"agent_model": {
"type": "string"
},
"found_via": {
"type": "string"
}
}
}βͺexpress_interest(kind, name, email, country_wanted, use_case, ...)
No account needed. Not ready to register, or need something we do not offer yet (another country, a feature)? Leave a note: kind (agent | human), name, email (optional), country_wanted, use_case, found_via. We tell you when it is available.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"agent",
"human"
]
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"country_wanted": {
"type": "string"
},
"use_case": {
"type": "string"
},
"found_via": {
"type": "string"
}
}
}π’get_prices
Prices in EUR: mailbox 15 β¬ per 30 days (3 letters included), letter 3 β¬ (open + scan), parcel 9 β¬, bundles, same-day, forwarding, all 8 services (send letters, vouchers, purchases, digitizing, returns), payment methods.
Input Schema
{
"type": "object",
"properties": {}
}π’get_account(api_key)
Your account, balance, address and counts.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’get_address(style, api_key)
The street address to put on letters and parcels, with your mailbox code in the first line. For registrations that need a first and last name, style "person" gives your operator's name with "c/o Human Mailbox HM-β¦" in the next line (never invent a name).
Input Schema
{
"type": "object",
"properties": {
"style": {
"type": "string",
"enum": [
"company",
"person"
],
"description": "company (default) or person."
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}βͺbuy_bundle(bundle, api_key)
Buy a bundle of letter credits (letters_1 3 β¬, letters_10 25 β¬, letters_100 200 β¬) or same-day credits (same_day_10, same_day_100). Every arriving letter uses 1 credit, a parcel 3. Paid from balance or inline with x402.
Input Schema
{
"type": "object",
"properties": {
"bundle": {
"type": "string",
"enum": [
"letters_1",
"letters_10",
"letters_100",
"same_day_10",
"same_day_100"
]
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"bundle"
]
}βͺpay_item(id, api_key)
An item that arrived without credits or balance waits unopened (payment_status unpaid). Pay it here (credits, balance or x402).
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}βͺannounce_shipment(carrier, tracking, sender, description, expected_at, ...)
Tell the human that something is on its way (tracking number helps). To have something done as soon as it arrives, call request_action with the returned shipment_id.
Input Schema
{
"type": "object",
"properties": {
"carrier": {
"type": "string"
},
"tracking": {
"type": "string"
},
"sender": {
"type": "string"
},
"description": {
"type": "string"
},
"expected_at": {
"type": "string"
},
"instructions": {
"type": "string"
},
"open_mode": {
"type": "string",
"enum": [
"standard",
"same_day",
"never"
]
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’list_shipments(status, api_key)
Your announced shipments.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"announced",
"arrived",
"cancelled"
]
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’list_items(status, api_key)
Everything that arrived for you, newest first, with photo links.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’get_item(id, api_key)
Details of one arrived item; photos and scans are returned as images you can see.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}π‘request_action(action, item_id, shipment_id, note, address, ...)
Ask the human to do something with your mail, documents or parcels. scan = open + scan (included; same_day: true = today, +2 β¬). forward = 3 β¬ (letter) / 5 β¬ (parcel) handling + postage (express: +5 β¬). return. send_letter = we print and post a letter you give as text or pdf_base64 (4 β¬ + postage; registered: einschreibenβ¦). ship_out = returns/shipping for goods here with your label_pdf_base64 or an address (20 β¬ + postage). digitize = receipts, QR codes, labels, serial numbers of an item as photo/PDF/JSON (15 β¬, say what in note). buy_voucher = we buy a permitted gift card (product, value_eur β€ 100; face value + 10 %, min 5 β¬; quoted first, code goes to your vault). buy_item = we buy something only sold locally / by post (what, where, max_price_eur; price + 10 %, min 15 β¬; quoted first). courier, dispose, custom. Fixed parts are paid at once (balance or x402); quoted parts wait for a price (then accept_quote).
Input Schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"scan",
"forward",
"return",
"send_letter",
"ship_out",
"digitize",
"buy_voucher",
"buy_item",
"courier",
"dispose",
"custom"
]
},
"item_id": {
"type": "string"
},
"shipment_id": {
"type": "string",
"description": "Pre-book for an announced shipment that has not arrived yet."
},
"note": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"street": {
"type": "string"
},
"extra": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"name",
"street",
"postal_code",
"city",
"country"
],
"description": "Destination for forward / courier."
},
"sender": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"street": {
"type": "string"
},
"extra": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"name",
"street",
"postal_code",
"city",
"country"
],
"description": "Optional return address printed on the forwarded item. Must be you/your operator or their company."
},
"express": {
"type": "boolean",
"description": "forward only: dispatch the same day (+5 β¬)."
},
"max_postage_eur": {
"type": "number",
"description": "forward/return: postage up to this amount is charged automatically."
},
"same_day": {
"type": "boolean",
"description": "scan only: open + scan today (+2 β¬ or 1 same-day credit)."
},
"text": {
"type": "string",
"description": "send_letter: the letter as plain text (printed as is)."
},
"pdf_base64": {
"type": "string",
"description": "send_letter: the letter as an A4 PDF, base64 (max 5 MB, b/w, up to 10 pages)."
},
"registered": {
"type": "string",
"enum": [
"none",
"einschreiben_einwurf",
"einschreiben",
"einschreiben_rueckschein"
],
"description": "send_letter: registered mail (fee at cost)."
},
"label_pdf_base64": {
"type": "string",
"description": "ship_out: a prepaid shipping / return label as PDF, base64."
},
"carrier": {
"type": "string"
},
"reference": {
"type": "string",
"description": "ship_out: order or return number."
},
"output": {
"type": "string",
"enum": [
"photo",
"pdf",
"json"
],
"description": "digitize: what you want back."
},
"product": {
"type": "string",
"description": "buy_voucher: which gift card / voucher."
},
"value_eur": {
"type": "number",
"description": "buy_voucher: face value (max 100)."
},
"shop": {
"type": "string"
},
"what": {
"type": "string",
"description": "buy_item: what to buy."
},
"where": {
"type": "string",
"description": "buy_item: shop or place, if known."
},
"max_price_eur": {
"type": "number",
"description": "buy_item: the most the item itself may cost (max 500)."
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"action"
]
}π’list_requests(status, api_key)
Your orders and their status.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’get_request(id, api_key)
One order with result notes, tracking and files.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}βͺaccept_quote(id, api_key)
Accept the quoted price of an order (status quote_ready) and pay it.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}π΄cancel_request(id, api_key)
Cancel an order that has not started; paid money goes back to your balance.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}π’list_codes(api_key)
Gift card / voucher codes that arrived by mail. Waiting codes show only label and last characters; revealed codes include the code.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}βͺreveal_codes(ids, api_key)
Reveal waiting codes (1 β¬ per code, from balance or x402). Give ids, or nothing to reveal all waiting codes. Codes not retrieved within 24 months expire.
Input Schema
{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}βͺrequest_invoice(payment_ids, billing, email, api_key)
Only if you need an invoice: creates one (free, no VAT under Β§ 19 UStG) for your payments that have none yet, or for the given payment_ids, and emails it (default: your operator email). Nothing is invoiced unless you call this. billing.name defaults to the operator name; over β¬250 the full address is required.
Input Schema
{
"type": "object",
"properties": {
"payment_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"billing": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"street": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"vat_id": {
"type": "string"
}
}
},
"email": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’list_invoices(api_key)
Invoices you requested (with full text), plus payments that have no invoice yet.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π‘contact_human(topic, body, subject, email, name, ...)
Works without an account. For anything that is not a standard order: topic special_request (a job not in the price list: say what, where, when, budget_eur), is_it_possible (ask before you send mail for it), payment_method (your payment method is missing: give method_wanted), feature_request, problem, question, other. A human answers, usually within one business day. Without api_key you get a ticket: read the answer with check_inquiry.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"special_request",
"is_it_possible",
"payment_method",
"feature_request",
"problem",
"question",
"other"
]
},
"body": {
"type": "string",
"description": "What you need or want to know."
},
"subject": {
"type": "string"
},
"email": {
"type": "string",
"description": "Optional: where the answer should go."
},
"name": {
"type": "string"
},
"budget_eur": {
"type": "number"
},
"deadline": {
"type": "string"
},
"location": {
"type": "string"
},
"method_wanted": {
"type": "string",
"description": "topic payment_method: the method you want (e.g. lightning, usdc-solana, sepa, card)."
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"body"
]
}π’check_inquiry(id, ticket, api_key)
Status and answers of an inquiry from contact_human. Give its id and the ticket (or use your api_key).
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"ticket": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}π’get_balance(api_key)
Your balance and recent transactions.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’get_summary(api_key)
This month: costs by kind, budget used, subscription, open orders, mail and shipments.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π’get_subscription(api_key)
The mailbox costs 15 β¬ per 30 days (3 letters opened and scanned included) and renews from your balance: status and paid_until.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}βͺpay_subscription(months, api_key)
Prepay 1β12 mailbox months (15 β¬ each) from your balance or with x402.
Input Schema
{
"type": "object",
"properties": {
"months": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π‘update_account(budget_eur_month, webhook_url, open_policy, address_name, auto_reveal_codes, ...)
Set budget_eur_month (spending limit for orders, null = none), webhook_url, open_policy (standard | same_day | never), address_name (name on your mail), auto_reveal_codes, or name your human operator (operator_name + operator_email).
Input Schema
{
"type": "object",
"properties": {
"budget_eur_month": {
"type": [
"number",
"null"
]
},
"webhook_url": {
"type": "string"
},
"open_policy": {
"type": "string",
"enum": [
"standard",
"same_day",
"never"
]
},
"address_name": {
"type": "string"
},
"auto_reveal_codes": {
"type": "boolean"
},
"operator_name": {
"type": "string"
},
"operator_email": {
"type": "string"
},
"purpose": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}π‘top_up(method, amount_eur, bundle, api_key)
Add money (EUR): method x402 (pay now in USDC at the current rate), btc (get a Bitcoin address + amount) or paypal (get a link for your human operator). Give amount_eur, or bundle to buy that bundle as soon as it is paid.
Input Schema
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"x402",
"btc",
"paypal"
]
},
"amount_eur": {
"type": "number",
"minimum": 1,
"maximum": 1000
},
"bundle": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"method"
]
}π’check_top_up(id, api_key)
Re-check whether a Bitcoin or PayPal top-up was paid.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"id"
]
}π‘send_message(body, subject, item_id, request_id, api_key)
Write to the human who handles your mail.
Input Schema
{
"type": "object",
"properties": {
"body": {
"type": "string"
},
"subject": {
"type": "string"
},
"item_id": {
"type": "string"
},
"request_id": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": [
"body"
]
}π’list_messages(api_key)
Messages between you and the human.
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your hm_... key. Only needed if your MCP client cannot send the \"Authorization: Bearer\" header."
}
},
"required": []
}Community
Evidence