Skip to content

Print and Mail Company

by printandmailcompany.com · remote · no sign-in to list tools · v1.0.0 · published by com.printandmailcompany

Print and mail real letters worldwide from the EU, incl. registered mail. Quote, compose, send.

Deletes · 3Final · 2Changes · 4

14 tools: 3 can delete or cancel things, 2 do something that can't be undone, 4 change things and 5 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http printandmailcompany https://printandmailcompany.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Deletes or cancels 3Claude Code: deny
  • cancel_letterUse this when the user wants to stop a letter they created here: cancels a draft, or a paid letter that has not gone into production yet, and returns the amount to the user's credi…No findings

    Why it is in this group

    • The name "cancel_letter" says "cancel": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when the user wants to stop a letter they created here: cancels a draft, or a paid letter that has not gone into production yet, and returns the amount to the user's credit. Letters already printed or posted cannot be recalled. This cancels our letter, not a contract the user has with someone else (for that, compose_letter writes the cancellation letter). Ask the user before cancelling. Needs the user's account.

    Annotations the server declares

    • title: Cancel letter
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • fix_document_marginsUse this when an uploaded PDF fails the print check because content is too close to the edge or pages are neither A4 nor US Letter.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when an uploaded PDF fails the print check because content is too close to the edge or pages are neither A4 nor US Letter. mode "shrink" (default) scales the affected pages down slightly and centres them on their paper (US Letter for a US Letter PDF, else A4); nothing is lost. mode "crop" keeps pages at 100 % and removes everything inside the margin band, so that content is NOT printed (pages of other sizes are first fitted onto A4). The US Letter pages of a mixed PDF that already fit on A4 keep their placement. The original upload is kept; calling again with the other mode replaces the earlier fix. If content touches the edge, ask the user which mode they prefer and tell them what changed. Not possible once the letter is paid. Needs the user's account.

    Annotations the server declares

    • title: Fix document margins
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • send_letterUse this when the user has explicitly confirmed a specific draft letter (recipient, content and total price) and wants it printed and posted.No findings

    Why it is in this group

    • The name "send_letter" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when the user has explicitly confirmed a specific draft letter (recipient, content and total price) and wants it printed and posted. Pays the letter from the user's prepaid credit and releases it to print; it can be cancelled with cancel_letter only until production starts. Only call this after that confirmation and after the user agreed to the Terms (https://printandmailcompany.com/en/legal/terms) and to printing starting immediately (which ends the consumer right of withdrawal once printed). If credit is too low, the result contains a payment link for the user; the assistant cannot pay. A US Letter PDF to a recipient outside the US, Canada and US territories needs paper_size (ask the user: shrink to A4, recommended, or keep US Letter; same price); without it the call fails with PAPER_CHOICE_REQUIRED and nothing is charged. Posts paper letters only: no email, fax or parcels. Needs the user's account.

    Annotations the server declares

    • title: Send letter (charges credit)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 2Claude Code: ask
  • compose_letterUse this when the user wants to write a new paper letter from text and post it, for example to cancel a contract, subscription or membership by letter, file a complaint or objectio…No findings

    Why it is in this group

    • The input addresses people (input.recipient): what it sends cannot be taken back.
    Description, as the server wrote it
    Use this when the user wants to write a new paper letter from text and post it, for example to cancel a contract, subscription or membership by letter, file a complaint or objection, or send a formal notice, by ordinary or registered mail. Renders an A4 letter (DIN 5008 layout: sender block with the user's own name and address, recipient, place and date, subject, body, closing, signature) that passes the print check, and creates a draft with the exact price. Nothing is sent or charged: show the user the draft and the total, ask for confirmation, then call send_letter. The sender can live in any country. Body supports paragraphs (blank line), '- ' bullets, '1. ' lists and **bold**. Needs the user's account.

    Annotations the server declares

    • title: Compose a letter
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_letterUse this when the user has an uploaded PDF (document_id, or upload_id from create_upload_link) and a recipient address and wants it posted by ordinary or registered mail; registere…No findings

    Why it is in this group

    • The name "create_letter" says "create": a word for a change.
    • The input addresses people (input.recipient): what it sends cannot be taken back.
    Description, as the server wrote it
    Use this when the user has an uploaded PDF (document_id, or upload_id from create_upload_link) and a recipient address and wants it posted by ordinary or registered mail; registered mail is international registered mail with tracking and signature on delivery; "certified" letters, Einschreiben, lettre recommandée and carta certificada mean this here (not a US certified-mail product). Creates a draft with the exact total in the user's currency. Nothing is sent or charged; call send_letter only after the user confirms. Every envelope carries our company return address, so the user's own address belongs in the document. A US Letter PDF to a recipient outside the US, Canada and US territories needs the user's paper choice (paper_size, same price): without it the draft says paper_choice_required. Needs the user's account.

    Annotations the server declares

    • title: Create letter draft
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 4Claude Code: ask
  • check_pdf_marginsUse this when the user has a PDF they want printed and posted and it should be checked first: verifies the page size (A4 or US Letter) and the required free margin on every side, a…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when the user has a PDF they want printed and posted and it should be checked first: verifies the page size (A4 or US Letter) and the required free margin on every side, and lists the pages that need changes. We print on the paper size uploaded (printed_on): A4 on A4, US Letter on US Letter (for a recipient outside the US, Canada and US territories the user may choose A4 instead when sending); a PDF mixing A4 and US Letter pages is printed on A4, its Letter pages centred at 100 % or scaled down slightly when content comes close to the edge (us_letter_note, pages[].scale_percent). Decide by compliant: all_pages_a4 is false for a US Letter PDF, which is printable. Accepts a public https URL or base64. The file is not stored and nothing is sent. Works without sign-in. To fix a failing PDF, upload it with upload_document and use fix_document_margins.

    Annotations the server declares

    • title: Check PDF for printing
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • upload_documentUse this when the user already has a PDF (public https URL or base64) that should be printed and posted.No findings

    Why it is in this group

    • The name "upload_document" says "upload": a word for a change.
    Description, as the server wrote it
    Use this when the user already has a PDF (public https URL or base64) that should be printed and posted. Stores the file in the user's account, runs the print check (A4 or US Letter, free margins; printed_on says the paper: US Letter PDFs are printed on US Letter, a PDF mixing A4 and US Letter pages on A4, see us_letter_note; decide by compliant, as all_pages_a4 is false for a US Letter PDF) and returns document_id for create_letter. If the check fails, call fix_document_margins or ask the user for a corrected file. For a file on the user's own device, use create_upload_link instead. Sends nothing. Needs the user's account.

    Annotations the server declares

    • title: Upload a PDF
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 5Claude Code: allow
  • get_balanceUse this when the user asks how much prepaid credit they have, or to check before sending that the credit covers a letter.No findings

    Why it is in this group

    • The name "get_balance" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks how much prepaid credit they have, or to check before sending that the credit covers a letter. Returns the credit, the account currency and the minimum top-up. Changes nothing. Needs the user's account.

    Annotations the server declares

    • title: Get credit balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_letterUse this when the user asks about a letter they created here: status (draft, paid, in_production, printed, posted, cancelled, returned), tracking number for registered mail, and pr…No findings

    Why it is in this group

    • The name "get_letter" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks about a letter they created here: status (draft, paid, in_production, printed, posted, cancelled, returned), tracking number for registered mail, and price. Look up by letter_id or reference (PM-XXXXXX). Changes nothing. Needs the user's account.

    Annotations the server declares

    • title: Get letter
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_price_quoteUse this when the user asks what it costs to send a physical letter by post (snail mail), including a registered letter.No findings

    Why it is in this group

    • The name "get_price_quote" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks what it costs to send a physical letter by post (snail mail), including a registered letter. Returns the exact total incl. Luxembourg VAT (for a signed-in EU business customer with a confirmed VAT number: excl. VAT under the reverse charge), the line items, the envelope, the postal size class and zone and the typical delivery time for a page count, destination country and print options. Letters are printed and posted in Luxembourg, France, Belgium or Germany, so the sender can be anywhere in the world. Note: registered mail is international registered mail with tracking and signature on delivery; "certified" letters, Einschreiben, lettre recommandée and carta certificada mean this here (not a US certified-mail product). Works without sign-in. Set currency to get the total in USD, GBP or CHF (ECB rate plus currency margin). Does not cover email, fax, parcels or postcards.

    Annotations the server declares

    • title: Get price quote
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_destinationsUse this when the user asks whether a letter can be posted to a country, or which countries can be reached.No findings

    Why it is in this group

    • The name "list_destinations" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the user asks whether a letter can be posted to a country, or which countries can be reached. Without country: all destination countries with their postage zone. With country: that country's zone, the price of a 1-page standard and registered letter, and the typical delivery time. Works without sign-in. Letters only, no parcels.

    Annotations the server declares

    • title: List destinations
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_lettersUse this when the user wants to see their recent letters, optionally filtered by status.No findings

    Why it is in this group

    • The name "list_letters" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the user wants to see their recent letters, optionally filtered by status. Returns status, recipient, price and tracking number per letter. Changes nothing. Needs the user's account.

    Annotations the server declares

    • title: List letters
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http printandmailcompany https://printandmailcompany.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__printandmailcompany__get_price_quote",
      "mcp__printandmailcompany__list_destinations",
      "mcp__printandmailcompany__get_letter",
      "mcp__printandmailcompany__list_letters",
      "mcp__printandmailcompany__get_balance"
    ],
    "ask": [
      "mcp__printandmailcompany__check_pdf_margins",
      "mcp__printandmailcompany__compose_letter",
      "mcp__printandmailcompany__upload_document",
      "mcp__printandmailcompany__create_upload_link",
      "mcp__printandmailcompany__create_letter",
      "mcp__printandmailcompany__create_topup_link"
    ],
    "deny": [
      "mcp__printandmailcompany__fix_document_margins",
      "mcp__printandmailcompany__send_letter",
      "mcp__printandmailcompany__cancel_letter"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as printandmailcompany. Review it before you use it.