Multi-language SDK for the LSBible API at read.lsbible.org.
Disclaimer: This is an unofficial, third-party SDK and is not affiliated with, endorsed by, or connected to LSBible or its creators. This project is an independent client library for educational and development purposes.
The Legacy Standard Bible (LSB) is a modern literal translation that prioritizes accuracy and consistency:
- π Formal Equivalence - Word-for-word translation philosophy preserving original structure
- βοΈ Based on NASB95 - Built on the respected New American Standard Bible, updated for modern scholarship
- π€ Consistent Translation - Same Hebrew/Greek words translated consistently throughout
- π Divine Name - Uses "Yahweh" for the Tetragrammaton (YHWH) instead of "LORD"
- π Freely Accessible - Available for use in applications and tools
- π Modern Scholarship - Published in 2021 with latest textual research
The LSB's literal approach makes it ideal for serious Bible study, and its structured HTML output is perfect for SDK development, preserving formatting like red-letter text for Jesus' words and italics for translator clarifications.
- Why the LSB?
- What Can You Do With LSBible?
- Quick Start
- Key Features
- Available SDKs
- Documentation
- Repository Structure
- Development
- Contributing
- License
LSBible provides three powerful ways to access the Legacy Standard Bible:
Integrate Bible content directly into Claude Desktop, Claude Code, Cursor, or any MCP-compatible LLM application:
- β Natural language queries - Ask Claude to "get John 3:16" or "search for verses about love"
- β Zero setup coding - Just add to your MCP config, no programming required
- β 20+ supported clients - Works with Cursor, VS Code, Claude Desktop, Windsurf, and more
- β Bible study tools - Generate study guides and cross-reference analyses with built-in prompts
- β Search distribution - Understand which parts of the Bible discuss specific topics
- β Bible structure info - Query metadata about all 66 books, chapters, and verses
View MCP Server Installation Guide β
Perfect for building modern Bible applications with full type safety:
- β 100% Type-Safe - Full TypeScript support with Zod validation
- β
Structured Parameters - No string parsing! Use
client.getVerse(BookName.JOHN, 3, 16) - β Rich formatting preserved - Access red-letter text (Jesus' words), italics, small-caps, and more
- β MCP Server included - Built-in Model Context Protocol server for AI integration
- β IDE autocomplete - Enum-based book names for all 66 books (no typos!)
- β Modern runtime support - Works with Node.js 18+, Bun, and Deno
View TypeScript SDK Documentation β
Perfect for building Bible applications, study tools, or integrating Scripture into Python projects:
- β Fetch verses with type safety - Get any Bible verse with full validation of book/chapter/verse
- β Search with analytics - Find verses by text and see distribution across Bible sections and books
- β Rich formatting preserved - Access red-letter text (Jesus' words), italics, small-caps, and more
- β Structured data models - Work with immutable Pydantic models, not raw HTML or strings
- β IDE autocomplete - Enum-based book names for all 66 books (no typos!)
- β Response caching - Built-in TTL cache reduces API calls
View Python SDK Documentation β
The easiest way to get started - no coding required! Just add LSBible to your MCP client config.
π Complete Installation Guide β
Supports 20+ MCP clients including Cursor, Claude Code, VS Code, Claude Desktop, Windsurf, and more. Both local (npx) and remote (https://lsbible.kdco.dev/mcp) options available.
Install and use programmatically with full type safety:
# Install SDK
npm install lsbibleimport { LSBibleClient, BookName } from "lsbible";
const client = new LSBibleClient();
// Fetch a verse with type-safe parameters
const verse = await client.getVerse(BookName.JOHN, 3, 16);
console.log(verse.verses[0].plainText);
// Output: "For God so loved the world, that He gave His only Son..."
// Access rich formatting
for (const segment of verse.verses[0].segments) {
if (segment.isRedLetter) {
console.log(`Jesus said: "${segment.text}"`);
}
}
// Search with distribution analytics
const results = await client.search("love");
console.log(`Found ${results.matchCount} matches across the Bible`);
// Get an entire chapter
const chapter = await client.getChapter(BookName.PSALMS, 23);
console.log(`Psalm 23 has ${chapter.verseCount} verses`);Install and use programmatically:
# Install SDK
uv pip install lsbiblefrom lsbible import LSBibleClient, BookName
with LSBibleClient() as client:
# Fetch a verse with type-safe parameters
passage = client.get_verse(BookName.JOHN, 3, 16)
print(passage.verses[0].plain_text)
# Output: "For God so loved the world, that He gave..."
# Access rich formatting
for segment in passage.verses[0].segments:
if segment.is_red_letter:
print(f'Jesus said: "{segment.text}"')
# Search with distribution analytics
results = client.search("love")
print(f"Found {results.match_count} matches across the Bible")
# See which sections discuss "love" most
if results.has_search_metadata:
for section, count in results.counts_by_section.items():
print(f"{section}: {count} matches")Unlike traditional Bible APIs that parse strings like "John 3:16", LSBible uses explicit, validated parameters:
# β
GOOD - Type-safe with IDE autocomplete and validation
client.get_verse(BookName.JOHN, 3, 16)
# β NOT SUPPORTED - String parsing (error-prone, no type safety)
client.get_verse("John 3:16")Why?
- Full IDE autocomplete for all 66 books
- Early validation before API calls (catch errors instantly)
- No parsing ambiguity (is "1 John" a book or chapter?)
- Better testing (easy to generate test cases programmatically)
- Language agnostic (works consistently across all SDKs)
- 66 books (39 Old Testament + 27 New Testament)
- 1,189 chapters total
- 31,102 verses total
- Full validation of all book/chapter/verse combinations
- 8 Bible sections for search distribution analytics
All formatting from the LSB translation is preserved:
- Red-letter text - Words of Jesus highlighted
- Italics - Clarifying words added by translators
- Small caps - "LORD" representing YHWH (Yahweh)
- Bold text - Emphasis in original text
- Poetry/prose detection - Structural formatting preserved
- Subheadings - Section titles and chapter markers
For text searches (not Bible references), get rich metadata showing:
- Total match count across all of Scripture
- Distribution by section (Pentateuch, History, Wisdom, Prophets, Gospels, Epistles)
- Distribution by book (which books contain the most matches)
- Filtered vs total counts (see how filters affect results)
Example: Searching for "love" shows 436 total matches, with 101 in Pauline Epistles and 95 in Wisdom/Poetry.
- Pydantic models for all data structures
- Immutable models (frozen=True) prevent accidental mutations
- Validation before API calls - catch errors early
- Comprehensive error messages - know exactly what's wrong
Status: Production ready Version: 0.3.0 Node.js: 18+
npm install lsbibleKey Stats:
- ποΈ Full TypeScript support with Zod validation
- β Comprehensive test suite
- π¦ Built with MCP SDK, Zod, LinkedOM
- π€ Model Context Protocol (MCP) server included
Full TypeScript SDK Documentation β MCP Server Installation Guide β
Status: Production ready Version: 0.3.0 Python: 3.12+
uv pip install lsbibleKey Stats:
- ποΈ 10 core modules
- β Comprehensive test suite with >80% coverage
- π¦ Built with Pydantic v2, httpx, BeautifulSoup
Full Python SDK Documentation β
We follow a community-driven approach for additional language SDKs. If you'd like to see LSBible in another language (Rust, Go, Java, C#, etc.):
- Check existing issues - Someone may have already requested it
- Open a feature request - Tell us which language and why
- Contribute! - Follow our SDK Specification to build one
All SDKs should follow these principles:
- Structured parameter design (no string parsing)
- Full type safety in the target language
- Complete Bible validation
- Rich formatting support
Open an Issue β | Read Contributing Guidelines β
- MCP Server Installation - Install for 20+ MCP clients (Cursor, VS Code, Claude Code, etc.)
- TypeScript SDK Guide - Complete TypeScript SDK usage guide
- Python SDK Guide - Complete Python SDK usage guide
- API Models Reference - Pydantic model documentation
- SDK Specification - Full technical specification
- Contributing Guidelines - How to contribute
- Development Workflow - Local development setup
- LSBible Website - Official LSB Bible reader
- Model Context Protocol - Learn about MCP
- Issue Tracker - Report bugs or request features
lsbible/
βββ README.md # This file - project overview
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT license
βββ turbo.json # Turborepo configuration
βββ package.json # Root package.json with workspaces
β
βββ .specs/ # Technical specifications
β βββ SPEC.md # SDK specification (all languages)
β βββ python-sdk-mcp-server.md # MCP server specification
β
βββ packages/
βββ typescript-sdk/ # β
TypeScript SDK (stable) + MCP Server
β βββ src/ # SDK source code
β β βββ client.ts # API client
β β βββ models.ts # Zod schemas
β β βββ parser.ts # HTML parser
β β βββ validators.ts # Reference validation
β β βββ books.ts # Bible structure data
β β βββ mcp/ # MCP server module
β β βββ server.ts # MCP server factory
β β βββ stdio.ts # STDIO entry point
β β βββ tools.ts # MCP tools
β β βββ resources.ts # MCP resources
β βββ tests/ # Test suite
β βββ examples/ # Usage examples
β βββ mcp/ # MCP server documentation
β β βββ README.md # MCP installation guide
β βββ README.md # TypeScript SDK docs
β βββ package.json # Package configuration
β
βββ python-sdk/ # β
Python SDK (stable)
βββ lsbible/ # SDK source code
β βββ client.py # API client
β βββ models.py # Pydantic data models
β βββ parser.py # HTML parser
β βββ validators.py # Reference validation
β βββ books.py # Bible structure data
β βββ cache.py # Response caching
β βββ exceptions.py # Custom exceptions
βββ tests/ # Test suite
βββ examples/ # Usage examples
βββ README.md # Python SDK docs
βββ pyproject.toml # Python project config
This monorepo uses Turborepo for build orchestration and Bun as the package manager.
# Clone repository
git clone https://github.com/kdcokenny/lsbible.git
cd lsbible
# Install monorepo dependencies
bun install
# Setup Python SDK for local development
cd packages/python-sdk
uv sync# Build all packages
bun run build
# Run all tests
bun run test
# Run linters
bun run lint
# Run type checking
bun run type-check
# Run specific package commands
bun run --filter python-sdk test
bun run --filter python-sdk lintcd packages/typescript-sdk
# Install dependencies
bun install
# Run tests
bun test
# Build the project
bun run build
# Type checking
bun run type-check
# Linting and formatting
bun run lint
bun run lint:fix
# Run MCP server locally
bun run dist/mcp/stdio.js
# Or use the built binary
npx lsbible-mcpcd packages/python-sdk
# Run tests with coverage
uv run pytest
# Type checking (ty - Rust-based type checker)
uv run ty check lsbible
# Linting and formatting
uv run ruff check lsbible
uv run ruff format lsbibleWe welcome contributions! Whether you want to:
- π Report bugs
- π‘ Suggest features
- π Improve documentation
- π§ Submit code changes
- π Add new language SDKs
Please read our Contributing Guidelines first.
- Bug reports: Include Python version, SDK version, and minimal reproduction
- Feature requests: Explain use case and expected behavior
- Code changes: Follow existing code style, add tests, update docs
- New SDKs: Follow the SDK Specification
All SDKs integrate with the LSBible API:
- Base URL:
https://read.lsbible.org - Endpoint:
/_next/data/{buildId}/index.json - Query Parameter:
q(verse reference or search text) - Build ID Management: Automatically handled by SDK
- Response Caching: Configurable TTL (default: 3600s)
MIT License - See LICENSE file for details.
This project is independently developed and is not affiliated with the creators of the Legacy Standard Bible or read.lsbible.org.
Install MCP Server β | TypeScript SDK β | Python SDK β
Made with β€οΈ for Bible software developers