Skip to main content
Glama

Detect printer language

language_detect
Read-onlyIdempotent

Detect which printer language raw label code is written in (ZPL, EPL, TSPL or CPCL). Heuristic: returns the language plus a confidence TIER (high/medium/low) and signal codes — not a probability.

Input Schema

NameRequiredDescriptionDefault
codeYesRaw label code to classify

Output Schema

NameRequiredDescriptionDefault
mixedNoTrue when the input mixes languages
scoresYesPer-language score
evidenceNo
languageYesDetected printer language
confidenceYesConfidence level

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedOutput schema / properties / confidence
      Added value: +{
      +  "description": "Confidence level",
      +  "type": "string"
      +}
    • removedOutput schema / properties / dil
      Removed value: -{
      -  "description": "Detected printer language",
      -  "type": "string"
      -}
    • addedOutput schema / properties / evidence
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "line": {
      +        "type": "integer"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / guven
      Removed value: -{
      -  "description": "Confidence level",
      -  "type": "string"
      -}
    • removedOutput schema / properties / kanitlar
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "kod": {
      -        "type": "string"
      -      },
      -      "satir": {
      -        "type": "integer"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / karma
      Removed value: -{
      -  "description": "True when the input mixes languages",
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / language
      Added value: +{
      +  "description": "Detected printer language",
      +  "type": "string"
      +}
    • addedOutput schema / properties / mixed
      Added value: +{
      +  "description": "True when the input mixes languages",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / puanlar
      Removed value: -{
      -  "additionalProperties": {
      -    "type": "integer"
      -  },
      -  "description": "Per-language score",
      -  "type": "object"
      -}
    • addedOutput schema / properties / scores
      Added value: +{
      +  "additionalProperties": {
      +    "type": "integer"
      +  },
      +  "description": "Per-language score",
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "dil",
      -  "guven",
      -  "puanlar"
      -]New value: +[
      +  "language",
      +  "confidence",
      +  "scores"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "dil": {
      +      "description": "Detected printer language",
      +      "type": "string"
      +    },
      +    "guven": {
      +      "description": "Confidence level",
      +      "type": "string"
      +    },
      +    "kanitlar": {
      +      "items": {
      +        "properties": {
      +          "kod": {
      +            "type": "string"
      +          },
      +          "satir": {
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "karma": {
      +      "description": "True when the input mixes languages",
      +      "type": "boolean"
      +    },
      +    "puanlar": {
      +      "additionalProperties": {
      +        "type": "integer"
      +      },
      +      "description": "Per-language score",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "dil",
      +    "guven",
      +    "puanlar"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it is a heuristic classifier, it returns a confidence TIER rather than a probability, and it returns signal codes — setting correct expectations about output reliability.

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?

Two compact sentences, front-loaded with the core action, followed by one clarifying sentence about the output shape. No filler or repetition of the schema.

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

Completeness5/5

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

For a single-input classifier with an output schema present, everything an agent needs is covered: what it classifies, the possible languages, and the nature of the result (tier + signal codes, not a probability). Nothing material is missing.

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

Parameters3/5

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

There is a single required parameter with 100% schema description coverage ('Raw label code to classify'), so the schema carries the semantics. The description adds nothing specific about the input format or size, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb and resource ('detect which printer language raw label code is written in') and enumerates the candidate outputs (ZPL, EPL, TSPL, CPCL). This clearly separates it from the language-specific validators/previewers among its siblings, though it never names a sibling explicitly.

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

Usage Guidelines3/5

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 classification step to run before choosing a language-specific validate/preview tool, but the description gives no explicit when-to-use or when-not-to-use guidance and names no alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.