Skip to main content
Glama

Muslim Prayer Reminder MCP

Get Full Daily Prayer Timetable

get_today_prayer_times
Read-onlyIdempotent

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

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.
dateNoDate in YYYY-MM-DD format (defaults to today)
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
timesUtcYes
timezoneYesResolved IANA timezone
localDateYesLocal schedule date YYYY-MM-DD
timesLocalYes
authorityNoticeNo
selectionReasonNo
calculationMethodYesActive calculation authority
minuteAdjustmentsNo
calculationDetailsNo
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. Changed7 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."
    • addedInput schema / properties / date / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • 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. Changed2 schema fields changed
    • removedInput schema / properties / date / pattern
      Removed value: -"^\\d{4}-\\d{2}-\\d{2}$"
    • 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 / coordinates
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "latitude": {
      -      "description": "Latitude in degrees",
      -      "type": "number"
      -    },
      -    "longitude": {
      -      "description": "Longitude in degrees",
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "latitude",
      -    "longitude"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "localDate",
      -  "timezone",
      -  "coordinates",
      -  "calculationMethod",
      -  "madhab",
      -  "timesUtc",
      -  "timesLocal"
      -]New value: +[
      +  "localDate",
      +  "timezone",
      +  "calculationMethod",
      +  "madhab",
      +  "timesUtc",
      +  "timesLocal"
      +]
  8. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  9. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.