
GS1 check digits, code identification, UPC-E and ISBN conversion, GTIN repair and barcodes.
Maintained by@xoocode(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Give the printed size of a barcode type at a GS1 magnification (retail and carton types) or an X-dimension, with the GS1 allowed range.
Barcode type
Other types: narrowest bar width in mm
GS1 types: size in percent
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http barcode-tools https://eancheck.com/api/mcp
Give the printed size of a barcode type at a GS1 magnification (retail and carton types) or an X-dimension, with the GS1 allowed range.
| Argument | Type | Description |
|---|---|---|
| type* | string | Barcode type |
| x_mm | number | Other types: narrowest bar width in mm |
| magnification | number | GS1 types: size in percent |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"upc-a",
"ean-13",
"ean-8",
"itf-14",
"code-128",
"code-39",
"code-93",
"interleaved-2-of-5",
"codabar",
"msi",
"pharmacode",
"data-matrix",
"pdf417",
"aztec"
],
"type": "string",
"description": "Barcode type"
},
"x_mm": {
"type": "number",
"description": "Other types: narrowest bar width in mm"
},
"magnification": {
"type": "number",
"description": "GS1 types: size in percent"
}
},
"additionalProperties": {}
}Add the GS1 check digit to GTIN numbers that are missing it (7, 11, 12 or 13 digits become GTIN-8, UPC-A, EAN-13 or GTIN-14). One number per line or comma separated.
| Argument | Type | Description |
|---|---|---|
| codes* | string | Numbers without their check digit, one per line |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"codes"
],
"properties": {
"codes": {
"type": "string",
"description": "Numbers without their check digit, one per line"
}
},
"additionalProperties": {}
}Read the code from an Amazon sticker: tells an LPN (License Plate Number) from an FNSKU, ASIN, FBA box label, Amazon Logistics tracking number or UPC/EAN, and explains each part. It cannot look up which product a code belongs to.
| Argument | Type | Description |
|---|---|---|
| code* | string | The code as printed on the sticker, e.g. LPN RR AB1234567 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code as printed on the sticker, e.g. LPN RR AB1234567"
}
},
"additionalProperties": {}
}Convert an ISBN-10 to ISBN-13 or back, with the check digit recalculated and the hyphenated form. ISBN-13 starting with 979 has no ISBN-10.
| Argument | Type | Description |
|---|---|---|
| isbn* | string | An ISBN-10 or ISBN-13, with or without hyphens |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"isbn"
],
"properties": {
"isbn": {
"type": "string",
"description": "An ISBN-10 or ISBN-13, with or without hyphens"
}
},
"additionalProperties": {}
}Convert a UPC-E (6, 7 or 8 digits) to the full 12-digit UPC-A, or a UPC-A to UPC-E when one of the four GS1 zero-suppression rules fits. Checks the check digit.
| Argument | Type | Description |
|---|---|---|
| code* | string | A UPC-E or a UPC-A, digits only |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "A UPC-E or a UPC-A, digits only"
}
},
"additionalProperties": {}
}Find out what kind of code a string is: GTIN, ISBN, ISSN, SSCC, GLN, GS1-128 data, GS1 Digital Link, VIN, IMEI, ASIN, Amazon LPN or FNSKU, with its check digit status.
| Argument | Type | Description |
|---|---|---|
| code* | string | The code exactly as printed or scanned |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code exactly as printed or scanned"
}
},
"additionalProperties": {}
}Draw a print-ready barcode and return it as SVG (or EPS) in millimetres, plus a link that opens it in the generator. Types: upc-a, ean-13, ean-8, itf-14, code-128, code-39, code-93, interleaved-2-of-5, codabar, msi, pharmacode, data-matrix, pdf417, aztec. GS1 retail types use magnification 80 to 200 (percent).
| Argument | Type | Description |
|---|---|---|
| gs1 | boolean | Data Matrix only: treat the value as GS1 data like (01)09506000134352(17)271231 |
| type* | string | Barcode type |
| x_mm | number | Other types: narrowest bar or module width in mm |
| value* | string | The data. GTIN types accept the number without its check digit. |
| format | string | File format, default svg |
| magnification | number | GS1 types only: size in percent, 100 is the standard size |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type",
"value"
],
"properties": {
"gs1": {
"type": "boolean",
"description": "Data Matrix only: treat the value as GS1 data like (01)09506000134352(17)271231"
},
"type": {
"enum": [
"upc-a",
"ean-13",
"ean-8",
"itf-14",
"code-128",
"code-39",
"code-93",
"interleaved-2-of-5",
"codabar",
"msi",
"pharmacode",
"data-matrix",
"pdf417",
"aztec"
],
"type": "string",
"description": "Barcode type"
},
"x_mm": {
"type": "number",
"description": "Other types: narrowest bar or module width in mm"
},
"value": {
"type": "string",
"description": "The data. GTIN types accept the number without its check digit."
},
"format": {
"enum": [
"svg",
"eps"
],
"type": "string",
"description": "File format, default svg"
},
"magnification": {
"type": "number",
"description": "GS1 types only: size in percent, 100 is the standard size"
}
},
"additionalProperties": {}
}Split GS1 data (GS1-128, GS1 DataMatrix, Digital Link) into its Application Identifiers, with the name of each AI and any format error.
| Argument | Type | Description |
|---|---|---|
| data* | string | GS1 data such as (01)09506000134352(17)271231(10)ABC123, FNC1 form or a Digital Link URL |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"description": "GS1 data such as (01)09506000134352(17)271231(10)ABC123, FNC1 form or a Digital Link URL"
}
},
"additionalProperties": {}
}Recover a GTIN with unreadable digits: mark each unknown digit with ? or * and get every number that passes the GS1 check digit.
| Argument | Type | Description |
|---|---|---|
| code* | string | The GTIN with ? or * for each unknown digit, e.g. 59012341?3457 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The GTIN with ? or * for each unknown digit, e.g. 59012341?3457"
}
},
"additionalProperties": {}
}Check complete GTIN, EAN, UPC and ITF-14 numbers: says for each one whether the check digit is right and which GTIN length it is.
| Argument | Type | Description |
|---|---|---|
| codes* | string | Complete numbers, one per line or comma separated |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"codes"
],
"properties": {
"codes": {
"type": "string",
"description": "Complete numbers, one per line or comma separated"
}
},
"additionalProperties": {}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.