Uses Pydantic for data validation and serialization in the MCP server implementation, ensuring type safety when handling Bible API responses.
Provides a Python-based implementation of the MCP server that serves as a wrapper around the Bible API, enabling LLMs to query Bible translations and verses.
Utilizes YAML for pretty printing Bible data responses, making the verse and chapter text more readable when returned from the API.
Kairos Codex - MCP Server
This server implements the Model Context Protocol (MCP) to provide standardized access to Bible data resources. It acts as a "tool provider" for Large Language Models (LLMs), allowing them to query Bible translations, books, and verses.
The server is implemented in bible.py and acts as a wrapper around the Bible API at https://bible.helloao.org, providing MCP tools for Bible access with comprehensive error handling and authentication support.
Core Functionality
The server provides the following MCP tools:
get_translations - Get list of available Bible translations, with optional language filtering
get_books - Get list of books available in a specific Bible translation
get_verses - Get specific verse(s) from a chapter in a given translation
get_chapter - Get an entire chapter from a book in a given translation
Related MCP server: MCP Web Tools Server
Tech Stack
Language: Python 3.11+
MCP Framework: FastMCP
HTTP Client:
httpxAuthentication: Simple token-based auth (optional)
Data Format: JSON responses with structured error handling
Containerization: Docker support included
Available Tools
get_translations(language)
Description: Get list of available Bible translations
Parameters:
language(str): Language to filter for (matches language, languageEnglishName, or languageName)
Returns: List of translation objects with id, name, englishName, language, numberOfBooks, etc.
get_books(translation_id)
Description: Get list of books available in a specific Bible translation
Parameters:
translation_id(str): The translation ID to get books for
Returns: Object with translation info and list of books with id, name, commonName, numberOfChapters, etc.
get_verses(translation_id, book, chapter, verse_start, verse_end?)
Description: Get specific verse(s) from a chapter
Parameters:
translation_id(str): The translation ID to usebook(str): Book name, tag, or IDchapter(int): Chapter numberverse_start(int): Starting verse number (inclusive)verse_end(int, optional): Ending verse number (inclusive)
Returns: Structured object with translation info, book info, and verse data with metadata
get_chapter(translation_id, book, chapter)
Description: Get an entire chapter from a book
Parameters:
translation_id(str): The translation ID to usebook(str): Book name, tag, or IDchapter(int): Chapter number
Returns: Structured object with translation info, book info, and all verses in the chapter
Getting Started
Prerequisites
Python 3.11+
Required packages:
fastmcp,httpx,pydantic,PyYAML,python-dotenv
Installation
Install dependencies:
Configuration
Optionally set authentication token for access control. You can do this in two ways:
Option 1: Environment variable
Option 2: .env file (recommended)
Create a .env file in the project root:
If no token is set, the server runs without authentication.
Running the Server
Direct Python execution:
Using Docker:
The server runs using streamable HTTP transport on port 8000 and can be connected to by MCP clients.
Contributing
(To be filled in later - contribution guidelines)
License
(To be determined - e.g., MIT, GPL)