Skip to main content
Glama
riverai

ebook-translator-mcp

by riverai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EBOOK_TRANSLATOR_CACHE_DIRNoExplicit cache root (highest priority; then the plugin's configured cache_path, then the platform default). Default: auto-detect.
EBOOK_TRANSLATOR_SEPARATORNoSeparator used by the alignment check. Default: \n\n.\n\n
EBOOK_TRANSLATOR_ENGINE_NAMENoEngine name recorded next to written translations. Default: MCP.MCP

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_booksA

List all cached translation books with progress (including temporary caches). The returned id is the book_id used by every other tool. Note: segmenting the same book with different engine / target language / merge settings produces multiple caches (same title, different ids) — duplicate titles are flagged duplicate_title=true; disambiguate by engine/target_lang/merge_length and pick one, since picking the wrong book makes every later read/write land on the wrong cache. keyword fuzzy-filters by title/engine/language (useful when there are many books). persistent=false means a temporary cache (destroyed as soon as the advanced-mode window closes).

get_book_infoA

Details of one book's cache: engine, target language, merge / alignment rules, progress, and the list of non-aligned (yellow- highlighted) chunk ids.

list_chunksA

Lightweight list of every chunk id of one book with status, without full texts (to keep context small); mirrors the left-hand table of the UI. status options: all / untranslated / translated / misaligned (the UI's yellow rows); keyword fuzzy-matches original or translation text. Each item contains: chunk_id (for addressing; never changes; valid only inside this book), ui_row (UI display position, human reference only), status, alignment, block count, character count and a one-line preview. Always address chunks as book_id + chunk_id — never use ui_row, and never carry this book's chunk_id over to another book. The response echoes book_id and title so the caller can verify it is working on the intended book.

get_originalA

Read the full original text of one chunk — identical to what the UI's proofreading panel shows, so the agent sees the same text a human sees. chunk_id is this book's database cache id (never changes; see list_chunks; valid only inside this book — never use it across books). When merged translation is enabled the response includes blocks: the translation's blank-line block count must equal it to be aligned (otherwise the UI highlights the chunk yellow). include_raw=True additionally returns the raw HTML. The response echoes book_id and title — verify it is the intended book.

get_translationA

Read the full translation and alignment state of one chunk — identical to what the UI's proofreading panel shows. chunk_id is this book's database cache id (never changes; see list_chunks; valid only inside this book — never use it across books). translation is null when the chunk is untranslated. When merged translation is enabled the response carries the alignment verdict (whether translation and original have equal blank-line block counts, i.e. whether the UI highlights the row yellow). The response echoes book_id and title — verify it is the intended book.

write_chunkA

Write the full translation of one chunk (stripped before writing, matching plugin behavior; engine name and target language are recorded). chunk_id is this book's database cache id (never changes; see list_chunks; valid only inside this book). Right after writing, the tool replicates the UI alignment check and returns the aligned state — mismatched block counts come with a warning (the chunk will be highlighted yellow in the UI). With overwrite=False an existing translation is skipped. The response echoes book_id and title: writing is irreversible, verify it is the intended book first.

delete_translationsA

Clear the translations of the given chunks (for rework); originals and all other fields are untouched. chunk_ids is a list of this book's database cache ids (never change; see list_chunks; valid only inside this book). A chunk that went wrong only needs its own redo — other chunks are not affected. The response echoes book_id and title; verify them.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.7/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource and action: book-level info vs chunk-level read/write/delete. The naming and descriptions clearly separate get_original (source text) from get_translation (target text and alignment), and write_chunk from delete_translations. There is no functional overlap between any two tools.

Naming Consistency5/5

All tool names use a consistent verb_noun pattern in snake_case: get_book_info, list_books, list_chunks, get_original, get_translation, write_chunk, delete_translations. The verbs (get, list, write, delete) accurately reflect the operation, and nouns specify the target resource. The convention is uniform across the set.

Tool Count5/5

With 7 tools, the server is squarely in the well-scoped range for a specialized ebook translation cache manager. Each tool covers a necessary step: discovering books, inspecting chunks, reading/writing translations, and clearing bad ones. No redundant or vestigial tools are present.

Completeness5/5

The tool set covers the full review/edit lifecycle: list and inspect books, list chunks, read original and translation, write corrected translations, and delete translations for rework. Alignment state is surfaced in get_translation and write_chunk, and get_book_info summarizes misaligned chunks. There are no dead ends in the typical proofreading workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues