io. github. jrainsberger/ orthotomeo
by jrainsberger · remote · no sign-in to list tools · v0.1.0 · published by GitHub user jrainsberger
Read-only scripture-study engine: complete-or-fail concordance over Greek NT, Hebrew OT, LXX.
12 tools: 3 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http orthotomeo https://orthotomeo.app/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Changes things 3Claude Code: ask
citeRenders Citations (from any of the above tools) as quoted, fully-attributed Markdown bullets - the only sanctioned bridge from a query result to pastable study-document text.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Renders Citations (from any of the above tools) as quoted, fully-attributed Markdown bullets - the only sanctioned bridge from a query result to pastable study-document text.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
concord_lemmaComplete-or-fail concordance: every words row in corpus whose lemma, dStrong, or (with by="surface") exact inflected surface form matches query.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Complete-or-fail concordance: every words row in corpus whose lemma, dStrong, or (with by="surface") exact inflected surface form matches query. Route lemma/Strong's-number/surface-word lookups here, never by writing SQL or guessing occurrences from memory. This deployment caps one concordance result at 2000 occurrences and refuses anything broader, reporting the exact match count in the error. Call count first when a query might be broad - count is never capped.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
concord_phraseComplete-or-fail multi-word concordance: every occurrence, within one verse, of tokens (lemma strings) appearing in order within window intervening words of each other (window=0 = …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Complete-or-fail multi-word concordance: every occurrence, within one verse, of tokens (lemma strings) appearing in order within window intervening words of each other (window=0 = strictly adjacent). This is the tool for a phrase query like εἰς ἄφεσιν. This deployment caps one concordance result at 2000 occurrences and refuses anything broader, reporting the exact match count in the error. Call count first when a query might be broad - count is never capped.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
Only reads 9Claude Code: allow
attestationReturns the WHNT-style Type/Editions manuscript-tradition columns as neutral text-critical data (e.g.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns the WHNT-style Type/Editions manuscript-tradition columns as neutral text-critical data (e.g. Mark 16:9-20 = Type KO) - which editions carry a word, with no argument for or against a variant.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
countOccurrence tally (total + per-book breakdown) for the identical query concord_lemma would match.No findings
Why it is in this group
- The name "count" says "count": a word for reading.
Description, as the server wrote it Occurrence tally (total + per-book breakdown) for the identical query concord_lemma would match. count.Total always equals len(concord_lemma(...)) - use this to sanity-check a concordance result, or when only the number matters.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
get_passageReturns get_verse's result for every canonical verse in a contiguous, single-book range, in order - verse boundaries preserved, never concatenated into one blob.No findings
Why it is in this group
- The name "get_passage" says "get": a word for reading.
Description, as the server wrote it Returns get_verse's result for every canonical verse in a contiguous, single-book range, in order - verse boundaries preserved, never concatenated into one blob.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
get_verseReturns verbatim verse text with provenance for one canonical reference, one Citation per requested edition (KJV, ASV, WEB, BSB, Brenton).No findings
Why it is in this group
- The name "get_verse" says "get": a word for reading.
Description, as the server wrote it Returns verbatim verse text with provenance for one canonical reference, one Citation per requested edition (KJV, ASV, WEB, BSB, Brenton).
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
interlinearReturns a row-aligned reading view for every word in a verse (or one word, if word is given): original text, transliteration, gloss (via lexicon_lookup), grammar, and manuscript at…No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns a row-aligned reading view for every word in a verse (or one word, if word is given): original text, transliteration, gloss (via lexicon_lookup), grammar, and manuscript attestation stacked per word - the composed display shape for a study reading view, built on parse and lexicon_lookup rather than any new query. This is the most complete per-word view; use parse or attestation when you want only one of those facets.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
lemmatizeReturns the ordered lemma list for a verse (words with no lemma are omitted, not fabricated).No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns the ordered lemma list for a verse (words with no lemma are omitted, not fabricated).
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
lexicon_lookupResolves a disambiguated Strong's number (dStrong) to its lexicon entry: lemma, transliteration, gloss, and - for a Greek entry only - a fuller definition (Abbott-Smith 1922, Publi…No findings
Why it is in this group
- The name "lexicon_lookup" says "lookup": a word for reading.
Description, as the server wrote it Resolves a disambiguated Strong's number (dStrong) to its lexicon entry: lemma, transliteration, gloss, and - for a Greek entry only - a fuller definition (Abbott-Smith 1922, Public Domain). A Hebrew entry's definition field is always omitted: it is abridged BDB via Online Bible, which requires permission not yet obtained, so only its gloss is ever returned. Not to be confused with the get_verse/get_passage tools, which resolve a Ref to translated verse text, not a dStrong to a dictionary entry.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
parseReturns dStrong + expanded morphology (via the T6 morph_codes table) for every word in a verse, or one word if word is given.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns dStrong + expanded morphology (via the T6 morph_codes table) for every word in a verse, or one word if word is given. LXX corpora (Swete, OSS-LXX-lemma) are always Flagged - neither carries morphology.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
resolve_refReports, for every per-verse content edition (KJV, ASV, WEB, BSB, Brenton, TAGNT, TAHOT, Swete, OSS-LXX-lemma), whether a canonical reference has a counterpart there and where.No findings
Why it is in this group
- The name "resolve_ref" says "resolve": a word for reading.
Description, as the server wrote it Reports, for every per-verse content edition (KJV, ASV, WEB, BSB, Brenton, TAGNT, TAHOT, Swete, OSS-LXX-lemma), whether a canonical reference has a counterpart there and where. Cross-edition divergence (a T4b merge/renumber/divide, or a reference simply missing from an edition) is reported as Caveats - never a silent shift.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http orthotomeo https://orthotomeo.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__orthotomeo__attestation",
"mcp__orthotomeo__count",
"mcp__orthotomeo__get_passage",
"mcp__orthotomeo__get_verse",
"mcp__orthotomeo__interlinear",
"mcp__orthotomeo__lemmatize",
"mcp__orthotomeo__lexicon_lookup",
"mcp__orthotomeo__parse",
"mcp__orthotomeo__resolve_ref"
],
"ask": [
"mcp__orthotomeo__cite",
"mcp__orthotomeo__concord_lemma",
"mcp__orthotomeo__concord_phrase"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as orthotomeo. Review it before you use it.
