EAN Check barcode tools
Server Details
GS1 barcode tools from eancheck.com: calculate and check GTIN/EAN/UPC check digits, identify any code (ISBN, SSCC, GS1-128, Amazon LPN/FNSKU), convert UPC-E and ISBN, repair GTINs with missing digits and draw print-ready barcodes. Free, no sign-in.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, but the cluster around GTIN check digits and code identification overlaps somewhat: identify_code, validate_gtins, calculate_check_digits and repair_gtin could be confused for related validation tasks. Descriptions help separate them, but an agent may still hesitate between identify_code and validate_gtins for a simple GTIN check.
Nine tools follow a clear verb_noun pattern such as calculate_check_digits, convert_isbn and validate_gtins. barcode_size is the main exception, using a noun phrase rather than an action verb, but overall the convention is predictable.
Ten tools is well within a focused range for barcode/GS1 utilities. Each tool covers a distinct operation, and none appears redundant enough to remove.
The set covers identification, validation, check-digit calculation, repair, several conversions, GS1 parsing, sizing and barcode generation. Minor gaps remain around dedicated SSCC/GLN validation and broader GS1 encoding workflows, but core barcode lifecycle tasks are well represented.
Available Tools
10 toolsbarcode_sizeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Barcode type | |
| x_mm | No | Other types: narrowest bar width in mm | |
| magnification | No | GS1 types: size in percent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, closed-world calculation, so the safety profile is covered. The description adds useful behavioral context by saying the result includes the GS1 allowed range, giving agents a sense of the return content even without an 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?
The description is a single, front-loaded sentence with no unnecessary wording. It communicates the operation, the conditional inputs, and the returned range efficiently.
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 three-parameter calculation tool with no output schema, the description provides enough context to call it correctly. It could be slightly more explicit about supplying either magnification or X-dimension depending on type, but the essential behavior is clear.
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 baseline is 3, but the description adds meaningful mapping beyond the schema: GS1 magnification applies to retail and carton types, while X-dimension applies to other types. This helps an agent choose between the optional numeric parameters based on the barcode type.
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: it returns the printed size of a barcode type under either GS1 magnification or X-dimension. It is clearly a sizing/calculation tool rather than a creation or validation tool, though it does not explicitly name sibling alternatives for contrast.
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 when to use magnification versus X-dimension by noting retail and carton GS1 types versus other types, but it does not explicitly state when to use this tool over siblings or exclude any cases. Usage is inferable from the parameter guidance rather than directly specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_check_digitsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | Numbers without their check digit, one per line |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety and repeatability are covered by structured data. The description adds nothing behavioral beyond that: no statement about what happens to malformed lengths, non-numeric characters, or already-complete 8/12/13/14-digit inputs.
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 short sentences, front-loaded with the operation and its input-length mapping, followed by the input-format note. Every clause carries information; nothing is padding.
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-parameter, read-only, idempotent utility with full schema coverage, the description covers the core contract well. Gaps are minor: behavior on invalid or already-valid inputs and whether output aligns one-to-one with the input list are unstated, and there is no output schema to compensate.
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 schema says 'one per line', but the description adds a genuine alternative the schema omits: comma-separated input is also accepted. That is real meaning beyond the input schema, though it does not explain the output shape (order, error handling per line).
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: adds the GS1 check digit to GTIN numbers lacking one, and enumerates the accepted input lengths (7, 11, 12, 13) with their resulting formats (GTIN-8, UPC-A, EAN-13, GTIN-14). This implicitly separates it from validate_gtins and repair_gtin, but never names those siblings, so the distinction is inferential rather than explicit.
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?
Use when a number is 'missing' a check digit is implied clearly enough, but there is no instruction on what to do with numbers that already have one, nor any routing to validate_gtins or repair_gtin for related but different tasks. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_amazon_codeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code as printed on the sticker, e.g. LPN RR AB1234567 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: it states that each part of the code is explained and, importantly, discloses a capability boundary (no product lookup), which prevents an agent from misusing the result as a product resolver.
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 no filler: the capability and its scope come first, and the limitation follows. Every clause earns its place and nothing is repeated from the schema or annotations.
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 one-parameter, read-only inspection tool with full schema coverage and clear annotations, the description covers what it does, what it accepts, and what it cannot do. The only mild gap is that there is no output schema, and "explains each part" only loosely sketches the return shape.
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?
There is a single parameter and schema description coverage is 100%, with the schema already supplying a concrete example ("LPN RR AB1234567"). The description reinforces that the input is the code exactly as printed on the sticker, which is mildly useful, but it adds no format, normalization, or whitespace-handling details beyond the schema.
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 verb and resource ("Read the code from an Amazon sticker") and enumerates exactly which sticker code types it resolves (LPN, FNSKU, ASIN, FBA box label, Amazon Logistics tracking number, UPC/EAN). However, it never distinguishes itself from the sibling tool identify_code, whose name suggests a very similar role, so an agent cannot pick between them from the description alone.
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?
Usage context is implied by "from an Amazon sticker" and one explicit exclusion is given: it cannot look up which product a code belongs to. What is missing is routing guidance — if a code is a generic retail barcode rather than an Amazon sticker, the description does not point the agent to identify_code, parse_gs1, or convert_upc_e.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_isbnARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn | Yes | An ISBN-10 or ISBN-13, with or without hyphens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and idempotentHint already covering the safety profile, the description adds real value by stating that the check digit is recalculated, that output is hyphenated, and that 979-prefixed ISBN-13s have no ISBN-10 (a failure mode to expect).
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 compact sentences with the core action front-loaded and the edge case appended; nothing is redundant or wasted.
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 tool is a simple one-param transform with no output schema, and the description adequately conveys the result (hyphenated form with recalculated check digit) plus the main edge case, though it could mention error behavior for invalid input.
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 single 'isbn' parameter already documents that hyphens are accepted, so the description adds little parameter meaning beyond what the schema provides; 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 (convert) and resource (ISBN-10/ISBN-13) with bidirectional scope, which is enough to distinguish it from siblings like calculate_check_digits and validate_gtins 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?
The description implies usage for converting between ISBN formats and notes the 979 edge case that makes conversion impossible, but it never explicitly routes the agent against alternatives such as calculate_check_digits or convert_upc_e, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_upc_eARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | A UPC-E or a UPC-A, digits only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, so the safety profile is covered. The description adds genuinely new behavior beyond them: check-digit validation and the rule-bound limit on reverse conversion. It does not say whether a bad check digit raises an error, is repaired, or is returned as a flag — a notable remaining ambiguity.
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, zero filler, and the primary forward conversion is front-loaded ahead of the conditional reverse path. Length is well matched to a 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?
With no output schema, the description should imply what comes back; the '12-digit UPC-A' phrasing does that for the forward direction, and it explains the failure condition for the reverse. Missing is any statement of what a failed check-digit check yields, which is the one thing an agent cannot infer.
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 there is a single parameter, so baseline is 3. The description earns an extra point by constraining accepted UPC-E lengths to 6, 7 or 8 digits, which the schema only calls 'digits only'.
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?
Names a specific verb (convert) plus the exact resource pair (UPC-E 6/7/8 digits <-> UPC-A 12 digits) and states it checks the check digit. The format naming alone separates it from siblings like convert_isbn and repair_gtin.
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 a real conditional for the reverse direction: UPC-A to UPC-E only applies when one of the four GS1 zero-suppression rules fits, so an agent knows the reverse call can legitimately fail. It does not route to siblings such as calculate_check_digits or validate_gtins for check-digit problems.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_codeBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code exactly as printed or scanned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds that the result includes check digit status, which is real behavioral value, but with no output schema it says nothing about the returned shape (e.g., type plus validity fields) or what happens for an unrecognized string.
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?
One front-loaded sentence that states the action first and then the accepted formats, with no filler. The long format enumeration is functional scope-setting rather than padding, though it is dense enough to read as a list dump.
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 read-only, idempotent, single-parameter tool this covers the essentials, and check digit status is disclosed. It is still thin on outcome behavior — no statement of what is returned for unknown codes or the response structure — which matters because there is no output schema.
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?
There is a single parameter with full schema description coverage, so the baseline is 3. The schema already says the code is taken exactly as printed or scanned, and the description's format list mildly reinforces what inputs are accepted without adding parsing or format details beyond that.
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?
Names a specific verb ("find out what kind of code") and an enumerated set of supported formats (GTIN, ISBN, ISSN, SSCC, GLN, GS1-128, Digital Link, VIN, IMEI, ASIN, LPN, FNSKU), which makes the scope unmistakable. It doesn't contrast itself against siblings like validate_gtins or parse_gs1, so the boundary is inferred from the enumeration rather than stated.
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?
Usage is only implied: an agent can infer this is the tool for an unknown code, but the description never says when to pick it over validate_gtins, parse_gs1, or check_amazon_code, nor does it state any preconditions. No exclusions or sequencing guidance is given despite a crowded sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_barcodeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| gs1 | No | Data Matrix only: treat the value as GS1 data like (01)09506000134352(17)271231 | |
| type | Yes | Barcode type | |
| x_mm | No | Other types: narrowest bar or module width in mm | |
| value | Yes | The data. GTIN types accept the number without its check digit. | |
| format | No | File format, default svg | |
| magnification | No | GS1 types only: size in percent, 100 is the standard size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral detail beyond them: output is a scalable vector file measured in millimetres and includes a link back to the generator. It stops short of covering failure modes (e.g., invalid value for a type) or whether the link expires.
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?
Three dense sentences with the deliverable front-loaded and no filler. The main inefficiency is repeating the full 14-value type enum already present in the schema, which consumes space without adding 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 generation tool with no output schema, the description adequately covers what comes back (SVG/EPS in mm plus a link) and the GS1 sizing constraint. Minor gaps remain around error behavior for mismatched value/type combinations and how the returned link should be used.
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 type, value, x_mm, format, gs1, and magnification. The description adds one useful fact not in the schema, the 80–200 magnification range for GS1 retail types, but otherwise restates the type enum that the schema already carries.
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 concrete verb and resource ('Draw a print-ready barcode') plus the return artifact ('SVG (or EPS) in millimetres, plus a link'). The enumerated type list makes clear this is a generator, cleanly separating it from sibling validators such as validate_gtins and calculate_check_digits.
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?
Usage is only implied: the description says what the tool produces but never states when to choose it over barcode_size, check_amazon_code, or identify_code. The one constraint given ('GS1 retail types use magnification 80 to 200') is a parameter rule rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_gs1ARead-onlyIdempotentInspect
Split GS1 data (GS1-128, GS1 DataMatrix, Digital Link) into its Application Identifiers, with the name of each AI and any format error.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | GS1 data such as (01)09506000134352(17)271231(10)ABC123, FNC1 form or a Digital Link URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), but the description adds behavior the annotations do not: it returns one entry per AI with the AI's human name and surfaces format errors instead of silently failing, which matters because there is no output schema. It stops short of saying what a malformed string yields (empty list vs. error field), so it is not a full 5.
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 sentence, front-loaded with the action and resource, with the output shape stated last. No filler and nothing to trim.
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 one-parameter, non-destructive parsing tool with no output schema, the description conveys enough: accepted formats, the unit of output, and that errors are reported as data. Only the precise return shape for invalid input is left ambiguous.
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 single parameter's description already gives example forms including FNC1 and Digital Link URLs, so the schema carries most of the burden. The description's format list reinforces accepted input types but adds no syntax or encoding detail beyond the schema, matching the baseline 3.
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 (split) and resource (GS1 data), enumerates the accepted formats (GS1-128, GS1 DataMatrix, Digital Link), and says what the output contains (Application Identifiers, AI names, format errors). This is clearly distinct from validate_gtins or identify_code, which check or classify rather than decompose a GS1 string.
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?
Usage is only implied: an agent can infer the tool applies to raw GS1 strings needing decomposition, but the description gives no explicit when-to-use, when-not-to-use, or pointer to an alternative sibling such as validate_gtins for validation-only needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repair_gtinARead-onlyIdempotentInspect
Recover a GTIN with unreadable digits: mark each unknown digit with ? or * and get every number that passes the GS1 check digit.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The GTIN with ? or * for each unknown digit, e.g. 59012341?3457 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the description's job is to add semantics — and it does: results are filtered by the GS1 check digit, and the return is a set of candidates rather than a single value, which tells the agent to expect multiple matches. It stops short of saying what happens when no candidate passes.
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 sentence that front-loads the use case and then the output contract. No filler, nothing repeated for its own sake.
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 one-parameter, no-output-schema tool this covers the essentials: input convention, validation criterion, and that multiple values can come back. Minor gaps remain around empty results and ordering of candidates.
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 parameter description already carries the wildcard convention and an example. The description restates the same '? or *' convention without adding format constraints such as length rules or mixed-wildcard limits, so 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 (recover) and resource (GTIN) plus the exact operating mode: wildcard digits with ? or *. That mechanism is unique among the siblings (validate_gtins, calculate_check_digits, parse_gs1), so an agent can route here without opening another 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?
The trigger condition is explicit: use this when a GTIN has unreadable digits. It does not name alternatives (e.g. validate_gtins for a fully known code) or state exclusions, so usage is clear but not fully disambiguated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_gtinsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | Complete numbers, one per line or comma separated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds that results are reported per code along with detected length, but it does not say what happens with malformed or partially invalid input lines, or whether one bad line fails the whole batch.
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?
One sentence, front-loaded with the action and the accepted code families, followed immediately by what is returned. No filler or redundant restatement of the tool name.
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 one-parameter, read-only validator with no output schema, the description covers both the input constraint and the shape of the answer (check-digit verdict plus GTIN length). The remaining gap is error/batch behavior for invalid inputs, which matters given the tool accepts multiple codes at once.
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 single parameter already documents both the 'complete numbers' constraint and the one-per-line/comma-separated formats. The description reinforces the 'complete' requirement but adds no new syntax or formatting semantics beyond the schema.
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?
Names a concrete verb (check/validate) and the resource types (GTIN, EAN, UPC, ITF-14), and it also hints at the response shape (check-digit validity plus GTIN length). The word 'complete' scopes it away from compute-oriented siblings like calculate_check_digits and repair_gtin, but no sibling is named 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?
Usage is only implied: 'complete' numbers signals this is for validation rather than check-digit calculation or repair, which is useful routing information. There is no explicit when-to-use, when-not, or named alternative among the many siblings such as identify_code or repair_gtin.
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.
10 tool updates
- First observed
barcode_size - First observed
calculate_check_digits - First observed
check_amazon_code - First observed
convert_isbn - First observed
convert_upc_e - First observed
identify_code - First observed
make_barcode - First observed
parse_gs1 - First observed
repair_gtin - First observed
validate_gtins
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.