A side-by-side look at the Postals MCP and Novaposhta MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Postals MCP for delivery work as a local process; choose Novaposhta for delivery as a local process. You can also run both side by side in one mcpServers block.
POSTALS_API_KEY, POSTALS_SENDER_NAME, POSTALS_SENDER_ADDRESS, POSTALS_SENDER_CITY, POSTALS_SENDER_STATE, POSTALS_SENDER_ZIP, POSTALS_DEFAULT_CARD_IMAGE, POSTALS_TEST_MODE.send_postcard, generate_message.NOVA_POSHTA_API_KEY.track_document, track_multiple_documents, track_multiple.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Delivery | Delivery |
| Quality signal | 55/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | POSTALS_API_KEYPOSTALS_SENDER_NAMEPOSTALS_SENDER_ADDRESSPOSTALS_SENDER_CITYPOSTALS_SENDER_STATEPOSTALS_SENDER_ZIPPOSTALS_DEFAULT_CARD_IMAGEPOSTALS_TEST_MODE | NOVA_POSHTA_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 7 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 2 | 51 |
| Full listing | View Postals MCP | View Novaposhta |
send_postcardSend a physical handwritten postcard to a US mailing address. Postals prints it with real robotic handwriting (pen and ink) and mails it via USPS. Delivery in 3-5 business days. Cost: $4.99 per card. Provide the recipient's address, a message (max 400 chars), and optionally an image URL for the card front. If no image is provided, uses the configured default card.generate_messageGenerate a personalized handwritten message for a postcard based on context about the recipient. Returns a ready-to-use message you can pass directly to send_postcard. Uses AI if Cloudflare credentials are configured (CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN); otherwise returns a structured prompt you can use to compose the message yourself.track_documentTrack a single Nova Poshta document by number and optional phone to receive live status, location, and ETA. Doc 1.2 describes the standard success/data/errors/warnings/info envelope returned by Nova Poshta, which this helper surfaces back to the caller.track_multiple_documentsTrack multiple Nova Poshta documents at once and receive aggregated statistics. Doc 1.2 states every API call returns the same envelope, so use the success/errors/warnings fields here to mirror the native batch tracking response.track_multipleTrack multiple Nova Poshta documents with organized results and statistics via TrackingDocument/getStatusDocuments (doc 1.2). Returns successful/failed tracking attempts with delivery statistics (delivered, in-transit, at-warehouse counts). More convenient than track_multiple_documents for batch operations.get_document_movementGet movement history for up to 10 documents including statuses and timestamps. Doc 1.2 identifies InternetDocument numbers as the primary shipment identifiers, which this endpoint accepts in batches.get_document_listList documents created in the given date range. Per doc 1.2, these queries target the InternetDocument model used for оформлення відправлень, so date filters help keep the success/data/errors response manageable.address_get_settlementsGet settlement areas (областей) via Address/getSettlementAreas (doc 1.3). Returns list of administrative regions/areas in Ukraine. Docs recommend caching this public directory for 12 hours.address_get_settlement_country_regionGet settlement country regions (регіонів) for a specific area via Address/getSettlementCountryRegion (doc 1.3). Returns list of regions within an administrative area. Requires areaRef parameter. Docs recommend caching for 12 hours.address_search_citiesFind Nova Poshta cities by name or postal index using Address/getCities (doc 1.3). Docs note the city directory is public (no API key) but must be cached and refreshed daily because it exposes Area and Delivery1-Delivery7 flags. IMPORTANT: Always use limit parameter (recommended: 10) to avoid large responses.address_search_settlementsSearch for settlements (city, town, village) with pagination over the same Address/getCities dataset described in doc 1.3 (Area + Delivery1-Delivery7 fields, daily refresh recommended). IMPORTANT: Always use limit parameter (recommended: 10) to avoid large responses.address_search_streetsSearch for streets inside a settlement via Address/getStreet (doc 1.4). Used for door pickup/delivery flows, limited to 500 records per page, public but should be cached and refreshed daily. IMPORTANT: Always use limit parameter (recommended: 10) to avoid large responses.address_get_warehousesList Nova Poshta warehouses (branches, postomats, pickup points) via Address/getWarehouses (doc 1.5). Docs emphasize caching the branch directory daily to leverage schedule arrays, max weight limits, and warehouse types without re-fetching thousands of rows. IMPORTANT: Always use limit parameter (recommended: 10-20) to avoid large responses.address_saveCreate new address for a counterparty via Address/save (doc 1.24). Requires API key plus CounterpartyRef, StreetRef, BuildingNumber; response returns the Ref and Description needed for door-to-door delivery.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"postals-mcp": {
"command": "npx",
"args": [
"-y",
"postals-mcp"
],
"env": {
"POSTALS_API_KEY": "YOUR_POSTALS_API_KEY_HERE",
"POSTALS_SENDER_NAME": "YOUR_POSTALS_SENDER_NAME_HERE",
"POSTALS_SENDER_ADDRESS": "YOUR_POSTALS_SENDER_ADDRESS_HERE",
"POSTALS_SENDER_CITY": "YOUR_POSTALS_SENDER_CITY_HERE",
"POSTALS_SENDER_STATE": "YOUR_POSTALS_SENDER_STATE_HERE",
"POSTALS_SENDER_ZIP": "YOUR_POSTALS_SENDER_ZIP_HERE",
"POSTALS_DEFAULT_CARD_IMAGE": "YOUR_POSTALS_DEFAULT_CARD_IMAGE_HERE",
"POSTALS_TEST_MODE": "YOUR_POSTALS_TEST_MODE_HERE"
}
}
}
}
{
"mcpServers": {
"novaposhta": {
"command": "npx",
"args": [
"-y",
"@shopana/novaposhta-mcp-server"
],
"env": {
"NOVA_POSHTA_API_KEY": "YOUR_NOVA_POSHTA_API_KEY_HERE"
}
}
}
}