MCP 서버

Muslim Prayer Reminder MCP

io.github.tareq7/muslim-prayer-mcp
생산성 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Stores prayer preferences and provides daily, upcoming, and due-status Muslim prayer times with configurable calculation methods and reminders.

configure_prayer_preferences
Configure User Prayer Preferences
Configures prayer calculation parameters, location behavior (fixed or auto_travel), madhab, reminder mode, and notification language in persistent storage.
멱등성
입력 스키마
{'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', 'minLength': 1, 'description': 'Unique user identifier'}, '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': 'Predefined city name for fixed location (e.g. Riyadh, London)'}, 'locationMode': {'enum': ['auto_travel', 'fixed'], 'type': 'string', 'description': 'Location strategy: auto_travel or fixed'}, '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)'}, 'exactWindowMinutes': {'type': 'integer', 'maximum': 120, 'minimum': 5, 'description': 'Duration in minutes for exact_window mode'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'preferences'], 'properties': {'success': {'type': 'boolean', 'description': 'Whether configuration succeeded'}, 'preferences': {'type': 'object', 'properties': {'locale': {'enum': ['en', 'ar'], 'type': 'string'}, 'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string'}, 'userId': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'message': {'type': 'string'}, 'timezone': {'type': 'string'}, 'fixedCity': {'type': 'string'}, 'locationMode': {'enum': ['auto_travel', 'fixed'], 'type': 'string'}, 'reminderMode': {'enum': ['prayer_window', 'exact_window', 'persistent'], 'type': 'string'}, 'updatedAtUtc': {'type': 'string'}, 'fixedCoordinates': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}, 'additionalProperties': False}, 'highLatitudeRule': {'enum': ['MiddleOfTheNight', 'SeventhOfTheNight', 'TwilightAngle'], 'type': 'string'}, 'calculationMethod': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string'}, '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}}, 'additionalProperties': False}, 'exactWindowMinutes': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_next_prayer
Get Upcoming Prayer and Countdown
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).
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'Optional Asr shadow jurisprudence override (Shafi or Hanafi)'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Optional explicit latitude override'}, 'timezone': {'type': 'string', 'description': 'Optional IANA timezone override'}, '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)'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['currentLocalDate', 'timezone', 'nextPrayer', 'nextPrayerAtUtc', 'nextPrayerLocalTime', 'remainingMinutes', 'calculationMethod', 'madhab'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'Active Asr jurisprudence'}, 'timezone': {'type': 'string', 'description': 'Resolved IANA timezone'}, 'nextPrayer': {'type': 'string', 'description': 'Name of the upcoming prayer'}, 'authorityNotice': {'type': 'object', 'required': ['method', 'madhab', 'authorityDescription', 'selectionReason', 'requiredDisplayInstruction'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'The Asr jurisprudence school'}, 'method': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'The calculation authority method'}, 'selectionReason': {'type': 'string', 'description': 'Rationale for selecting this authority'}, 'authorityDescription': {'type': 'string', 'description': 'Full descriptive name of the calculation authority'}, 'requiredDisplayInstruction': {'type': 'string', 'description': 'Mandatory theological notice for AI presentation'}}, 'additionalProperties': False}, 'nextPrayerAtUtc': {'type': 'string', 'description': 'UTC timestamp of the upcoming prayer'}, 'selectionReason': {'type': 'string'}, 'currentLocalDate': {'type': 'string', 'description': 'Current local date YYYY-MM-DD'}, 'remainingMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Minutes remaining until prayer start'}, 'calculationMethod': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'Active 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}}, 'additionalProperties': False}, 'nextPrayerLocalTime': {'type': 'string', 'description': 'Formatted local time HH:mm'}, 'authorityDescription': {'type': 'string'}}, 'additionalProperties': False}
get_prayer_preferences
Retrieve Stored Prayer Preferences
Returns the currently active calculation settings and preferences for a user. Read-only operation.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Unique user identifier'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'locale': {'enum': ['en', 'ar'], 'type': 'string'}, 'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string'}, 'userId': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'message': {'type': 'string'}, 'timezone': {'type': 'string'}, 'fixedCity': {'type': 'string'}, 'locationMode': {'enum': ['auto_travel', 'fixed'], 'type': 'string'}, 'reminderMode': {'enum': ['prayer_window', 'exact_window', 'persistent'], 'type': 'string'}, 'updatedAtUtc': {'type': 'string'}, 'fixedCoordinates': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}, 'additionalProperties': False}, 'highLatitudeRule': {'enum': ['MiddleOfTheNight', 'SeventhOfTheNight', 'TwilightAngle'], 'type': 'string'}, 'calculationMethod': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string'}, '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}}, 'additionalProperties': False}, 'exactWindowMinutes': {'type': 'number'}}, 'additionalProperties': False}
get_prayer_status
Check Muslim Prayer Due Status
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).
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'Optional Asr shadow jurisprudence override (Shafi or Hanafi)'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Optional explicit latitude override'}, 'timezone': {'type': 'string', 'description': 'Optional IANA timezone override (e.g. Asia/Riyadh)'}, '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)'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reminderDue', 'localDate', 'nextPrayer', 'nextPrayerAtUtc', 'timezone', 'calculationMethod', 'madhab'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'Active Asr jurisprudence'}, 'prayer': {'type': 'string', 'description': 'The name of the currently due prayer if applicable'}, 'timezone': {'type': 'string', 'description': 'Resolved IANA timezone'}, 'localDate': {'type': 'string', 'description': 'Current local date in YYYY-MM-DD'}, 'nextPrayer': {'type': 'string', 'description': 'The name of the next upcoming prayer'}, 'reminderDue': {'type': 'boolean', 'description': 'Whether a prayer is currently due for reminder'}, 'expiresAtUtc': {'type': 'string', 'description': 'UTC expiration time of the active prayer window'}, 'reminderText': {'type': 'string', 'description': 'Localized reminder message'}, 'startedAtUtc': {'type': 'string', 'description': 'UTC start time of the active prayer window'}, 'authorityNotice': {'type': 'object', 'required': ['method', 'madhab', 'authorityDescription', 'selectionReason', 'requiredDisplayInstruction'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'The Asr jurisprudence school'}, 'method': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'The calculation authority method'}, 'selectionReason': {'type': 'string', 'description': 'Rationale for selecting this authority'}, 'authorityDescription': {'type': 'string', 'description': 'Full descriptive name of the calculation authority'}, 'requiredDisplayInstruction': {'type': 'string', 'description': 'Mandatory theological notice for AI presentation'}}, 'description': 'Mandatory theological transparency notice', 'additionalProperties': False}, 'nextPrayerAtUtc': {'type': 'string', 'description': 'UTC timestamp of the next upcoming prayer'}, 'selectionReason': {'type': 'string', 'description': 'Reason for authority selection'}, 'calculationMethod': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'Active 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': 'Applied minute adjustments', 'additionalProperties': False}, 'authorityDescription': {'type': 'string', 'description': 'Description of the calculation authority'}}, 'additionalProperties': False}
get_today_prayer_times
Get Full Daily Prayer Timetable
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).
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'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)'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Optional explicit latitude override'}, 'timezone': {'type': 'string', 'description': 'Optional IANA timezone override'}, '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)'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['localDate', 'timezone', 'calculationMethod', 'madhab', 'timesUtc', 'timesLocal'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'Active Asr jurisprudence'}, 'timesUtc': {'type': 'object', 'required': ['fajr', 'sunrise', 'dhuhr', 'asr', 'maghrib', 'isha'], 'properties': {'asr': {'type': 'string', 'description': 'Asr UTC timestamp'}, 'fajr': {'type': 'string', 'description': 'Fajr UTC timestamp'}, 'isha': {'type': 'string', 'description': 'Isha UTC timestamp'}, 'dhuhr': {'type': 'string', 'description': 'Dhuhr UTC timestamp'}, 'maghrib': {'type': 'string', 'description': 'Maghrib UTC timestamp'}, 'sunrise': {'type': 'string', 'description': 'Sunrise UTC timestamp'}}, 'additionalProperties': False}, 'timezone': {'type': 'string', 'description': 'Resolved IANA timezone'}, 'localDate': {'type': 'string', 'description': 'Local schedule date YYYY-MM-DD'}, 'timesLocal': {'type': 'object', 'required': ['Fajr', 'Sunrise', 'Dhuhr', 'Asr', 'Maghrib', 'Isha'], 'properties': {'Asr': {'type': 'string', 'description': 'Asr local 24h time HH:mm'}, 'Fajr': {'type': 'string', 'description': 'Fajr local 24h time HH:mm'}, 'Isha': {'type': 'string', 'description': 'Isha local 24h time HH:mm'}, 'Dhuhr': {'type': 'string', 'description': 'Dhuhr local 24h time HH:mm'}, 'Maghrib': {'type': 'string', 'description': 'Maghrib local 24h time HH:mm'}, 'Sunrise': {'type': 'string', 'description': 'Sunrise local 24h time HH:mm'}}, 'additionalProperties': False}, 'authorityNotice': {'type': 'object', 'required': ['method', 'madhab', 'authorityDescription', 'selectionReason', 'requiredDisplayInstruction'], 'properties': {'madhab': {'enum': ['Shafi', 'Hanafi'], 'type': 'string', 'description': 'The Asr jurisprudence school'}, 'method': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'The calculation authority method'}, 'selectionReason': {'type': 'string', 'description': 'Rationale for selecting this authority'}, 'authorityDescription': {'type': 'string', 'description': 'Full descriptive name of the calculation authority'}, 'requiredDisplayInstruction': {'type': 'string', 'description': 'Mandatory theological notice for AI presentation'}}, 'additionalProperties': False}, 'selectionReason': {'type': 'string'}, 'calculationMethod': {'enum': ['UmmAlQura', 'MuslimWorldLeague', 'Egyptian', 'Karachi', 'NorthAmerica', 'Dubai', 'Qatar', 'Kuwait', 'MoonsightingCommittee', 'Singapore', 'Turkey', 'Tehran'], 'type': 'string', 'description': 'Active 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}}, 'additionalProperties': False}, 'authorityDescription': {'type': 'string'}}, 'additionalProperties': False}
변경됨
get_next_prayer
2026년 9월 19일 2:47 AM
변경됨
get_today_prayer_times
2026년 9월 19일 2:47 AM
변경됨
get_prayer_status
2026년 9월 19일 2:47 AM
추가됨
get_prayer_preferences
2026년 9월 17일 12:52 PM
추가됨
configure_prayer_preferences
2026년 9월 17일 12:52 PM
추가됨
get_next_prayer
2026년 9월 17일 12:52 PM
추가됨
get_today_prayer_times
2026년 9월 17일 12:52 PM
추가됨
get_prayer_status
2026년 9월 17일 12:52 PM