Skip to main content
Glama
geosp
by geosp

get_passage

Retrieve Bible passages from multiple translations with automatic content cleaning and formatting for study, research, or preparation.

Instructions

Bible Passage Retrieval Tool

Get Bible passages from multiple translations with automatic content parsing and cleaning.

This tool retrieves Bible passages from BibleGateway.com, supporting multiple Bible versions and passage formats. The content is automatically cleaned and formatted for easy reading.

Legal Notice: All Bible text content is sourced from BibleGateway.com. All copyright, licensing, and other legal concerns regarding the Bible translations and text content are covered by BibleGateway.com's terms of service and licensing agreements with the respective publishers. This tool serves as an interface to publicly available content and respects all applicable copyright restrictions.

Parameters

passage (required)

  • Type: string

  • Description: Bible reference(s) to retrieve

  • Format: Book Chapter:Verse or Book Chapter

  • Examples:

    • "John 3:16" - Single verse

    • "John 3:16-21" - Verse range

    • "John 3" - Entire chapter

    • "Mark 2:1-12" - Specific verse range

    • "John 3:16; Romans 8:28" - Multiple references

version (optional)

  • Type: string

  • Default: "ESV"

  • Description: Bible translation version

  • Supported versions: ESV, NIV, KJV, NASB, NKJV, NLT, AMP, MSG

Usage Examples

Single verse:

{ "passage": "John 3:16", "version": "NIV" }

Chapter range:

{ "passage": "Mark 2:1-12", "version": "ESV" }

Entire chapter:

{ "passage": "Psalm 23", "version": "KJV" }

Multiple passages:

{ "passage": "John 3:16; Romans 8:28; Philippians 4:13", "version": "ESV" }

Response Format

Returns a structured response containing:

  • success: Whether the request was successful

  • passage: The requested Bible reference

  • version: The Bible version used

  • text: The passage text (cleaned and formatted)

  • error: Error message if request failed

Supported Bible Versions

  • ESV - English Standard Version (default)

  • NIV - New International Version

  • KJV - King James Version

  • NASB - New American Standard Bible

  • NKJV - New King James Version

  • NLT - New Living Translation

  • AMP - Amplified Bible

  • MSG - The Message

When to Use This Tool

  • Scripture study and research

  • Sermon preparation and biblical analysis

  • Cross-referencing verses across translations

  • Gathering biblical supporting material

  • Comparing different translation renderings

Content Processing

The tool automatically:

  • Removes HTML formatting and ads

  • Cleans up spacing and formatting

  • Preserves verse numbers and structure

  • Handles chapter headings appropriately

  • Supports multi-passage requests

Content Source: All Bible text is retrieved from BibleGateway.com (https://www.biblegateway.com/)

Copyright Protection: BibleGateway.com handles all copyright, licensing, and legal compliance for Bible translations. Each translation (ESV, NIV, KJV, etc.) has specific copyright holders and licensing terms that are managed and enforced by BibleGateway.com.

Fair Use: This tool accesses publicly available content through BibleGateway.com's web interface for educational, research, and personal study purposes. All copyright and licensing obligations are covered by BibleGateway.com's agreements with publishers.

Compliance: Users should be aware that while this tool provides access to Bible content, all legal responsibilities regarding copyright, attribution, and proper use remain with the respective copyright holders as managed by BibleGateway.com.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
passageYes
versionNoESV

Implementation Reference

  • The async get_passage function implementing the core tool logic: validates input with GetPassageRequest, fetches passage from BibleService, handles errors, and returns result.
    async def get_passage(passage: str, version: str = "ESV") -> Dict[str, Any]: """Get a Bible passage with comprehensive documentation loaded from instructions.md""" try: logger.info(f"MCP tool called: get_passage(passage='{passage}', version='{version}')") # Create and validate request request = GetPassageRequest( passage=passage, version=version ) # Call bible service result = await bible_service.fetch_passage( passage=request.passage, version=request.version ) logger.info(f"Passage retrieval completed: {passage} ({version})") return result except ValueError as e: logger.warning(f"Passage validation error: {e}") raise except Exception as e: logger.error(f"Passage retrieval error: {e}") raise
  • Pydantic schemas: GetPassageRequest (input with passage and version fields) and GetPassageResponse (output with success, text, error).
    class GetPassageRequest(BaseModel): """Request model for getting a Bible passage""" passage: str = Field(description="Bible reference(s) (e.g., 'John 3:16', 'Romans 8', or 'John 3:16; Romans 8:28')", min_length=1) version: str = Field( default="ESV", description="Bible translation version (e.g., 'ESV', 'NIV', 'KJV')" ) class GetPassageResponse(BaseModel): """Response model for Bible passage retrieval""" success: bool = Field(description="Whether the request was successful") passage: str = Field(description="The requested Bible reference") version: str = Field(description="The Bible version used") text: Optional[str] = Field(default=None, description="The passage text") error: Optional[str] = Field(default=None, description="Error message if request failed")
  • The register_tool function that defines and registers the get_passage MCP tool using @mcp.tool() decorator, injecting docstring and defining the handler.
    def register_tool(mcp: FastMCP, bible_service: BibleService) -> None: """ Register the get_passage tool with the MCP server Args: mcp: FastMCP server instance bible_service: BibleService instance for Bible operations """ @mcp.tool() @inject_docstring(lambda: load_instruction("instructions.md", __file__))
  • Dynamic registration in BibleMCPService.register_mcp_tools: discovers 'get_passage' feature, imports its tool.py, and calls register_tool(mcp, bible_service).
    def register_mcp_tools(self, mcp: FastMCP) -> None: """ Register MCP tools for this service using automatic feature discovery Discovers and registers tools from all feature modules that have a tool.py with a register_tool() function. """ logger.info("Discovering and registering MCP tools from features...") # Get the features package path features_package = "mcp_bible.features" features_path = Path(__file__).parent / "features" if not features_path.exists(): logger.warning(f"Features directory not found: {features_path}") return # Discover all feature modules feature_count = 0 for _, feature_name, is_pkg in pkgutil.iter_modules([str(features_path)]): if not is_pkg: continue # Skip non-package modules try: # Import the tool module from the feature tool_module_name = f"{features_package}.{feature_name}.tool" tool_module = importlib.import_module(tool_module_name) # Check if the module has a register_tool function if hasattr(tool_module, "register_tool"): # Register the tool, passing the bible service tool_module.register_tool(mcp, self.bible_service) feature_count += 1 logger.info(f"✓ Registered tools from feature: {feature_name}") else: logger.warning(f"Feature '{feature_name}' has no register_tool() function") except ModuleNotFoundError: # Feature doesn't have a tool.py, skip it logger.debug(f"Feature '{feature_name}' has no tool.py, skipping") except Exception as e: logger.error(f"Error registering tools from feature '{feature_name}': {e}") logger.info(f"Registered MCP tools from {feature_count} features")

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/geosp/mcp-bible'

If you have feedback or need assistance with the MCP directory API, please join our Discord server