Skip to main content
Glama
zovo-one

mcp-barcode

Barcode

barcode_create

Generate code128, EAN-13, EAN-8, or UPC-A barcodes as SVG or PNG files locally, with automatic check digit validation for EAN and UPC values.

Instructions

Call this tool to draw a linear barcode (code128, ean13, ean8, upca) as SVG, or PNG to out_path. A short EAN or UPC gets its check digit computed; a wrong one is refused, never redrawn. qr_create makes QR codes.

Input Schema

NameRequiredDescriptionDefault
textNoPrint the digits under the bars (default true)
valueYesThe data to encode. Digits only for EAN and UPC
formatNosvg (default, free) or png (Pro)
heightNoBar height in the same units (default 80)
out_pathNoWhere to write the file. SVG is returned inline when this is left out; PNG always needs it
overwriteNoReplace out_path if it already exists (default false)
symbologyYescode128 for any printable ASCII, ean13 and ean8 for retail products, upca for North American retail
module_widthNoWidth of the narrowest bar, in pixels or SVG units (default 2)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the mutation profile (readOnly=false, destructive=false); the description adds genuinely non-obvious behavior — automatic check-digit computation for short EAN/UPC values and outright refusal of a wrong check digit — plus the rule that PNG always requires out_path. It stops short of covering overwrite semantics or what a refusal looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and output options, then the edge-case rule, then the sibling pointer. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter file-writing tool with no output schema, the description covers output format, where bytes go, inline return for SVG, and the check-digit edge case — enough to call it correctly. Overwrite and sizing behavior are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning not in the schema: the value parameter's check-digit handling and refusal behavior, and the format/out_path coupling for PNG. That is real added semantics rather than repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('draw a linear barcode'), enumerates the supported symbologies, and names the two output formats. An agent can immediately tell this apart from qr_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes QR use cases to qr_create and confines this tool to linear symbologies, with each symbology's intended use stated. No inference required to pick between the two.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.