Skip to main content
Glama

Muslim Prayer Reminder MCP

Get Upcoming Prayer and Countdown

get_next_prayer
Read-onlyIdempotent

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).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoSupported 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.
madhabNoOptional Asr shadow jurisprudence override (Shafi or Hanafi)
userIdNoNonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved.
latitudeNoOptional explicit latitude override
timezoneNoIANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup.
longitudeNoOptional explicit longitude override
calculationMethodNoOptional calculation authority override (auto-resolved from location by default)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
madhabYesActive Asr jurisprudence
timezoneYesResolved IANA timezone
nextPrayerYesName of the upcoming prayer
authorityNoticeNo
nextPrayerAtUtcYesUTC timestamp of the upcoming prayer
selectionReasonNo
currentLocalDateYesCurrent local date YYYY-MM-DD
remainingMinutesYesMinutes remaining until prayer start
calculationMethodYesActive calculation authority
minuteAdjustmentsNo
calculationDetailsNo
nextPrayerLocalTimeYesFormatted local time HH:mm
authorityDescriptionNo
highLatitudeAdjustmentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / dependencies
      Added value: +{
      +  "latitude": [
      +    "longitude",
      +    "timezone"
      +  ],
      +  "longitude": [
      +    "latitude",
      +    "timezone"
      +  ]
      +}
    • removedInput schema / dependentRequired
      Removed value: -{
      -  "latitude": [
      -    "longitude",
      -    "timezone"
      -  ],
      -  "longitude": [
      -    "latitude",
      -    "timezone"
      -  ]
      -}
    • changedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneValidation / description
      Previous value: -"Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure"New value: +"Validation basis; ocean locations require the matching nautical timezone or an adjacent coastal civil timezone; mathematical poles allow an explicit civil timezone with disclosure"
    • changedOutput schema / properties / calculationDetails / properties / timezoneValidation / description
      Previous value: -"Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure"New value: +"Validation basis; ocean locations require the matching nautical timezone or an adjacent coastal civil timezone; mathematical poles allow an explicit civil timezone with disclosure"
  2. Changed10 schema fields changed
    • addedInput schema / allOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "city",
      +        "latitude"
      +      ]
      +    }
      +  },
      +  {
      +    "not": {
      +      "required": [
      +        "city",
      +        "longitude"
      +      ]
      +    }
      +  }
      +]
    • addedInput schema / dependentRequired
      Added value: +{
      +  "latitude": [
      +    "longitude",
      +    "timezone"
      +  ],
      +  "longitude": [
      +    "latitude",
      +    "timezone"
      +  ]
      +}
    • changedInput schema / properties / timezone / description
      Previous value: -"IANA timezone; required in the same request when latitude/longitude are supplied. Explicit overrides select the display timezone."New value: +"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."
    • addedInput schema / properties / userId / pattern
      Added value: +"\\S"
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
  3. Changed6 schema fields changed
    • changedInput schema / properties / city / description
      Previous value: -"Supported predefined city. Supply city or coordinates with an IANA timezone; connector/IP geolocation is never used."New value: +"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."
    • changedInput schema / properties / timezone / description
      Previous value: -"Optional IANA timezone override"New value: +"IANA timezone; required in the same request when latitude/longitude are supplied. Explicit overrides select the display timezone."
    • changedInput schema / properties / userId / description
      Previous value: -"Optional unique user identifier to load stored preferences. If omitted, pure geographic auto-resolution is applied."New value: +"Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
    • addedInput schema / properties / userId / maxLength
      Added value: +256
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
  4. Changed5 schema fields changed
    • addedInput schema / properties / city
      Added value: +{
      +  "description": "Supported predefined city. Supply city or coordinates with an IANA timezone; connector/IP geolocation is never used.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "appliedMinuteAdjustments": {
      +      "additionalProperties": {
      +        "type": "number"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "calendarAlignmentAdjusted": {
      +      "type": "boolean"
      +    },
      +    "customMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "fallbackLocationUsed": {
      +      "type": "boolean"
      +    },
      +    "highLatitudeRuleSource": {
      +      "enum": [
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "locationBasis": {
      +      "enum": [
      +        "explicit_coordinates",
      +        "explicit_city",
      +        "stored_fixed_coordinates",
      +        "stored_fixed_city",
      +        "host_coordinates",
      +        "host_city",
      +        "network_geolocation",
      +        "default_location"
      +      ],
      +      "type": "string"
      +    },
      +    "locationIsApproximate": {
      +      "type": "boolean"
      +    },
      +    "madhabSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "methodMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "methodSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "regionalMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / authorityNotice / properties / highLatitudeAdjustment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "adjustedPrayers": {
      +      "items": {
      +        "enum": [
      +          "Fajr",
      +          "Sunrise",
      +          "Dhuhr",
      +          "Asr",
      +          "Maghrib",
      +          "Isha"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "applied": {
      +      "type": "boolean"
      +    },
      +    "astronomicalLatitudeClamped": {
      +      "type": "boolean"
      +    },
      +    "effectiveLatitude": {
      +      "anyOf": [
      +        {
      +          "const": 48,
      +          "type": "number"
      +        },
      +        {
      +          "const": -48,
      +          "type": "number"
      +        }
      +      ],
      +      "description": "Substitute latitude only; never the user coordinate"
      +    },
      +    "explanation": {
      +      "type": "string"
      +    },
      +    "methodSpecificTwilightRule": {
      +      "const": "MoonsightingCommittee",
      +      "type": "string"
      +    },
      +    "rule": {
      +      "enum": [
      +        "MiddleOfTheNight",
      +        "SeventhOfTheNight",
      +        "TwilightAngle"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "applied",
      +    "rule",
      +    "astronomicalLatitudeClamped",
      +    "adjustedPrayers",
      +    "explanation"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / calculationDetails
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "appliedMinuteAdjustments": {
      +      "additionalProperties": {
      +        "type": "number"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "calendarAlignmentAdjusted": {
      +      "type": "boolean"
      +    },
      +    "customMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "fallbackLocationUsed": {
      +      "type": "boolean"
      +    },
      +    "highLatitudeRuleSource": {
      +      "enum": [
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "locationBasis": {
      +      "enum": [
      +        "explicit_coordinates",
      +        "explicit_city",
      +        "stored_fixed_coordinates",
      +        "stored_fixed_city",
      +        "host_coordinates",
      +        "host_city",
      +        "network_geolocation",
      +        "default_location"
      +      ],
      +      "type": "string"
      +    },
      +    "locationIsApproximate": {
      +      "type": "boolean"
      +    },
      +    "madhabSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "methodMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "methodSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "regionalMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / highLatitudeAdjustment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "adjustedPrayers": {
      +      "items": {
      +        "enum": [
      +          "Fajr",
      +          "Sunrise",
      +          "Dhuhr",
      +          "Asr",
      +          "Maghrib",
      +          "Isha"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "applied": {
      +      "type": "boolean"
      +    },
      +    "astronomicalLatitudeClamped": {
      +      "type": "boolean"
      +    },
      +    "effectiveLatitude": {
      +      "anyOf": [
      +        {
      +          "const": 48,
      +          "type": "number"
      +        },
      +        {
      +          "const": -48,
      +          "type": "number"
      +        }
      +      ],
      +      "description": "Substitute latitude only; never the user coordinate"
      +    },
      +    "explanation": {
      +      "type": "string"
      +    },
      +    "methodSpecificTwilightRule": {
      +      "const": "MoonsightingCommittee",
      +      "type": "string"
      +    },
      +    "rule": {
      +      "enum": [
      +        "MiddleOfTheNight",
      +        "SeventhOfTheNight",
      +        "TwilightAngle"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "applied",
      +    "rule",
      +    "astronomicalLatitudeClamped",
      +    "adjustedPrayers",
      +    "explanation"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / userId / minLength
      Added value: +1
  6. Changed1 schema field changed
    • addedInput schema / properties / userId
      Added value: +{
      +  "description": "Optional unique user identifier to load stored preferences. If omitted, pure geographic auto-resolution is applied.",
      +  "type": "string"
      +}
  7. Changed3 schema fields changed
    • removedInput schema / properties / userId
      Removed value: -{
      -  "description": "Unique user or device ID",
      -  "type": "string"
      -}
    • removedOutput schema / properties / locationSource
      Removed value: -{
      -  "description": "Source of location resolution",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "currentLocalDate",
      -  "timezone",
      -  "nextPrayer",
      -  "nextPrayerAtUtc",
      -  "nextPrayerLocalTime",
      -  "remainingMinutes",
      -  "calculationMethod",
      -  "madhab",
      -  "locationSource"
      -]New value: +[
      +  "currentLocalDate",
      +  "timezone",
      +  "nextPrayer",
      +  "nextPrayerAtUtc",
      +  "nextPrayerLocalTime",
      +  "remainingMinutes",
      +  "calculationMethod",
      +  "madhab"
      +]
  8. Changed3 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / remainingMinutes / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / remainingMinutes / minimum
      Added value: +-9007199254740991
  9. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.