Novaposhta MCP server
io.github.shopanaio/novaposhta·v0.0.1-alpha.7·7 starsMCP Server for Nova Poshta API integration with AI assistants
7 stars
Reviews
Write oneNobody has reviewed Novaposhta yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Novaposhta tools (50, 16 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
address_deletewrite actionDelete counterparty address by reference using Address/delete (doc 1.25). Allowed only before the address participates in an Internet document; afterward the API blocks deletion.
address_get_settlement_country_regionGet settlement country regions (\u0440\u0435\u0433\u0456\u043E\u043D\u0456\u0432) 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_get_settlementsGet settlement areas (\u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439) 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_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_savewrite actionCreate 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.
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_updatewrite actionUpdate existing counterparty address with Address/update (doc 1.25). Nova Poshta docs stress you can edit an address only until a waybill is created with it, so run this immediately after address creation.
contact_person_deletewrite actionDelete contact person by reference using ContactPerson/delete (doc 1.27). Nova Poshta allows deletions via API only for legal entities and only until the contact was used on an Internet document.
contact_person_savewrite actionCreate new contact person for a counterparty via ContactPerson/save (doc 1.26). Docs require entering all fields in Ukrainian and with an API key; response returns the Ref/Description pair referenced in waybills.
contact_person_updatewrite actionUpdate existing contact person details via ContactPerson/update (doc 1.27). Only legal entities may edit full profiles, private persons can change phone only, and edits are allowed solely before a waybill is issued for that counterparty.
counterparty_deletewrite actionDelete counterparty by reference using Counterparty/delete (doc 1.22). IMPORTANT: Docs explicitly state only Recipient counterparties can be deleted through the API; Sender cleanup must go through your account manager.
counterparty_get_addressesGet addresses for a specific counterparty using Counterparty/getCounterpartyAddresses (doc 1.6). Requires API key plus CounterpartyProperty/Ref and, per docs, should be refreshed daily because every page is capped at 500 entries.
counterparty_get_contact_personsGet contact persons for a counterparty through Counterparty/getCounterpartyContactPersons (doc 1.6). API key is mandatory and the list should be cached daily; use paging to stay under the 500-record response cap.
counterparty_get_counterpartiesGet counterparties list filtered by property (Sender/Recipient/ThirdPerson) via Counterparty/getCounterparties (doc 1.6). Docs require an API key, recommend caching the directory daily, and note each page tops out at 500 rows so always filter with CounterpartyProperty/FindByString.
counterparty_get_optionsGet counterparty options and permissions via Counterparty/getCounterpartyOptions (doc 1.23) to see booleans such as CanPayTheThirdPerson, CanSameDayDelivery, HideDeliveryCost, etc., before building a waybill.
counterparty_savewrite actionCreate new counterparty (private person or organization) with Counterparty/save (docs 1.20\u20131.21). Provide CityRef + CounterpartyProperty/Type; private persons require first/last name while organizations must also send OwnershipForm and EDRPOU. Docs recommend refreshing supporting directories monthly and note an API key is required.
counterparty_updatewrite actionUpdate existing counterparty details via Counterparty/update (doc 1.22). Nova Poshta only lets you edit a counterparty from creation up until you create a waybill (\u0406\u0414) with it, so run updates early.
get_document_listList documents created in the given date range. Per doc 1.2, these queries target the InternetDocument model used for \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u043D\u044F \u0432\u0456\u0434\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u044C, so date filters help keep the success/data/errors response manageable.
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.
reference_decode_messageDecode Nova Poshta API message code into human readable text. Doc 1.2 explains how every response contains success/data/errors/warnings/info blocks with numeric codes; this helper calls getMessageCodeText to map those codes to UA/RU descriptions.
reference_get_backward_cargo_typesList backward delivery cargo types via Common/getBackwardDeliveryCargoTypes (doc 1.18). Returns types of cargo that can be sent back (documents, money, etc.). Used for return shipments and COD. Docs recommend caching monthly.
reference_get_cargo_description_listList cargo descriptions with optional search via Common/getCargoDescriptionList (doc 1.15). Returns predefined descriptions for common cargo types. Supports search by keyword. Docs recommend caching monthly.
reference_get_cargo_typesList available cargo types supported by Nova Poshta via Common/getCargoTypes (doc 1.8). Docs advise caching this API-key-protected directory monthly; expect values such as Parcel, Cargo, Documents, TiresWheels, Pallet.
reference_get_ownership_formsList corporate ownership forms required for counterparty creation via Common/getOwnershipFormsList (doc 1.11). Docs provide both short and full names for refs such as \u0422\u041E\u0412, \u041F\u0440\u0410\u0422, \u0424\u0413 and recommend a monthly refresh.
reference_get_pack_listList available packaging types via Common/getPackList (doc 1.10). Returns standard package dimensions and descriptions. Useful for calculating delivery costs and validating package options. Docs recommend caching monthly.
reference_get_pallet_typesList pallet types with dimensions and weight via Common/getPalletsList (doc 1.13). Refresh monthly per docs, especially when offering reverse delivery of pallets.
reference_get_payment_formsGet list of payment forms (Cash/NonCash) for waybill creation with Common/getPaymentForm (doc 1.7). Nova Poshta notes non-cash payments are available only to contracted clients, so keep a cached copy to validate user choices.
reference_get_payment_methodsList supported payment methods for shipments (Cash/NonCash) matching the Common/getPaymentForm directory from doc 1.7, which notes that non-cash payments are only available to customers with a Nova Poshta contract.
reference_get_pickup_time_intervalsGet available pickup time intervals via Common/getPickupTimeIntervals (doc 1.17). Returns time windows when Nova Poshta can pick up packages from sender. Requires city reference and date. Docs recommend caching hourly.
reference_get_redelivery_payersList payer types for redelivery via Common/getTypesOfPayersForRedelivery (doc 1.19). Returns who can pay for backward delivery (Sender/Recipient). Used with return shipments. Docs recommend caching monthly.
reference_get_service_typesList delivery service types (warehouse-door etc.) through Common/getServiceType (doc 1.9). Docs say to refresh monthly and point out the four core technologies: WarehouseWarehouse, WarehouseDoors, DoorsWarehouse, DoorsDoors.
reference_get_time_intervalsGet available delivery time intervals for recipient city using Common/getTimeIntervals (doc 1.16). Requires RecipientCityRef (and optional DateTime) and returns Number/Start/End entries that docs recommend caching monthly.
reference_get_tires_wheels_listList available tires and wheels types via Common/getTiresWheelsList (doc 1.12). Returns types and descriptions for shipping tires and wheels as cargo. Docs recommend caching monthly.
reference_get_types_of_counterpartiesGet list of counterparty types (PrivatePerson/Organization) via Common/getTypesOfCounterparties (doc 1.14). Requires API key and, per docs, should be refreshed monthly to stay aligned with sender/recipient onboarding rules.
reference_get_types_of_payersGet list of payer types (Sender/Recipient/ThirdPerson) for waybill creation via Common/getTypesOfPayers (doc 1.7). Docs stress the ThirdPerson payer is accessible only after signing a service contract and that the directory should be cached monthly.
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_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.
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.
waybill_calculate_costCalculate delivery cost and optional delivery date estimation for a shipment. Doc 1.2 explains that every Nova Poshta call sends apiKey/modelName/calledMethod/methodProperties, so this helper either forwards your raw InternetDocument payload or builds one from typed fields (CitySender, CityRecipient, ServiceType, CargoType, Cost, Weight, SeatsAmount).
waybill_createwrite actionCreate a standard Nova Poshta waybill (Internet document) via InternetDocument/save (doc 1.2). This is the basic waybill creation method. For additional services use waybill_create_with_options. For postomat delivery use waybill_create_for_postomat.
waybill_create_batchwrite actionBatch create multiple waybills sequentially via InternetDocument/save (doc 1.2). Processes each waybill one by one to avoid rate limiting. Returns array of results including any errors. Useful for bulk shipment creation.
waybill_create_for_postomatwrite actionCreate a waybill for postomat delivery via InternetDocument/save (doc 1.2). Postomats have size/weight restrictions (max 30kg, max dimensions). Requires proper warehouse selection (postomat type) and seat options configuration.
waybill_create_with_optionswrite actionCreate a Nova Poshta waybill with additional options and services via InternetDocument/save (doc 1.2). Supports backward delivery, additional services, third-party payer, and RedBox barcodes. Use this when you need COD, insurance, or return shipments.
waybill_deletewrite actionDelete one or multiple waybills by their DocumentRef via InternetDocument/delete (doc 1.2). Waybills can only be deleted before they enter processing. Returns success/error status for the operation.
waybill_delete_batchwrite actionBatch delete multiple waybills by their DocumentRef via InternetDocument/delete (doc 1.2). Alias for waybill_delete that processes all refs in a single API call. Waybills can only be deleted before they enter processing.
waybill_get_delivery_dateGet estimated delivery date for a city pair and service type. Doc 1.2 outlines the generic Nova Poshta envelope, and this helper builds the methodProperties (CitySender, CityRecipient, ServiceType, optional DateTime) expected by the delivery-date method.
waybill_get_estimateGet complete shipment estimate (price + delivery date) in one call via InternetDocument/getDocumentPrice and getDocumentDeliveryDate (doc 1.2). Combines cost calculation and delivery date estimation for convenience. Requires the same PascalCase parameters as waybill_calculate_cost.
waybill_updatewrite actionUpdate an existing waybill. Per doc 1.2 the same InternetDocument request envelope is used for update calls, so pass the raw payload (must include DocumentRef) exactly as defined by Nova Poshta.
Public scan report
scanner v0.1.10 · 2026-10-01 · same rubric, same numbers if you re-run it
- Code scan23 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 4 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
How Novaposhta compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 82/100
- higher than 63% of 48,255 servers
- Tools
- 50
- the typical server has 7
- Tools that change things
- 32%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 7
- more than 86% of 28,688 servers
What its tools let an agent do: 28 read · 9 create · 13 change
Install Novaposhta in Claude Code, Cursor or VS Code
Runs npx -y @shopana/novaposhta-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add novaposhta -- npx -y @shopana/novaposhta-mcp-server
What the publisher says
From the Novaposhta repository's README, as published. We do not edit it. Read it on GitHub
@shopana/carrier-api
Modern type-safe API clients for shipping carriers
Features • Packages • Quick Start • Documentation • Contributing
🚀 Overview
A production-ready monorepo containing enterprise-grade TypeScript API clients for shipping carriers. Built with modern architecture patterns, each client features plugin-based design, full type safety, and transport-agnostic implementation.
🎯 Why Carrier API?
- ✨ Type-Safe: Complete TypeScript coverage with strict typing
- 🔌 Plugin Architecture: Use only what you need, tree-shake the rest
- 🌐 Universal: Works in Node.js, browsers, and edge runtimes
- 🎨 Transport-Agnostic: Bring your own HTTP client
- 🤖 AI-Ready: MCP server for Claude and other AI assistants
- 📦 Zero Config: Sensible defaults, works out of the box
📦 Packages
Carrier API Clients
@shopana/novaposhta-api-client
Nova Poshta API client with plugin architecture and complete type safety.
Features:
- 🔧 Plugin-based services (Address, Reference, Tracking, Waybill, Counterparty, ContactPerson)
- 📛 Namespaced API: client.address., client.reference., client.tracking., client.waybill.
- 🎯 Full TypeScript support with strict typing
- 🔄 Transport-agnostic design
- 🌳 Tree-shakeable - only bundle what you use
- 📖 Comprehensive documentation with examples
npm i @shopana/novaposhta-api-client @shopana/novaposhta-transport-fetch📚 Documentation
AI Integration
@shopana/novaposhta-mcp-server
Model Context Protocol (MCP) server for integrating Nova Poshta with AI assistants like Claude.
Features:
- 🤖 Full MCP 1.22+ support
- 📍 Comprehensive tracking and address search
- 📝 Waybill creation and management
- 📚 Reference data access
- 🔄 Dual transport (stdio + HTTP)
- 🏢 Production-ready with enterprise-grade error handling
npx @shopana/novaposhta-mcp-server📚 Documentation
Transport Implementations
@shopana/novaposhta-transport-fetch
Fetch-based HTTP transport for Nova Poshta API client.
Features:
- 🌐 Cross-platform (Node.js, browsers, edge runtimes)
- ⚙️ Configurable headers and fetch implementation
- 🚫 AbortSignal support for request cancellation
- 📦 Minimal dependencies
- ⚡ Lightweight and fast
npm i @shopana/novaposhta-transport-fetchShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Novaposhta: common questions
- Is Novaposhta MCP server safe?
- Mostly: it is graded B (82/100). Read the Novaposhta safety report
- How do I install Novaposhta?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Novaposhta need an API key?
- Yes. The registry entry asks for
NOVA_POSHTA_API_KEY. - Is Novaposhta maintained?
- The last commit was 37 days ago (2026-09-28). The latest release is v0.0.1-alpha.7.
- How does Novaposhta compare with other MCP servers?
- safety score 82/100 (higher than 63% of 48,255 servers); tools 50 (the typical server has 7); tools that change things 32% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.