Five engines, one system
The ParceLabs AI Engine answers the questions cross-border trade depends on — first of all, which HS code a product takes and what duty follows. I designed and built it: one service, five engines, one contract.
Open platform ↗Why it exists
A product shipped out of or into the EU needs an HS code, and the code decides the duty. A wrong code means a wrong rate — and a customer who pays for it. The engine's job is to return the right code with the evidence behind it, fast enough to sit inside a checkout or an operator's workflow.
What I did
I designed the platform and wrote it: the module system, the retrieval layer, the TARIC data pipeline, the REST and MCP surfaces and the evaluation tooling. EasyDogana, the customs engine, runs in production. The other four engines already expose their final REST and MCP contracts, with deterministic implementations while their models mature — so integrations can be built against them today.
How it works
Every client — an integrator, an AI agent over MCP, EasyParcel's platform — signs in through ParceLabs Auth and reaches the same gateway. Each engine mounts itself there with its REST routes and MCP server, and the engines call one another in-process through a shared tool registry.
- Clientsintegrators · AI agents · EasyParcel
- ParceLabs AuthOAuth2 / OIDC · per-engine scopes
- GatewayREST + MCP, one registry
- EasyDoganacustoms · production
- EasyShip · EasyQuote · EasyCare · EasyInsightssame contract · beta
- Retrievallexical + semantic · rerank · confidence
- TARIC pipelineEU releases · staged · alias swap
The tariff changes every month. The service doesn't stop.
The EU publishes TARIC releases and update sets. Each one moves through a staged pipeline, and search switches to it with an atomic alias swap. A run that fails pauses instead of going live; if the semantic index is missing at startup, search falls back to lexical only — and says so.
- 01Registered
- 02Ingesting
- 03Validating
- 04Indexing
- 05Ready
Evidence, not a guess
Classification combines lexical and semantic search over the official multilingual TARIC, fuses the two, anchors the candidates to the product's material and chapter and reranks the shortlist. Every answer carries ranked codes, a confidence score and the notes that justify it — and reports which stages ran degraded.
Measured before it ships
Quality work is gated by a labelled set of real products and their correct codes, scored automatically at top-1 and top-5. Misses are sorted by where they happened — wrong chapter, right chapter but wrong code, correct code never retrieved — so each change targets the stage that failed.
Written once, reachable three ways
A tool is written once. It becomes a REST endpoint for integrators, an MCP tool for AI agents and an in-process call for the other engines — the same code and the same permissions behind all three.