# word-aligner [Health: Active]

**Category:** 🌎 Translation Services  
**Repository:** https://github.com/tinygodsdev/bitext-word-alignment  
**GitHub Stars:** 5  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/word-aligner

## Description
Turn a phrase and its translation into a shareable word-alignment diagram.

## Tools
Capabilities this server exposes over MCP:

- **create_word_alignment** — 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.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "word-aligner": {
    "url": "https://aligner.tinygods.dev/mcp"
  }
}
```

## Documentation & README

# Aligner — word-by-word translation visualizer

**[aligner.tinygods.dev](https://aligner.tinygods.dev)**

Word Aligner is a free web tool that shows **which word matches which** across stacked lines of text. Type or paste a sentence and its translation, click a word and then its match on the line above or below, and curved connectors draw the alignment between them. Add extra rows for **glosses** or **IPA**, then **export** the diagram or **share** it with a link.

No accounts, no machine translation — you stay in control of every link. Great for lessons, social posts, grammar notes, and conlang documentation.

![Linking words between “Hello world” and its French translation](https://raw.githubusercontent.com/tinygodsdev/bitext-word-alignment/HEAD/bitext/static/examples/action.gif)

## What it's for

- **Language learners** — see exactly why a translation says what it does: which source word became which target word, what gets dropped, and where word order changes.
- **Teachers** — build handouts, slides, and flashcards; export a clean PNG or SVG and drop it into a lesson without retyping anything.
- **Linguists** — produce Leipzig-style interlinear glosses with morpheme alignment, case/agreement tags, and free translations.
- **Conlangers** — show how a constructed language maps onto English, with custom script fonts, gloss rows, and IPA.

## What it does

- **Multi-line alignment** — stack as many rows as you need (source, translation, gloss, IPA); links connect vertically adjacent lines.
- **Manual word linking** — click a word, then its match; supports one-to-many and many-to-one links and freely crossing connectors for reordered translations.
- **Interlinear glosses & IPA** — add annotation tiers above or below any line.
- **Right-to-left scripts** — Hebrew, Arabic, and mixed LTR/RTL layouts.
- **Vertical writing systems** — stand the whole diagram up as columns for Japanese tategaki, Chinese, or traditional Mongolian; characters stack or the line rotates, chosen per line, so a horizontal translation stays readable beside it.
- **Tokenization control** — choose how text splits into word boxes (split characters, a join marker for fixed expressions, optional punctuation handling).
- **Per-line typography** — font, size, spacing, and direction per line; custom and Google Fonts.
- **Exports** — PNG, SVG, PDF, and a self-contained HTML file; exports match the preview, including custom-font shaping.
- **Shareable URLs** — the whole alignment (text, links, and visual settings) is encoded in a `?data=` link.

## Examples

Browse ready-made examples — bilingual pairs, Turkish interlinear with IPA, RTL scripts, vertical Japanese and traditional Mongolian, Tagalog compounds, Japanese–Chinese–English word order, and more interlinear glosses — at **[aligner.tinygods.dev/examples](https://aligner.tinygods.dev/examples)**. Open any one in the editor to adapt it.

![Turkish interlinear preview with glosses, IPA, and connectors](https://raw.githubusercontent.com/tinygodsdev/bitext-word-alignment/HEAD/bitext/static/screenshots/preview-turkish-example.png)

![Conlang example with a custom script font and interlinear glosses](https://raw.githubusercontent.com/tinygodsdev/bitext-word-alignment/HEAD/bitext/static/examples/conlang_gloss.png)

## How it works

Edit your lines in the line editor, then link words in the preview.

![Aligner line editor with stacked lines and word-splitting summary](https://raw.githubusercontent.com/tinygodsdev/bitext-word-alignment/HEAD/bitext/static/screenshots/line-editor.png)

Tune colors, tokenization, and fonts in settings, then export or share.

![Export options: PNG, SVG, PDF, and HTML](https://raw.githubusercontent.com/tinygodsdev/bitext-word-alignment/HEAD/bitext/static/screenshots/export-card.png)

## Word alignment vs. interlinear vs. parallel text

- **Interlinear translation** places a gloss directly under each source word — compact, but it hides reordering. Aligner keeps both sentences on their own line and draws connectors, so reorderings, splits, and merges stay obvious.
- **Parallel text** is side-by-side bilingual reading for long-form study. Aligner focuses on one sentence pair at a time with explicit connectors showing which tokens correspond.

## API

Word Aligner has a free HTTP API for generating alignment links programmatically.

```
POST https://aligner.tinygods.dev/api/align
Content-Type: application/json

{
  "lines": ["Hello world", "Bonjour le monde"],
  "alignments": [[0, 0, 1, 0], [0, 1, 1, 2]]
}
```

Returns `{ "url": "https://aligner.tinygods.dev/?data=..." }`.

Supports per-line options (font, size, RTL), global visual settings (palette, line style, background), pair-level gap control, and multi-line stacks with selective connectors.

- **API docs:** [aligner.tinygods.dev/api](https://aligner.tinygods.dev/api)
- **OpenAPI schema:** [aligner.tinygods.dev/api/align/openapi.json](https://aligner.tinygods.dev/api/align/openapi.json)

### Using Word Aligner as an AI agent tool

The [`word-aligner-skill/`](https://github.com/tinygodsdev/bitext-word-alignment/blob/HEAD/word-aligner-skill/) directory is a ready-to-install skill that teaches AI assistants (Claude, ChatGPT, etc.) how to use the API. Once installed, it enables flows like:

> "Translate 'я хочу спать' into English and show me the word alignment."

The agent translates, calls the API, and returns a shareable link.

- **For Claude:** point your Claude project at this repository or add the contents of `word-aligner-skill/SKILL.md` as a custom instruction.
- **For ChatGPT:** zip `word-aligner-skill/` and upload it as a custom Skill.

Install instructions and a downloadable archive are also on the site: [aligner.tinygods.dev/skill](https://aligner.tinygods.dev/skill).

### MCP server

There is also an MCP server at `https://aligner.tinygods.dev/mcp` that exposes a single `create_word_alignment` tool. It returns a shareable link plus a preview image, and runs inside the same app over Streamable HTTP with no auth. Connect it in Claude:

```bash
claude mcp add --transport http word-aligner https://aligner.tinygods.dev/mcp
```

See [docs/mcp-server.md](https://github.com/tinygodsdev/bitext-word-alignment/blob/HEAD/docs/mcp-server.md) for ChatGPT Developer Mode setup and the tool schema.

## Learn more

- **App:** [aligner.tinygods.dev](https://aligner.tinygods.dev)
- **About / documentation:** [aligner.tinygods.dev/about](https://aligner.tinygods.dev/about)
- **Privacy:** [aligner.tinygods.dev/privacy](https://aligner.tinygods.dev/privacy)

Created by Dani Polani. See other [tools for linguistics and conlanging](https://danipolani.github.io/en/blog/tools/).

