boxberry-mcp
This server exposes Boxberry delivery APIs as MCP tools for calculating shipping, finding pickup points, tracking parcels, and more.
list_cities— search and list Boxberry cities by name substring.list_points— get pickup points in a specified city, optionally filtering prepaid-only points.calc_delivery— calculate delivery cost and time to a target pickup point using weight, dimensions, order sum, cash-on-delivery, etc.track— track a parcel by Boxberry tracking number.zip_check— check if a postal code is in Boxberry’s delivery zone.list_services— list services provided for a shipment by tracking number.Supports stdio and HTTP transports, with a health endpoint and configurable port; requires a
BOXBERRY_API_TOKEN.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@boxberry-mcpОтследи отправление по трек-номеру 123456789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
boxberry-mcp
An MCP server for the Boxberry API — city search, pickup points, delivery calculation, tracking, postal code lookup, and services.
Features (6 tools)
Tool | Description |
| List of Boxberry cities with search by name |
| Pickup points in the specified city |
| Calculate delivery cost and time |
| Track a shipment by tracking number |
| Check a postal code for delivery coverage |
| List services provided for a shipment |
Related MCP server: cdek
Quick start (stdio)
{
"mcpServers": {
"boxberry": {
"command": "npx",
"args": ["-y", "@theyahia/boxberry-mcp"],
"env": {
"BOXBERRY_API_TOKEN": "<YOUR_TOKEN>"
}
}
}
}HTTP transport (Streamable HTTP)
BOXBERRY_API_TOKEN=<TOKEN> npx @theyahia/boxberry-mcp --http
# Endpoint: http://localhost:3000/mcp
# Health: http://localhost:3000/healthThe port is configured via PORT:
PORT=8080 BOXBERRY_API_TOKEN=<TOKEN> npx @theyahia/boxberry-mcp --httpSmithery
The smithery.yaml file is included. It requires BOXBERRY_API_TOKEN.
Environment variables
Variable | Required | Description |
| Yes | API token from your Boxberry account |
| No | Port for HTTP transport (default 3000) |
Skills (Claude Code)
Skill | Description |
| Track a Boxberry parcel |
| Calculate delivery cost |
| Full cycle: city → pickup point → calculation |
Development
npm install
npm run build
npm test
BOXBERRY_API_TOKEN=<TOKEN> npm run devLicense
MIT
Available Tools
6 toolscalc_deliveryB
Расчёт стоимости и сроков доставки Boxberry.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Глубина в см | |
| width | No | Ширина в см | |
| height | No | Высота в см | |
| target | Yes | Код пункта выдачи назначения Boxberry | |
| weight | Yes | Вес отправления в граммах | |
| pay_sum | No | Сумма наложенного платежа в копейках | |
| order_sum | No | Сумма заказа в копейках (для расчёта страховки) | |
| delivery_sum | No | Сумма доставки в копейках (для наложенного платежа) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only states that the tool calculates cost and time; it does not disclose return format, assumptions, caveats, or whether the operation is read-only. The non-destructive nature is implied by 'Расчёт' but not elaborated.
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?
A single clear sentence with no filler, redundant schema repetition, or boilerplate. It is front-loaded with the core purpose.
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?
Despite complete parameter documentation, the absence of an output schema, annotations, and usage or limitation guidance leaves the description at a bare-minimum level. An agent lacks context about what the response contains, any calculation assumptions, and when this tool is preferable to siblings.
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 description adds no parameter-level details, but the input schema covers 100% of parameters with names, units, defaults, and descriptions. Therefore the baseline of 3 applies: the schema does the heavy lifting.
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 specific action ('Расчёт' – calculation) and a specific resource ('стоимости и сроков доставки Boxberry' – Boxberry delivery cost and time), which clearly separates it from siblings like list_cities, list_points, and track.
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?
The description implies the tool is for calculating Boxberry delivery costs and times, but it does not explicitly state when to choose it over sibling tools or mention any prerequisites, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_citiesB
Список городов Boxberry с возможностью поиска по названию.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Поиск по названию города (подстрока) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately states the core behavior: listing cities and searching by name. However, it does not mention output format, pagination, or whether an empty search returns all cities, leaving some behavior implicit.
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 a single concise sentence with no filler, and the core resource is front-loaded. It is appropriately sized for a simple tool, though it could add a useful detail about the return value without becoming verbose.
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 low-complexity tool with one optional parameter, the description is mostly adequate. However, with no output schema and no annotations, it does not specify what fields the returned city list includes or how search behaves at boundaries, leaving a moderate gap for an agent interpreting results.
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 input schema documents the one parameter with 100% coverage, so the description adds little beyond restating the search-by-name functionality. It reinforces the substring search concept but does not provide extra detail, examples, or constraints beyond what the schema already offers.
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 identifies a list operation over Boxberry cities with optional search by name. The resource 'cities' distinguishes it from sibling tools like list_points and list_services, though it does not explicitly name those alternatives. Using a noun phrase instead of a verb is slightly weaker, but the intent is unambiguous.
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?
The description implies the tool is for retrieving Boxberry cities with optional name filtering, but it gives no explicit guidance about when to choose this tool over alternatives such as list_points or zip_check. An agent can infer the usage from the tool name and resource, but exclusions and selection criteria are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pointsA
Список пунктов выдачи Boxberry в указанном городе.
| Name | Required | Description | Default |
|---|---|---|---|
| prepaid | No | Только с предоплатой: 0=все, 1=только предоплата | 0 |
| city_code | Yes | Код города Boxberry (из list_cities) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, but it only says the tool returns a list of pickup points in a city. It does not mention the prepaid filtering behavior (left to the schema), response contents, pagination/limits, or failure behavior, so it is minimally transparent rather than misleading.
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 a single sentence with no filler; the object (pickup points) and scope (city) are front-loaded. This is appropriately sized for a simple list operation.
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?
The definition is adequate for a simple list call when combined with the schema, but because there is no output schema and no annotations, the description should more clearly state the full return behavior and the dependency on list_cities. It leaves room for ambiguity about whether all points or only some are returned.
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%: city_code is described as the Boxberry city code from list_cities, and prepaid has enum/default plus a clear Russian explanation. The description adds no parameter-level meaning, so it appropriately rests at the baseline 3 for full schema coverage.
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 specific resource (Boxberry pickup points) and a clear scope (specified city), with an implicit list verb. This is immediately distinguishable from siblings like list_cities (cities) and calc_delivery/track (delivery calculations/tracking).
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?
No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named in the description. The schema's note that city_code comes from list_cities provides a workflow hint, and the city-based scope implies usage for listing pickup points, but the selection guidance is mostly left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesC
Список оказанных услуг по отправлению Boxberry.
| Name | Required | Description | Default |
|---|---|---|---|
| tracking_number | Yes | Трек-номер отправления для получения списка оказанных услуг |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It only states that a list of rendered services is returned, without mentioning that the operation is read-only, whether authentication is needed, error behavior, or response format.
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 a single short sentence with no wasted words. It is appropriately concise and front-loaded for a simple one-parameter tool.
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 tool with no output schema and no annotations, the description is too thin. It does not explain what 'services' means in the Boxberry context, what the output will contain, or any likely failure scenarios, leaving the agent without enough context to invoke it confidently.
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 schema covers the only parameter with 100% description coverage. The tool description adds no extra meaning beyond what the parameter description already provides, so the baseline of 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?
The description states a clear verb and resource: it lists services rendered for a Boxberry shipment. It is distinguishable from siblings like list_cities and list_points by the subject matter, though it does not explicitly contrast itself with them.
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?
No guidance is provided on when to use this tool versus alternatives such as track or calc_delivery. The description gives no context about the intended scenario or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trackB
Отслеживание отправления Boxberry по трек-номеру.
| Name | Required | Description | Default |
|---|---|---|---|
| tracking_number | Yes | Трек-номер отправления Boxberry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action and input; it does not disclose whether the operation is read-only, what kind of result or status data will be returned, how errors are handled, or whether any side effects occur. This is minimal coverage for an unannotated 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 a single, short, front-loaded sentence that conveys the purpose and identifies the key input. There is no filler, redundancy, or unnecessary detail.
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 simple one-parameter tool, this is minimally adequate: the agent knows what the tool does and what input to provide. However, with no annotations and no output schema, the complete absence of behavioral or return information leaves the agent guessing about the outcome of a successful call.
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% and the sole parameter tracking_number is already documented in the schema. The description adds no additional meaning beyond restating the parameter concept, so it meets the baseline but does not enhance understanding with examples or format details.
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 operation (tracking) and the resource (Boxberry shipment) with the key input (tracking number). It is unambiguous and distinct from sibling tools like list_cities or calc_delivery, though it is phrased as a noun phrase rather than as an explicit verb+object construction.
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?
The description provides no guidance on when to use this tool versus alternatives, nor any exclusions. The phrase 'by tracking number' weakly implies a use case, but no explicit when-to-use or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zip_checkB
Проверка почтового индекса на доступность доставки Boxberry.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | Почтовый индекс для проверки зоны доставки Boxberry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 'проверка' (check), which weakly implies a read-only lookup, but it does not mention return format, error behavior, external API calls, rate limits, or any side effects.
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 a single, front-loaded sentence with no filler or redundancy. Every word contributes to stating the action and object, making it easy to parse quickly.
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 single-required-parameter tool with clear domain context, the description covers the invocation essentials. However, there is no output schema and no description of what the tool returns, so the agent cannot know whether the result is a simple boolean, a status code, or a structured delivery-availability object.
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%: the zip parameter is fully described as 'Почтовый индекс для проверки зоны доставки Boxberry'. The tool description adds no new parameter-level meaning beyond what the schema already provides, which matches the baseline for high coverage.
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: 'Проверка почтового индекса' (check postal code) for 'доступность доставки Boxberry' (Boxberry delivery availability). This clearly differentiates it from siblings like list_cities, list_points, and calc_delivery, which serve different purposes.
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?
The description gives no guidance on when to use this tool versus alternatives such as calc_delivery or list_cities. There are no explicit conditions, prerequisites, or 'use instead' hints, so an agent must infer usage solely from the tool name.
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.
6 tool updates
v1.1.0- First observed
calc_delivery - First observed
list_cities - First observed
list_points - First observed
list_services - First observed
track - First observed
zip_check
TDQS
Scored across 6 tools
Each tool targets a distinct operation: city lookup, pickup point lookup, delivery calculation, tracking, postal code check, and service listing. There is no meaningful overlap between them, and the descriptions make the boundary of each tool clear.
The naming is mostly consistent with snake_case verb_noun patterns like list_cities, list_points, and list_services. Minor deviations exist: track is a bare verb and zip_check is noun_verb instead of check_zip, but the overall convention is still readable and predictable.
Six tools is well-scoped for a delivery information server. Each tool covers a meaningful part of the Boxberry workflow without unnecessary duplication or bloat.
The tool set covers location discovery, pricing, tracking, and service lookups, which are the core informational workflows for Boxberry. It does not include order creation or management, but that appears outside the stated scope of the server.
Maintenance
Related MCP Connectors
Multi-carrier shipping in Mexico: grouped rates, labels, tracking, pickups, address book, webhooks.
Multi-carrier shipping functionality with built-in, discounted carrier accounts. Compare rates, generate PDF shipping labels, schedule pickups and track packages in automated way or in your chatbox, no coding required. This is a demo server that is functional with no account needed and no auth. For production use please find our production version.
Furgonetka MCP Server is an extension for LLMs (such as Claude) that integrates AI assistants with Poland's most popular courier brokerage platform. The server enables models to interact directly with services from various couriers (including InPost, DPD, DHL, UPS, and Poczta Polska) through a single, unified interface. With this integration, your AI stops just "writing about logistics" and starts actually managing it.
Real-time order tracking for Shopify merchants: look up, list, and refresh shipments.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Shiprocket shipping services to check courier rates and delivery times, create and manage orders, ship packages, track shipments, and schedule pickups through natural language commands.1 npm30-
- AlicenseBqualityDmaintenanceIntegrates with CDEK delivery API to manage orders, track shipments, find pickup points, and handle delivery labels and barcodes through natural language.49MIT
- AlicenseAqualityAmaintenanceMCP server for Yandex Delivery B2B API, enabling natural language interaction to calculate delivery costs, create and manage express and platform delivery orders, track couriers, and handle pickup points.1679 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