Skip to main content
Glama

Character card

nabu_char
Read-only

Resolves a cuneiform or Egyptian hieroglyph identity from a glyph, sign name, list number, or Gardiner code into a card with values, meanings, concordances, variants, and source licenses.

Instructions

The sign/character desk card (P65/P68): ONE glyph or sign identity in, the full held identity out โ€” the same frozen contracts as nabu char --json. Dispatch by input: a CUNEIFORM glyph (๐’Šฌ, compounds included) or sign name/value/list number (SAR ยท szesz ยท idx โ€” trailing x reads as โ‚“ ยท MZL535 ยท bare 852 across every held list) serves the Oracc Sign List card: name, @aka, MZL/LAK/ABZL/HZL/ล L concordances, values by language, CDLI meaning glosses, Wiktionary senses, variant forms, corpus counts; an ambiguous value lists ALL candidate signs, never one silently. An EGYPTIAN HIEROGLYPH (๐“…ƒ) or Gardiner-style code (G5, N35) serves the Unikemet card: catalog code, description, function, phonetic value, JSesh/Hieroglyphica/IFAO concordances, aes attestation. The Han character card is CLI-only for now โ€” answered with a note (nabu_define serves Han dictionary entries meanwhile). Absent data is null/[], never a placeholder. Every card names its reference spine โ€” source, license_class, license (OSL CC0, Unikemet Unicode License) โ€” and attribution lists every contributing dataset; PRESERVE them when quoting.

Input Schema

NameRequiredDescriptionDefault
queryYesA glyph (๐’Šฌ ยท ๐“…ƒ), a sign name or spelled value (SAR ยท szesz ยท idx), a sign-list number (MZL535 ยท 852), or a Gardiner-style code (G5).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.7.0

TDQS

A4.4/5.0
Behavior4/5

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

readOnlyHint already declares the safety profile, so the description's job is to add context โ€” and it does: absent data is null/[] rather than a placeholder, ambiguity is never silently resolved, and every card carries source/license_class/license plus an attribution list that must be preserved when quoting. That is real behavioral and compliance context. It doesn't describe sizing or response envelope, but the transparency gains are substantial.

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

Conciseness4/5

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

The core contract is front-loaded in the first clause before any detail, and each following sentence carries routing or output information. The prose is dense โ€” heavy mid-dot notation and compressed examples โ€” which raises parsing cost, but there is little that could be cut without losing dispatch rules.

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?

With one required parameter and no output schema, the definition covers everything an agent needs: the input taxonomy, per-script behavior, the unsupported-script fallback with a named alternative, null-vs-placeholder semantics, and the licensing fields returned. Nothing material is left for the agent to infer.

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 the baseline is 3, and the description earns above that by adding meaning the schema lacks: the 'trailing x reads as โ‚“' rule, that a bare list number like 852 is matched across every held list, and that MZL535 / SAR / szesz are interchangeable forms of the same lookup key. These are genuine disambiguation rules, not restatements.

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?

The description states a precise verb and resource โ€” 'ONE glyph or sign identity in, the full held identity out' โ€” and immediately splits the behavior into two concrete branches (Cuneiform โ†’ Oracc Sign List card, Egyptian โ†’ Unikemet card). It also distinguishes itself from nabu_define by sending Han characters there, so an agent can tell the tools apart without comparing schemas.

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

Usage Guidelines4/5

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

Dispatch rules are explicit: which input forms route to the Oracc card, which to the Unikemet card, and that Han characters are CLI-only and should instead go to nabu_define. It also sets an ambiguity policy (list ALL candidates, never one silently). What's missing is any explicit comparison to nabu_signs or nabu_concord, which an agent may also be weighing for sign-level queries.

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