SEMERO Express Delivery & Customs
Server Details
Express delivery to/from Ukraine via DHL, FedEx & others: prices, customs guidance, duty estimates
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Most tools target distinct intents: company info, contacts, tracking, routing, restricted items, and price calculation are clearly separable. The main overlap is check_customs vs calculate_customs_payments, which is handled well by explicit individual-vs-company framing, though search_faq also covers delivery/customs/documents and could compete with delivery_rules, restricted_items and check_customs for general questions.
All names are snake_case and readable, with a predictable verb_noun form for actions (calculate_price, check_customs, search_faq, tracking_link). A few are noun phrases rather than verb-led (delivery_route, delivery_rules, restricted_items, about_semero), a minor deviation but not confusing.
Ten tools is well within the sensible 3–15 range and each maps to a concrete user need (who we are, price, customs, contacts, routing, rules, restricted goods, FAQ, tracking). Nothing feels redundant or padded.
The informational surface is broad: pricing, customs for both individuals and companies, preparation rules, restricted items, FAQ, routing and tracking link. Gaps are deliberate and documented (no order intake, no live tracking status, no HS code determination), leaving only minor dead ends an agent must route to a human to resolve.
Available Tools
10 toolsabout_semeroПро SEMEROARead-onlyIdempotentInspect
Who SEMERO is (ТОВ «Експрес Поштовий Сервіс»): international express delivery agent and licensed customs broker (UACBR125000640), since 2015, 16 years of staff experience with DHL/FedEx clearance; main clients are companies sending commercial cargo, samples or repairs 0.1–70 kg; individuals — documents and small personal parcels. Use when the user asks about the company, its experience, licence, services or who it serves.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds real substance by enumerating what the static content contains (legal entity name, UACBR licence number, operating history, target client segments), which tells the agent this is a fixed informational snapshot rather than dynamic data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the identity/content facts are front-loaded, followed immediately by the usage trigger. Every clause carries either identification or routing value, even the licence code and weight range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No parameters and no output schema, yet the description effectively previews the return content by listing the attributes the agent will get (licence, tenure, service scope, client types). An agent has everything needed to decide to call it and to know what kind of answer to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is closed (additionalProperties: false), so there is nothing for the description to disambiguate. Baseline of 4 applies for a correctly parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (company profile: legal entity, licence, history, client base) and a clear question type it answers. It does not name the sibling tools it should be distinguished from, but its scope is specific enough that an agent can tell it apart from contact_semero or search_faq by inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'Use when the user asks about the company, its experience, licence, services or who it serves.' That is a clear when-to-use condition. It offers no exclusions or explicit alternative routing, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_customs_paymentsМитні платежі для посилок фізосібARead-onlyIdempotentInspect
Use when an individual (фізична особа) asks how much duty/VAT (мито, ПДВ, розмитнення) they will pay for a personal parcel. Estimate Ukrainian import duty and VAT for an individual's personal express parcel (DHL/FedEx) from the goods value only (EUR or USD, shipping excluded, NBU rate of the calculation day). Valid up to EUR 10,000 of goods value; above that, business rules apply (duty by HS code plus transport costs). Not for business imports. For companies use check_customs and a broker consultation.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Дата розрахунку YYYY-MM-DD; типово сьогодні за Києвом. | |
| currency | Yes | Валюта інвойсу. | |
| goodsValue | Yes | Вартість лише товару (без доставки) в EUR або USD; до 10 000 євро. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it a safe, idempotent, open-world read, so the description is free to spend its words on calculation semantics: NBU rate of the calculation day, shipping excluded from the base, and the EUR 10,000 ceiling where different rules take over. It leaves the actual returned breakdown unexplained, which costs it a point given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense but front-loaded sentences: trigger first, then scope, threshold, and the exclusion/alternative. The bilingual glosses add length but earn it by matching the user's language. Minor redundancy between the 'goods value only' phrase here and in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only estimator with no output schema, the description covers audience, inputs, rate source, and the boundary where it stops applying. What is missing is any hint of the result shape (e.g., separate duty vs VAT lines) or the duty-free threshold logic, which an agent might want when explaining the estimate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description nevertheless reinforces the non-obvious parts — goods value only, shipping excluded, EUR or USD invoice currency — and states the EUR 10,000 ceiling that the schema expresses only as a raw 10000000 maximum. It does not describe the date parameter's Kyiv-time default, but the schema does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('estimate Ukrainian import duty and VAT for an individual's personal express parcel') and explicitly contrasts itself with check_customs for companies. The parenthetical Ukrainian synonyms (мито, ПДВ, розмитнення) make the intent unmistakable against all nine siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger ('Use when an individual asks how much duty/VAT they will pay'), gives a hard validity bound (EUR 10,000 goods value, above which business rules apply) and names the alternative for the excluded case (check_customs plus a broker). Both inclusion and exclusion conditions are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_priceОрієнтовна ціна доставкиARead-onlyIdempotentInspect
Estimated price of international EXPRESS delivery (DHL, FedEx and other carriers) to or from Ukraine, door-to-door, in UAH (гривні). Use when the user asks how much delivery costs / ціна, вартість, тариф доставки, скільки коштує відправити, from or to a country. Documents up to 2 kg or parcels/cargo 0.1–70 kg, minimum chargeable weight 0.5 kg (0.1–0.5 kg is charged as 0.5 kg); heavier on request. Transit usually 5–7 days. Customs duty, VAT (мито, ПДВ) and customs clearance are NOT included. Always mention that the exact price is confirmed after document check: 911@semero.ua or WhatsApp +380638431010. Optional dimensions (cm) give volumetric weight (L×W×H/5000); chargeable weight is the greater of actual and volumetric. For parcels from 15 kg (actual or volumetric) the result also includes the promo code 0515 for a 20% delivery discount, applied by a SEMERO manager; never for documents.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Документи або посилка/вантаж. | |
| widthCm | No | Ширина, см (необов'язково). | |
| heightCm | No | Висота, см (необов'язково). | |
| lengthCm | No | Довжина, см (необов'язково). | |
| weightKg | Yes | Вага в кг, від 0,1; понад 70 кг — на запит. | |
| direction | Yes | import: в Україну; export: з України. | |
| countryCode | Yes | ISO-код країни відправлення для import або призначення для export, наприклад CN, US, PL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantial context: minimum chargeable weight 0.5 kg, volumetric divisor L×W×H/5000, chargeable = max(actual, volumetric), 5–7 day transit, customs/VAT excluded, and a promo code that appears only for parcels ≥15 kg and never for documents. It even mandates a caveat the agent must relay (price confirmed after document check, with contact channels) — behavior that cannot be inferred from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and currency are front-loaded, then weight rules, then exclusions, then the mandatory caveat — a sensible order with no filler sentences. It is dense and slightly overloaded with promo/contact detail, but every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what the result means (price in UAH, customs excluded, promo code included for ≥15 kg parcels) and what caveat must accompany the answer. For a 7-parameter read-only calculator this is sufficient to call and present results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each field, but the description goes further by explaining how the optional dimension parameters combine into chargeable weight and how sub-0.5 kg weights are rounded up — semantics the schema does not express. It does not add anything for direction or countryCode beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (estimated price of international express delivery) with concrete scope: to/from Ukraine, door-to-door, in UAH. It also pre-empts confusion with the customs sibling by explicitly excluding duty/VAT/clearance, so an agent can tell it apart from calculate_customs_payments without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrasing ('Use when the user asks how much delivery costs / ціна, вартість... from or to a country') and defines applicability by weight band (documents up to 2 kg, parcels 0.1–70 kg, heavier on request). It stops short of naming the alternative tool for customs costs, relying on the exclusion sentence to imply that routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_customsМитні формальностіARead-onlyIdempotentInspect
Customs formalities in Ukraine (митне оформлення, розмитнення) for DHL and FedEx shipments. Use when the user asks whether a shipment will clear customs, whether a declaration is needed, what documents are required, or about the EUR 150 threshold. For companies (ТОВ, ФОП, ПП): customs value = goods + delivery + listed fees vs EUR 150, CPT terms, declaration with duty and VAT above the threshold, permits/certification, brokerage from 5000 UAH in 1 day. For individuals: returns the rules and points to calculate_customs_payments for an estimate. Ask who the recipient is first (company or individual). Never determines HS/УКТЗЕД codes — SEMERO's customs broker does.
| Name | Required | Description | Default |
|---|---|---|---|
| recipient | No | Статус отримувача; unknown, якщо ще невідомий. | unknown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, closed-world read, so the description's job is scope and boundaries, which it delivers: it discloses differing behavior by recipient type, states the customs-value formula, and explicitly caps its competence ('Never determines HS/УКТЗЕД codes — SEMERO's customs broker does'). No contradiction with readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first sentence, with branching detail after, and no filler sentences. It is somewhat dense — the UAH 5000 / 1 day brokerage figure is a detail that arguably belongs in the response rather than the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of return content, and it does sketch what comes back per recipient type (rules for individuals, valuation/CPT/duty/VAT/permit guidance for companies). A small gap remains: it does not say how authoritative or static that content is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum values are self-describing, so the schema already does the work. The description still adds genuine usage meaning by telling the agent to elicit the recipient (company vs individual) before calling and explaining that the answer branches on that value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and jurisdiction (customs formalities in Ukraine for DHL/FedEx shipments) plus the concrete questions it answers: clearance, declaration, documents, EUR 150 threshold. It also carves itself out from siblings by explicitly deferring payment estimation to calculate_customs_payments and HS codes to the broker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggers (user asks whether a shipment will clear customs, whether a declaration is needed, what documents are required, EUR 150), names the alternative it is not (calculate_customs_payments for estimates), and prescribes a sequencing step: ask who the recipient is first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contact_semeroКонтакти SEMEROARead-onlyIdempotentInspect
SEMERO contacts: 911@semero.ua, WhatsApp/phone +380638431010, Mon–Fri 09:00–17:00, works online. Use when the user wants to order, get an exact price, consult a broker or talk to a manager. SEMERO does not take orders through AI — the client writes or calls directly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, read-only, idempotent lookup, and the description adds genuinely useful behavior beyond them: business hours, online availability, and critically that SEMERO does not accept orders through AI so the client must write or call directly. That last constraint prevents an agent from attempting a transaction the tool cannot perform.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences: the first packs all actionable contact data up front, the second gives the use-case routing plus the no-AI-orders caveat. No filler and nothing that could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a static, zero-parameter contact resource with no output schema, the description supplies everything an agent needs to decide to call it and to relay the result. Nothing about the tool's contract is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is a closed empty object, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies a no-argument call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete resource (SEMERO contacts) and enumerates exactly what it returns: email, WhatsApp/phone, hours, and online availability. It is immediately distinguishable from siblings like calculate_price or check_customs, which compute things rather than surface contact channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear trigger conditions — ordering, exact pricing, broker consultation, manager contact — which is unusually explicit for a contact tool. The only gap is that 'get an exact price' overlaps with the sibling calculate_price without stating which one to prefer when the user just wants a number.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_routeМаршрут доставкиARead-onlyIdempotentInspect
How shipments move inside Ukraine: all DHL/FedEx imports go to the Kyiv hub for customs clearance, 3 days free storage at the Kyiv customs warehouse, then address delivery across Ukraine or pickup in Kyiv; local couriers (e.g. Nova Poshta) where carriers do not serve the address. Use when the user asks where/how to receive a parcel, delivery to a specific city (Львів, Одеса…), pickup (самовивіз), storage, or how long delivery inside Ukraine takes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, non-destructive, and closed-world. The description adds useful domain behavior beyond annotations: Kyiv hub customs clearance, three days free storage, address delivery, pickup, and local courier fallback.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the shipment process and then lists concrete usage scenarios. It is dense but every sentence contributes relevant information; minor improvement could come from breaking the semicolon-heavy first sentence into clearer structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no input parameters and no output schema, the description provides enough context for an agent to know when to call it and what domain information it covers, including customs, storage, delivery, pickup, and local courier coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable and the baseline is 4. The schema is empty and consistent with a purely informational tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's informational purpose: explaining how shipments move inside Ukraine, including customs clearance, storage, delivery, and pickup. It is specific about the process but does not explicitly differentiate itself from the sibling delivery_rules tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage triggers: where/how to receive a parcel, delivery to a specific city, pickup, storage, and delivery time inside Ukraine. It does not name when not to use it or point to an alternative sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_rulesПравила відправленняARead-onlyIdempotentInspect
General rules for shipping documents and goods worldwide with SEMERO: required information and documents (invoice, packing list), document vs parcel categories. Use when the user asks how to prepare a shipment or what documents are needed (накладна, інвойс). For a specific item use restricted_items.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured fields. The description adds content-scope context (which categories of rules are covered) but says nothing about the form of the answer, e.g. that it returns static reference text rather than a computed quote. A 3 is appropriate given the annotations carry the behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, alternative routing second. The Ukrainian term parentheticals (накладна, інвойс) earn their place as query-matching cues rather than filler, though the sentence is somewhat dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and annotations covering safety, the description supplies everything an agent needs to select and call it. The only residual gap is that it does not indicate whether the response is a static policy summary or per-destination rules, which matters given the worldwide scope claim.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies a parameterless lookup by not suggesting any filters or item identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (general shipping rules with SEMERO) and enumerates its scope: required information and documents (invoice, packing list), document vs parcel categories. It also explicitly contrasts with the sibling restricted_items, so an agent can distinguish it from restricted_items without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger (user asks how to prepare a shipment or what documents are needed) and an explicit alternative routing rule ('For a specific item use restricted_items'). Both when-to-use and when-to-use-something-else are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restricted_itemsЗаборонені й обмежені товариARead-onlyIdempotentInspect
Check whether an item can be shipped to/from Ukraine with SEMERO (prohibited, needs approval, not shipped by SEMERO, usually allowed), based on SEMERO's published rules. Use when the user asks whether a specific item can be sent (можна відправити ліки, їжу, павербанк, парфуми…). If the item is not in the list, do not say it is allowed — a broker check is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | Item to check, e.g. "power bank", "ліки", "perfume". | |
| lang | No | Answer language. | uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds meaningful context beyond them: the four possible verdict categories and the critical caveat that absence from the list must not be reported as allowed. It stops short of saying how the verdict is returned (state only vs. rule text), which leaves a small gap for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and scope, then the trigger, then the caveat — a sensible order with no filler. The parenthetical example list in Ukrainian is slightly redundant with the schema examples, but it earns its place by anchoring the trigger condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with a high-coverage schema, the description supplies purpose, trigger, result categories, and the not-found safety rule — essentially everything needed to call it and interpret it. Only the precise shape of the returned verdict is left implicit, which is a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both 'item' (with its own examples) and 'lang' (enum, default). The description's item examples largely duplicate the schema and it says nothing about the lang parameter, so it adds only marginal meaning beyond structured fields — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Check whether an item can be shipped to/from Ukraine with SEMERO', and names the basis (SEMERO's published rules). The enumerated outcome states (prohibited, needs approval, not shipped by SEMERO, usually allowed) make it trivially distinguishable from siblings like delivery_rules or check_customs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: 'Use when the user asks whether a specific item can be sent', with concrete Ukrainian examples. It also gives a when-NOT-to-conclude rule ('If the item is not in the list, do not say it is allowed — a broker check is needed'), though it points to a human broker rather than naming the sibling tool that should be called instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_faqПошук у FAQ SEMEROARead-onlyIdempotentInspect
Search SEMERO's published FAQ (delivery, customs, China/USA shipping, documents) and return matching questions, answers and source page links. Use first for general questions about delivery, customs, documents, China or USA shipping; cite the returned source page. Do not invent answers beyond the results.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | FAQ language. | uk |
| limit | No | Maximum number of results. | |
| query | Yes | Question or keywords. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, non-destructive, so the safety profile is covered. The description adds real context beyond that: the shape of the return (questions, answers, source page links), the citation requirement, and an anti-hallucination constraint ('Do not invent answers beyond the results') that meaningfully shapes agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the first covers what it does and returns, the second covers when to use it and the grounding rule. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the returned fields and the source-page citation. For a simple three-parameter read tool this is nearly sufficient; only the empty-result behavior and the uk/en default are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with defaults, enum values and min/max already documented, so the schema carries parameter meaning. The description adds nothing about lang, limit, or query syntax — the topical list loosely implies language coverage but never states the uk/en options. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search SEMERO's published FAQ) plus the topical scope (delivery, customs, China/USA shipping, documents) and the return payload. The 'use first for general questions' clause partially separates it from specialized siblings like delivery_rules and check_customs, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear activation context — use first for general questions in the listed domains — and a downstream obligation to cite the source page. It stops short of saying when to prefer a sibling tool (e.g. calculate_customs_payments for concrete cost figures) or what to do when no matches are returned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tracking_linkПосилання відстеженняARead-onlyIdempotentInspect
Returns the carrier's official tracking page link for a waybill number (AWB, накладна, трек-номер). Use when the user wants to track a shipment. Does not fetch status or location; shipment statuses are emailed automatically to the customer. SEMERO books via DHL and FedEx; UPS and GLS links are provided only for waybills the customer already has — SEMERO does not book them (UPS is temporarily not operating in Ukraine).
| Name | Required | Description | Default |
|---|---|---|---|
| awb | Yes | Номер накладної; не зберігається. | |
| carrier | Yes | Перевізник із накладної. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds meaningful context beyond that: it returns a link only, does not fetch live status or location, and explains carrier booking constraints including the UPS situation in Ukraine. It does not describe the exact return shape, but that gap is minor for a link-returning tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return value, then adds exclusion and carrier context. Every sentence contributes useful information, though the carrier caveat is somewhat dense and includes a parenthetical operational note. It remains efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two required parameters, full schema coverage, and annotations covering safety and idempotency, the description supplies everything else an agent needs: what is returned, what is not fetched, and how carrier options work. No output schema exists, but the description already states that the return value is a tracking page link.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented by the schema itself. The description still adds real meaning for the 'carrier' parameter by explaining that SEMERO books DHL and FedEx while UPS and GLS links apply only to existing customer waybills. It adds no extra detail for 'awb' beyond the schema, so it falls short of a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns the carrier's official tracking page link for a waybill number (AWB, накладна, трек-номер).' It also explicitly excludes adjacent capabilities ('Does not fetch status or location'), which prevents confusion with a shipment-status tool. No sibling tool is similar, so the purpose stands alone clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('Use when the user wants to track a shipment') and an explicit non-use case ('Does not fetch status or location; shipment statuses are emailed automatically'). The carrier-specific constraints further guide when the tool is appropriate for UPS/GLS versus DHL/FedEx waybills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
calculate_price3 fields changed- added
Input schema / properties / heightCmAdded value: +{ + "description": "Висота, см (необов'язково).", + "maximum": 300, + "minimum": 1, + "type": "number" +} - added
Input schema / properties / lengthCmAdded value: +{ + "description": "Довжина, см (необов'язково).", + "maximum": 300, + "minimum": 1, + "type": "number" +} - added
Input schema / properties / widthCmAdded value: +{ + "description": "Ширина, см (необов'язково).", + "maximum": 300, + "minimum": 1, + "type": "number" +}
2 tool updates
- Added
restricted_items - Added
search_faq
1 tool update
- Changed
calculate_customs_payments3 fields changed- changed
Input schema / properties / currency / enumPrevious value: -[ - "EUR", - "USD", - "GBP", - "PLN" -]New value: +[ + "EUR", + "USD" +] - changed
Input schema / properties / goodsValue / descriptionPrevious value: -"Вартість товару за інвойсом."New value: +"Вартість лише товару (без доставки) в EUR або USD; до 10 000 євро." - removed
Input schema / properties / shippingCostRemoved value: -{ - "default": 0, - "description": "Доставка, пакування й комісії з інвойсу в тій самій валюті; типово 0.", - "maximum": 10000000, - "minimum": 0, - "type": "number" -}
1 tool update
- Added
calculate_customs_payments
7 tool updates
- First observed
about_semero - First observed
calculate_price - First observed
check_customs - First observed
contact_semero - First observed
delivery_route - First observed
delivery_rules - First observed
tracking_link
Related MCP Connectors
Ukraine entry rules, border crossings, customs, safety and war-risk travel insurance. 10 languages.
Compare parcel and letter delivery prices across 60+ carriers in 27 European countries.
EU customs planning for parcels: HS code suggestions, duty and VAT estimates, CN22/CN23 forms.
Country guides, customs rules, mover directory and quote requests for 155+ countries
Related MCP Servers
- AlicenseBqualityDmaintenanceCompare parcel and letter delivery prices across 60+ carriers in 27 European countries.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables CDEK delivery operations through natural language, including tariff calculation, order management, shipment tracking, pickup point search, courier pickup scheduling, barcode and receipt generation, and webhook management.20 npm1MIT
- AlicenseAqualityFmaintenanceEnables integration with Boxberry delivery services, allowing users to search cities and pickup points, calculate delivery costs and times, track shipments, check postal indexes, and list services.615 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to track packages, rate and create shipments, manage pickups and customs documentation, and perform international shipping logistics checks through natural language.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.