MCP server for Christian scholarship and research — scripture (BSB + WEB with Apocrypha), Greek/Hebrew word data, cross-references, patristic texts, and semantic search
Strong domain-specific tool set with clear, detailed descriptions and well-structured schemas. All 13 tools have descriptions (avg ~150 chars, within baseline 34-392 range). Parameters consistently typed and described. Output schemas documented in descriptions. Main gaps: no tool annotations (readOnlyHint/destructiveHint/idempotentHint), no error recovery guidance in descriptions, and some parameter constraints could be more explicit (e.g., version enum, entity_type enum). Naming is verb-forward and clear (get_*, search_*, read_*). Composition is sound, each tool has one responsibility. No security issues detected (read-only operations, no secrets in params).
Show a verse or short range in both BSB and WEB side by side.
What's in the corpus: documents, layers, licenses, and counts.
List the people, places, and events linked to a verse or chapter, e.g. 'Genesis 14' or 'John 3:16'.
Nearest passages by embedding to a given verse or prose paragraph, across every corpus layer.
Where a verse is cited by name in the patristic corpus (translators' footnotes, tier 1).
Cross-references for a verse (OpenBible.info, ranked by community votes), with the target text included. E.g. reference='Romans 5:12'.
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.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. All tools are read-only but this is not formally signaled to clients.
Parameter constraints not formalized as enums. 'version' accepts 'BSB' or 'WEB' but no enum constraint; 'entity_type' accepts 'person|place|event|people_group' but no enum; 'language' accepts 'grc|hbo|arc' but no enum. LLMs may hallucinate invalid values.
No error recovery guidance in tool descriptions. Descriptions state what tools do but not what to do if they fail (e.g., 'If reference is invalid, try search() first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Word-by-word original language for a verse or short range.
Get 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.
Read a prose work by paragraph range (Confessions, Imitation of Christ, Apostolic Fathers...).
Full-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.
Meaning-based search across scripture and prose, hybrid-fused with keyword search by default.
Original-language word study by Strong's number, lemma, or English gloss.
Output schemas documented in descriptions but not formally in JSON Schema. Clients cannot programmatically parse expected response structure.
corpus_info tool has empty input schema (no parameters). Description is generic ('What's in the corpus'). Could be more specific about what fields are returned.