Skip to main content
Glama
Waktu Solat MCP

Waktu Solat MCP

by khrnchn

Waktu Solat MCP

MCP server for Malaysian prayer times via api.waktusolat.app. Works with Claude, Cursor, and other MCP clients.

Tools: get_prayer_times_today, get_prayer_times_month, get_next_prayer, list_zones

Zone codes (important)

Prayer tools require a JAKIM zone code (for example: WLY01, SGR01, JHR01).

If you are unsure which code to use, run:

  • list_zones() to see all zones

  • list_zones("SGR") to filter by state code (examples: SGR, JHR, WLY)

Example prompts in Claude/Cursor:

  • "List all Selangor zones"

  • "Get today's prayer times for WLY01"

  • "What's the next prayer for SGR01?"

Related MCP server: Zmanim MCP Server

Local (stdio)

uv sync
uv run waktusolat-mcp

Claude Desktop config:

{
  "mcpServers": {
    "waktusolat": {
      "command": "uv",
      "args": ["--directory", "/path/to/waktu-solat-mcp", "run", "waktusolat-mcp"]
    }
  }
}

Claude Code (local stdio server):

claude mcp add --transport stdio waktusolat -- \
  uv --directory /path/to/waktu-solat-mcp run waktusolat-mcp

Verify in Claude Code:

claude mcp list
claude mcp get waktusolat

After connecting, try:

  • "When is Maghrib in WLY01 today?"

  • "Show me prayer times this month for SGR01"

Hosted (HTTP)

Public deployment (Railway):

  • Web UI: https://web-production-99037.up.railway.app/

  • MCP endpoint: https://web-production-99037.up.railway.app/mcp

Run with HTTP transport to serve a web UI with "Add to Cursor" / "Add to Claude" buttons:

uv run waktusolat-mcp-http

Or: MCP_TRANSPORT=streamable-http uv run waktusolat-mcp

  • Web UI: http://localhost:8000/

  • MCP endpoint: http://localhost:8000/mcp

Claude Code (remote HTTP server):

claude mcp add --transport http waktusolat https://web-production-99037.up.railway.app/mcp

Then run /mcp inside Claude Code to check connection/auth status.

Deploy to Railway, Render, etc. Set PORT (PaaS usually provides this). The app binds to 0.0.0.0 and uses PORT automatically. If behind a proxy, set MCP_BASE_URL to your public URL (for example this app uses https://web-production-99037.up.railway.app) so install links use the correct URL.

Docker

docker compose up --build
# Web UI: http://localhost:8000/
# MCP: http://localhost:8000/mcp

Available Tools

4 tools
get_next_prayerB

Get the next upcoming prayer time for the given zone. If all prayers today have passed, returns next day's Fajr/Subuh.

NameRequiredDescriptionDefault
zoneYes

Output Schema

NameRequiredDescription
resultYes
get_prayer_times_monthC

Get prayer times for all days in a given month. Zone codes follow JAKIM format (e.g. SGR01).

NameRequiredDescriptionDefault
yearYes
zoneYes
monthYes

Output Schema

NameRequiredDescription
resultYes
get_prayer_times_todayA

Get prayer times for today in the given zone. Zone codes follow JAKIM format (e.g. SGR01, WLY01). Returns times in Malaysia time (MYT, UTC+8).

NameRequiredDescriptionDefault
zoneYes

Output Schema

NameRequiredDescription
resultYes
list_zonesB

List JAKIM prayer zone codes with area descriptions. Optionally filter by state code (e.g. SGR, JHR, WLY).

NameRequiredDescriptionDefault
stateNo

Output Schema

NameRequiredDescription
resultYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedget_next_prayer
    • First observedget_prayer_times_month
    • First observedget_prayer_times_today
    • First observedlist_zones

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have mostly distinct purposes: daily times, monthly times, next prayer, and zone listing. get_prayer_times_today and get_next_prayer have slight overlap since both return today's prayer data, but their intents are clearly different (full schedule vs. nearest upcoming prayer). list_zones is a clear utility/discovery tool.

Naming Consistency5/5

All tools follow a consistent get_verb + target noun pattern: get_prayer_times_today, get_prayer_times_month, get_next_prayer, and list_zones. The naming is uniform, snake_case, and predictable throughout.

Tool Count4/5

Four tools is a reasonable, focused set for a prayer time domain. There could arguably be a get_zone_details or a between-days range tool, but the count is well-scoped and each tool serves a clear purpose without bloat.

Completeness4/5

The core domain is well covered: daily lookup, monthly schedule, next-prayer calculation, and zone discovery. A minor gap exists (no explicit date-range lookup or zone-specific settings/metadata), but agents can accomplish the primary workflows: find prayer times for today/month, determine next prayer, and discover zones.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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
  • A
    license
    A
    quality
    D
    maintenance
    A comprehensive MCP server for calculating Jewish prayer times (zmanim) using the python-zmanim library, supporting multiple halachic opinions and global locations.
    6
    26 PyPI
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server providing Malaysian/global prayer times (JAKIM + Aladhan fallback), nearest mosque/surau finder, and Islamic calendar events.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server exposing Wasilah's Islamic reference data, enabling prayer-time, Qibla, Hijri-date, and Quran-audio queries via natural language.
    MIT