礼仪日历MCP服务器
A. 模型上下文协议(MCP) 提供访问权限的服务器 罗马天主教宗教日历API 允许检索任何一年、不同国家或教区的礼仪日历数据。
MCP服务器是人工智能助手访问礼仪日历数据的安全接口,提供统一的接口 作为AI代理的结构化工具集。这使得兼容的AI系统(如ChatGPT MCP客户端、LangChain代理和自定义LLM运行时)成为可能 以充分的上下文智能推理礼仪日期、季节、节日、圣徒和礼仪排名。
目的
该MCP服务器为人工智能助手提供了一个安全的接口,以访问约翰·R·D·奥拉齐奥牧师维护的API手术日历中的礼拜日历数据。 它支持查询1970年至9999年历史精度的通用罗马日历、国家日历和教区日历。
特性
当前实施情况
list_available_calendars-列出所有可用的国家和教区日历及其地区和设置get_general_calendar-使用可选区域设置检索特定年份的通用罗马日历get_national_calendar-检索特定国家(即IT、美国、NL、VA、CA……)和年份的礼拜日历get_diocesan_calendar-检索特定教区和年份的礼拜日历get_liturgy_of_the_day-从任何支持的日历中检索特定日期(或今天,如果未指定)的礼仪庆祝活动get_announcement_easter_and_moveable_feasts-检索复活节和可移动节日的公告(又名 *Noveritis*)
在任何支持的日历的特定年份的主显节上发音
特定庆祝活动检测
检索国家或教区日历时,服务器会自动识别并突出显示该日历特有的庆祝活动:
- 混合检测方法:事件使用两种方法标记为特定:
1. 事件密钥比较 -事件谁 event_key 在通用罗马日历中找不到 1. 方括号检测 -名称中带有方括号的事件(例如。, [USA], [Diocese of Rome])
- 智能过滤:平日活动(0级)被自动排除在特定的庆祝活动之外,因为它们代表了轻微的礼仪差异,不足以突出
- 用例:
- 确定特定于一个国家或教区的守护神 - 探索当地的节日和纪念活动 - 比较地区礼拜仪式的变化 - 结合当地情况规划礼仪庆祝活动
此功能有助于区分普遍庆祝活动(在通用罗马日历中)和特定国家或教区的区域庆祝活动。
先决条件
- 启用MCP工具包的Docker桌面
- Docker MCP CLI插件(
docker mcp命令) - 无需身份验证-API可公开访问
安装
有关更多详细信息,请参阅项目维基中提供的分步说明和屏幕截图: .
- 安装Docker桌面
从下载并安装Docker桌面 .
- 启用Docker MCP工具包
打开Docker桌面设置,在“Beta功能”选项卡下启用MCP工具包。 现在,您应该在Docker Desktop左侧边栏中看到“MCP Toolkit”图标。 也许可以尝试启用目录中的工具作为概念验证,例如“黑曜石”。 然后将MCP工具包连接到像Claude Desktop这样的客户端。 重启Claude Desktop后,点击聊天提示下方的“工具”图标, 您应该看到一个“MCP_DOCKER”类别,然后单击该类别旁边的箭头 您应该看到可用的工具调用(例如,如果您从Docker MCP目录启用了黑曜石工具,则会看到黑曜岩工具调用)。
- 克隆存储库
git clone https://github.com/CatholicOS/liturgical-calendar-mcp.git
cd liturgical-calendar-mcp- 构建Docker镜像
docker build -t liturgical-calendar-mcp .- 更新Docker桌面MCP目录
编辑文件 %USERPROFILE%\.docker\mcp\catalogs\docker-mcp.yaml,并将其粘贴到末尾:
litcal:
description: "Access Roman Catholic Liturgical Calendar data for any year, nation, or diocese from 1970-9999"
title: "Liturgical Calendar"
type: server
dateAdded: "2025-10-22T00:00:00Z"
image: litcal-mcp-server:latest
ref: ""
readme: ""
toolsUrl: ""
source: ""
upstream: ""
icon: ""
tools:
- name: get_general_calendar
- name: get_national_calendar
- name: get_diocesan_calendar
- name: list_available_calendars
- name: get_liturgy_of_the_day
- name: get_announcement_easter_and_moveable_feasts
metadata:
category: integration
tags:
- catholic
- liturgy
- calendar
- religious
license: MIT
owner: locallitcal 应该是的后裔 registry.
编辑文件 %USERPROFILE%\.docker\mcp\registry.yaml,并将其粘贴到末尾:
litcal:
ref: ""再一次, litcal 应该是的后裔 registry.
无需启动任何容器,当代理尝试访问工具时,Docker MCP Toolkit将根据需要启动工具容器。
尝试使用Claude Desktop:如果它已经启动,请完全退出Claude Desktop(确保它没有在托盘中的后台运行),然后重新启动。
现在,您应该可以在以下工具列表中看到“Liturgical Calendar”工具 MCP_DOCKER 类别。
\[!注意\] Docker MCP Toolkit仅正式支持已发布在在线目录中的MCP服务器, 因此,每次重新启动Docker Desktop时,它都会删除registry.yaml和catalogs/docker-mcp.yaml文件夹。 如果您发现工具调用突然停止工作,您可能需要手动更新registry.yaml和catalogs/docker-mcp.yaml文件再次。
Claude桌面和VS代码的本地安装
如果你想在本地运行MCP服务器,并在没有Docker MCP工具包的情况下将其与Claude Desktop或VS Code集成, 看见 CLAUDE_VSCODE_INSTALL.md 获取分步说明。
配置
MCP服务器可以通过用户配置文件进行定制。 这允许您在不修改代码库的情况下调整API端点、缓存设置等。
创建配置
- 复制示例配置文件:
cp litcal.config.example.yaml litcal.config.yaml- 编辑
litcal.config.yaml使用您的首选设置:
# API Configuration
api_base_url: "https://litcal.johnromanodorazio.com/api/dev"
default_timeout: 30
# Cache Configuration
metadata_cache_expiry_hours: 24
calendar_cache_expiry_hours: 168
cache_dir: "./cache"- 你的
litcal.config.yamlgit会自动忽略该文件,并且不会将其提交。
配置选项
API设置
api_base_url-API牙科日历的基本URL(默认值:https://litcal.johnromanodorazio.com/api/dev)default_timeout-API请求的超时时间(以秒为单位)(默认值:30)
缓存设置
metadata_cache_expiry_hours-缓存可用日历列表的时间(默认值:24小时)calendar_cache_expiry_hours-缓存礼仪日历数据的时间(默认值:168小时/1周)cache_dir-缓存文件的目录,绝对或相对于项目根目录(默认:./cache)
环境变量
您还可以使用环境变量(最高优先级)覆盖任何配置设置:
LITCAL_API_BASE_URLLITCAL_DEFAULT_TIMEOUTLITCAL_METADATA_CACHE_EXPIRY_HOURSLITCAL_CALENDAR_CACHE_EXPIRY_HOURSLITCAL_CACHE_DIR
例子:
export LITCAL_DEFAULT_TIMEOUT=60
python litcal_server.py配置优先
设置按以下顺序加载(最高优先级优先):
- 环境变量
- 用户配置文件(
litcal.config.yaml) - 默认设置(
settings.py)
用法示例
在Claude Desktop中,您可以问:
- “列出所有可用的国家礼拜日历”
- “给我看看2024年美国的礼拜日历”
- “罗马教区今年的日历是什么?”
- “加拿大庆祝哪些礼仪活动?”
- “今年意大利有哪些特别的庆祝活动?”
- “给我看看波士顿教区的守护神和当地节日”
- “获取当天的礼拜仪式”
- “获取罗马教区当天的礼拜仪式”
- “获取2024年罗马教区当天的礼拜仪式”
- “获取3036年9月8日美国的礼拜仪式”
建筑
flowchart LR
ClaudeDesktop --> MCPGateway --> LiturgicalCalendarMCPServer --> LiturgicalCalendarAPIapi信息
基于OpenAPI 3.1.0规范
- 许可证:Apache 2.0
- 维护者:约翰·R·D·奥拉齐奥牧师
- 支持年份: 1970-9999
- 可用地区:恩,fr,it,la,nl
日历类型
通用罗马历
罗马天主教会的通用日历
国家日历
- 信息技术 -意大利
- 美国 -美国
- 荷兰 -荷兰
- VA -梵蒂冈
- CA -加拿大
教区日历
国家领土内的各个教区(使用 list_available_calendars 查看全部)
发展
局部测试
# Run directly
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
python litcal_server.py
# Ctrl+C to stop (you may have to do so a few times)
# Test MCP protocol
python test_mcp_list_tools.py | python litcal_server.py | jq
# This should output, in pretty-printed JSON format, the tools made available by the MCP server
# Ctrl+C to stop
# There are a few other similar test scripts for testing the various tool calls添加新工具
- 将该功能添加到
litcal_server.py - 用…装饰
@mcp.tool() - 确保所有参数都有明确定义的类型
- 方法docstring应该总结工具的目的,
并解释如何实现参数, 可能提供几个例子;LLM读取docstring, 因此,这为它提供了如何使用该工具的背景
- 返回带有表情符号的格式化字符串
- 重建Docker镜像
故障排除
工具未出现
- 验证Docker镜像构建成功:
docker images | grep litcal - 检查目录和注册表文件的格式是否正确
- 确保Docker桌面MCP配置文件包括
litcal工具 - 完全重新启动克劳德桌面
连接错误
- 验证互联网连接
- 在检查API状态 https://litcal.johnromanodorazio.com/api/dev
日历ID无效
- 使用
list_available_calendars查看有效的国家和教区代码 - 国家代码必须是大写的ISO 3166-1 alpha-2代码(
IT,US,NL,VA,CA) - 教区代码小写,带下划线(
romamo_it,boston_us)
数据准确性
API手术日历力求历史准确性:
- 基于原始资料(罗马弥撒书、梵蒂冈法令)
- 仅在他们的介绍年产生的纪念日和节日
- 遵循Mysterii Paschalis和其他礼仪文件
- 未从可能不准确的在线来源复制
礼仪等级
事件按重要性分级(0-7):
- 0 -工作日
- 1 -纪念活动
- 2 -可选纪念馆
- 3 -纪念馆
- 4 -盛宴
- 5 -主的盛宴
- 6 -郑重声明
- 7 -更高的庄严(优先于常规庄严)
安全考虑
- 无需身份验证(公共API)
- 在容器中以非root用户身份运行
- 所有数据都是只读的
- 未处理敏感信息
许可证
Apache 2.0许可证
鸣谢
手术日历API由John R.D‘Orazio牧师创建和维护 API文件: Swagger 用户界面
______________________________________________________________________
备注:此服务器访问开发API终结点。对于生产使用,请考虑使用稳定的API端点(如果可用)。
🙏 任务
这个MCP服务器是更广泛倡议的一部分,该倡议旨在以忠实和结构化的方式使教会的礼仪、圣经和规范遗产可供人工智能系统访问。
“传教士总是与基督一起前往新的领域,而圣灵推动并先于他们”(SR 17c)。 我们只能以弗朗西斯·泽维尔或卡布里尼母亲的热情来看待这个所谓的新大陆。 — 红衣主教迈克尔·切尔尼, 新世界与新使命
