Production-ready Muslim prayer reminder MCP with astronomical precision and theological disclosure.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Updates persistent prayer preferences, overwriting supplied settings while preserving omitted settings. Setting fixedCity replaces stored fixedCoordinates and stores the canonical city timezone; contradictory timezones are rejected; setting fixedCoordinates replaces stored fixedCity. Can disable reminders. Fixed mode requires a supported fixedCity or fixedCoordinates with timezone; new coordinates require timezone in the same request. clearFixedLocation removes saved location and timezone and defaults to auto_travel. Combined fixed-location calculation settings are validated for the current and next local day before saving. Invalid combinations preserve the previous preferences. Auto-travel chronology is checked when a query supplies its location. Previous values are not retained for undo.
Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved.
Language for reminder text: en or ar
Jurisprudential Asr shadow calculation: Shafi or Hanafi
Whether prayer reminders are enabled
IANA timezone identifier (e.g. Asia/Riyadh, Europe/London)
Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored.
Location strategy: fixed uses saved location; auto_travel requires the caller to supply current city or coordinates/timezone on each query and never uses IP geolocation.
Reminder display policy: prayer_window, exact_window, persistent
Fixed geographical coordinates
High latitude twilight adjustment rule
Islamic prayer calculation authority
Custom per-prayer minute offsets (-60 to +60). For fixed locations, combined settings must preserve timetable chronology for the current and next local day before saving; auto-travel offsets are validated when a query supplies its location.
Remove stored fixedCity, fixedCoordinates and timezone. Switches to auto_travel unless locationMode is supplied. Cannot combine with a new fixed location/timezone.
Duration in minutes for exact_window mode. Omitted updates preserve the saved value; if unset, the service default is 20 minutes unless the operator overrides it.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Updates persistent prayer preferences, overwriting supplied settings while preserving omitted settings. Setting fixedCity replaces stored fixedCoordinates and stores the canonical city timezone; contradictory timezones are rejected; setting fixedCoordinates replaces stored fixedCity. Can disable reminders. Fixed mode requires a supported fixedCity or fixedCoordinates with timezone; new coordinates require timezone in the same request. clearFixedLocation removes saved location and timezone and defaults to auto_travel. Combined fixed-location calculation settings are validated for the current and next local day before saving. Invalid combinations preserve the previous preferences. Auto-travel chronology is checked when a query supplies its location. Previous values are not retained for undo.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for reminder text: en or ar |
| madhab | string | Jurisprudential Asr shadow calculation: Shafi or Hanafi |
| userId* | string | Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved. |
| enabled | boolean | Whether prayer reminders are enabled |
| timezone | string | IANA timezone identifier (e.g. Asia/Riyadh, Europe/London) |
| fixedCity | string | Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored. |
| locationMode | string | Location strategy: fixed uses saved location; auto_travel requires the caller to supply current city or coordinates/timezone on each query and never uses IP geolocation. |
| reminderMode | string | Reminder display policy: prayer_window, exact_window, persistent |
| fixedCoordinates | object | Fixed geographical coordinates |
| highLatitudeRule | string | High latitude twilight adjustment rule |
| calculationMethod | string | Islamic prayer calculation authority |
| minuteAdjustments | object | Custom per-prayer minute offsets (-60 to +60). For fixed locations, combined settings must preserve timetable chronology for the current and next local day before saving; auto-travel offsets are validated when a query supplies its location. |
| clearFixedLocation | boolean | Remove stored fixedCity, fixedCoordinates and timezone. Switches to auto_travel unless locationMode is supplied. Cannot combine with a new fixed location/timezone. |
| exactWindowMinutes | integer | Duration in minutes for exact_window mode. Omitted updates preserve the saved value; if unset, the service default is 20 minutes unless the operator overrides it. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"userId"
],
"properties": {
"locale": {
"enum": [
"en",
"ar"
],
"type": "string",
"description": "Language for reminder text: en or ar"
},
"madhab": {
"enum": [
"Shafi",
"Hanafi"
],
"type": "string",
"description": "Jurisprudential Asr shadow calculation: Shafi or Hanafi"
},
"userId": {
"type": "string",
"pattern": "\\S",
"maxLength": 256,
"minLength": 1,
"description": "Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
},
"enabled": {
"type": "boolean",
"description": "Whether prayer reminders are enabled"
},
"timezone": {
"type": "string",
"description": "IANA timezone identifier (e.g. Asia/Riyadh, Europe/London)"
},
"fixedCity": {
"type": "string",
"description": "Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored."
},
"locationMode": {
"enum": [
"auto_travel",
"fixed"
],
"type": "string",
"description": "Location strategy: fixed uses saved location; auto_travel requires the caller to supply current city or coordinates/timezone on each query and never uses IP geolocation."
},
"reminderMode": {
"enum": [
"prayer_window",
"exact_window",
"persistent"
],
"type": "string",
"description": "Reminder display policy: prayer_window, exact_window, persistent"
},
"fixedCoordinates": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"description": "Fixed geographical coordinates"
},
"highLatitudeRule": {
"enum": [
"MiddleOfTheNight",
"SeventhOfTheNight",
"TwilightAngle"
],
"type": "string",
"description": "High latitude twilight adjustment rule"
},
"calculationMethod": {
"enum": [
"UmmAlQura",
"MuslimWorldLeague",
"Egyptian",
"Karachi",
"NorthAmerica",
"Dubai",
"Qatar",
"Kuwait",
"MoonsightingCommittee",
"Singapore",
"Turkey",
"Tehran"
],
"type": "string",
"description": "Islamic prayer calculation authority"
},
"minuteAdjustments": {
"type": "object",
"properties": {
"asr": {
"type": "integer",
"maximum": 60,
"minimum": -60
},
"fajr": {
"type": "integer",
"maximum": 60,
"minimum": -60
},
"isha": {
"type": "integer",
"maximum": 60,
"minimum": -60
},
"dhuhr": {
"type": "integer",
"maximum": 60,
"minimum": -60
},
"maghrib": {
"type": "integer",
"maximum": 60,
"minimum": -60
},
"sunrise": {
"type": "integer",
"maximum": 60,
"minimum": -60
}
},
"description": "Custom per-prayer minute offsets (-60 to +60). For fixed locations, combined settings must preserve timetable chronology for the current and next local day before saving; auto-travel offsets are validated when a query supplies its location."
},
"clearFixedLocation": {
"type": "boolean",
"description": "Remove stored fixedCity, fixedCoordinates and timezone. Switches to auto_travel unless locationMode is supplied. Cannot combine with a new fixed location/timezone."
},
"exactWindowMinutes": {
"type": "integer",
"maximum": 120,
"minimum": 5,
"description": "Duration in minutes for exact_window mode. Omitted updates preserve the saved value; if unset, the service default is 20 minutes unless the operator overrides it."
}
}
}Returns the immediate next prayer name, scheduled time, authority calculation method, and remaining countdown in minutes. MANDATORY: The LLM must always explicitly disclose to the user which calculation authority method was used and why it was selected (see authorityNotice in response).
| Argument | Type | Description |
|---|---|---|
| city | string | Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored. |
| madhab | string | Optional Asr shadow jurisprudence override (Shafi or Hanafi) |
| userId | string | Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved. |
| latitude | number | Optional explicit latitude override |
| timezone | string | IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup. |
| longitude | number | Optional explicit longitude override |
| calculationMethod |
Returns the currently active calculation settings and preferences for a user. Read-only operation.
| Argument | Type | Description |
|---|---|---|
| userId* | string | Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"userId"
],
"properties": {
"userId": {
"type": "string",
"pattern": "\\S",
"maxLength": 256,
"minLength": 1,
"description": "Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
}
}
}Checks if a Muslim obligatory prayer (Fajr, Dhuhr, Asr, Maghrib, Isha) is currently due for the user location and returns active reminder details. MANDATORY: The LLM must always explicitly disclose to the user which calculation authority method was used and why it was selected (see authorityNotice in response).
| Argument | Type | Description |
|---|---|---|
| city | string | Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored. |
| madhab | string | Optional Asr shadow jurisprudence override (Shafi or Hanafi) |
| userId | string | Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved. |
| latitude | number | Optional explicit latitude override |
| timezone | string | IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup. |
| longitude | number | Optional explicit longitude override |
| calculationMethod | string | Optional calculation authority override (auto-resolved from location by default) |
Retrieves today prayer timetable (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha) in UTC and formatted local time. MANDATORY: The LLM must always explicitly disclose to the user which calculation authority method was used and why it was selected (see authorityNotice in response).
| Argument | Type | Description |
|---|---|---|
| city | string | Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored. |
| date | string | Date in YYYY-MM-DD format (defaults to today) |
| madhab | string | Optional Asr shadow jurisprudence override (Shafi or Hanafi) |
| userId | string | Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved. |
| latitude | number | Optional explicit latitude override |
| timezone | string | IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup. |
| longitude |
| string |
| Optional calculation authority override (auto-resolved from location by default) |
{
"type": "object",
"allOf": [
{
"not": {
"required": [
"city",
"latitude"
]
}
},
{
"not": {
"required": [
"city",
"longitude"
]
}
}
],
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"description": "Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored."
},
"madhab": {
"enum": [
"Shafi",
"Hanafi"
],
"type": "string",
"description": "Optional Asr shadow jurisprudence override (Shafi or Hanafi)"
},
"userId": {
"type": "string",
"pattern": "\\S",
"maxLength": 256,
"minLength": 1,
"description": "Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Optional explicit latitude override"
},
"timezone": {
"type": "string",
"description": "IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Optional explicit longitude override"
},
"calculationMethod": {
"enum": [
"UmmAlQura",
"MuslimWorldLeague",
"Egyptian",
"Karachi",
"NorthAmerica",
"Dubai",
"Qatar",
"Kuwait",
"MoonsightingCommittee",
"Singapore",
"Turkey",
"Tehran"
],
"type": "string",
"description": "Optional calculation authority override (auto-resolved from location by default)"
}
},
"dependencies": {
"latitude": [
"longitude",
"timezone"
],
"longitude": [
"latitude",
"timezone"
]
}
}{
"type": "object",
"allOf": [
{
"not": {
"required": [
"city",
"latitude"
]
}
},
{
"not": {
"required": [
"city",
"longitude"
]
}
}
],
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"description": "Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored."
},
"madhab": {
"enum": [
"Shafi",
"Hanafi"
],
"type": "string",
"description": "Optional Asr shadow jurisprudence override (Shafi or Hanafi)"
},
"userId": {
"type": "string",
"pattern": "\\S",
"maxLength": 256,
"minLength": 1,
"description": "Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Optional explicit latitude override"
},
"timezone": {
"type": "string",
"description": "IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Optional explicit longitude override"
},
"calculationMethod": {
"enum": [
"UmmAlQura",
"MuslimWorldLeague",
"Egyptian",
"Karachi",
"NorthAmerica",
"Dubai",
"Qatar",
"Kuwait",
"MoonsightingCommittee",
"Singapore",
"Turkey",
"Tehran"
],
"type": "string",
"description": "Optional calculation authority override (auto-resolved from location by default)"
}
},
"dependencies": {
"latitude": [
"longitude",
"timezone"
],
"longitude": [
"latitude",
"timezone"
]
}
}| number |
| Optional explicit longitude override |
| calculationMethod | string | Optional calculation authority override (auto-resolved from location by default) |
{
"type": "object",
"allOf": [
{
"not": {
"required": [
"city",
"latitude"
]
}
},
{
"not": {
"required": [
"city",
"longitude"
]
}
}
],
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"description": "Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date in YYYY-MM-DD format (defaults to today)"
},
"madhab": {
"enum": [
"Shafi",
"Hanafi"
],
"type": "string",
"description": "Optional Asr shadow jurisprudence override (Shafi or Hanafi)"
},
"userId": {
"type": "string",
"pattern": "\\S",
"maxLength": 256,
"minLength": 1,
"description": "Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Optional explicit latitude override"
},
"timezone": {
"type": "string",
"description": "IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Optional explicit longitude override"
},
"calculationMethod": {
"enum": [
"UmmAlQura",
"MuslimWorldLeague",
"Egyptian",
"Karachi",
"NorthAmerica",
"Dubai",
"Qatar",
"Kuwait",
"MoonsightingCommittee",
"Singapore",
"Turkey",
"Tehran"
],
"type": "string",
"description": "Optional calculation authority override (auto-resolved from location by default)"
}
},
"dependencies": {
"latitude": [
"longitude",
"timezone"
],
"longitude": [
"latitude",
"timezone"
]
}
}