Koskamo

bible-mcp

A community-driven MCP server providing access to BSB and WEB scripture texts, Greek and Hebrew interlinear word data, cross-references, patristic texts, and semantic search capabilities for Christian scholarship and theological research.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

bible-mcp logo, by nirajagarwalCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by nirajagarwal
MCP endpoint (Streamable HTTP)
https://bible-mcp-server.fly.dev/mcp
Vendor documentation

What its tools do

16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

16 of 16 have a description · 0 of 16 declare behavior hints · 0 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search scripture using semantic queries
  • Retrieve Greek and Hebrew word data
  • Access cross-references and patristic texts

Source and maintenance

Community listingRegistry 0.15.0
Maintenance checked

Protocol and capabilities

Server
bible-mcp 1.30.0
MCP protocol negotiated in check
2025-11-25
Tools
16 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Tools

16 advertised

get_passage
Advertised by the server during the last successful anonymous check.

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.

get_passage input schema
{
  "type": "object",
  "title": "get_passageArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "version": {
      "type": "string",
      "title": "Version",
      "default": "BSB"
    },
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
get_passage output schema
{
  "type": "object",
  "title": "get_passageOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
search
Advertised by the server during the last successful anonymous check.

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.

search input schema
{
  "type": "object",
  "title": "searchArguments",
  "required": [
    "query"
  ],
  "properties": {
    "book": {
      "type": "string",
      "title": "Book",
      "default": ""
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20
    },
    "query": {
      "type": "string",
      "title": "Query"
    },
    "version": {
      "type": "string",
      "title": "Version",
      "default": "BSB"
    }
  }
}
search output schema
{
  "type": "object",
  "title": "searchOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_cross_references
Advertised by the server during the last successful anonymous check.

Cross-references for a verse (OpenBible.info, ranked by community votes), with the target text included. E.g. reference='Romans 5:12'.

get_cross_references input schema
{
  "type": "object",
  "title": "get_cross_referencesArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20
    },
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
get_cross_references output schema
{
  "type": "object",
  "title": "get_cross_referencesOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_entity
Advertised by the server during the last successful anonymous check.

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.

get_entity input schema
{
  "type": "object",
  "title": "get_entityArguments",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "entity_type": {
      "type": "string",
      "title": "Entity Type",
      "default": ""
    }
  }
}
get_entity output schema
{
  "type": "object",
  "title": "get_entityOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
entities_in_passage
Advertised by the server during the last successful anonymous check.

List the people, places, and events linked to a verse or chapter, e.g. 'Genesis 14' or 'John 3:16'.

entities_in_passage input schema
{
  "type": "object",
  "title": "entities_in_passageArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
entities_in_passage output schema
{
  "type": "object",
  "title": "entities_in_passageOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_concept
Advertised by the server during the last successful anonymous check.

Look up a theological concept or lexical keyword in the OT+NT concept graph (~5,700 nodes seeded from Easton's Bible Dictionary — see DESIGN.md #5). Returns its definition (with a pointer to the full Easton entry), verse anchors, same-as equivalents, and entities that instantiate it (e.g. Abraham for Covenant). Easton cross-reference stubs are followed (Righteousness -> Justification). 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).

get_concept input schema
{
  "type": "object",
  "title": "get_conceptArguments",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "concept_type": {
      "type": "string",
      "title": "Concept Type",
      "default": ""
    }
  }
}
get_concept output schema
{
  "type": "object",
  "title": "get_conceptOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
concepts_in_passage
Advertised by the server during the last successful anonymous check.

List 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.

concepts_in_passage input schema
{
  "type": "object",
  "title": "concepts_in_passageArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
concepts_in_passage output schema
{
  "type": "object",
  "title": "concepts_in_passageOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_concept_relations
Advertised by the server during the last successful anonymous check.

Typed relations for a concept in the OT+NT concept graph: broader/narrower (taxonomy), causes, part_of, symbol_of, fulfills, same_as (alternate name or translation equivalent, e.g. Christ/Messiah), contrasts — each hand-reviewed against cited evidence and returned with that reason ('why:'), see DESIGN.md #5. Excludes the much larger 'associated' tier by default (~143,000 mechanical shared-evidence edges, mostly unreviewed) — pass verb='associated' for it; each associated edge shows the shared verse or cross-reference that produced it. verb optional: restrict to one verb (broader | narrower | causes | part_of | symbol_of | fulfills | same_as | contrasts | associated).

get_concept_relations input schema
{
  "type": "object",
  "title": "get_concept_relationsArguments",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "verb": {
      "type": "string",
      "title": "Verb",
      "default": ""
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20
    }
  }
}
get_concept_relations output schema
{
  "type": "object",
  "title": "get_concept_relationsOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
compare_versions
Advertised by the server during the last successful anonymous check.

Show a verse or short range in both BSB and WEB side by side.

compare_versions input schema
{
  "type": "object",
  "title": "compare_versionsArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
compare_versions output schema
{
  "type": "object",
  "title": "compare_versionsOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
word_study
Advertised by the server during the last successful anonymous check.

Original-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.

word_study input schema
{
  "type": "object",
  "title": "word_studyArguments",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 15
    },
    "query": {
      "type": "string",
      "title": "Query"
    },
    "language": {
      "type": "string",
      "title": "Language",
      "default": ""
    }
  }
}
word_study output schema
{
  "type": "object",
  "title": "word_studyOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_interlinear
Advertised by the server during the last successful anonymous check.

Word-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'.

get_interlinear input schema
{
  "type": "object",
  "title": "get_interlinearArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
get_interlinear output schema
{
  "type": "object",
  "title": "get_interlinearOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
read_work
Advertised by the server during the last successful anonymous check.

Read 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.

read_work input schema
{
  "type": "object",
  "title": "read_workArguments",
  "required": [
    "work"
  ],
  "properties": {
    "end": {
      "type": "integer",
      "title": "End",
      "default": 5
    },
    "work": {
      "type": "string",
      "title": "Work"
    },
    "start": {
      "type": "integer",
      "title": "Start",
      "default": 1
    },
    "chapter": {
      "type": "integer",
      "title": "Chapter",
      "default": 1
    }
  }
}
read_work output schema
{
  "type": "object",
  "title": "read_workOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
semantic_search
Advertised by the server during the last successful anonymous check.

Meaning-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.

semantic_search input schema
{
  "type": "object",
  "title": "semantic_searchArguments",
  "required": [
    "query"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "title": "Kind",
      "default": ""
    },
    "query": {
      "type": "string",
      "title": "Query"
    },
    "top_k": {
      "type": "integer",
      "title": "Top K",
      "default": 12
    },
    "hybrid": {
      "type": "boolean",
      "title": "Hybrid",
      "default": true
    }
  }
}
semantic_search output schema
{
  "type": "object",
  "title": "semantic_searchOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
find_similar
Advertised by the server during the last successful anonymous check.

Find 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.

find_similar input schema
{
  "type": "object",
  "title": "find_similarArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "top_k": {
      "type": "integer",
      "title": "Top K",
      "default": 10
    },
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
find_similar output schema
{
  "type": "object",
  "title": "find_similarOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
get_citations
Advertised by the server during the last successful anonymous check.

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

get_citations input schema
{
  "type": "object",
  "title": "get_citationsArguments",
  "required": [
    "reference"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20
    },
    "reference": {
      "type": "string",
      "title": "Reference"
    }
  }
}
get_citations output schema
{
  "type": "object",
  "title": "get_citationsOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}
corpus_info
Advertised by the server during the last successful anonymous check.

What's in the corpus: documents, layers, licenses, and counts.

corpus_info input schema
{
  "type": "object",
  "title": "corpus_infoArguments",
  "properties": {}
}
corpus_info output schema
{
  "type": "object",
  "title": "corpus_infoOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}

Prompts

2 advertised

corpus_survey

Advertised by the server during the last successful anonymous check.

Layer 0 of the bible-mcp synthesis pipeline: a raw, skill-free reading of a theme through the corpus — distributions as findings, registers mapped, intertexts traced, epistemic status tagged. Run this before any composition.

theme
No description (required)
corpus_composer

Advertised by the server during the last successful anonymous check.

Layer 2 of the bible-mcp synthesis pipeline: compose a research brief from an existing Layer 0 survey artifact — the survey is the spine; cross-disciplinary material welds around it; every corpus-checkable claim is listed for verification.

theme
No description (required)

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
704 ms
95th percentile latency
704 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 704 ms · metadata changed · 16 tool(s), 0 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http bible-mcp-fly https://bible-mcp-server.fly.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add bible-mcp-fly --url https://bible-mcp-server.fly.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable bible-mcp-fly in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "bible-mcp-fly": {
      "url": "https://bible-mcp-server.fly.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "bible-mcp-fly": {
      "type": "streamableHttp",
      "url": "https://bible-mcp-server.fly.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start bible-mcp-fly and inspect its tools.
VS Code configuration
{
  "servers": {
    "bible-mcp-fly": {
      "type": "http",
      "url": "https://bible-mcp-server.fly.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http bible-mcp-fly https://bible-mcp-server.fly.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://bible-mcp-server.fly.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "bible-mcp-fly": {
      "serverUrl": "https://bible-mcp-server.fly.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like bible-mcp from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.