Novaposhta Mcp Server
БесплатноНе проверенMCP Server for Nova Poshta API integration with AI assistants
Описание
MCP Server for Nova Poshta API integration with AI assistants
README
@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
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
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-fetch
🚀 Quick Start
Nova Poshta API Client
import { createClient, AddressService, ReferenceService, TrackingService } from '@shopana/novaposhta-api-client';
import { createFetchHttpTransport } from '@shopana/novaposhta-transport-fetch';
// Create client with plugins
const client = createClient({
transport: createFetchHttpTransport(),
baseUrl: 'https://api.novaposhta.ua/v2.0/json/',
apiKey: process.env.NOVA_POSHTA_API_KEY,
})
.use(new AddressService())
.use(new ReferenceService())
.use(new TrackingService());
// Use the namespaced API
const cities = await client.address.searchCities({ FindByString: 'Київ', Limit: 10 });
const cargoTypes = await client.reference.getCargoTypes();
const tracking = await client.tracking.trackDocument({ Documents: ['20450123456789'] });
console.log('Found cities:', cities.data.length);
console.log('Package status:', tracking.data[0].Status);
MCP Server for AI Assistants
Add to your .mcp.json or Claude Desktop config:
{
"mcpServers": {
"novaposhta": {
"command": "npx",
"args": ["-y", "-p", "@shopana/novaposhta-mcp-server", "novaposhta-mcp"],
"env": {
"NOVA_POSHTA_API_KEY": "your_api_key_here"
}
}
}
}
Then ask Claude:
- "Track Nova Poshta package 20450123456789"
- "Find warehouses in Kyiv with POS terminals"
- "Calculate shipping cost from Kyiv to Lviv for 5kg parcel"
🏗️ Architecture
All carrier clients in this monorepo follow a consistent, battle-tested design pattern:
┌─────────────────────────────────────────┐
│ Your Application │
└──────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Plugin-based API Client │
│ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Address │ │Reference │ │Tracking │ │
│ │ Service │ │ Service │ │ Service │ │
│ └──────────┘ └──────────┘ └─────────┘ │
└──────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Transport Layer (Injectable) │
│ fetch / axios / custom │
└─────────────────────────────────────────┘
Key Principles
- 🔌 Plugin-based: Connect only the services you need
- 🎯 Type-safe: Complete TypeScript coverage with inference
- 🎨 Transport-agnostic: Use fetch, axios, or custom HTTP client
- 🌳 Tree-shakeable: Optimal bundle size - only what you use
- 📛 Namespaced API: Clean, organized method calls
- 🧪 Testable: Mock transport layer for unit tests
📚 Documentation
Package Documentation
Additional Resources
🛠️ Development
Prerequisites
- Node.js 18+ or 20+
- Yarn 3+ (Yarn Workspaces)
Setup
# Clone the repository
git clone https://github.com/shopanaio/carrier-api.git
cd carrier-api
# Install dependencies
yarn install
# Build all packages
yarn build
Available Scripts
# Development
yarn dev # Watch mode for API client
yarn dev:mcp:stdio # Run MCP server in stdio mode
yarn dev:mcp:http # Run MCP server in HTTP mode
# Building
yarn build # Build API client
yarn build:mcp # Build MCP server
# Testing
yarn test # Run all tests
yarn test:watch # Run tests in watch mode
yarn test:coverage # Generate coverage report
yarn test:mcp # Run MCP server tests
# Code Quality
yarn lint # Lint TypeScript files
yarn lint:fix # Fix linting issues
yarn format # Format code with Prettier
yarn format:check # Check code formatting
yarn type-check # Run TypeScript type checking
Project Structure
carrier-api/
├── packages/
│ ├── novaposhta-api-client/ # Core API client
│ │ ├── src/
│ │ │ ├── core/ # Client core logic
│ │ │ ├── services/ # Service plugins
│ │ │ ├── types/ # TypeScript types
│ │ │ └── index.ts
│ │ └── package.json
│ │
│ ├── novaposhta-mcp-server/ # MCP server for AI
│ │ ├── src/
│ │ │ ├── cli/ # CLI entry points
│ │ │ ├── tools/ # MCP tools
│ │ │ ├── server.ts # Server implementation
│ │ │ └── config.ts
│ │ └── package.json
│ │
│ └── novaposhta-transport-fetch/ # Fetch transport
│ ├── src/
│ └── package.json
│
├── e2e/ # End-to-end tests
├── postman/ # Postman collections
├── .mcp.json # MCP server config
└── package.json # Root package.json
🤝 Contributing
We welcome contributions from the community! Whether it's bug fixes, new features, documentation improvements, or examples - all contributions are appreciated.
How to Contribute
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes: Follow our coding standards
- Add tests: Ensure your changes are tested
- Run tests:
yarn test- make sure everything passes - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request
Development Guidelines
- Write clean, readable TypeScript code
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Use conventional commits (feat, fix, docs, chore, etc.)
Reporting Issues
Found a bug or have a feature request? Please open an issue with:
- Clear description of the issue
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Environment details (Node.js version, OS, etc.)
🗺️ Roadmap
Planned Features
- Additional carrier integrations
- GraphQL API layer
- React hooks package
- CLI tool for common operations
- Webhook handling utilities
- Rate limiting and retry strategies
- Caching layer with configurable adapters
Future Carriers
Eastern Europe:
- Ukrposhta
- Meest
- Justin
- Delivery
International:
- DHL
- FedEx
- UPS
- DPD
Want to help implement these? Contributions welcome!
📊 Status
| Package | Version | Build | Coverage | Downloads |
|---|---|---|---|---|
| @shopana/novaposhta-api-client | npm | |||
| @shopana/novaposhta-mcp-server | npm | |||
| @shopana/novaposhta-transport-fetch | npm |
📄 License
Apache License 2.0 - see LICENSE for details.
This project is licensed under the Apache License 2.0, which means:
- ✅ Commercial use allowed
- ✅ Modification allowed
- ✅ Distribution allowed
- ✅ Patent use allowed
- ✅ Private use allowed
💬 Support & Community
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [email protected]
- Website: shopana.io
🙏 Acknowledgments
- Nova Poshta for their comprehensive API
- Model Context Protocol team at Anthropic
- All contributors who help improve this project
Установить Novaposhta Mcp Server в Claude Desktop, Claude Code, Cursor
unyly install novaposhta-mcp-serverСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add novaposhta-mcp-server -- npx -y @shopana/novaposhta-mcp-serverFAQ
Novaposhta Mcp Server MCP бесплатный?
Да, Novaposhta Mcp Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Novaposhta Mcp Server?
Нет, Novaposhta Mcp Server работает без API-ключей и переменных окружения.
Novaposhta Mcp Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Novaposhta Mcp Server в Claude Desktop, Claude Code или Cursor?
Открой Novaposhta Mcp Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Novaposhta Mcp Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
