Muslim Prayer Reminder MCP

io.github.tareq7由 GitHub 帳號 tareq7 發布v1.1.1更新於 Oct 25, 2026

Production-ready Muslim prayer reminder MCP with astronomical precision and theological disclosure.

已驗證Streamable HTTP可網頁執行位置與生活效率與工作流

概覽

AI 產生的概覽

依城市或座標計算穆斯林禮拜時間與提醒,提供五個工具:當日時間表、下一拜、目前是否到點以及偏好設定。

可以做什麼
  • 取得當日完整時間表(晨禮、日出、晌禮、晡禮、昏禮、宵禮),同時提供 UTC 與當地時間
  • 查詢某項主命拜目前是否已到時間,並回傳倒數與提醒細節
  • 取得下一拜的名稱、預定時間與剩餘分鐘數
  • 讀取並更新已儲存的偏好,例如固定城市或座標、計算方法、晡禮學派與提醒時間窗
  • 使用唯讀的提示與資源,了解地點需求與計算慣例
適用情境
適合需要讓助理回答禮拜時間、顯示下一拜倒數,或在聊天與代理流程中附加禮拜提醒的情境,並可依地區計算方法給出結果、揭露高緯度調整。
執行需求
可使用託管的遠端端點(streamable HTTP),或以 npx 在本機執行 npm 套件(需 Node.js)。未宣告驗證、環境變數或請求標頭。禮拜工具需要支援的城市,或座標加時區;不會自動依 IP 定位。
安裝前請注意
configure_prayer_preferences 會覆寫已儲存的設定,舊值不保留、無法復原;切換固定地點可能清除已存的城市、座標與時區。座標在接收時會被截斷至約 1.1 公里精度。託管服務會為經驗證的 ChatGPT 使用者保留最長 180 天的匿名化每日統計,且除非設定 ANALYTICS_TOKEN 或 AUTH_TOKEN,分析儀表板是公開的。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Muslim Prayer Reminder MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.tareq7%2Fmuslim-prayer-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "muslim-prayer-reminder": {
      "type": "http",
      "url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"
    }
  }
}

README

[Muslim Prayer Reminder MCP]

Muslim Prayer Reminder MCP

Prayer times and reminders inside your AI workflow.
Get local prayer times, see what's next, and configure reminders in ChatGPT, Claude, Cursor, and other MCP clients.

Open in ChatGPT  ·  Documentation  ·  Quick Start  ·  Tools Catalog  ·  Watch the Demo

🕌 Launch week · 26 Oct – 1 Nov 2026: Muslim Prayer Reminder MCP is live on HalaLaunch
Watch the real 1080p demonstration · Try in ChatGPT

[CI Status] [Latest Release] [Tests] [Security Policy] [License]

Actively maintained · Cloudflare Workers · Node.js 22/24 on Ubuntu and Windows
By Smart Creations · Maintained by Tareq Naji

Local prayer timesNext prayer at a glanceYour setup, your choice
Location-aware timetables with 12 calculation methods.Next-prayer countdowns and configurable reminder windows.Connect to the hosted endpoint or run locally over stdio.

⚡ Quick Start

1. Run via NPX (Zero Installation)

Add to your Claude Desktop or Cursor MCP configuration:

json
{  "mcpServers": {    "muslim-prayer": {      "command": "npx",      "args": ["-y", "muslim-prayer-mcp"]    }  }}

2. Connect via Remote Streamable HTTP (Cloudflare Workers)

json
{  "mcpServers": {    "muslim-prayer": {      "url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"    }  }}

3. 1-Click Install in Cursor

[Install in Cursor]


Analytics dashboard

/analytics displays daily, weekly, monthly, and selected-period active-user counts from a minimal SQLite Durable Object. It counts only identifiable ChatGPT tool users arriving through verified OpenAI egress IPs. It records no individual tool calls, handshakes, sessions, IPs, bot activity, or location details. The dashboard is public unless ANALYTICS_TOKEN or AUTH_TOKEN is configured.

  • Protect it: set a Worker secret named ANALYTICS_TOKEN (Cloudflare dashboard, Worker, Settings, Variables and Secrets). Open /analytics and enter any username with the token as the password. /api/analytics also accepts Authorization: Bearer <token>.
  • Data model: one row per distinct verified ChatGPT subject per UTC day, using a 64-bit truncated SHA-256 pseudonym with the public prefix mpr:v1:. No per-call analytics are retained; activity is kept for up to 180 days.
  • Quota guardrails: 500 tracked distinct users per UTC day maximum; reporting has four fixed ranges (7/30/90/180 days) and at most one persisted snapshot per range each UTC day. When the cap is reached, additional user-days are not counted; prayer tools still work.
  • Verification and limits: the subject and OpenAI IP-range checks are conservative signals, not proof of a human. Non-ChatGPT users, missing subject IDs, installs with no tool calls, and clients without verifiable provenance are not counted. No Worker-level scheme can reserve free quotas for the rest of the Cloudflare account.

📺 Live Video Demonstration

Watch the Muslim Prayer Reminder MCP in action inside ChatGPT, Claude, and Cursor:

[Muslim Prayer Reminder MCP Video Demo]
👉 Click here to watch the full 1080p demo video (MP4)


🏛️ System Architecture

mermaid
flowchart TD    subgraph ClientLayer ["AI Clients & Environments"]        Cursor["Cursor IDE"]        Claude["Claude Desktop / Web"]        ChatGPT["ChatGPT Apps Directory"]        Agent["Autonomous AI Agent"]    end
    subgraph TransportLayer ["Model Context Protocol"]        HTTP["Streamable HTTP /mcp"]        Stdio["Stdio Transport CLI"]    end
    subgraph ResolverLayer ["Layered Location Resolver"]        Explicit["User coordinates + timezone or supported city"] --> Truncate["2-Decimal Sanitizer ~1.1km"]        UserPref["Stored KV Preferences"] --> Resolver["Location Normalizer"]        Headers["Verified end-user location headers"] --> Resolver        Resolver --> Missing["No usable user location: location_required"]        Truncate --> Resolver    end
    GeoIP["Cloudflare network metadata"] --> Analytics["Operational analytics only"]
    subgraph EngineLayer ["In-Isolate Solar Calculation Engine"]        Resolver --> Authority["Authority Selector"]        Authority --> AdhanEngine["Astronomical Solar Solver"]        AdhanEngine --> FiqhRules["Fiqh Clamping 48° & Madhab Calibration"]        FiqhRules --> DueLogic["Prayer Window & Due Evaluator"]    end
    subgraph OutputLayer ["Formatted Payloads & Disclosures"]        DueLogic --> MCPResponse["JSON-RPC Structured Output"]        MCPResponse --> DisclosureNotice["Mandatory Theological Notice"]        DisclosureNotice --> Middleware["Deterministic Host Middleware"]        Middleware --> FinalOutput["Appended AI Response: 🕌 It is time for Maghrib prayer"]    end
    ClientLayer --> TransportLayer    TransportLayer --> ResolverLayer

MCP Prompts and Resources

In addition to the five calculation and preference tools, compatible MCP clients can use two protocol-native, read-only learning features:

  • Prompt: check_prayer_times_with_disclosure guides a client to obtain real prayer times using the tool, ask for missing location, and explain the calculation authority, reason for selection, and high-latitude adjustments.
  • Resource: prayer://calculation-guide provides a short guide to location requirements, Asr conventions, twilight methods, and differences from local mosque timetables.

These features do not guess prayer times, read private preferences, or replace the calculation tools. They are available through the current hosted MCP endpoint. Older local npm versions may not provide the new prompt and resource until updated.


🛠️ MCP Tools Catalog

The server exposes 5 finely-tuned tools conforming to the latest Model Context Protocol standard with full Zod output contracts:

Tool NameOperation ModeOpen WorldDescription
get_prayer_statusTemporary state writeSafeChecks if an obligatory prayer is currently due. Returns active prayer, countdown, calculation authority, and selection justification.
get_today_prayer_timesRead-OnlySafeComputes today's full timetable (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha) in UTC and localized string format.
get_next_prayerRead-OnlySafeReturns the immediate upcoming prayer, exact scheduled timestamp, countdown minutes, and regional authority.
configure_prayer_preferencesOverwrites saved settings (destructiveHint: true)SafeUpdates supplied preferences; switching fixed location can clear the previous location and timezone. Previous values are not retained for undo.
get_prayer_preferencesRead-OnlySafeReads saved public preference settings.

📐 Astronomical & Theological Rigor

Prayer calculations use astronomical models and configured regional methods; high-latitude substitutes and geographic heuristics are disclosed:

Sovereign AuthorityJurisdictionFajr AngleIsha Angle / IntervalDefault Asr Madhab
Umm al-Qura UniversitySaudi Arabia18.5°+90 minShafi / Standard
Egyptian General SurveyEgypt, Palestine, Levant19.5°17.5°Shafi (configured Palestinian service offsets applied)
Diyanet İşleri BaşkanlığıTurkey, Balkans, Central Asia18.0°17.0°Hanafi (Double shadow ratio)
Univ. of Islamic Sciences, KarachiPakistan, India, Bangladesh18.0°18.0°Hanafi (Double shadow ratio)
ISNAUnited States, Canada15.0°15.0°Shafi / Standard
Muslim World League (MWL)Europe, Global Fallback18.0°17.0°Shafi / Standard
Configured Singapore methodMalaysia, Singapore, Indonesia20.0°18.0°Shafi / Standard

High-Latitude Polar Adjustments

In latitudes above 48° North or South where twilight persists throughout the night in summer, the engine automatically engages fiqh-compliant clamping (Middle of the Night & One-Seventh Rule), preventing computational errors or impossible timetables.


🔌 Install & Multi-Agent Setup

Connect Muslim Prayer Reminder to any AI agent harness, developer IDE, or container runtime:

1-Click & Matrix Overview

Environment / HarnessProtocol ModeQuick Command / Deeplink
Cursor IDERemote HTTP[Install in Cursor]
Claude CodeNative Plugin/plugin marketplace add tareq7/muslim-prayer-mcp
CodexNative Plugincodex plugin marketplace add tareq7/muslim-prayer-mcp
GitHub Copilot CLICopilot Plugincopilot plugin marketplace add tareq7/muslim-prayer-mcp
Claude DesktopStdio CLInpx -y muslim-prayer-mcp via claude_desktop_config.json
VS Code & ClineLocal NPXnpx -y muslim-prayer-mcp via .vscode/mcp.json
Windsurf & DevinRemote HTTPRemote URL to mcp_config.json
Gemini CLINative Extensiongemini mcp add --transport http muslim-prayer https://muslim-prayer-mcp.najetareqz.workers.dev/mcp
Pi Agent HarnessGit Extensionpi install git:github.com/tareq7/muslim-prayer-mcp
OpenCodeAgent PluginAuto-loaded via opencode.json & AGENTS.md
Docker ContainerContainerdocker build -t muslim-prayer-mcp . then docker run --rm -i muslim-prayer-mcp (stdio)

Claude Code

Run inside your Claude Code session:

bash
/plugin marketplace add tareq7/muslim-prayer-mcp/plugin install muslim-prayer-mcp@muslim-prayer-mcp

(Note: Send as two separate prompts). In the Claude Code Desktop app, click the + button next to the prompt box ➔ Plugins ➔ Add plugin to browse and install from the marketplace.


Codex

Run in your terminal:

bash
codex plugin marketplace add tareq7/muslim-prayer-mcpcodex plugin add muslim-prayer-mcp@muslim-prayer-mcp

Run codex and open /hooks (or start a new thread). This also activates the plugin in the Codex Desktop app upon restart.


GitHub Copilot CLI

In your terminal:

bash
copilot plugin marketplace add tareq7/muslim-prayer-mcpcopilot plugin install muslim-prayer-mcp@muslim-prayer-mcp

Or inside an interactive Copilot CLI session:

text
/plugin marketplace add tareq7/muslim-prayer-mcp/plugin install muslim-prayer-mcp@muslim-prayer-mcp

Cursor IDE

Click to install with one click:
[Install in Cursor]

Or manually add to .cursor/mcp.json:

json
{  "mcpServers": {    "muslim-prayer": {      "url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"    }  }}

Claude Desktop

Add to your claude_desktop_config.json:

json
{  "mcpServers": {    "muslim-prayer": {      "command": "npx",      "args": ["-y", "muslim-prayer-mcp"]    }  }}

VS Code & Cline

Add this to .vscode/mcp.json using VS Code's servers format:

json
{  "servers": {    "muslim-prayer": {      "type": "stdio",      "command": "npx",      "args": ["-y", "muslim-prayer-mcp"]    }  }}

Cline settings use the mcpServers format shown in Quick Start.


Windsurf & Devin

Add to mcp_config.json:

json
{  "mcpServers": {    "muslim-prayer": {      "url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"    }  }}

Gemini CLI

Connect directly using the live edge endpoint:

bash
gemini mcp add --transport http muslim-prayer https://muslim-prayer-mcp.najetareqz.workers.dev/mcp

Pi Agent Harness

bash
pi install git:github.com/tareq7/muslim-prayer-mcp

OpenCode

Add to your opencode.json:

json
{  "$schema": "https://opencode.ai/config.json",  "mcp": {    "muslim-prayer": {      "type": "remote",      "url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"    }  }}

OpenCode automatically loads this repository's AGENTS.md and skills/muslim-prayer-mcp/SKILL.md.


Docker Container

bash
docker build -t muslim-prayer-mcp .docker run --rm -i muslim-prayer-mcp

💻 Deterministic Host Middleware

For platforms building autonomous AI agents (Next.js, LangChain, Vercel AI SDK), the included middleware deterministically appends prayer notices to AI responses without hallucination:

typescript
import { PrayerReminderMiddleware } from 'muslim-prayer-mcp/middleware';
const prayerMiddleware = new PrayerReminderMiddleware({  workerBaseUrl: 'https://muslim-prayer-mcp.najetareqz.workers.dev',  userId: 'user_session_42',});
// Wrap any LLM completionconst rawLlmOutput = await callLlm('Can you review this pull request?');const { responseText, reminderAppended } = await prayerMiddleware.processResponse(rawLlmOutput, {  'X-User-Coordinates': '24.71, 46.68', // Riyadh  'X-User-Timezone': 'Asia/Riyadh',});
console.log(responseText);// => The code looks solid, but let's optimize line 42...//// 🕌 It is time for Asr prayer.

🧪 Comprehensive Test Suite

The engine includes 44 unit, integration, and end-to-end tests validating astronomical accuracy across 10 worldwide benchmark coordinates:

bash
npm test
▶ Astronomical Prayer Calculation Suite  ✔ calculates valid prayer timetable for Riyadh in correct chronological sequence  ✔ calculates valid prayer timetable for Makkah in correct chronological sequence  ✔ calculates valid prayer timetable for Cairo in correct chronological sequence  ✔ calculates valid prayer timetable for Dubai in correct chronological sequence  ✔ calculates valid prayer timetable for London in correct chronological sequence  ✔ calculates valid prayer timetable for Paris in correct chronological sequence  ✔ calculates valid prayer timetable for New York in correct chronological sequence  ✔ calculates valid prayer timetable for Jakarta in correct chronological sequence  ✔ calculates valid prayer timetable for Karachi in correct chronological sequence  ✔ calculates valid prayer timetable for Sydney (Southern Hem) in correct chronological sequence  ✔ verifies Hanafi Asr is strictly later than Shafi Asr  ✔ handles Daylight Saving Time (DST) transitions safely  ✔ automatically resolves Palestinian Awqaf standard for Gaza  ✔ handles high-latitude polar city with MiddleOfTheNight rule safely...ℹ tests 44 | pass 44 | fail 0

🔒 Security & Privacy Policy

  • Coordinate Truncation: All user coordinates are truncated to 2 decimal places upon arrival (~1.1 km resolution). Precise location is mathematically non-recoverable.
  • No Outbound Tracking: Astronomical math is computed locally within the isolated V8 runtime; zero external requests are made to third-party tracking APIs.
  • Fail-Open Architecture: Host middleware is designed to fail open; network issues or latency spikes will never block primary AI conversation streams.
  • Full Disclosure Process: See SECURITY.md for supported versions, SLA, and private reporting.

Registries & ratings

[Muslim Prayer Reminder MCP server card on Glama]

[Muslim Prayer Reminder MCP server card on LobeHub]

[Muslim Prayer Reminder MCP server on MCPRush]

[Muslim Prayer Mcp on AI Agents Listing]

[MCP Registry]

[M8ven Score] [Wellknown]


📄 Governance, Ownership & Community

Made with precision for the global Muslim developer community.

Verified location and calculation disclosures (v1.1.0)

Prayer tools accept a supported city, coordinates with timezone, or complete stored fixed settings. Missing location returns location_required; connector/IP geolocation and automatic Makkah fallback are not used. Explicit per-call inputs override fixed preferences. Host headers must represent the end user.

highLatitudeAdjustment discloses twilight substitutions and polar clamping; effectiveLatitude is present only for the +/-48-degree substitute and never echoes the original coordinate. calculationDetails reports location basis and regional, user, and method offsets. Invalid offsets that reverse prayer windows return invalid_calculation. Preferences expose fixedCoordinatesConfigured and fixedCityConfigured while redacting coordinates.

Analytics stores only pseudonymous verified ChatGPT user-days for up to 180 days. It does not store individual requests, session identifiers, errors, locations, or bot traffic. Snapshot reports refresh at most once per UTC day, and daily tracking stops after 500 distinct users to protect free quotas. Both dashboard aliases honor configured service authentication; without an analytics/service token, access is public. See the privacy policy for the precise trust boundaries.

Preference and display-time contracts

Explicit coordinates require timezone in the same request. Stored fixed-location timezones are never inherited for new explicit coordinates. calculationDetails.timezoneSource identifies explicit, city, stored, or host input; city timezones must match the canonical city zone or an IANA alias. Coordinate timezones are checked against an approximate offline lookup and nearby boundary cells; contradictory values return location_timezone_mismatch with expectedTimezone. Supply city or coordinates, never both. Geographic default authority follows the lookup, not the supplied display timezone.

Fixed mode requires a supported city or coordinates with timezone. New fixed coordinates require timezone in the same configuration request. Failed configuration updates save nothing. Switching to auto_travel preserves fixed location for reuse; clearFixedLocation:true removes city, coordinates and timezone and defaults to auto-travel, preserving unrelated preferences. Clear cannot accompany replacement location/timezone or incomplete fixed mode.

For identified users, prayer_window and exact_window emit once per prayer/date/mode; persistent emits throughout the prayer period. Locale changes and toggling reminders do not reset deduplication. Anonymous calls do not persist deduplication. expiresAtUtc retains its prayer-period meaning; prayerWindowExpiresAtUtc names the same boundary, and reminderWindowExpiresAtUtc describes eligibility, capped by the prayer boundary in exact mode. These fields appear when a reminder is emitted. Cross-region KV updates and deduplication remain best effort.

The Palestinian regional profile is a configured service heuristic using the Egyptian method with Dhuhr -1 and Maghrib +3 minute offsets. Its broad coordinate/timezone/country rules do not establish jurisdiction. Exact adoption of these parameters by the Palestinian ministry has not been verified from a primary source. Users can override method and offsets. Other regional choices are service defaults, not nationwide mandates. Method descriptions follow Adhan documentation.

The supported city vocabulary and aliases are advertised in each location input schema and generated skill. The service registers five tools only. Duplicate suffixed tools or old schemas in a connector require refreshing its registration; they are not separate server operations.

Timezone validation uses @photostructure/tz-lookup 11.7.0 (compact, approximate geographic data). Canonical IANA aliases are accepted; matching sampled UTC offsets is not sufficient, because DST transition dates can differ. Near boundaries, adjacent lookup zones within roughly 0.05 degrees are accepted and disclosed as nearby_boundary. This is not precise jurisdiction detection. Mathematical poles retain an explicit civil timezone choice; ocean cells require a matching nautical zone or nearby civil zone. New and updated fixed-city preferences store the canonical city timezone; contradictory supplied values are rejected. Legacy city records are presented canonically without rewriting other data on a read.

The caller must supply current city or coordinates/timezone in auto_travel mode; there is no automatic IP geolocation. Stored method preferences remain active while traveling. exact_window uses the saved duration or, when unset, the service default of 20 minutes unless an operator overrides it. Omitting the duration preserves existing preferences.

來源:README.md,提交 c8ddd36

工具

5

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

輸入參數citymadhabuserIdlatitudetimezonelongitudecalculationMethod

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

輸入參數citydatemadhabuserIdlatitudetimezonelongitudecalculationMethod

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

輸入參數citymadhabuserIdlatitudetimezonelongitudecalculationMethod

configure_prayer_preferences

Configure User Prayer Preferences

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.

輸入參數localemadhabuserId必填enabledtimezonefixedCitylocationModereminderModefixedCoordinateshighLatitudeRulecalculationMethodminuteAdjustments另有 2 個

get_prayer_preferences

Retrieve Stored Prayer Preferences

Returns the currently active calculation settings and preferences for a user. Read-only operation.

輸入參數userId必填

版本歷史

2
  1. v1.1.1最新Oct 16, 2026
  2. v1.0.1Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分