一个全面的模型上下文协议(MCP)服务器,用于CalDAV日历管理,基于FastMCP 2.0构建。Chronos提供了高级的日历和事件管理功能,并支持多账户。
Chronos MCP提供全面的CalDAV任务支持:
# 示例:创建任务
mcp call create_task '{
"calendar_uid": "my-calendar",
"summary": "完成项目文档",
"due": "2_2025-02-01T15:00:00Z",
"priority": 2
}'
使用CalDAV日记条目保持详细的记录:
# 示例:创建日记条目
mcp call create_journal '{
"calendar_uid": "my-calendar",
"summary": "团队会议笔记",
"description": "讨论了Q1目标..."
}'
更多详细用法,请参阅VTODO/VJOURNAL指南。
Chronos MCP现在支持使用系统密钥环(通过python-keyring)进行安全密码存储。当可用时,密码会自动存储在:
如果你有现有账户的密码以明文形式存储,可以迁移到安全存储:
# 检查将要迁移的内容(干运行)
python scripts/migrate_to_keyring.py --dry-run
# 执行实际迁移
python scripts/migrate_to_keyring.py
迁移脚本将:
~/.chronos/accounts.json读取现有密码如果密钥环不可用(例如SSH会话、容器),Chronos MCP将:
注意:如果未安装或不可用密钥环,密码将以明文形式存储在~/.chronos/accounts.json。安装密钥环支持:
pip install "chronos-mcp[secure]" # 或者:pip install keyring
pip install -e .
包括密钥环支持,用于安全密码存储:
pip install -e ".[secure]"
或者如果你已经安装了Chronos:
pip install keyring>=24.0.0
CALDAV_BASE_URL=http://<YOUR_CALDAV_SERVER>:5232
CALDAV_USERNAME=<YOUR_USERNAME>
CALDAV_PASSWORD=<YOUR_PASSWORD>
创建~/.chronos/accounts.json:
{
"accounts": {
"personal": {
"url": "http://<YOUR_CALDAV_SERVER>:5232",
"username": "<YOUR_USERNAME>",
"display_name": "个人日历"
},
"work": {
"url": "https://caldav.company.com",
"username": "user",
"display_name": "工作日历"
}
},
"default_account": "personal"
}
注意:使用密钥环时,JSON中不包含密码。它们将:
scripts/migrate_to_keyring.py从现有配置迁移./run_chronos.sh
列出所有已配置的账户:
list_accounts()
创建带有提醒的事件:
chronos:create_event(
calendar_uid="assistant",
summary="团队会议",
start="2025-07-08T14:00:00",
end="2025-07-08T15:00:00",
location="会议室",
alarm_minutes="15" # 注意:传递字符串!
)
创建带有参与者的重复事件:
chronos:create_event(
calendar_uid="work",
summary="每周站会",
start="2025-07-07T09:00:00",
end="2025-07-07T09:30:00",
recurrence_rule="FREQ=WEEKLY;BYDAY=MO,WE,FR",
attendees_json='[{"email": "team@example.com", "name": "团队"}]'
)
删除事件:
chronos:delete_event(
calendar_uid="assistant",
event_uid="abc-123-def-456"
)
更新事件(部分更新):
chronos:update_event(
calendar_uid="assistant",
event_uid="abc-123-def-456",
location="202室", # 更新位置
alarm_minutes="30" # 更改为30分钟提醒
# 其他字段保持不变
)
查看KNOWN_ISSUES.md了解当前限制和解决方法。
查看CHANGELOG.md了解版本历史。
查看CONTRIBUTING.md了解开发指南。