π¨ MAJOR UPDATE: 100% Real Data - Zero Mock Fallbacks
A comprehensive MCP (Model Context Protocol) server that provides AI agents with access to Bible translation resources from Door43's Content Service (DCS). This server enables AI assistants to fetch, process, and intelligently work with translation helps including scripture texts, translation notes, translation words, and translation questions.
- β 100% Real Data - All mock data removed, every endpoint fetches from DCS
- β
Unified Architecture - Single
UnifiedResourceFetcherclass handles all data - β
Markdown Support Everywhere - All endpoints support
format=mdfor LLMs - β Wrangler-Only Testing - Standardized on port 8787 with real KV/R2 bindings
- β No Mock Fallbacks - Real errors instead of fake success
Removed Endpoints:
/api/fetch-ult-scriptureβ Usefetch-scripture?resource=ult/api/fetch-ust-scriptureβ Usefetch-scripture?resource=ust/api/fetch-resourcesβ Use specific endpoints/api/resource-recommendationsβ Removed completely/api/language-coverageβ Removed completely/api/get-words-for-referenceβ Usefetch-translation-words
See MIGRATION_GUIDE.md for detailed migration instructions.
- Scripture Texts: Multiple translations (ULT, UST, T4T, UEB) with real-time DCS fetching
- Translation Notes: Verse-by-verse explanations from TSV data
- Translation Words: Biblical term definitions from markdown files
- Translation Word Links: Connections between scripture and word articles
- Translation Questions: Comprehension questions from TSV data
- Translation Academy: Training modules for translators
Guided workflows that teach AI assistants to chain tools intelligently:
translation-helps-for-passage- Get everything: scripture + notes + questions + words (with titles) + academy articlesget-translation-words-for-passage- Show dictionary entry titles (not technical IDs)get-translation-academy-for-passage- Find training articles referenced in notes
π Complete Usage Guide β | π Technical Docs β
Why prompts matter:
- One command replaces 6-10 tool calls
- Shows human-readable titles instead of IDs
- Standardizes best practices for translation workflows
- Makes AI assistants much smarter about Bible translation
- Real Data Only: No mock data, no fake responses, no fallbacks
- Unified Fetcher: Single class (
UnifiedResourceFetcher) for all resources - Smart Caching: KV for catalogs, R2 for ZIPs, Cache API for extracted files
- Format Support: JSON, Markdown, Text, and TSV (where applicable)
- Cloudflare Pages: Global edge deployment with sub-100ms response times
- API Base:
https://tc-helps.mcp.servant.bible/api/ - Documentation:
https://tc-helps.mcp.servant.bible/ - Health Check:
https://tc-helps.mcp.servant.bible/api/health
# Fetch scripture
curl "https://tc-helps.mcp.servant.bible/api/fetch-scripture?reference=John%203:16"
# Get translation notes in markdown (for LLMs)
curl "https://tc-helps.mcp.servant.bible/api/translation-notes?reference=Genesis%201:1&format=md"
# Fetch translation word links
curl "https://tc-helps.mcp.servant.bible/api/fetch-translation-word-links?reference=Titus%201:1"
# Browse translation academy modules
curl "https://tc-helps.mcp.servant.bible/api/browse-translation-academy?language=en"All endpoints use the same architecture:
API Endpoint β createSimpleEndpoint β UnifiedResourceFetcher β ZipResourceFetcher2 β DCS
Key Components:
- UnifiedResourceFetcher - Single interface for all resource types
- ZipResourceFetcher2 - Handles ZIP archives with intelligent caching
- createSimpleEndpoint - Standardized endpoint creation pattern
- Real Error Handling - No mock fallbacks, actual error messages
DCS API β KV Cache (1hr TTL) β Catalog Metadata
β
R2 Storage β ZIP Files
β
Cache API β Extracted Files
See R2 Setup Guide for instructions on populating the R2 bucket.
# Start Wrangler (REQUIRED for tests)
cd ui && npx wrangler pages dev .svelte-kit/cloudflare --port 8787
# In another terminal, run tests
npm test- Port: Always 8787 (enforced by test setup)
- Bindings: Real KV and R2 bindings
- No Mocks: Tests use real Cloudflare services
See tests/TESTING_REQUIREMENTS.md for details.
# Fetch multiple translations
GET /api/fetch-scripture?reference=John%203:16&resource=ult,ust
# Response format options
GET /api/fetch-scripture?reference=John%203:16&format=md # Markdown
GET /api/fetch-scripture?reference=John%203:16&format=text # Plain text# Translation notes (from TSV)
GET /api/translation-notes?reference=John%203:16
# Translation questions (from TSV)
GET /api/translation-questions?reference=John%203:16
# Translation words (from markdown)
GET /api/fetch-translation-words?reference=John%203:16
# Translation word links (from TSV) - NEW!
GET /api/fetch-translation-word-links?reference=John%203:16
# Translation academy modules
GET /api/fetch-translation-academy?moduleId=figs-metaphor
# Browse academy modules
GET /api/browse-translation-academy?language=en&category=translate# Available languages
GET /api/simple-languages
# Available books
GET /api/get-available-books?language=en
# Resource catalog
GET /api/resource-catalog?language=en&subject=BibleSee API_ENDPOINTS.md for complete documentation.
- Node.js 18+
- Wrangler CLI (
npm install -g wrangler)
# Install dependencies
npm install
cd ui && npm install
# Start Wrangler dev server (REQUIRED)
cd ui && npx wrangler pages dev .svelte-kit/cloudflare --port 8787
# Run tests
npm test
# Build for production
npm run build- KISS: Keep It Simple - no over-engineering
- DRY: Don't Repeat Yourself - single source of truth
- Consistent: Same patterns everywhere
- Antifragile: Fail fast with real errors, no hiding issues
- Fork the repository
- Create a feature branch
- Use Wrangler for all testing (no exceptions!)
- Ensure all tests pass
- Submit a pull request
Remember:
- No mock data
- All endpoints must support markdown format
- Use
UnifiedResourceFetcherfor new features - Test with real KV/R2 bindings
MIT License - see LICENSE file for details.
Built with β€οΈ for Bible translators worldwide