BibleMCP
Production-ready MCP server that lets LLMs explore, analyze, and reason over the Bible using local ChromaDB stores and Mistral embeddings.
README
BibleMCP
Production-ready MCP server that lets LLMs explore, analyze, and reason over the Bible using local ChromaDB stores and Mistral embeddings.
Supported translations
Each translation is stored in its own isolated local Chroma directory (never mixed):
| Alias | helloao ID | Display name |
|---|---|---|
BSB |
BSB |
Berean Standard Bible |
ASV |
eng_asv |
American Standard Version (1901) |
BBE |
eng_bbe |
Bible in Basic English |
KJAV |
eng_kjv |
King James (Authorized) Version |
Architecture
MCP client (Cursor / Claude Desktop)
│ stdio
▼
biblemcp/server.py → tools → services → storage (Chroma per translation)
↓
helloao API (ingest)
Mistral API (embeddings)
Setup
1. Install
uv sync --extra dev
This creates .venv, installs the project in editable mode, and adds dev dependencies (pytest).
Note:
onnxruntimeis pinned to<=1.19.2because newer releases dropped Intel Mac (x86_64) wheels. BibleMCP uses Mistral for embeddings, not Chroma's built-in ONNX embedder — this pin only satisfies ChromaDB's install requirement.
Run project commands through uv without activating the venv:
uv run biblemcp ingest --help
uv run pytest
uv run python -m biblemcp.server
2. Configure environment
Copy .env.example to .env and set your Mistral key:
cp .env.example .env
Required for ingest and semantic search:
MISTRAL_API_KEY
Optional:
BIBLEMCP_DATA_DIR(default./data/chroma)BIBLEMCP_DEFAULT_TRANSLATION(defaultBSB)
3. Ingest Bible text
Before semantic tools work, populate the local databases:
uv run biblemcp ingest --translation BSB
uv run biblemcp ingest --all
This fetches text from helloao, embeds verses with mistral-embed, and upserts into data/chroma/{bsb,asv,bbe,kjav}/.
Re-running ingest is safe (upsert).
MCP client configuration
Cursor
Add to your MCP settings:
{
"mcpServers": {
"biblemcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/BibleMCP", "run", "python", "-m", "biblemcp.server"],
"env": {
"MISTRAL_API_KEY": "your_key",
"BIBLEMCP_DATA_DIR": "/absolute/path/to/BibleMCP/data/chroma"
}
}
}
}
Claude Desktop
{
"mcpServers": {
"biblemcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/BibleMCP", "run", "python", "-m", "biblemcp.server"],
"env": {
"MISTRAL_API_KEY": "your_key",
"BIBLEMCP_DATA_DIR": "/absolute/path/to/BibleMCP/data/chroma"
}
}
}
}
Use absolute paths for --directory and BIBLEMCP_DATA_DIR. If uv is not on your PATH for the MCP host, use the full path to the uv binary.
Screenshots
Configured in Cursor
Once connected, biblemcp shows as active with all 10 tools available:

In action
Ask for verses on a theme — the agent searches and fetches passages through the MCP tools:


The 10 tools
| Tool | What it does |
|---|---|
search_verse |
Semantic keyword/phrase search |
get_verse |
Exact single-verse lookup |
get_passage |
Exact verse range within a chapter |
cross_reference |
Semantic neighbors for a reference (not curated TSK) |
topic_lookup |
Semantic topic search |
original_language_lookup |
Semantic search framed by a term (not Strong's) |
character_profile |
Relevant verses about a character (no biography DB) |
timeline_event_lookup |
Relevant verses for an event (no date database) |
summarize_passage |
Chapter text + instructions for the host LLM to summarize |
theological_analysis |
Primary + related passages + question for host LLM analysis |
All tools accept an optional translation field (BSB, ASV, BBE, KJAV).
Development
Run tests:
uv run pytest
Run the server locally:
uv run python -m biblemcp.server
CLI help:
uv run biblemcp ingest --help
Project layout
src/biblemcp/
bible/ # book aliases, reference parsing
clients/ # helloao + Mistral embeddings
models/ # Pydantic types
services/ # ingest, retrieval, search, context
storage/ # per-translation Chroma store
tools/ # MCP tool schemas, handlers, registry
server.py # FastMCP entrypoint
cli.py # ingest CLI
tests/ # unit, service, and tool tests
data/chroma/ # local vector stores (gitignored)
License
Apache-2.0 — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.