关于 Muslim Prayer Reminder MCP
Muslim Prayer Reminder MCP 为 AI 工作流提供基于位置的礼拜时间表、下一次礼拜状态和可配置偏好。它支持托管或本地连接,并说明计算方法及高纬度调整。
主要功能
- 01使用 12 种计算方法提供礼拜时间
- 02下一次礼拜倒计时与状态
- 03可配置礼拜偏好
- 04计算指南提示词与资源
- 05支持托管 HTTP 或本地 stdio 连接
适用场景
- 01查询某地当日礼拜时间表
- 02查看下一次礼拜及其倒计时
- 03设置位置和礼拜计算偏好
- 04说明计算方法和高纬度调整
MCP 相关
该服务提供用于礼拜时间、状态和偏好的五种工具,并在托管端点提供只读提示词与资源。MCP 客户端可通过远程 Streamable HTTP 或本地 stdio 连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://muslim-prayer-mcp.najetareqz.workers.dev/mcpclaude mcp add --transport http tareq7-muslim-prayer https://muslim-prayer-mcp.najetareqz.workers.dev/mcp{"mcpServers":{"tareq7-muslim-prayer":{"type":"http","url":"https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"tareq7-muslim-prayer":{"type":"http","url":"https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"tareq7-muslim-prayer":{"type":"http","url":"https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"}}}{"mcpServers":{"tareq7-muslim-prayer":{"serverUrl":"https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
5| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| city | string | 否 | 支持的城市: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。别名:gazacity、nyc、kuwaitcity。忽略大小写、空格和标点。 |
| madhab | enum | 否 | 可选的晡礼影长法学派覆盖设置(Shafi 或 Hanafi)Shafi | Hanafi |
| userId | string | 否 | 非空白用户标识符;最多 256 个 UTF-8 字节且 256 个字符。非空白标识符中的空白字符会保留。 |
| latitude | number | 否 | 可选的显式纬度覆盖值 |
| timezone | string | 否 | IANA 时区;在同一请求中提供纬度/经度时为必填项。必须与城市一致,或与坐标时区查询结果兼容。 |
| longitude | number | 否 | 可选的显式经度覆盖值 |
| calculationMethod | enum | 否 | 可选的计算权威覆盖项(默认根据位置自动解析)UmmAlQura | MuslimWorldLeague | Egyptian | Karachi | NorthAmerica | Dubai | Qatar | Kuwait | MoonsightingCommittee | Singapore | Turkey | Tehran |
详细介绍
穆斯林礼拜提醒 MCP
在 AI 工作流中获取礼拜时间和提醒。
在 ChatGPT、Claude、Cursor 和其他 MCP 客户端中获取本地礼拜时间、查看下一次礼拜时间并配置提醒。
在 ChatGPT 中打开 · 文档 · 快速开始 · 工具目录 · 观看演示
🕌 上线周 · 2026 年 10 月 26 日至 11 月 1 日: 穆斯林礼拜提醒 MCP 已在 HalaLaunch 上线
观看真实的 1080p 演示 · 在 ChatGPT 中试用
持续维护 · Cloudflare Workers · Ubuntu 和 Windows 上的 Node.js 22/24
由 Smart Creations 提供 · 由 Tareq Naji 维护
| 本地礼拜时间 | 一目了然查看下一次礼拜 | 按需选择配置方式 |
|---|---|---|
| 根据位置提供礼拜时间表,支持 12 种计算方法。 | 显示距离下一次礼拜的倒计时,并可配置提醒时段。 | 连接托管端点,或通过 stdio 在本地运行。 |
⚡ 快速开始
1. 通过 NPX 运行(无需安装)
添加到 Claude Desktop 或 Cursor MCP 配置中:
{
"mcpServers": {
"muslim-prayer": {
"command": "npx",
"args": ["-y", "muslim-prayer-mcp"]
}
}
}
2. 通过远程 Streamable HTTP 连接(Cloudflare Workers)
{
"mcpServers": {
"muslim-prayer": {
"url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"
}
}
}
3. 在 Cursor 中一键安装
分析仪表板
/analytics 显示简易 SQLite Durable Object 中的每日、每周、每月和所选时段活跃用户数。它只统计通过经过验证的 OpenAI 出口 IP 访问的、可识别的 ChatGPT 工具用户。**它不会记录任何单次工具调用、握手、会话、IP、机器人活动或位置详情。**除非配置了 ANALYTICS_TOKEN 或 AUTH_TOKEN,否则仪表板公开可见。
- **保护仪表板:**设置名为
ANALYTICS_TOKEN的 Worker 密钥(Cloudflare 仪表板,Worker,Settings,Variables and Secrets)。打开/analytics,输入任意用户名,并将该令牌作为密码。/api/analytics也接受Authorization: Bearer <token>。 - **数据模型:**每天(UTC)为每个经过验证的 ChatGPT 用户主体保留一行,使用 64 位截断 SHA-256 假名,公开前缀为
mpr:v1:。不保留单次调用分析数据;活动数据最多保留 180 天。 - **配额保护:**每天(UTC)最多跟踪 500 个不同用户;报告采用四个固定范围(7/30/90/180 天),每天(UTC)每个范围最多保存一份快照。达到上限后,不再统计额外的用户日;祈祷工具仍可正常使用。
- **验证与限制:**用户主体和 OpenAI IP 范围检查是保守的信号,并不能证明对方是真人。非 ChatGPT 用户、缺少用户主体 ID 的用户、未调用任何工具的安装实例,以及来源无法验证的客户端都不会纳入统计。没有任何 Worker 级方案能够为 Cloudflare 账户的其余部分预留免费配额。
📺 视频演示
观看 Muslim Prayer Reminder MCP 在 ChatGPT、Claude 和 Cursor 中的实际演示:
🏛️ 系统架构
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 提示词与资源
除了五个计算和偏好工具外,兼容的 MCP 客户端还可以使用两项协议原生的只读学习功能:
- 提示词:
check_prayer_times_with_disclosure引导客户端使用工具获取真实祈祷时间、询问缺失的位置,并说明计算依据、选择理由和高纬度调整。 - 资源:
prayer://calculation-guide提供简短指南,介绍位置要求、晡礼(Asr)惯例、暮光计算方法,以及与当地清真寺时间表的差异。
这些功能不会猜测祈祷时间、读取私人偏好,也不会取代计算工具。当前托管的 MCP 端点提供这些功能。较旧的本地 npm 版本在更新前可能不支持新增的提示词和资源。
🛠️ MCP 工具目录
该服务提供 5 个经过精细调整的工具,符合最新的 Model Context Protocol 标准,并提供完整的 Zod 输出契约:
| 工具名称 | 操作模式 | 开放世界 | 描述 |
|---|---|---|---|
get_prayer_status | 临时状态写入 | 安全 | 检查当前是否到了某项主命祷告的时间。返回当前祷告、倒计时、计算权威机构和选择依据。 |
get_today_prayer_times | 只读 | 安全 | 计算今天的完整祷告时间表(晨礼、日出、晌礼、晡礼、昏礼、宵礼),并以 UTC 和本地化字符串格式返回。 |
get_next_prayer | 只读 | 安全 | 返回即将到来的祷告、精确的预定时间戳、倒计时分钟数和区域权威机构。 |
configure_prayer_preferences | 覆盖已保存的设置(destructiveHint: true) | 安全 | 更新提供的偏好设置;切换固定位置可能会清除先前的位置和时区。先前的值不会保留以供撤销。 |
get_prayer_preferences | 只读 | 安全 | 读取已保存的公开偏好设置。 |
📐 天文与教法严谨性
祷告时间计算采用天文模型和配置的区域方法;高纬度地区的替代方案和地理启发式规则均会予以说明:
| 权威机构 | 管辖区域 | 晨礼角度 | 宵礼角度/间隔 | 默认晡礼教法学派 |
|---|---|---|---|---|
| 乌姆·库拉大学 | 沙特阿拉伯 | 18.5° | +90 分钟 | 沙斐仪/标准 |
| 埃及总测量局 | 埃及、巴勒斯坦、黎凡特 | 19.5° | 17.5° | 沙斐仪 (已应用巴勒斯坦服务的时间偏移) |
| 土耳其宗教事务局 | 土耳其、巴尔干、中亚 | 18.0° | 17.0° | 哈乃斐(双倍影长比) |
| 卡拉奇伊斯兰科学大学 | 巴基斯坦、印度、孟加拉国 | 18.0° | 18.0° | 哈乃斐(双倍影长比) |
| ISNA | 美国、加拿大 | 15.0° | 15.0° | 沙斐仪/标准 |
| 世界穆斯林联盟(MWL) | 欧洲、全球默认 | 18.0° | 17.0° | 沙斐仪/标准 |
| 已配置的新加坡方法 | 马来西亚、新加坡、印度尼西亚 | 20.0° | 18.0° | 沙斐仪/标准 |
高纬度极地调整
在北纬或南纬 48° 以上的地区,夏季暮光会持续整夜,计算引擎会自动启用符合教法的限值调整(夜半法和七分之一法),以避免计算错误或出现不可能的时间表。
🔌 安装与多 Agent 设置
将 Muslim Prayer Reminder 连接到任意 AI Agent 框架、开发者 IDE 或容器运行时:
一键安装与矩阵概览
Claude Code
在 Claude Code 会话中运行:
/plugin marketplace add tareq7/muslim-prayer-mcp
/plugin install muslim-prayer-mcp@muslim-prayer-mcp
(注意:请分两条提示词发送)。在 Claude Code Desktop app 中,点击提示词框旁边的 + 按钮 ➔ Plugins ➔ Add plugin,即可浏览并从市场安装。
Codex
在终端中运行:
codex plugin marketplace add tareq7/muslim-prayer-mcp
codex plugin add muslim-prayer-mcp@muslim-prayer-mcp
运行 codex 并打开 /hooks(或新建一个线程)。重启后,这也会在 Codex Desktop app 中激活插件。
GitHub Copilot CLI
在终端中:
copilot plugin marketplace add tareq7/muslim-prayer-mcp
copilot plugin install muslim-prayer-mcp@muslim-prayer-mcp
或在交互式 Copilot CLI 会话中:
/plugin marketplace add tareq7/muslim-prayer-mcp
/plugin install muslim-prayer-mcp@muslim-prayer-mcp
Cursor IDE
或手动添加到 .cursor/mcp.json:
{
"mcpServers": {
"muslim-prayer": {
"url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"
}
}
}
Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"muslim-prayer": {
"command": "npx",
"args": ["-y", "muslim-prayer-mcp"]
}
}
}
VS Code 和 Cline
使用 VS Code 的 servers 格式,将以下内容添加到 .vscode/mcp.json:
{
"servers": {
"muslim-prayer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "muslim-prayer-mcp"]
}
}
}
Cline 设置使用快速入门中所示的 mcpServers 格式。
Windsurf 和 Devin
添加到 mcp_config.json:
{
"mcpServers": {
"muslim-prayer": {
"url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"
}
}
}
Gemini CLI
使用实时边缘端点直接连接:
gemini mcp add --transport http muslim-prayer https://muslim-prayer-mcp.najetareqz.workers.dev/mcp
Pi Agent Harness
pi install git:github.com/tareq7/muslim-prayer-mcp
OpenCode
添加到 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"muslim-prayer": {
"type": "remote",
"url": "https://muslim-prayer-mcp.najetareqz.workers.dev/mcp"
}
}
}
OpenCode 会自动加载此仓库的 AGENTS.md 和 skills/muslim-prayer-mcp/SKILL.md。
Docker 容器
docker build -t muslim-prayer-mcp .
docker run --rm -i muslim-prayer-mcp
💻 确定性宿主中间件
对于构建自主 AI Agent 的平台(Next.js、LangChain、Vercel AI SDK),内置中间件会以确定性方式将祷告提示附加到 AI 回复中,避免产生幻觉:
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 completion
const 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.
🧪 全面的测试套件
该引擎包含 44 项单元、集成和端到端测试,用于验证 10 个全球基准坐标的天文计算准确性:
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
🔒 安全与隐私政策
- 坐标截断:所有用户坐标在接收时都会截断至小数点后 2 位(精度约为 1.1 km)。从数学上无法恢复精确位置。
- 不进行外部跟踪:天文计算在隔离的 V8 运行时中本地完成;不会向第三方跟踪 API 发出任何外部请求。
- 故障开放架构:宿主中间件采用故障开放设计;网络问题或延迟峰值绝不会阻塞主要 AI 对话流。
- 完整披露流程:支持的版本、SLA 和私密报告方式,请参阅 SECURITY.md。
注册目录与评分
📄 治理、所有权与社区
-
发布者与组织:Smart Creations(OpenAI 组织 ID:
org-deULP4GGInsTcWmuaHWp3lxy) -
首席维护者与作者:Tareq Naji(@tareq7)
-
许可证:MIT 许可证(版权所有 © 2026 Smart Creations 与 Tareq Naji)
-
引用:CITATION.cff
-
维护者:MAINTAINERS.md
-
产品路线图:ROADMAP.md
-
Agent 指南:AGENTS.md
-
行为准则:CODE_OF_CONDUCT.md
-
讨论:GitHub 讨论
为全球穆斯林开发者社区精心打造。
已验证的位置与计算说明(v1.1.0)
祈祷工具接受受支持的 city、附带 timezone 的坐标,或完整的已存储固定设置。缺少位置信息时会返回 location_required;不会使用连接器/IP 地理定位,也不会自动回退到麦加。每次调用中明确提供的输入优先于固定偏好。主机标头必须代表最终用户。
highLatitudeAdjustment 会说明暮光替代规则和极地范围钳制;只有在采用 +/-48 度替代方案时才会提供 effectiveLatitude,且绝不会回显原始坐标。calculationDetails 会报告位置依据,以及区域、用户和方法偏移量。会导致祈祷时间窗口反转的无效偏移量将返回 invalid_calculation。偏好设置会公开 fixedCoordinatesConfigured 和 fixedCityConfigured,同时隐藏坐标。
分析数据仅存储经过验证的 ChatGPT 用户匿名标识及日期,最长保留 180 天。不会存储单独的请求、会话标识符、错误、位置或机器人流量。快照报告每天最多刷新一次,并且为保护免费额度,每日跟踪会在不同用户达到 500 人后停止。两个仪表板别名都会遵循已配置的服务身份验证;如果没有分析/服务令牌,则可公开访问。具体信任边界请参阅隐私政策。
偏好设置与显示时间约定
显式坐标必须在同一请求中提供 timezone。新显式坐标不会继承已存储的固定位置时区。calculationDetails.timezoneSource 用于标识输入来自显式指定、城市、已存储数据还是主机;城市时区必须与规范城市时区或 IANA 别名匹配。坐标时区会根据近似离线查询和附近边界网格进行校验;值不一致时返回 location_timezone_mismatch,并提供 expectedTimezone。请提供城市或坐标,不要同时提供两者。地理位置的默认权威来源依据查询结果,而非提供的显示时区。
固定模式必须使用受支持的城市或带时区的坐标。新固定坐标必须在同一配置请求中提供时区。配置更新失败时不会保存任何内容。切换到 auto_travel 会保留固定位置以供复用;clearFixedLocation:true 会移除城市、坐标和时区,并默认切换到自动旅行模式,同时保留其他无关偏好设置。清除操作不能与替换位置/时区或不完整的固定模式同时使用。
对于已识别的用户,prayer_window 和 exact_window 会针对每个祷告/日期/模式仅触发一次;persistent 则会在整个祷告时段持续触发。更改区域设置和切换提醒不会重置去重状态。匿名调用不会持久化去重状态。expiresAtUtc 保留其祷告时段含义;prayerWindowExpiresAtUtc 表示同一边界;reminderWindowExpiresAtUtc 描述提醒资格有效期,在精确模式下不会超过祷告时段边界。这些字段会在发出提醒时出现。跨区域 KV 更新和去重仍尽力而为。
巴勒斯坦区域配置是服务端采用的启发式设置,使用埃及计算方法,并将晌礼时间偏移 -1 分钟、昏礼时间偏移 +3 分钟。其宽泛的坐标/时区/国家规则并不代表管辖权判定。尚未通过一手来源核实巴勒斯坦部委是否确切采用这些参数。用户可以覆盖计算方法和偏移量。其他区域选项是服务默认值,并非全国性规定。计算方法说明依据 Adhan 文档。
受支持的城市名称及别名会在每个位置输入架构和生成的技能中列出。服务仅注册五个工具。连接器中出现带后缀的重复工具或旧架构时,需要刷新其注册信息;它们并非独立的服务端操作。
时区校验使用 @photostructure/tz-lookup 11.7.0(紧凑型近似地理数据)。接受规范 IANA 别名;仅匹配采样到的 UTC 偏移并不足够,因为夏令时切换日期可能不同。边界附近会接受约 0.05 度范围内相邻查询区域的时区,并标记为 nearby_boundary。这并非精确的管辖区域判定。数学极点保留显式民用时区选择;海洋网格必须匹配航海时区或附近的民用时区。新建和更新的固定城市偏好设置会存储规范城市时区;不一致的自带值会被拒绝。读取旧版城市记录时会以规范形式呈现,但不会改写其他数据。
在 auto_travel 模式下,调用方必须提供当前城市或坐标/时区;系统不会自动通过 IP 定位。旅行期间,已存储的计算方法偏好仍然生效。exact_window 使用已保存的时长;若未设置,则使用服务默认的 20 分钟,除非运营方进行了覆盖。省略时长会保留现有偏好设置。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。