A prayer companion MCP server that provides guided prayers and semantic search capabilities with a readonly database.
- One Minute Prayer: Get a random prayer for quick spiritual connection
- Guided Prayer Generator: Find relevant prayers using semantic search
- Pray Together: Receive encouragement, condolences, and advice
- Generate Prayer Request: Create structured prayer requests based on topics
- Browse Categories: View all available prayer categories
- Get Prayer by ID: Retrieve a specific prayer by its ID
- Get Prayers by Category: View prayers from a specific category
- Install dependencies:
pip install -r requirements.txt- Ensure the prayer database exists:
cd data/scripts
python create_database.py- Run the server:
python server.py# Get a random prayer for quick spiritual connection
result = await one_minute_prayer_tool()# Search for prayers related to anxiety
result = await guided_prayer_generator_tool("anxiety", limit=3)
# Filter by specific category
result = await guided_prayer_generator_tool("healing", feed_title="Abiding & Presence")# Get encouragement
result = await pray_together_tool("encouragement")
# Get condolence message
result = await pray_together_tool("condolence")
# Get advice
result = await pray_together_tool("advice")# Create a prayer request for healing
result = await generate_prayer_request_tool("healing", "recovering from surgery")# Get all available prayer categories
result = await get_available_categories_tool()# Get a specific prayer by its ID
result = await get_prayer_by_id_tool(prayer_id=1)# Get prayers from a specific category
result = await get_prayers_by_category_tool("Abiding & Presence", limit=5)The server uses a readonly SQLite database:
- guided_prayers table with columns:
id: Primary keyfeed_title: Prayer categoryprayer_title: Prayer titleprayer_description: Prayer contentprayer_steps: Formatted prayer stepsdescription_embedding: Semantic embedding for search
The server uses the all-MiniLM-L6-v2 sentence transformer model to generate embeddings for prayer descriptions, enabling intelligent semantic search. Users can find relevant prayers using natural language queries.
For local testing with MCP clients, use the provided .mcp.json configuration file:
{
"mcpServers": {
"echo-prayer": {
"command": "python",
"args": ["server.py"],
"cwd": "/Users/john/repos/echo-mcp-server",
"env": {
"PORT": "8000"
},
"description": "Echo Prayer MCP Server - A prayer companion with guided prayers and semantic search",
"capabilities": {
"tools": true,
"resources": false,
"prompts": false
}
}
}
}-
Copy the
.mcp.jsonfile to your Claude Desktop configuration directory:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Restart Claude Desktop
-
The Echo Prayer MCP Server will be available as a tool in Claude Desktop
The server exposes the following MCP tools:
one_minute_prayer_toolguided_prayer_generator_toolpray_together_toolgenerate_prayer_request_toolget_available_categories_toolget_prayer_by_id_toolget_prayers_by_category_tool
GET /health: Health check endpoint- MCP tools are available through the FastMCP framework
PORT: Server port (default: 8000)
This server includes Railway configuration for easy deployment:
-
Set up environment variables: Copy
env.exampleto.envand add your API keys:cp env.example .env # Edit .env with your API keys -
Initialize Git repository (if not already done):
git init git add . git commit -m "Initial commit"
-
Push to GitHub: Create a new repository on GitHub and push your code:
git remote add origin https://github.com/yourusername/your-repo-name.git git push -u origin main
-
Deploy on Railway:
- Sign in to Railway and create a new project
- Choose "Deploy from GitHub repo" and select your repository
- Railway will automatically detect your Python application and deploy it
Your MCP server will be available at the Railway-provided URL, and you can connect MCP clients using the Railway domain + /mcp endpoint.