LABSCO SUMMARY
Method selection is why this beats a generic lookup.
Prayer times differ by calculation convention, and communities do not agree — a server that hardcodes one is wrong for most people. Offering all seven and naming which one produced a result is the correct behaviour. The moon-visibility endpoint is the unusual extra: Yallop scoring with a readable verdict is what you want when the question is whether the crescent will actually be seen, not merely when it rises.
What it is
A FastAPI service exposed over MCP that computes Islamic prayer times using the islamic_times library. Beyond the five prayers it returns sunrise, sunset and midnight, the qiblah bearing and distance, detailed sun and moon positions, and new-moon visibility scored by Yallop's criterion.
What you get
/prayer_times— fajr, sunrise, zuhr, asr, sunset, maghrib, isha and midnight for a latitude, longitude and method, returned as timezone-aware timestamps- Seven calculation methods to choose between: ISNA, MWL, UMM_AL_QURA, EGYPTIAN, KARACHI, TEHRAN and JAFARI
/qiblah— direction and distance to the Kaaba, given as a compass point, decimal angle, degrees-minutes-seconds, and distance in both km and miles/sun— sunrise, transit, sunset plus apparent altitude, azimuth, declination, right ascension and hour angles/moon— moonrise, transit, moonset, illumination percentage, altitude, azimuth and distance/moon/visibility— new-moon visibility over a number of days, each entry scored with a value and a plain-language verdict such as easily visible or below the Danjon limit
Requirements
No account and no key — the calculations are local. Python 3.12+ and uv (pip install uv); uv run run.py installs the dependencies and starts it. The API listens on http://localhost:8000 and the port is configurable through the UVV_PORT environment variable. Claude Desktop reaches it through mcp-proxy with SSE_URL pointed at http://localhost:8000/mcp. The project is salaah-mcp (version 0.1.0) and builds on FastAPI, FastAPI MCP, Pydantic and islamic_times.
Setup effort
Build from source — git clone https://github.com/yusufk/salaah-mcp.git
USE CASES
Getting today's prayer times where you are
Ask for the times at your coordinates using the convention your community follows, and get the full set including sunrise and midnight.
Finding the qiblah in an unfamiliar place
Get the bearing as a compass direction and an exact angle, plus the distance, from any coordinates.
Checking whether the new moon will be visible
Run the visibility calculation over the next few days and read the Yallop verdict for each.
Comparing methods before choosing one
Run the same location and date under different calculation authorities and see how far apart the results actually are.
BEFORE YOU INSTALL
What to know first
Requires
- Python 3.12+
- uv
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/yusufk/salaah-mcp.git
cd salaah-mcp
pip install uv
uv run run.pyLeave it running — the prayer-times API and its MCP endpoint listen on http://localhost:8000.
In a second terminal, install mcp-proxy, which Claude Desktop uses to reach that endpoint:
uv tool install mcp-proxyFind its full path with which mcp-proxy and put that path in command in the block below.
MCP Clients
Claude Desktop
{
"mcpServers": {
"Salaah Times": {
"command": "<YOUR_PATH_TO_MCP_PROXY>",
"env": {
"SSE_URL": "http://localhost:8000/mcp"
}
}
}
}