Word Aligner MCP
Server Details
Word Aligner exposes an MCP server so AI agents can turn a phrase and its translation into a shareable word-alignment diagram. The server runs over Streamable HTTP at aligner.tinygods.dev/mcp with no authentication and a single tool, create_word_alignment. An agent translates and tokenizes the text, works out which words correspond, calls the tool, and gets back a URL plus a preview image.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or misselection. The single tool's purpose is clearly defined and distinct.
The tool name 'create_word_alignment' follows a consistent verb_noun pattern, which is clear and predictable. Even with a single tool, the naming convention is exemplary.
The server has only one tool, which feels thin for a general-purpose server. However, for a highly specialized service focused solely on creating word alignment diagrams, a single tool might be appropriate, though it borders on minimalism.
The tool covers the core functionality of creating a word alignment diagram and returns a URL and preview, which effectively serves as the retrieval mechanism. Missing update/delete operations are not critical for a stateless creation service, so only minor gaps exist.
Available Tools
1 toolcreate_word_alignmentCreate word alignment diagramARead-onlyIdempotentInspect
Create a shareable Word Aligner diagram that shows which words match across two or more stacked lines of text (a translation and its source, an interlinear gloss, IPA, etc.). Returns a URL that opens the interactive diagram, plus a preview image.
Use this when the user wants to translate a phrase and show word correspondences, align a translation with its source (including RTL scripts like Hebrew or Arabic, or vertically written ones like Japanese and Mongolian), or build a Leipzig-style interlinear gloss.
Word indices are 0-based token positions. Tokenize each line the same way the tool does before assigning indices:
Whitespace always splits ("I have been going" -> I[0] have[1] been[2] going[3]).
The characters in settings.tokenSplitChars (default ".-|") also split and are then removed from the rendered text, so "go.PST.IPFV" becomes three tokens (go, PST, IPFV) and the dots disappear. For Leipzig glosses set tokenSplitChars to "-|" to keep the dots.
Punctuation stays attached by default ("Hello, world!" -> Hello,[0] world![1]).
In RTL lines, word 0 is the logically first word (rightmost on screen); index in reading order.
Japanese and Chinese are written without spaces and nothing is segmented for you: put spaces where the alignment units should be.
For a vertically written script set settings.axis to "columns". Every line then becomes a vertical column and the connectors run sideways. Set orientation per line: "vertical" stacks the characters (Japanese, Chinese), "sideways" rotates the line a quarter turn (traditional Mongolian, and Latin runs inside vertical text), "upright" leaves a translation as horizontal word boxes. The first line is the leftmost column, so for Japanese and Chinese, whose columns read right to left, list the translation first and the script second.
Each alignment is [lineA, wordA, lineB, wordB]; the two lines must be neighbours in the stack (|lineA - lineB| = 1), which means one above the other in rows and side by side in columns. To express many-to-one, list each target word as its own tuple. Tokens that share a connection group get the same color automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | Yes | Text lines, top to bottom. Each entry is a plain string or an object with per-line visual options. | |
| pairs | No | Per-pair controls for a specific adjacent line pair. | |
| settings | No | Global visual overrides. Unset fields inherit defaults. | |
| alignments | No | Word-alignment links as [lineA, wordA, lineB, wordB] (0-based indices, lines must be adjacent). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The shareable diagram URL. Return this to the user exactly as received, character for character. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is already covered. The description adds substantial behavioral context beyond that: it explains tokenization rules (whitespace, tokenSplitChars, punctuation attachment), RTL indexing, vertical script orientation, and the adjacency constraint on alignments. It also discloses that tokens sharing a connection group get the same color automatically. This is rich behavioral detail that goes well beyond the annotations, though it doesn't explicitly state that the tool is non-mutating (but annotations already do).
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 long but densely packed with necessary operational detail. It is front-loaded with the core purpose and output, then proceeds logically through tokenization, RTL, vertical scripts, and alignment semantics. Every sentence earns its place; there is no fluff. However, it is quite lengthy and could arguably be trimmed in places (e.g., the vertical script paragraph is dense), but given the complexity of the tool, the length is justified. It loses one point for being at the upper limit of acceptable length.
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?
Given the tool's complexity (4 parameters, nested objects, 100% schema coverage, output schema present), the description is remarkably complete. It covers tokenization rules, RTL and vertical script handling, alignment constraints, and even provides examples. The output schema exists, so return values are covered. The only minor gap is that it doesn't explicitly state the maximum number of lines (8) or the alignment count limits, but those are in the schema. For an agent to call this tool correctly, everything essential is present.
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 description coverage is 100%, so the schema already documents every parameter. The description adds significant semantic value beyond the schema: it explains the tokenization algorithm in detail (how tokenSplitChars works, punctuation attachment, RTL indexing), the meaning of alignment tuples and the adjacency requirement, and the orientation semantics for vertical scripts. It also gives practical examples ('go.PST.IPFV' becomes three tokens). This goes well beyond the baseline 3 for full coverage, though it doesn't exhaustively map every setting (e.g., tokenMergeChar is only mentioned in 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 opens with a specific verb and resource ('Create a shareable Word Aligner diagram') and immediately clarifies the domain (word matching across stacked lines) and the output (URL plus preview image). It distinguishes itself from generic diagram tools by naming concrete use cases (translation alignment, interlinear gloss, RTL scripts, vertical scripts). No sibling tools exist, so differentiation is moot, but the purpose is unmistakable.
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 gives explicit when-to-use guidance: 'Use this when the user wants to translate a phrase and show word correspondences, align a translation with its source... or build a Leipzig-style interlinear gloss.' It also provides detailed how-to instructions for tokenization, RTL handling, vertical scripts, and alignment tuple semantics. While it doesn't name alternatives (no siblings), it fully specifies the conditions for use and the operational rules, which is more than adequate.
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.
1 tool update
- Changed
create_word_alignment2 fields changed- changed
Input schema / properties / lines / items / oneOfPrevious value: -[ - { - "description": "Plain line text (shorthand).", - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "font": { - "description": "Google Fonts family name (e.g. \"Noto Sans Hebrew\"). Defaults to Inter.", - "type": "string" - }, - "gapPx": { - "description": "Horizontal gap between word tokens in px. Default 14.", - "maximum": 56, - "minimum": 0, - "type": "integer" - }, - "rtl": { - "description": "Right-to-left layout (Hebrew, Arabic, ...). Default false.", - "type": "boolean" - }, - "sizePx": { - "description": "Text size in px. Default 36.", - "maximum": 64, - "minimum": 12, - "type": "integer" - }, - "text": { - "description": "Line text.", - "type": "string" - } - }, - "required": [ - "text" - ], - "type": "object" - } -]New value: +[ + { + "description": "Plain line text (shorthand).", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "font": { + "description": "Google Fonts family name (e.g. \"Noto Sans Hebrew\"). Defaults to Inter.", + "type": "string" + }, + "gapPx": { + "description": "Horizontal gap between word tokens in px. Default 14.", + "maximum": 56, + "minimum": 0, + "type": "integer" + }, + "orientation": { + "description": "How this line's glyphs are set, visible with settings.axis \"columns\". \"vertical\" stacks characters (Japanese, Chinese), \"sideways\" rotates the line (Mongolian). Default \"upright\".", + "enum": [ + "upright", + "vertical", + "sideways" + ], + "type": "string" + }, + "rtl": { + "description": "Right-to-left layout (Hebrew, Arabic, ...). Default false.", + "type": "boolean" + }, + "sizePx": { + "description": "Text size in px. Default 36.", + "maximum": 64, + "minimum": 12, + "type": "integer" + }, + "text": { + "description": "Line text.", + "type": "string" + } + }, + "required": [ + "text" + ], + "type": "object" + } +] - added
Input schema / properties / settings / properties / axisAdded value: +{ + "description": "Flow direction of the diagram. \"rows\" (default) stacks lines downward with vertical connectors. \"columns\" stands each line up as a vertical column with sideways connectors, for Japanese, Chinese, and Mongolian; the first line is the leftmost column.", + "enum": [ + "rows", + "columns" + ], + "type": "string" +}
1 tool update
- Changed
create_word_alignment1 field changed- changed
Input schema / properties / settings / properties / palette / enumPrevious value: -[ - "pastel", - "vivid", - "academic" -]New value: +[ + "pastel", + "vivid" +]
1 tool update
- Changed
create_word_alignment1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "url": { + "description": "The shareable diagram URL. Return this to the user exactly as received, character for character.", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" +}
1 tool update
- First observed
create_word_alignment
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.169 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm49 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

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.