ebook-translator-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EBOOK_TRANSLATOR_CACHE_DIR | No | Explicit cache root (highest priority; then the plugin's configured cache_path, then the platform default). Default: auto-detect. | |
| EBOOK_TRANSLATOR_SEPARATOR | No | Separator used by the alignment check. Default: \n\n. | \n\n |
| EBOOK_TRANSLATOR_ENGINE_NAME | No | Engine 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
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.
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.
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.
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.