renpy-translate-mcp
v0.2.0
Published
MCP server for translating Ren'Py visual novels — extract dialogue, manage glossary, generate tl/ translation files
Maintainers
Readme
renpy-translate-mcp
MCP server for translating Ren'Py visual novels. Extracts dialogue, prepares translation batches with glossary/context, and generates official tl/ translation files.
Features
- Extract all translatable strings — say statements, menu choices, character names, screen text,
_()strings - Smart translation batching — context windows, character speech style profiles, glossary term injection
- Safe tl/ file generation — never modifies original .rpy files (preserves save compatibility)
- Glossary management — terms, character profiles (honorifics/speech style), font settings
- CJK font support — auto-generates style.rpy with font overrides
Installation
npm install -g renpy-translate-mcpOr add to your MCP client config:
{
"mcpServers": {
"renpy-translate": {
"command": "npx",
"args": ["renpy-translate-mcp"]
}
}
}Tools
extract_dialogue
Extract all translatable strings from .rpy files in a game directory.
Parameters:
gameDir(required) — absolute path to game directoryfiles— specific .rpy files to parseskipTranslated— skip already translated stringslanguage— target language (for skipTranslated)
translate_dialogue
Prepare extracted dialogue for translation with context windows, character profiles, and glossary.
Parameters:
gameDir(required) — game directory (loads glossary)entries(required) — JSON string of extracted entriestargetLanguage(required) — target languagebatchSize— entries per batch (default: 20)contextWindow— context lines (default: 2)
generate_translation_files
Write translations to Ren'Py tl/ directory. Never modifies original files.
Parameters:
gameDir(required) — game directorylanguage(required) — language codetranslations(required) — JSON string of translated entriesmerge— merge with existing translations (default: true)
manage_glossary
CRUD for translation glossary (terms, character profiles, fonts).
Parameters:
gameDir(required) — game directoryaction(required) — get, add_term, remove_term, add_character, remove_character, set_fontskey— term or character keyvalue— translation, JSON profile, or JSON font map
Quick Start
- Open your Ren'Py game folder in Claude Code / Cursor
- "Extract all dialogue from this game"
- "Translate these to Korean"
- "Generate the translation files"
License
MIT
