bible-mcp

MCP serverSearch

This integration gives your AI access to a Bible corpus, so it can pull up scripture, follow cross-references, and search passages by meaning. It also includes Greek and Hebrew interlinear data for looking at the original-language text behind a verse. Once added, your AI can answer scripture questions with actual verses and references.

Use bible-mcp in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add bible-mcp and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use bible-mcp to get passage

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI to find or quote a passage, or to search for verses on a topic. Try following a cross-reference chain to see how passages connect.

bible-mcpStart free

What your AI can do with it

  • Look up specific Bible passages on request
  • Search scripture by meaning, not just exact wording
  • Follow cross-references to related verses
  • Pull up Greek and Hebrew interlinear data for a verse
  • Trace original-language words behind the English text

Install bible-mcp

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user bible-mcp 'https://bible-mcp-server.fly.dev/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

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

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=bible-mcp&config=eyJ1cmwiOiJodHRwczovL2JpYmxlLW1jcC1zZXJ2ZXIuZmx5LmRldi9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

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

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add bible-mcp --url 'https://bible-mcp-server.fly.dev/mcp'

    Run it once, then sign in with codex mcp login bible-mcp if the server asks for an account.

From the project's README

As published by nirajagarwal/bible-mcp in README.md.

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.14)

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<book>.<chapter>.<section> 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—
Easton's Bible Dictionary (1897 3rd edition, 2,491 entries) — a full corpus document like the PD classics above: searchable (search(version="EASTON")), readable (read_work("EASTON", ...)), embedded for semantic searchTheographic's structured JSON re-derivationPublic Domain
OT+NT concept graph: 5,673 concept nodes (theological themes + lexical keywords, seeded from Easton's Bible Dictionary) and 171,000+ typed/associated edges (broader/narrower/causes/part_of/symbol_of/fulfills/associated) linking concepts to each other, to entities, and to verse anchors across both Testaments; ~440 typed edges hand-reviewed against cited evidence (Phase 5/6), the rest mechanical associated overlap counts. Live via get_concept/concepts_in_passage/get_concept_relations, see DESIGN.md §5derived from corpus + Easton's Bible Dictionary—

All in one SQLite file (db/bible.db, ~400MB) 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.
  • get_concept(name, concept_type="") — Look up a theological concept or lexical keyword in the OT+NT concept graph (seeded from Easton's Bible Dictionary); returns its definition, verse anchors, instantiating entities, and a relation-count summary. concept_type optional: theme | keyword. Also accepts a Strong's number.
  • concepts_in_passage(reference) — Theological concepts and keywords linked to a verse or chapter, e.g. Genesis 15. Complements entities_in_passage.
  • get_concept_relations(name, verb="", limit=20) — Typed relations for a concept: broader/narrower/causes/part_of/symbol_of/fulfills/contrasts, hand-reviewed against cited evidence. Excludes the much larger mechanical associated tier by default — pass verb="associated" to include it.
  • read_work(work, chapter=1, start=1, end=5) — Read a prose work by paragraph range (CONFESSIONS, IMITATION, PILGRIM, PRESENCE, JULIAN, ORTHODOXY, 1CLEMENT, BARNABAS, EASTON, and others — see corpus_info() for the full list). Use search(version=<WORK>) 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

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:

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

Layout

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.

Tools it offers (16)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • get_passage
  • search
  • get_cross_references
  • get_entity
  • entities_in_passage
  • get_concept
  • concepts_in_passage
  • get_concept_relations
  • compare_versions
  • word_study
  • get_interlinear
  • read_work
  • semantic_search
  • find_similar
  • get_citations
  • corpus_info

Signals

GitHub stars
3
Last commit
Sep 2026
Advanced
Delivery
bible-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-nirajagarwal-bible-mcp
Source
github.com/nirajagarwal/bible-mcp
Hosted endpoint
https://bible-mcp-server.fly.dev/mcp