MCP server for barcode generation and recognition using Aspose BarCode Cloud API
Server has 4 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (generate_barcode, recognize_barcode, scan_barcode, list_barcode_types). Descriptions are present and contextual (avg ~150 chars), exceeding the 10-char minimum. However, parameter descriptions lack constraint details (e.g., resolution 1-100000 is mentioned but not formalized as min/max in schema). No output schema documentation visible. Error handling returns toolError() but lacks recovery guidance or categorization. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels (WRITE vs READ_ONLY). Missing idempotency guarantees and batch operation support.
Generate a barcode image of the specified type encoding the given data. Saves the image file to the mounted data directory and returns the file path. Use list_barcode_types to see all supported barcode types.
List all supported barcode types for generation and recognition. Use this to discover valid barcode_type values for generate_barcode and recognize_barcode.
Recognize barcodes of a specific type from an image file in the mounted data directory. The image_path must be relative to the mounted directory. Allows specifying the barcode type and recognition quality. For automatic detection of most commonly used barcode types, use scan_barcode instead.
Automatically detect and read commonly used barcodes from an image file in the mounted data directory. The image_path must be relative to the mounted directory. For targeted recognition of a specific barcode type, use recognize_barcode instead.
No output schema documentation. Callers cannot predict response structure or plan downstream tool chains. generate_barcode returns file path and MIME type, but this is inferred from code, not declared in tool definition.
Error handling lacks recovery guidance. toolError() returns raw error messages without actionable next steps. E.g., 'Aspose API error: ...' tells the LLM nothing about retry eligibility or alternative approaches.
No tool annotations (readOnlyHint/destructiveHint). generate_barcode is marked WRITE but lacks destructiveHint annotation. recognize_barcode and scan_barcode are READ_ONLY but lack readOnlyHint. Agents cannot infer safety/idempotency from tool definitions alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Parameter constraints mentioned in descriptions but not formalized in schema. E.g., 'resolution in DPI (1-100000)' is text; should be minimum: 1, maximum: 100000 in JSON Schema. LLMs cannot parse text constraints reliably.
No batch operation support. Agents calling generate_barcode in a loop (e.g., 10 different barcodes) must make 10 sequential calls. A batch_generate_barcodes tool would reduce latency and token waste.