Bible MCP
🌐 English · Português (BR) · Español
Free, no-key Model Context Protocol server for the public Bible API. Read scripture across 35+ Bible versions in 9 language families from any MCP client — Claude, Cursor, and anything else that speaks MCP. Served from Cloudflare's edge. Powers mcp.midvash.com.
- No API key, no auth, no signup. Just point your client at the URL.
- HTTP Streamable transport (stateless JSON-RPC over
POST). - Built on Cloudflare Workers + R2, backed by the same content as api.midvash.com.
- Current MCP catalog: Portuguese, English, Spanish, Hebrew, Latin, French, Italian, Greek, and Portuguese (Portugal) versions.
Connecting a client
Generate your personal connection URL at mcp.midvash.com and add it to your MCP client. URLs look like:
https://mcp.midvash.com/mcp/{id}?v=nvi,kjv&lang=pt-br,en
v— comma-separated version slugs to expose (optional; omit for all).lang— comma-separated languages to expose (optional; omit for all).
Example (Claude Desktop / mcp.json):
{
"mcpServers": {
"bible": {
"url": "https://mcp.midvash.com/mcp/{id}?v=nvi,kjv&lang=pt-br,en"
}
}
}
Tools
| Tool | Description |
|---|---|
get_verse | Fetch a single verse or a verse range. |
get_chapter | Fetch a full chapter. |
get_passage | Fetch a passage from a free-form reference (e.g. "John 3:16-18") — the most natural way to cite scripture. |
search_bible | Search the Bible text for words or an exact phrase, ranked by relevance (BM25) over an FTS5 index. Case- and accent-insensitive, optionally filtered by book or testament. |
compare_passage | Compare the same passage across multiple Bible versions. |
list_versions | List available Bible versions/translations. |
list_books | List the 66 books, optionally filtered by testament. |
search_study | Search the study library — chapter commentaries, Bible characters, dictionary entries and theology articles — in 9 languages. |
get_commentary | Fetch the commentary for the chapter a reference points to. All 1,189 chapters, in 9 languages. |
get_cross_references | Find other passages that relate to a verse, ranked by how widely the link is attested. 343,546 links. |
get_strongs | Look up a word in Strong's lexicon by number ("H430") or by the word itself. 14,197 entries, definitions in 9 languages. |
Study tools return a summary of up to 500 characters plus a link to the full
article on midvash.com.
Beyond tools, the server exposes Resources — bible://{version}/{book}/{chapter}
addresses the text directly — and four study Prompts: sermon preparation, a
devotional, a word study, and a translation comparison. Book and version
arguments support autocompletion.
Tools that return data also return structuredContent alongside the Markdown,
so a client does not have to parse formatted text.
Limits
The server is public and unauthenticated, so every request is metered:
| Limit | Value |
|---|---|
| Tool calls per IP | 60 per minute |
| JSON-RPC batch size | 5 messages |
| Aggregate tool calls | 1,200 per minute per Cloudflare location |
A batch costs one unit per tools/call, so batching cannot raise the per-IP
ceiling. Tool responses are deterministic and public, so they are cached at the
edge for 24 hours — a repeated call costs nothing and returns in a fraction of
the time.
Current catalog
The MCP currently exposes the version catalog compiled in
src/data/versions.ts: 35 versions across the
language codes pt-br, en, es, he, la, fr, it, gr, and pt-pt.
The public URL can narrow that catalog per connection:
https://mcp.midvash.com/mcp/{id}?v=nvi,kjv&lang=pt-br,en
Where the data comes from
| Store | Contents |
|---|---|
R2 bucket bible | Chapter text, {version}/{book}/{chapter}.json, cached at the edge |
D1 midvash-mcp-search | FTS5 index: 1,224,921 verses and 18,792 study documents |
The D1 database belongs to this MCP alone. It is a copy, rebuilt by
scripts/seed-mcp-search.sh, and the Worker
only ever reads from it. Keeping it separate means the Cloudflare dashboard
reports this server's usage on its own, and a D1 binding — which grants access
to an entire database — reaches nothing but public Bible content.
Search is ranked per version. The five Hebrew texts (WLC, BHS, ALEPPO, MH,
OSMH) are the exception: SQLite's tokenizer does not strip Hebrew vowel points,
so those versions are scanned per book instead of ranked, and search_bible
asks for a book filter when one of them is used.
Benchmark
The Bible MCP landscape has three useful patterns:
| Server | Strengths | What Midvash should learn from it |
|---|---|---|
tuxr/bible-mcp | Remote-capable lookup, search, navigation, multiple translations, Apocrypha. | Add first-class Bible search and richer navigation helpers. |
molpass/mcp-bible | Multi-version lookup, keyword/semantic search, cross-references, word studies, original-language lexicon data. | Add semantic/keyword search, cross-references, and optional study layers. |
djayatillake/studybible-mcp | Lexicons, morphology, cross-references, contextual notes, deeper study workflow. | Keep Midvash simple by default, but expose advanced study tools when data is available. |
ytssamuel/FHL-MCP-Server | Strong Chinese Bible study resources, commentaries, original-language analysis, Apocrypha, topical studies. | Treat language communities as first-class audiences, not just translation filters. |
Midvash's edge is simplicity: remote, no key, no account, fast Cloudflare delivery, and an open ecosystem around the reader, API, apps, plugins, and data. The next improvements should preserve that low-friction experience while adding the discovery and study tools users expect from Bible-focused MCP servers.
Roadmap
- Expand the MCP catalog to match the broader Midvash data/API coverage.
- Extend the search index to the remaining versions and to the Hebrew, Greek, and Latin texts, which still fall back to a book-scoped scan.
- Improve
compare_passagewith richer formatting for long passages. - Add cross-reference tools powered by
bible-cross-references. - Add study-oriented tools for original-language, lexicon, and morphology data where reliable open data is available.
- Add automated tests for reference parsing, catalog filters, and tool calls.
Development
npm install
npm run dev # wrangler dev (local)
npm run typecheck # tsc --noEmit
Deployment
Deploys to the Cloudflare Worker midvash-mcp (custom domain
mcp.midvash.com) via GitHub Actions (.github/workflows/deploy.yml) —
every push to main is type-checked and deployed automatically. Requires the
repository secrets CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID. Manual
deploy:
npm run deploy # npx wrangler deploy
License
MIT © Midvash
The Midvash ecosystem
Part of Midvash — a free Bible reading & study platform. Everything is open and interlinks:
| 📖 Reader (web) | midvash.com — 9 languages |
| 📱 iOS app | midvash.app/ios |
| 🔌 API | api.midvash.com · bible-api |
| 🤖 MCP server | mcp.midvash.com · bible-mcp |
| 🧩 WordPress plugin | midvash.app/wordpress-plugin · bible-wordpress-plugin |
| 🧩 EmDash plugin | midvash.app/emdash-plugin · emdash-plugin-bible |
| 🌐 Chrome extension | midvash.app/chrome-extension · bible-chrome-extension |
| 📦 Open data | bible-data · bible-data-js · bible-cross-references |
Free & open, built by Midvash · midvash.com · midvash.app