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

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

Findings (12)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin register_mailbox
  • LOWTool 'buy_bundle' description lacks action verbin buy_bundle
  • LOWTool 'list_shipments' description lacks action verbin list_shipments
  • LOWTool 'get_item' description lacks action verbin get_item
  • LOWTool 'list_requests' description lacks action verbin list_requests
  • LOWTool 'list_invoices' description lacks action verbin list_invoices
  • LOWTool 'check_inquiry' description lacks action verbin check_inquiry
  • LOWTool 'get_balance' description lacks action verbin get_balance
  • LOWTool 'pay_subscription' description lacks action verbin pay_subscription

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,856Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (3.79% 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": {
    "mailbox": {
      "url": "https://humanmailbox.com/mcp"
    }
  }
}

Remote endpoints

https://humanmailbox.com/mcpstreamable-http

What it can do

Tool inventory

Tools (32)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟑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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded32 tools