这是一个提供对macOS Calendar.app事件和提醒访问的MCP(模型上下文协议)服务器,用于与Claude和其他AI助手集成。
此包可以作为MCP服务器运行,以与支持MCP协议的Claude和其他AI助手集成,使它们能够访问并与其macOS日历数据进行交互。
# 作为MCP服务器运行以集成AI助手
uvx calendar-app-mcp # 自动作为MCP服务器运行,无需参数
uvx calendar-app-mcp mcp # 显式运行MCP服务器
一旦运行,Claude可以通过MCP协议与您的日历数据进行交互,允许它:
此包提供了几个MCP工具和资源:
get_events: 获取特定日期范围内的事件get_reminders: 获取特定日期范围内的提醒list_calendars: 列出所有可用的日历get_today_summary: 获取当天事件和提醒的摘要search: 搜索包含特定术语的事件和提醒get_current_time: 获取任何时区的当前日期和时间convert_time: 将时间从一个时区转换到另一个时区list_timezones: 列出可用的时区,可选地按地区筛选calendar://events/{date}: 访问特定日期的事件calendar://calendars: 访问可用日历列表datetime://current/{timezone}: 获取特定时区的当前时间daily_agenda: 生成查看您日常安排的提示# 从PyPI安装
pip install calendar-app-mcp
# 使用uv
uv pip install calendar-app-mcp
# 使用uvx(直接执行而不安装)
uvx calendar-app-mcp calendars
uvx calendar-app-mcp mcp
安装后,该包提供了两个命令行可执行文件:
# 通用日历应用工具 - 在没有参数的情况下运行时显示帮助信息
calendar-app
# 集中于MCP的变体 - 在没有参数的情况下默认运行MCP服务器
calendar-app-mcp
两个命令都支持相同的子命令,但calendar-app-mcp针对作为MCP服务器使用进行了优化。
# 克隆仓库
git clone https://github.com/rygwdn/calendar-app-mcp.git
cd calendar-app-mcp
# 如果尚未安装,请安装uv包管理器
# https://github.com/astral-sh/uv
# 以开发模式安装包
uv install -e .
# 安装开发依赖项(用于测试)
uv install -e '.[dev]'
除了作为MCP服务器运行外,此包还可以作为命令行工具直接访问日历数据:
# 列出可用日历
uvx calendar-app-mcp calendars
# 获取今天的事件和提醒
uvx calendar-app-mcp today
# 获取仅事件
uvx calendar-app-mcp events
# 获取仅提醒
uvx calendar-app-mcp reminders
# 获取事件和提醒
uvx calendar-app-mcp all
# 显示JSON模式
uvx calendar-app-mcp schema
# 检查版本
uvx calendar-app-mcp --version
# 或
uvx calendar-app-mcp version
大多数子命令接受以下选项:
# 输出为JSON格式(默认为markdown)
uvx calendar-app-mcp events --json
# 根据日期范围筛选
uvx calendar-app-mcp events --from 2024-12-01 --to 2024-12-31
# 根据特定日历筛选
uvx calendar-app-mcp events --calendars "Work" "Personal"
# 仅显示全天事件
uvx calendar-app-mcp events --all-day-only
# 仅显示忙碌事件
uvx calendar-app-mcp events --busy-only
# 包括已完成的提醒
uvx calendar-app-mcp reminders --include-completed
确保UV使用公共PyPI注册表而不是任何本地配置的存储库:
# 使用仅PyPI生成锁文件
UV_NO_CONFIG=1 uv lock
# 使用仅PyPI安装依赖项
UV_NO_CONFIG=1 uv install
UV_NO_CONFIG=1环境变量告诉UV忽略任何系统级配置,并仅使用公共PyPI注册表。
要发布新版本到PyPI:
pyproject.toml中的版本号uv run pytest --black --ruffUV_NO_CONFIG=1 uv run python -m buildUV_NO_CONFIG=1 uv run twine upload dist/calendar_app_mcp-X.Y.Z*
将X.Y.Z替换为实际版本号。uvx calendar-app-mcp@latest --versiongit tag vX.Y.Z && git push origin vX.Y.Z请参阅CLAUDE.md文件获取更多详细说明。
运行所有测试:
python -m pytest
带有覆盖率报告的测试运行:
python -m pytest --cov=calendar_app
运行特定测试文件:
python -m pytest tests/unit/utils/test_date_utils.py
运行特定测试:
python -m pytest tests/unit/utils/test_date_utils.py::TestParseDate::test_valid_date