BI

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.

Quick Install
npx -y @trevato/bible-mcp

Overview

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):

pip install bible-mcp

Install from source:

git clone https://github.com/trevato/bible-mcp.git
cd bible-mcp
pip install -e .

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": {
  "command": "uvx",
  "args": ["bible-mcp"]
}

Run directly (development / local testing):

python -m bible_server

Quick test via the MCP dev tools (inspector):

mcp dev bible_server.py

Install into your MCP-managed environment:

mcp install bible_server.py

Available Resources

The server exposes resources using the bible:// URI scheme. Common patterns:

ResourceDescriptionExample
bible://{translation}/{book}/{chapter}Full chapterbible://web/JHN/3
bible://{translation}/{book}/{chapter}/{verse}Single versebible://kjv/JHN/3/16
bible://random/{translation}Random verse from any bookbible://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

from mcp import ClientSession, StdioServerParameters
import asyncio

async def example():
    server_params = StdioServerParameters(command="python", args=["bible_server.py"])
    async with ClientSession.from_stdio_server(server_params) as session:
        await session.initialize()
        content, _ = await session.read_resource("bible://web/JHN/3/16")
        print(content)
        result = await session.call_tool("get_random_verse_tool", {"testament": "NT"})
        print(result.content[0].text)

asyncio.run(example())

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.