esolat-mcp
This MCP server provides Islamic worship tools for Malaysia and globally, with prayer times, nearby mosques, and Islamic calendar events.
Get prayer times: Fetch monthly prayer schedules (Fajr, Syuruk, Dhuha, Dhuhr, Asr, Maghrib, Isha) by location name or GPS coordinates, including Gregorian and Hijri dates (with Malay month names).
Find nearest mosques/suraus: Search up to 15 nearby places within a configurable radius (default 5 km), with distance, coordinates, and Google Maps/Waze deep links; uses official e-Solat data for Malaysia and OpenStreetMap globally.
Get yearly Islamic events: Retrieve major Islamic dates (e.g., Eid) for a given year, Malaysia-aware.
Get current server time: Useful for real-time comparisons like time remaining to next prayer (though Hijri dates come via the other tools).
Dual deployment: Run locally via stdio or remotely via Docker + HTTP with a health dashboard.
Data sources: Official JAKIM/e-Solat API for Malaysia, Aladhan for global fallback, and Overpass for mosque data.
Generates direct links to Google Maps for nearby mosques/suraus.
Uses OpenStreetMap data to find and locate nearby mosques and suraus.
Generates direct links to Waze for nearby mosques/suraus.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@esolat-mcp prayer times for Kuala Lumpur today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP server for accurate Malaysian prayer times (official JAKIM/e-Solat), nearest masjid and surau, and Islamic calendar events.
Gives AI assistants like Claude Desktop and Claude Code reliable, hallucination-free access to Islamic worship tools with smart Malaysia-first routing.
Features
Official JAKIM data for Malaysia (via
Waktusolat.app API)Dhuha time automatically calculated (+28 minutes after Syuruk)
Malay Hijri month names (Muharram, Safar, etc.)
Global fallback using Aladhan API
Nearest mosques/suraus with Google Maps + Waze deep links
Yearly Islamic events (Eid, etc.)
Dual mode: Local (stdio) + Remote (Docker + secure HTTP)
Health dashboard for upstream APIs
Related MCP server: Azan-MCP
Tools
The server registers three powerful tools that Claude can discover and call automatically:
get_monthly_prayer_timesGet full monthly prayer schedule (Fajr, Syuruk, Dhuha, Dhuhr, Asr, Maghrib, Isha)
Accepts place name or latitude/longitude
Returns both Gregorian and Hijri dates
find_nearest_mosquesFind up to 15 nearest masjid/surau
Default radius: 5 km (configurable)
Malaysia uses official e-Solat data; global uses OpenStreetMap
Includes distance, coordinates, Google Maps & Waze links
get_yearly_islamic_eventsMajor Islamic dates and holidays for a given year
Malaysia-aware routing
Quick Start
Option 1: Local / Stdio Mode (Recommended for Claude Desktop)
No clone needed:
uvx esolat-mcpClaude Desktop config example:
{
"mcpServers": {
"esolat": {
"command": "uvx",
"args": ["esolat-mcp"]
}
}
}Option 2: Docker / Remote HTTP Mode (Self-hosted)
1. Clone the repo and set up token:
git clone https://github.com/zubir2k/esolat-mcp.git
cd esolat-mcp
cp .env.example .env2. Generate a strong token:
python -c "import secrets; print(secrets.token_urlsafe(32))"
# or: openssl rand -hex 323. Paste it into .env as MCP_WEBHOOK_TOKEN=your_token_here
4. Build and Start the container:
docker build -t esolat-mcp:latest .
docker compose up -d5. Endpoints
- Streamable MCP HTTP Endpoint (main one for AI clients):
http://your-server-ip:8626/api/webhook/<MCP_WEBHOOK_TOKEN>/mcp- Health Dashboard (useful for monitoring):
http://your-server-ip:8626/api/webhook/<MCP_WEBHOOK_TOKEN>(GET request without /mcp — shows status of JAKIM, Aladhan, and Overpass APIs)
Always keep yourMCP_WEBHOOK_TOKEN secret.
The token is part of the URL path for simple authentication. You can change the local port via the PORT environment variable.
For production: Consider using a reverse proxy (Nginx/Cloudflare) with HTTPS to prevent the token from being intercepted or leaked in access logs.
Prefer a simpler setup? If you want a no-server, no-Docker solution that runs on the edge, consider my Cloudflare Worker edition (free tier eligible). It automatically enforces HTTPS and avoids the self-hosting risks mentioned above.
👉 Head over to the repo: zubir2k/esolat-cfworker
Usage Examples (Claude)
Prayer Times
"What are today's prayer times in Kuala Lumpur?"
"Show me full prayer schedule for Penang this Ramadan."
"Prayer times for Kota Kinabalu next week."
Mosques
"Find the nearest mosque to me."
"Mosques within 10km of Petaling Jaya."
"Nearest surau from KLCC."
Events & Planning
"Major Islamic events in 2026 for Malaysia."
"Plan my trip to Johor Bahru: prayer times + nearest mosques + Eid dates."
Visual
Claude Config
Claude Prompt
Credits
e-solat JAKIM - For the official prayer times
WaktuSolat.app - Prayer Time by GPS
Model Context Protocol - For the MCP framework
License
This project is licensed under the MIT License.
Disclaimer & Data Source
Important Notice & Reliability Disclaimer
This integration pulls data directly from the official e-Solat JAKIM (Department of Islamic Development Malaysia) portal. However, please note:
No Liability: This integration is a community-driven project provided "as is" without any guarantees. The maintainer is not solely or legally responsible for any discrepancies, inaccuracies, delays, or omissions in prayer times or calendar dates.
Verify Important Times: Users are strictly advised to regularly check and verify times against the official JAKIM eSolat Portal or official local announcements, especially for critical obligations (e.g., fasting, community prayers).
Network & Upstream Dependencies: Synchronization depends on upstream API availability and local network connectivity. Discrepancies caused by unexpected server updates from JAKIM or local server downtime are outside the control of this software.
By using this tool, you acknowledge and agree that the developer holds no liability for missed schedules or data inaccuracies.
Available Tools
4 toolsfind_nearest_mosquesB
Finds verified mosques, masjids, or suraus within a target search radius. Injects map routing navigation strings for Google Maps and native Waze applications.
Inputs: latitude, longitude, distance_km, location_name. Returns: result
get_current_timeA
Returns the current server UTC time. Use this tool first when the user asks about current prayer status, time remaining to next prayer, or any query that requires comparing current time against prayer times. For the Hijri date, use get_monthly_prayer_times or get_yearly_islamic_events instead, since the Hijri calendar is region-dependent (moonsighting-based) and those tools return the authoritative date sourced from JAKIM/Aladhan.
Inputs: no named parameters.
get_monthly_prayer_timesA
Fetches comprehensive monthly prayer times based on raw GPS coordinates or location name string text. Computes precise Dhuha intervals (+28 mins from Syuruk) and normalizes Hijri month texts. Use this tool whenever the user asks for today's prayer times, this week's schedule, or a specific month's prayer schedule.
Inputs: year, month, latitude, longitude, +1 more. Returns: result
get_yearly_islamic_eventsB
Retrieves significant Islamic calendar milestones for a target year. Defaults to the current year if not specified.
Inputs: latitude, longitude, target_year, location_name. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: find mosques, get current time, get monthly prayer times, and get yearly Islamic events. No overlap in functionality.
All tools use snake_case and a verb_noun pattern, but 'find_nearest_mosques' uses 'find' while the others use 'get', which is a minor deviation from full consistency.
With 4 tools, the set is appropriately scoped for the domain of Islamic prayer information. Each tool serves a necessary and distinct role without redundancy.
The tool surface covers the core needs: locating mosques, current time, monthly prayer schedules, and yearly Islamic events. There are no obvious gaps for typical user queries.
Maintenance
Related MCP Connectors
Islamic prayer times & calendar MCP (Aladhan API). Keyless.
Quran MCP server for translation, tafsir, mutashabihat, recitation playlists, and prayer times.
Production-ready Muslim prayer reminder MCP with astronomical precision and theological disclosure.
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides access to Malaysia prayer time data through Claude Desktop, enabling users to retrieve prayer times for specific zones, list available prayer zones, and check current prayer time status.MIT
- AlicenseBqualityDmaintenanceAzan-MCP is an open-source Model Context Protocol (MCP) server that brings a comprehensive suite of Islamic utilities directly into AI assistants such as Claude Desktop.34382MIT
- FlicenseBqualityDmaintenanceMCP server for Malaysian prayer times, providing tools to get daily and monthly prayer schedules, next prayer times, and zone listings via the api.waktusolat.app.4-
- AlicenseNot gradedqualityCmaintenanceRemote MCP server exposing Wasilah's Islamic reference data, enabling prayer-time, Qibla, Hijri-date, and Quran-audio queries via natural language.MIT