Bible MCP Server for LLMs like Claude
Access Bible content via an MCP server exposing bible-api.com for LLMs like Claude to enrich context and responses.
npx -y @trevato/bible-mcpOverview
Bible MCP Server is a Model Context Protocol (MCP) server that exposes Bible content from bible-api.com so Large Language Models (LLMs) — for example Anthropic Claude — can retrieve canonical scripture text as structured resources or as tool responses. The server makes verses, chapters, and randomized passages available over MCP resource URIs and tool calls, enabling LLMs to incorporate accurate Biblical text into responses, study prompts, and verse lookups.
This is useful when you want an LLM to reference exact verses (including translation selection), generate random memory verses, or create study prompts without embedding the entire Bible in the model. The server handles translation selection, testament filtering for random verses, and basic error handling so downstream agents and tools receive predictable outputs.
Features
- Exposes Bible content (verse and chapter) as MCP resources
- Tool endpoints for:
- fetching verses by reference (single or ranges)
- generating truly random verses (with OT/NT filtering)
- listing available translations
- Support for multiple translations via bible-api.com (web, kjv, asv, bbe, etc.)
- Prompt templates to help LLMs analyze or find verses on topics
- Error handling and clear responses for invalid references
- Quick development/testing with MCP inspector and compatibility with Claude Desktop
Installation / Configuration
Install from PyPI (recommended):
Install from source:
Requirements:
- Python 3.10+
Add to a Claude (or other MCP-aware agent) configuration so the agent can launch the MCP server. Example JSON snippet:
"Bible MCP":
Run directly (development / local testing):
Quick test via the MCP dev tools (inspector):
Install into your MCP-managed environment:
Available Resources
The server exposes resources using the bible:// URI scheme. Common patterns:
| Resource | Description | Example |
|---|---|---|
| bible://{translation}/{book}/{chapter} | Full chapter | bible://web/JHN/3 |
| bible://{translation}/{book}/{chapter}/{verse} | Single verse | bible://kjv/JHN/3/16 |
| bible://random/{translation} | Random verse from any book | bible://random/web |
- translation: translation ID recognized by bible-api.com (default: web)
- book: three-letter book code (e.g., GEN, JHN, PSA)
- chapter, verse: numeric
The server returns JSON or plain text content suitable for LLM context and resource reads.
Available Tools
Primary callable tools exposed by the MCP server:
get_verse_by_reference(reference: str, translation: str = “web”) -> str
Parse a human reference like “John 3:16” or “Matthew 5:1-10” and return the requested verses.get_random_verse_tool(translation: str = “web”, testament: Optional[str] = None) -> str
Return a truly random verse. Optional testament filter: “OT” or “NT”.list_available_translations() -> str
Returns a formatted list of translations supported via bible-api.com.analyze_verse_prompt(reference: str) -> str
Builds a standardized prompt template an LLM can use to analyze a verse.find_verses_on_topic_prompt(topic: str) -> str
Builds a search/curation prompt for finding a set of verses on a topic.
Each tool responds with structured content and human-readable text, designed for easy consumption by LLMs or developer tooling.
Use Cases
- LLM-assisted Bible study: retrieve a chapter (bible://web/JHN/3) and use analyze_verse_prompt to ask the model to summarize themes or cross-reference other passages.
- Citing exact scripture: use get_verse_by_reference(“Romans 8:28”, “kjv”) to include verbatim text in generated replies.
- Memory verse generator: call get_random_verse_tool(testament=“NT”) to present a daily random verse for memorization apps.
- Topic exploration: use find_verses_on_topic_prompt(“mercy”) to ask an LLM to collect and compare verses across translations.
- Integrations: combine with MCP client libraries (e.g., mcp.ClientSession) in automation scripts or chat agents to provide live scripture lookups during conversations.
Example: minimal async client usage
=
await
, = await
= await
Notes & Contribution
- The server relies on bible-api.com for scripture text; available translations are determined by that service. Run the list_available_translations tool to see current options.
- Error states (invalid references, translation not found, upstream errors) are surfaced with clear messages to make integration robust.
- Source, issues, and contribution guidelines are on GitHub: https://github.com/trevato/bible-mcp
License: MIT. Tags: developer-tools.