Dropscan Mcp

io.github.bitterdevPublished by GitHub account bitterdevv0.1.1Updated Oct 24, 2026

MCP server for the Dropscan postal mail scanning API: read scanned letters, act on mailings.

Overview

AI-generated overview

MCP server for the Dropscan postal mail scanning API, letting an assistant list mailings, download scans, and optionally request scan, forward or destroy…

What you can do
  • List scanboxes, mailings and their statuses, and read individual mailing details
  • Download mailing scans as PDF, ZIP, envelope image or OCR plaintext to disk
  • Look up recipients, forwarding addresses, shipments and webhook rules
  • When writes are enabled, request or cancel mailing actions (scan, forward, destroy) and set a mailing's recipient
  • When writes are enabled, create recipients and forwarding addresses, and create, update or delete webhook rules
When to use it
Useful when you receive physical mail through a Dropscan scanbox and want an assistant to review incoming letters, pull scans and OCR text into a conversation, or prepare mail actions without opening the Dropscan dashboard.
Requirements
Runs locally over stdio as a Python package (Python 3.10 or newer). Needs a Dropscan personal access token supplied through the DROPSCAN_TOKEN environment variable; the manifest names DROPSCAN_API_TOKEN. Optional DROPSCAN_DOWNLOAD_DIR sets the download folder (default ~/Downloads). Desktop client only.
Before you install
Every request hits the real production Dropscan account. Write tools are gated by DROPSCAN_ALLOW_WRITES and a per-call confirm flag, but once enabled they act irreversibly: destroy physically shreds a letter and forward physically mails it and costs money. Webhook rules can carry an authorization header. Keep the token secret and leave writes disabled unless needed.

Installation

In SourceWeft

  1. Open Dropscan Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

dropscan-mcp

MCP (Model Context Protocol) server for the Dropscan postal-mail-to-email API. Dropscan receives your physical letters at a scanbox; this server lets your MCP client list mailings, download the scans (PDF / ZIP / envelope image / OCR text), and, when explicitly enabled, request actions (scan / forward / destroy) and manage recipients, forwarding addresses and webhook rules.

mcp-name: io.github.bitterdev/dropscan-mcp

Safety first: Dropscan has no sandbox

Every request hits the real production account. Actions are irreversible: a destroyed letter is physically shredded and gone, a forward physically mails the letter and costs money.

Because of that, all write/action tools are gated twice:

  1. DROPSCAN_ALLOW_WRITES environment flag. Unless it is set to 1/true/yes, every non-GET tool refuses to run. It is disabled by default.
  2. confirm: true parameter. Each write/action tool takes an explicit confirm argument (default false) and refuses unless it is true.

Read-only GET tools are always available and never change state.

Tools

Read-only (always available)

ToolEndpoint
list_scanboxesGET /scanboxes
list_mailings(scanbox_id, current_status?, older_than?)GET /scanboxes/{id}/mailings
get_mailing(scanbox_id, uuid)GET /scanboxes/{id}/mailings/{uuid}
get_mailing_pdf(scanbox_id, uuid, save_path?)GET .../{uuid}/pdf
get_mailing_zip(scanbox_id, uuid, save_path?)GET .../{uuid}/zip
get_mailing_envelope(scanbox_id, uuid, save_path?)GET .../{uuid}/envelope
get_mailing_plaintext(scanbox_id, uuid)GET .../{uuid}/plaintext
list_recipients(scanbox_id)GET /scanboxes/{id}/recipients
get_recipient(scanbox_id, recipient_id)GET /scanboxes/{id}/recipients/{id}
get_forwarding_address(address_id)GET /forwarding_addresses/{id}
get_shipment(shipment_id)GET /shipments/{id}
list_webhook_rules()GET /webhook_rules
get_webhook_rule(rule_id)GET /webhook_rules/{id}

The download tools save the asset to disk (default ~/Downloads, override with save_path or the DROPSCAN_DOWNLOAD_DIR env var) and return the saved path, byte size and content type.

Write / action (double-gated: DROPSCAN_ALLOW_WRITES=1 and confirm=true)

ToolEndpoint
request_mailing_action(scanbox_id, mailing_uuid, action_type, forwarding_address_id?, forwarding_date?, confirm)POST .../{uuid}/action_requests
cancel_mailing_action(scanbox_id, mailing_uuid, action_request_id, confirm)DELETE .../{uuid}/action_requests/{id}
set_mailing_recipient(scanbox_id, mailing_uuid, recipient_id, confirm)PUT .../{uuid}/recipient
create_recipient(scanbox_id, type, firstname?, lastname?, name?, confirm)POST /scanboxes/{id}/recipients
create_forwarding_address(firstname, lastname, street, number, zip_code, city, country_code, company?, info?, state?, confirm)POST /forwarding_addresses
create_webhook_rule(url, events, authorization_header?, confirm)POST /webhook_rules
update_webhook_rule(rule_id, url?, events?, authorization_header?, confirm)PATCH /webhook_rules/{id}
delete_webhook_rule(rule_id, confirm)DELETE /webhook_rules/{id}

action_type is one of scan, forward, destroy (exact enum from the API). For forward, both forwarding_address_id and forwarding_date (ISO YYYY-MM-DD) are required.

Webhook events: mailing_received, scan_requested, mailing_scanned, mailing_archived, mailing_trashed, mailing_shredded, mailing_added_to_shipment, mailing_removed_from_shipment, shipment_sent, package_tracking_updated.

Requirements

  • Python >= 3.10
  • A Dropscan personal access token

Installation

From a local clone:

bash
python3 -m venv .venv./.venv/bin/pip install .

Configuration

The token is read from the DROPSCAN_TOKEN environment variable and sent as Authorization: Bearer <token>. It is never hardcoded.

Claude Code

bash
claude mcp add dropscan -e DROPSCAN_TOKEN="dspat-..." -- dropscan-mcp

Claude Desktop / generic MCP client

json
{  "mcpServers": {    "dropscan": {      "command": "/absolute/path/to/dropscan-mcp/.venv/bin/python",      "args": ["-m", "dropscan_mcp.server"],      "env": {        "DROPSCAN_TOKEN": "dspat-..."      }    }  }}

To enable the write/action tools, add "DROPSCAN_ALLOW_WRITES": "1" to env. Leave it out to keep the server strictly read-only.

The server runs over stdio.

Environment variables

VariableDescription
DROPSCAN_TOKENRequired. Dropscan personal access token (Bearer).
DROPSCAN_ALLOW_WRITESSet to 1/true to enable write/action tools. Default: disabled.
DROPSCAN_DOWNLOAD_DIRDefault directory for downloaded PDFs/ZIPs/images. Default: ~/Downloads.

License

MIT, see LICENSE.

Author

Fabian Bitter ([email protected])

Source: README.md at commit 86a9fa6

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts