trackmcp
Back to directory

MCP server for Christian scholarship: BSB/WEB scripture, Greek/Hebrew word data, cross-references, patristic texts, and semantic search.

2 stars PythonOthers Updated Sep 2, 2026
biblechristianitymcpmcp-servermodel-context-protocolpatristicstheology

Documentation

bible-mcp

An MCP server for Christian scholarship and research. Non-commercial, aiming to become a public resource. See `corpus-survey.md` for the full source/license landscape and `ROADMAP.md` for direction.

What's in it (v0.12)

DataSourceLicense
Berean Standard Bible (66 books)berean.biblePublic Domain
World English Bible, Ecumenical (83 books incl. Apocrypha)ebible.orgPublic Domain
Septuagint (Brenton translation, 1851) — OT + Apocrypha, incl. Susanna/Bel and the Dragon/Epistle of Jeremiah as separate books; Psalms remapped to standard English/KJV numbering (LXX's own numbering diverges throughout most of the Psalter — verified verse-by-verse against WEB); Jeremiah, Daniel-Greek, Exodus, Job, Esther-Greek, and Baruch retain Brenton's native LXX chapter/verse structure, which differs from BSB/WEB in these books (reordering and/or length, not just numbering)ebible.orgPublic Domain
Septuagint, Greek text (Swete edition, Cambridge 1887–1894) — Genesis through Malachi plus Apocrypha, Theodotion Daniel/Susanna/Bel; same Psalms remap and native-structure caveats as the English Brenton text above. Word-level (surface form only, no lemma/Strong's/morphology), powers `get_interlinear` alongside the Hebrew/Aramaic OT and Greek NTOpen Greek and Latin Project / First1KGreek, via github.com/nathans/lxx-sweteCC BY-SA 4.0
613,690 original-language words: Greek NT + Hebrew/Aramaic OT with lemmas, Strong's, morphology, glosses, semantic domainsMACULA (Clear-Bible/Biblica)CC BY 4.0
Brown-Driver-Briggs Hebrew and English Lexicon (1906, 9,290 entries) + Strong's Hebrew Dictionary (1890, revised, 8,674 entries) — full scholarly entries (etymology, sense divisions, verse citations) keyed by Strong's number, including BDB's own lettered homographs (e.g. H2617a "lovingkindness" vs H2617b "reproach" — genuinely different words, same spelling); surfaces in `word_study` alongside the existing short glossOpenScriptures HebrewLexiconCC BY 4.0 (markup; underlying BDB/Strong's text is Public Domain)
Abbott-Smith's Manual Greek Lexicon of the New Testament (1922, 517 entries) — same treatment for Greek NT wordsFirst1KGreek / Open Greek and Latin Project, via github.com/biblicalhumanities/Abbott-SmithPublic Domain
~345,000 ranked cross-referencesopenbible.infoCC BY
~4,800 people/places/events/groups + 53,000 verse linksTheographic Bible MetadataCC BY-SA 4.0
Six PD classics: Augustine's Confessions, Imitation of Christ, Pilgrim's Progress, Practice of the Presence of God, Julian's Revelations, Chesterton's OrthodoxyProject GutenbergPublic Domain
The Apostolic Fathers, ten works: 1 & 2 Clement, Epistle of Barnabas, Polycarp to the Philippians, Martyrdom of Polycarp, Epistles of Ignatius (shorter recension), Martyrdom of Ignatius, Epistle to Diognetus, Pastor of Hermas, Fragments of PapiasANF (Roberts-Donaldson-Crombie), Project Gutenberg #77576Public Domain
Irenaeus: Against Heresies, Books I–V + Fragments — 806 sections addressed as `IREN-AH..` so standard citations (AH 3.3.4) resolve directly; 1,598 tier-1 scripture citationsANF vol. I (Roberts-Rambaut), Wikisource transcriptionPublic Domain
Justin Martyr: First Apology, Second Apology, Dialogue with Trypho, Martyrdom of Justin — 423 sections, ~408 tier-1 citationsANF vol. I, Wikisource transcriptionPublic Domain
Tier-1 citation graph: scripture citations extracted from the translators' own footnotes across the patristic shelf (see DESIGN.md §4)
Versemap: 988 empirically derived MT/NA ↔ English verse alignments across 31 books (Joel 2–4, Malachi 3–4, Hosea, Isaiah 64, Kings/Chronicles/Nehemiah seams, 3 John, Acts 19, Rev 12…), gloss-validated; plus the Psalms superscription offsetsderived from corpus
Research outputs layer (`layer='output'`): Layer 0 corpus surveys + Layer 2 research briefs for potter-and-clay, living water, wilderness — searchable, embedded, with `draws_on` links back to their grounding refsgenerated in-project
~112,400 embeddings (verse/window/paragraph) for semantic + hybrid search across every layerbge-small-en-v1.5, generated locally

All in one SQLite file (`db/bible.db`, ~370MB) with FTS5 full-text search. Prose works are addressed as `WORK.chapter.paragraph`. See DESIGN.md for the architecture rationale.

Tools

  • `get_passage(reference, version="BSB")` — Bible text for a reference, e.g. `John 3:16`, `John 3:16-18`, `Genesis 1`. Versions: BSB, WEB (Apocrypha requires `version="WEB"`).
  • `search(query, version="BSB", book="", limit=20)` — Full-text search, stemmed and ranked (BM25). Supports quoted phrases and AND/OR/NOT, e.g. `faith AND works NOT law`. `version` also takes any prose work id. Note: stemming conflates related surface forms (e.g. "desert" also matches "deserted") — quote exact phrases or add AND-terms to disambiguate.
  • `semantic_search(query, top_k=12, kind="", hybrid=True)` — Meaning-based search across the whole corpus (scripture + prose), hybrid-fused with keyword search (RRF) by default. Finds passages on a theme even with no shared words, e.g. "divine self-emptying". `kind` optional: verse | window | paragraph.
  • `find_similar(reference, top_k=10)` — Nearest passages by embedding to a given verse or prose paragraph, across scripture, Apocrypha, and the classics. Powers parallel-finding across corpus layers.
  • `word_study(query, language="", limit=15)` — Original-language word study by Strong's number (zero-padding optional), lemma (pointed or unpointed), Hebrew/Aramaic transliteration (e.g. `miqweh`, macrons optional), or English gloss. Returns occurrence counts, gloss range, book distribution, a full scholarly lexicon entry when available (BDB/Strong's for Hebrew, Abbott-Smith for Greek — richer than the gloss, truncated to ~700 chars), and sample verses. Lettered homograph variants (e.g. H4723 vs H4723a — same written form, different word) are surfaced together. `language` optional: grc | hbo | arc.
  • `get_interlinear(reference)` — Word-by-word original language for a verse or short range: surface form, lemma, Strong's, gloss, morphology (Hebrew/Aramaic OT, Greek NT). Versemap-corrected across all books, not just Psalms. For OT verses also shows Septuagint Greek surface text where available (no lemma/Strong's/morphology in that source).
  • `get_cross_references(reference, limit=20)` — Cross-references for a verse (OpenBible.info, ranked by community votes), with the target text included.
  • `get_citations(reference, limit=20)` — Where a verse is cited by name in the patristic corpus, extracted from the translators' own footnotes (tier 1). Complements `get_cross_references` (scripture→scripture); this is patristic text→scripture. Coverage is sparse by design — an empty result doesn't mean uncited; full-text `search` within the patristic works is the thorough probe.
  • `get_entity(name, entity_type="")` — Look up a biblical person, place, event, or people group by name (Theographic knowledge graph); returns details and where they appear. `entity_type` optional: person | place | event | people_group.
  • `entities_in_passage(reference)` — People, places, and events linked to a verse or chapter, e.g. `Genesis 14`.
  • `read_work(work, chapter=1, start=1, end=5)` — Read a prose work by paragraph range (CONFESSIONS, IMITATION, PILGRIM, PRESENCE, JULIAN, ORTHODOXY, 1CLEMENT, BARNABAS, and others — see `corpus_info()` for the full list). Use `search(version=)` to find passages first.
  • `compare_versions(reference)` — A verse or short range in BSB and WEB, side by side.
  • `corpus_info()` — What's in the corpus: documents, layers, licenses, and counts.

Prompts

The server also exposes the synthesis pipeline as MCP prompts, generated from `.claude/skills/` (the source of truth): `corpus_survey(theme)` — Layer 0 raw reading discipline; `corpus_composer(theme)` — Layer 2 research-brief composition. Any MCP client that installs bible-mcp gets the discipline bundled with the data.

Setup

bash
pip install -r requirements.txt   # core: just `mcp`
pip install fastembed numpy       # optional semantic tier (semantic_search, find_similar)
python3 scripts/build_db.py       # rebuild db from data/sources (optional; db ships built)
python3 scripts/embed.py          # regenerate embeddings (optional; ships built; resumable)

The first semantic query downloads the embedding model (~65MB, one time). Without

fastembed/numpy installed, all non-semantic tools work normally. See DESIGN.md for

architecture decisions (model choice, chunking, hybrid retrieval).

Claude Desktop / Cowork — add to MCP config:

json
{
  "mcpServers": {
    "bible-mcp": {
      "command": "python3",
      "args": ["/path/to/bible-mcp/server.py"]
    }
  }
}

Layout

code
data/sources/   raw acquired sources (immutable; re-derive, never edit)
data/versemap.tsv        derived MT/NA  English verse alignments
data/additions-*.json    prepared incremental ingestions (applied via scripts/ingest_additions.py)
scripts/        schema.sql, lib_refs.py, build_db.py, build_versemap.py, align_splits.py, ingest_additions.py
db/bible.db     the built corpus (SQLite + FTS5)
outputs/        synthesis-pipeline artifacts (Layer 0 surveys, Layer 2 briefs, reports)
.claude/skills/ corpus-survey + corpus-composer (pipeline skills; source for MCP prompts)
server.py       MCP server (FastMCP, read-only on the db)

Public edition

This is a non-commercial public resource. Licensing is layered — sources keep

their own licenses (all PD / CC BY / CC BY-SA); the code is PolyForm Noncommercial

1.0.0; the compilation and derived data (versemap, citation graph, embeddings,

outputs layer) are CC BY-NC 4.0. Full details: `LICENSE.md`, attributions in

`NOTICE.md`.

Three ways to use it:

1. Remote (no install) — add the hosted endpoint as a custom connector in any

MCP client (Claude: Settings → Connectors → Add custom connector):

`https://bible-mcp-server.fly.dev/mcp`

2. Local (stdio) — clone, download `db/bible.db` from the latest GitHub

Release (or rebuild from `data/sources/`), add the config above.

3. Self-host — `Dockerfile` ships the Streamable-HTTP server; see `DEPLOY.md`.

Design notes

  • Canonical addressing: OSIS-style refs (`Gen.1.1`) everywhere; every table keys on them.
  • Provenance: every document row carries source, license, and license tier (A=free, B=share-alike, C=non-commercial, D=closed — we are non-commercial, so C is usable).
  • The 16 verses "missing" from BSB (Matt 17:21, John 5:4, Acts 8:37…) are the standard critical-text omissions, not bugs.
  • Versification: `versemap` (all books) + `psalm_offsets` (superscriptions) align MACULA's MT/NA numbering to English. Both derived empirically from the corpus's own two witnesses and validated by gloss-text overlap; the table schema is TVTMS-compatible so the STEPBible data can extend it to other traditions (LXX, Vulgate) later.
  • Ignatius ships in the shorter (Middle) recension only; the ANF longer recension is a later expansion and would duplicate every chapter in search.
  • The research outputs layer is generated, clearly tagged (`layer='output'`), and can never be confused with primary sources; `draws_on` links tie each artifact to its grounding refs.
  • Next per ROADMAP.md: Irenaeus (source acquisition), tier-2 citation shingling (three confirmed footnote-index misses as fixtures), TVTMS proper.

Frequently asked questions

What is bible-mcp?

bible-mcp is MCP server for Christian scholarship: BSB/WEB scripture, Greek/Hebrew word data, cross-references, patristic texts, and semantic search.

How do I install bible-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is bible-mcp open source?

Yes — it is hosted on GitHub at https://github.com/nirajagarwal/bible-mcp and has 2 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP