io.github.nirajagarwal/bible-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Bible corpus MCP server: scripture, Greek/Hebrew interlinear data, cross-refs, semantic search.
| Author | io.github.nirajagarwal |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 112 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"bible-mcp": {
"url": "https://bible-mcp-server.fly.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
get_passageGet Bible text for a reference like 'John 3:16', 'John 3:16-18', 'Genesis 1', or 'Tobit 4:5' (Apocrypha requires version='WEB'). Versions: BSB, WEB.
Parameters:
reference(required) — stringversion— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
searchFull-text search (stemmed, ranked). Supports phrases in quotes, AND/OR/NOT, e.g. 'living water', 'faith AND works NOT law'. Optional book filter e.g. 'Psalms'. NOTE: porter stemming conflates related surface forms — 'desert' also matches 'deserted' and 'deserts' (as merits) in prose layers; quote exact phrases or add AND-terms to disambiguate.
Parameters:
query(required) — stringbook— stringlimit— integerversion— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cross_referencesCross-references for a verse (OpenBible.info, ranked by community votes), with the target text included. E.g. reference='Romans 5:12'.
Parameters:
reference(required) — stringlimit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_entityLook 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.
Parameters:
name(required) — stringentity_type— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
entities_in_passageList the people, places, and events linked to a verse or chapter, e.g. 'Genesis 14' or 'John 3:16'.
Parameters:
reference(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_conceptLook up a theological concept or lexical keyword in the OT+NT concept graph (5,673 nodes seeded from Easton's Bible Dictionary — see DESIGN.md #5). Returns its definition (with a pointer to the full Easton entry), verse anchors, and entities that instantiate it (e.g. Abraham for Covenant). concept_type optional: theme | keyword. A Strong's number ('G225') also resolves directly to its keyword node. For typed relations to OTHER concepts (broader/narrower/ causes/part_of/symbol_of/fulfills/associated), use get_concept_relations(name).
Parameters:
name(required) — stringconcept_type— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
concepts_in_passageList theological concepts and lexical keywords linked to a verse or chapter via the OT+NT concept graph (seeded from Easton's Bible Dictionary), e.g. 'Genesis 14' or 'John 3:16'. Complements entities_in_passage (people/places/ events) with abstract themes and keyword nodes.
Parameters:
reference(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_concept_relationsTyped relations for a concept in the OT+NT concept graph: broader/narrower (taxonomy), causes, part_of, symbol_of, fulfills, contrasts — ~430 edges, hand-reviewed against cited evidence (Phase 5/6, weight>=10 only, see DESIGN.md #5). Excludes the much larger 'associated' fallback tier by default (~139,000 mechanical shared-evidence edges, unreviewed) — pass verb='associated' to include it. verb optional: restrict to one verb (broader | narrower | causes | part_of | symbol_of | fulfills | contrasts | associated).
Parameters:
name(required) — stringverb— stringlimit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
compare_versionsShow a verse or short range in both BSB and WEB side by side.
Parameters:
reference(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
word_studyOriginal-language word study across the whole Bible. Query by Strong's number ('G26', 'H2617', zero-padding optional — 'H953' works), lemma (pointed or unpointed: 'חֶסֶד' or 'חסד', accented or bare Greek), Hebrew/Aramaic transliteration ('miqweh' finds מִקְוֶה, macrons optional), or English gloss ('lovingkindness'). Returns occurrence counts, gloss range, book distribution, a full scholarly lexicon entry for the top-matching word (BDB and/or Strong's for Hebrew/Aramaic, Abbott-Smith for Greek, when available — richer than the gloss, truncated to ~700 chars), and sample verses. NOTE: homographs are split by letter-suffixed Strong's variants (e.g. H4723 'hope' vs H4723a 'gathering of waters' — same written form) — when a gloss range looks too narrow for a word you suspect is richer, probe the lettered variants; the output lists every variant lemma it finds under your query. Gloss-keyed queries match substrings and may conflate lemmas — prefer Strong's or lemma queries for exact counts. language optional: grc | hbo | arc.
Parameters:
query(required) — stringlimit— integerlanguage— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_interlinearWord-by-word original language for a verse or short range: surface form, lemma, Strong's, gloss, morphology (Hebrew/Aramaic OT, Greek NT). For OT verses also shows Septuagint Greek surface text where available (Swete edition — Genesis-Malachi plus Apocrypha, Theodotion Daniel/Susanna/Bel; no lemma/Strong's/ morphology in that source, surface form only). E.g. 'John 1:1' or 'Genesis 1:1-3'.
Parameters:
reference(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
read_workRead a prose work from the corpus by paragraph range. Works: CONFESSIONS (Augustine), IMITATION (à Kempis), PILGRIM (Bunyan), PRESENCE (Brother Lawrence), JULIAN (Julian of Norwich), ORTHODOXY (Chesterton), 1CLEMENT (Clement of Rome), BARNABAS (Epistle of Barnabas). Chapters = books/chapters of the work; use search(version=<WORK>) to find passages first, or corpus_info() for the full list.
Parameters:
work(required) — stringend— integerstart— integerchapter— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
semantic_searchMeaning-based search across the whole corpus — scripture AND prose works — using embeddings, optionally fused with keyword search (hybrid, recommended). Finds passages about a theme even with no shared words, e.g. 'divine self-emptying', 'the soul's dark night'. kind optional: verse | window | paragraph.
Parameters:
query(required) — stringkind— stringtop_k— integerhybrid— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_similarFind passages semantically similar to a given verse or prose paragraph ref — across scripture, Apocrypha, and the classics. E.g. 'Philippians 2:7' or 'JULIAN.27.2'. Powers parallel-finding across corpus layers.
Parameters:
reference(required) — stringtop_k— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_citationsWhere a Bible verse is cited by name in the patristic corpus, extracted from the translators' own footnotes (tier 1). E.g. reference='Ephesians 5:21'. Complements get_cross_references, which links scripture to scripture; this links patristic text to scripture. COVERAGE NOTE: footnote extraction has known recall gaps — an empty result is normal and does NOT mean the verse is uncited; full-text `search` within the patristic works is the thorough probe (verbatim quotations are regularly found that the footnote index missed).
Parameters:
reference(required) — stringlimit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
corpus_infoWhat's in the corpus: documents, layers, licenses, and counts.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.