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 分