BibleMCP
# Bible MCP Server
An MCP (Model Context Protocol) server that lets AI assistants fetch Bible verses, passages, and chapters from [MyBible](https://mybible.zone)-format SQLite databases.
## Features
- **list_bibles** — List all installed Bible translations
- **list_books** — List all books in a translation
- **get_passage** — Get a single verse or verse range (e.g., John 3:16, Romans 8:1-3)
- **get_chapter** — Get an entire chapter with section titles
## Setup
### Install dependencies
```bash
npm install
```
### Add Bible translations
Place MyBible `.SQLite3` files in the `Bibles/` directory, one folder per translation:
```
Bibles/
├── NIV'11/
│ ├── NIV'11.SQLite3
│ └── NIV'11.commentaries.SQLite3
├── KJV/
│ └── KJV.SQLite3
└── ...
```
Each subfolder must contain at least one `*.SQLite3` file (the main Bible database). Commentary databases (`*.commentaries.SQLite3`) are optional. The folder name becomes the translation ID used in tool calls.
### Configure with your AI client
Add to your MCP client config:
```json
{
"mcpServers": {
"bible": {
"command": "node",
"args": ["path/to/BibleMCP/dist/index.js"]
}
}
}
```
For development:
```json
{
"mcpServers": {
"bible": {
"command": "npx",
"args": ["tsx", "path/to/BibleMCP/src/index.ts"]
}
}
}
```
### Configuration
| Environment Variable | Default | Description |
|---------------------|---------|-------------|
| `BIBLES_DIR` | `./Bibles` | Path to the directory containing Bible translation folders |
## Development
```bash
npm run build # Compile TypeScript to dist/
npm run dev # Run server in dev mode (tsx)
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run typecheck # Type-check without compiling
```
## MyBible Format
This server reads the standard MyBible SQLite schema:
- **info** table — metadata (description, language)
- **books** table — book numbers, short/long names (66 books, numbered 10–730)
- **verses** table — `book_number, chapter, verse, text` (text may contain HTML markup)
- **stories** table — section titles / pericopes
- **introductions** table — book introductions
Verse text is returned as clean plain text with all HTML markup stripped.
## License
This server code is licensed under the MIT License. See [LICENSE](LICENSE).
Bible translation modules in the `Bibles/` directory are **not** covered by this license — they are subject to their respective copyrights and are not distributed with this repository.
TDQS
Scored across 4 tools
Each tool targets a distinct purpose: browsing translations, listing books, retrieving a specific passage, or fetching a full chapter. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern (list_bibles, list_books, get_passage, get_chapter), making the set predictable and easy to navigate.
With 4 tools, the server feels well-scoped for its purpose. While minimal, it covers browsing and reading operations without unnecessary bloat. One or two additional tools (e.g., search) could be expected but not required.
The server covers basic lookup workflows (list translations, list books, retrieve passages/chapters), but lacks search, cross-reference, or note capabilities. Users can successfully read verses but may encounter dead ends for discovery beyond hierarchical listing.