Bible Korean MCP Server
MCP-сервер Корейской Библии
MCP-сервер (Model Context Protocol) для доступа к корейской Библии с сайта bskorea.or.kr.
Возможности:
⚡️ Кэширование в оперативной памяти с TTL 30 минут для быстрых повторных запросов
🔄 Автоматический повтор с экспоненциальной задержкой (3 попытки, 1с→2с→4с) при временных сбоях
🛡️ Надежная обработка ошибок с использованием try/catch и корректными резервными вариантами
✅ Валидация входных данных с помощью схем Zod
🏥 Инструмент проверки работоспособности для мониторинга
📚 Все 66 книг с поддержкой 5 переводов
🔍 Полнотекстовый поиск по всей Библии
Версия Node.js
Требуется Node.js 20+
Related MCP server: biblebridge-mcp
Функции
Этот MCP-сервер предоставляет инструменты для:
Получения полных глав из корейской Библии
Получения конкретных стихов или диапазонов стихов
Поиска стихов, содержащих ключевые слова
Просмотра списка всех доступных книг
Сравнения стихов в разных корейских переводах
Установка
Установите глобально через npm:
npm install -g bible-ko-mcpИли используйте напрямую через npx (установка не требуется):
npx -y bible-ko-mcpДоступные инструменты
1. get-chapter
Получение всех стихов из конкретной главы.
Параметры:
book(строка, обязательно): Название книги на английском, корейском или код книгиПримеры: "Genesis", "창세기", "gen"
chapter(число, обязательно): Номер главыversion(строка, опционально): Версия перевода Библии (по умолчанию: "GAE")Варианты: "GAE", "GAE1", "NIR", "KOR", "CEV"
Пример:
{
"book": "Genesis",
"chapter": 1,
"version": "GAE"
}2. get-verses
Получение конкретного стиха или стихов из главы.
Параметры:
book(строка, обязательно): Название или код книгиchapter(число, обязательно): Номер главыverseStart(число, обязательно): Начальный номер стихаverseEnd(число, опционально): Конечный номер стиха (по умолчанию равен verseStart)version(строка, опционально): Версия перевода Библии (по умолчанию: "GAE")
Пример:
{
"book": "John",
"chapter": 3,
"verseStart": 16,
"verseEnd": 17,
"version": "GAE"
}3. search-bible
Поиск стихов, содержащих определенные ключевые слова.
Параметры:
query(строка, обязательно): Поисковый запрос на корейском или английском языкеversion(строка, опционально): Версия перевода Библии (по умолчанию: "GAE")
Примечание: Поиск охватывает все 66 книг Библии с выдачей результатов.
Пример:
{
"query": "사랑",
"version": "GAE"
}4. list-books
Список всех доступных книг в Библии.
Параметры:
testament(строка, опционально): Фильтр по завету ("OT" или "NT")
Пример:
{
"testament": "NT"
}5. compare-translations
Сравнение стиха в разных корейских переводах.
Параметры:
book(строка, обязательно): Название или код книгиchapter(число, обязательно): Номер главыverse(число, обязательно): Номер стихаversions(массив, опционально): Массив кодов версий для сравнения (по умолчанию: все версии)
Пример:
{
"book": "John",
"chapter": 3,
"verse": 16,
"versions": ["GAE", "NIR", "KOR"]
}Переводы Библии
GAE: 개역개정 (Пересмотренная корейская стандартная версия)
GAE1: 개역한글 (Корейская пересмотренная версия)
NIR: 새번역성경 (Новая корейская пересмотренная версия)
KOR: 공동번역 (Общий перевод)
CEV: CEV (Современная английская версия)
Коды книг
Ветхий Завет
Genesis (Бытие):
genExodus (Исход):
exoLeviticus (Левит):
levNumbers (Числа):
numDeuteronomy (Второзаконие):
deu... (см. полный список в исходном коде)
Новый Завет
Matthew (От Матфея):
matMark (От Марка):
mrkLuke (От Луки):
lukJohn (От Иоанна):
jhnActs (Деяния):
act... (см. полный список в исходном коде)
Использование с Claude Desktop
Добавьте в конфигурацию Claude Desktop:
macOS
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"bible-ko": {
"command": "npx",
"args": [
"-y",
"bible-ko-mcp"
]
}
}
}Windows
Отредактируйте %APPDATA%\Claude\claude_desktop_config.json с той же конфигурацией, что указана выше.
После добавления конфигурации полностью перезапустите Claude Desktop.
Разработка
Для локальной разработки:
# Clone the repository
git clone https://github.com/oksure/bible-ko-mcp.git
cd bible-ko-mcp
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Watch mode (auto-rebuild on changes)
npm run watch
# Run locally
npm startЛокальная разработка с Claude Desktop
Для тестирования локальных изменений используйте эту конфигурацию:
{
"mcpServers": {
"bible-ko": {
"command": "node",
"args": [
"/absolute/path/to/bible-ko-mcp/build/index.js"
]
}
}
}Не забудьте выполнить npm run build после внесения изменений.
Технические детали
Создано на TypeScript с использованием MCP SDK
Использует cheerio для парсинга HTML
Получает данные с bskorea.or.kr с автоматическим повтором (экспоненциальная задержка) при временных сбоях
Кэш в памяти (TTL 30 минут, 2000 записей) позволяет избежать избыточных запросов
Поддерживает все 66 книг Библии
Обрабатывает названия книг на корейском и английском языках
Варианты использования
Подготовка проповеди
Еженедельная воскресная проповедь о Нагорной проповеди
Спросите Claude: "Дай мне Матфея 5:3-12 на корейском (GAE), чтобы каждое блаженство было с новой строки для плана моей проповеди."
Tool: get-verses
Book: Matthew, Chapter: 5, Start: 3, End: 12Страстная пятница — Мессианское пророчество из Исаии
Tool: get-chapter
Book: Isaiah, Chapter: 53, Version: GAEРождественская проповедь — История Рождества
Tool: get-verses
Book: Luke, Chapter: 2, Start: 1, End: 20Пасхальное воскресенье — История воскресения
Tool: get-chapter
Book: John, Chapter: 20, Version: GAEСвадебная проповедь — Глава о любви
Tool: get-chapter
Book: 1 Corinthians, Chapter: 13, Version: GAEМиссионерское воскресенье — Великое поручение
Tool: get-verses
Book: Matthew, Chapter: 28, Start: 18, End: 20Группы по изучению Библии
Сравнение Иоанна 3:16 в разных переводах для обсуждения в группе
Tool: compare-translations
Book: John, Chapter: 3, Verse: 16
Versions: ["GAE", "GAE1", "NIR", "KOR"]Тематическое изучение: Живая вера (야고보서의 믿음)
Tool: get-verses
Book: James, Chapter: 2, Start: 14, End: 26Изучение плода Духа
Tool: get-verses
Book: Galatians, Chapter: 5, Start: 22, End: 23Евреям 11 "Зал славы веры" — полная глава
Tool: get-chapter
Book: Hebrews, Chapter: 11, Version: GAEДуховная брань — отрывок о всеоружии Божьем
Tool: get-verses
Book: Ephesians, Chapter: 6, Start: 10, End: 18Личное чтение
Псалом 22 для утешения (послание на похоронах, посещение больниц)
Tool: get-chapter
Book: Psalms, Chapter: 23, Version: GAEРимлянам 8:28-39 — Уверенность в Божьей любви
Tool: get-verses
Book: Romans, Chapter: 8, Start: 28, End: 39Ежедневный стих для запоминания
Tool: get-verses
Book: Philippians, Chapter: 4, Start: 13, End: 13Адвент-размышления — Слово стало плотью
Tool: get-verses
Book: John, Chapter: 1, Start: 1, End: 14Поиск на корейском языке
Все инструменты принимают корейские названия книг, что позволяет естественно ссылаться на Писание на корейском:
Tool: get-chapter
Book: 시편 (Psalms), Chapter: 23Tool: get-verses
Book: 잠언 (Proverbs), Chapter: 3, Start: 5, End: 6Tool: search-bible
Query: 하나님의 사랑 (God's love)Примечания
Парсинг HTML может потребовать корректировки в зависимости от обновлений веб-сайта
Функциональность поиска ограничена в демонстрационных целях, чтобы избежать чрезмерного количества запросов
Некоторые переводы могут быть недоступны для всех книг
Публикация
Этот пакет автоматически публикуется в NPM при создании нового релиза на GitHub. Подробные инструкции см. в PUBLISHING.md.
Участие в разработке
Вклад приветствуется! Пожалуйста, не стесняйтесь отправлять Pull Request.
Лицензия
MIT
Available Tools
6 toolscompare-translationsA
Compare a verse across different Korean translations
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | Book name (English or Korean) or code (e.g., 'Genesis', '창세기', 'gen') | |
| verse | Yes | Verse number | |
| chapter | Yes | Chapter number | |
| versions | No | Array of version codes to compare (default: all versions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic function without disclosing any behavioral traits (e.g., read-only, no side effects, auth requirements). The description is too brief for a tool with no annotations.
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?
Single sentence, front-loaded, and no wasted words. However, it is slightly under-specified given lack of annotations; could include more useful context without becoming verbose.
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?
With no output schema, the description should explain what the tool returns (e.g., comparison format, translations listed). It only says 'compare', leaving the agent to guess the return structure and behavior. Incomplete for a tool with 4 parameters.
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 coverage is 100%, so the input schema already documents all parameters. The description adds no additional meaning beyond 'compare verse across translations'. Baseline 3 is appropriate as schema does the heavy lifting.
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 clearly states 'Compare a verse across different Korean translations', which is specific about the verb (compare), resource (verse), and scope (Korean translations). It effectively distinguishes from sibling tools like 'get-chapter' or 'get-verses'.
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 implies usage context (when you need to compare translations of a specific verse) but does not explicitly state when not to use it or mention alternatives. The sibling tool names provide context, but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-chapterA
Get all verses from a specific chapter of the Korean Bible
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | Book name (English or Korean) or code (e.g., 'Genesis', '창세기', 'gen') | |
| chapter | Yes | Chapter number | |
| version | No | Bible translation version (default: GAE) | GAE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic retrieval action, omitting details about read-only nature, output format, or any constraints.
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 a single, clear sentence with no unnecessary words or repetition. It is front-loaded and efficient.
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?
The description covers the core functionality but lacks context about output format, edge cases, or integration with sibling tools. Given the tool's simplicity, it is mostly complete but could be improved.
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 baseline is 3. The description adds no additional meaning beyond the schema, simply restating the purpose.
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 clearly states the verb 'Get' and resource 'all verses from a specific chapter of the Korean Bible', distinguishing it from sibling tools like get-verses (probably individual verses) and search-bible.
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 does not provide explicit guidance on when to use this tool versus alternatives like get-verses or compare-translations. Usage context is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-versesC
Get specific verse(s) from a chapter
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | Book name (English or Korean) or code (e.g., 'Genesis', '창세기', 'gen') | |
| chapter | Yes | Chapter number | |
| version | No | Bible translation version (default: GAE) | GAE |
| verseEnd | No | Ending verse number (optional, defaults to verseStart) | |
| verseStart | Yes | Starting verse number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It fails to mention any behavioral aspects such as read-only nature, error handling, or what happens if verses are missing.
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 a single, brief sentence that gets straight to the point. It is concise, but could benefit from a bit more context without becoming verbose.
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?
The description covers the tool's core purpose but lacks detail on output format, authentication needs, rate limits, or usage scenarios. Given the moderate complexity (5 parameters, 1 enum), more context would help the agent.
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 coverage is 100%, meaning the input schema already details each parameter well. The description adds no additional meaning beyond 'specific verse(s)', which is accurate but not enhancing.
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 uses a specific verb ('Get') and resource ('specific verse(s) from a chapter'), making the tool's purpose immediately clear. It distinguishes from sibling 'get-chapter' which retrieves an entire chapter, and 'search-bible' which is for searching.
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?
No guidance is provided on when to use this tool versus alternatives like 'get-chapter' for whole chapters or 'search-bible' for searches. The context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health-checkA
Check the health status of the Bible Korean MCP server and API connectivity
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It mentions checking health and connectivity but does not describe output format or whether authentication is needed. For a simple tool, this is acceptable but lacks detail.
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?
Single sentence, front-loaded with the action. No extraneous content.
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?
For a simple health check tool with no parameters and no output schema, the description is sufficiently complete. It conveys purpose and scope, though it omits output details.
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?
No parameters exist; schema coverage is 100%. The description adds no parameter info, which is not needed. Baseline for 0 params is 4.
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 clearly states the tool checks health status and API connectivity, a specific verb+resource. It is easily distinguished from siblings which perform Bible data operations.
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?
Implicitly, the tool is for verifying server health before other operations, but no explicit when-to-use or exclusions are provided. For a simple health check, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-booksA
List all available books in the Bible
| Name | Required | Description | Default |
|---|---|---|---|
| testament | No | Filter by testament (OT/NT, optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It does not disclose read-only nature or any side effects, but it is safe for a list operation. Minimal disclosure.
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 a single sentence with no wasted words, but it is minimally informative. Consider adding context about the return format.
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?
For a simple list with one optional parameter, the description is adequate but does not explain return values or behavior when no filter is applied. Slightly incomplete.
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 coverage is 100% for the single parameter, but the description adds no additional information beyond what the schema provides. Baseline 3 is appropriate.
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 clearly states the verb 'list' and the resource 'all available books in the Bible', distinguishing it from sibling tools like get-chapter or search-bible.
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 implies usage for listing books but lacks explicit guidance on when to use this tool versus alternatives, such as search-bible or get-verses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-bibleA
Search for verses containing specific keywords. Searches the first 10 chapters of each book — not a full-Bible search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (Korean or English) | |
| version | No | Bible translation version (default: GAE) | GAE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides the key behavioral limitation (not full-Bible search). It adds value beyond schema by disclosing the restricted scope, but does not address other traits like read-only nature or authentication needs.
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 extremely concise with two sentences, each adding distinct value: first states core action, second clarifies critical scope limitation. No wasted words.
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?
The description covers the tool's purpose and limitation but lacks any mention of output format or return value. Since there is no output schema, this gap reduces completeness for an AI agent.
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?
The input schema already fully describes both parameters (query and version) with descriptions and enums. The description adds no additional semantic information about parameters beyond what the schema provides.
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 uses a specific verb ('Search') and resource ('verses containing specific keywords') and clearly distinguishes the tool by stating the limitation (first 10 chapters only), separating it from siblings like get-chapter or get-verses.
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?
It explicitly states the scope (first 10 chapters) and implies this is for quick keyword searches, not a full-Bible search. However, it does not explicitly mention when to use alternatives like get-verses or compare-translations.
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.
4 tool updates
v0.2.0- Changed
compare-translations3 fields changed- changed
Input schema / properties / book / descriptionPrevious value: -"Book name (English or Korean) or code"New value: +"Book name (English or Korean) or code (e.g., 'Genesis', '창세기', 'gen')" - added
Input schema / properties / chapter / minimumAdded value: +1 - added
Input schema / properties / verse / minimumAdded value: +1
- Changed
get-chapter1 field changed- added
Input schema / properties / chapter / minimumAdded value: +1
- Changed
get-verses4 fields changed- changed
Input schema / properties / book / descriptionPrevious value: -"Book name (English or Korean) or code"New value: +"Book name (English or Korean) or code (e.g., 'Genesis', '창세기', 'gen')" - added
Input schema / properties / chapter / minimumAdded value: +1 - added
Input schema / properties / verseEnd / minimumAdded value: +1 - added
Input schema / properties / verseStart / minimumAdded value: +1
- Added
health-check
5 tool updates
- First observed
compare-translations - First observed
get-chapter - First observed
get-verses - First observed
list-books - First observed
search-bible
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: compare-translations for cross-translation comparison, get-chapter for full chapters, get-verses for specific verses, health-check for server status, list-books for book listing, and search-bible for keyword search. No overlap.
Tool names follow a consistent pattern of lowercase hyphenated verb-noun (compare-translations, get-chapter, get-verses, list-books, search-bible), though health-check is a noun-noun compound, deviating slightly but still readable.
With 6 tools, the server is well-scoped for its domain, covering reading, searching, and comparison without being overly numerous or too sparse.
Core operations are covered (list books, get chapter/verses, search, compare), but notable gaps exist: no tool to list available translations, and the search is limited to the first 10 chapters of each book, which may hinder full-text discovery.
Maintenance
Related MCP Connectors
Bible translations, books, chapters, verses, and search
Read-only BSB and WEB Scripture evidence with provenance, context, comparison, and search.
Scripture-cited answers to any Bible question, plus verse text and study pages, for AI agents.
Bible corpus MCP server: scripture, Greek/Hebrew interlinear data, cross-refs, semantic search.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides comprehensive Biblical research tools including scripture lookup, interlinear Greek/Hebrew data, and Strong's concordance within a Protestant theological framework. It enables AI applications to perform full-text biblical searches, topical studies, and cross-referencing using authoritative theological data.4MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides structured access to Scripture through the BibleBridge API, enabling semantic search, contextual verse retrieval, and cross-reference analysis. It supports natural language reference normalization and comparative theological exploration across different passages.1-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to look up Bible verses, search across translations, and compare different versions locally without API keys.-
- AlicenseNot gradedqualityBmaintenanceExposes Bible content from bible-api.com for LLMs, enabling retrieval of verses, chapters, random verses, and Bible study prompts with support for multiple translations.14MIT