快速日历MCP
使用CalDAV提供日历交互的模型上下文协议(MCP)服务器。它将事件从CalDAV服务器(如Nextcloud、iCloud或Google Calendar)同步到本地SQLite数据库,以便快速访问和操作。
特性
- CalDAV集成:与任何标准CalDAV服务器同步。
- 本地高速缓存:将事件存储在本地SQLite数据库中(
calendar.db)用于低延迟查询。 - HTTP/SSE传输:使用服务器发送事件(SSE)传输标准实现MCP HTTP。
- Docker支持:多架构Docker镜像(AMD64和ARM64)。
- CRUD操作:创建、读取和删除事件。
先决条件
- Python 3.11+
- CalDAV服务器(例如Nextcloud、Baikal、iCloud)
配置
创建一个 .env 根目录中的文件,其中包含您的CalDAV凭据:
CALDAV_BASE_URL=https://your-caldav-server.com/remote.php/dav/
CALDAV_USERNAME=your-username
CALDAV_PASSWORD=your-password运行服务器
Docker Compose(推荐)
docker-compose up -d码头工人
手动构建和运行:
docker build -t fast-calendar-mcp .
docker run -p 8000:8000 --env-file .env fast-calendar-mcp本地开发
- 安装依赖项:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt- 运行服务器:
python src/main.py服务器将在以下时间可用 http://localhost:8000/sse.
MCP工具
此服务器向MCP客户端公开以下工具:
| 工具 | 描述 | 参数 |
|---|---|---|
calendar_list | 列出可用日历。 | 无 |
calendar_list_events | 列出日期范围内的事件。 | start_date (ISO), end_date (ISO,仅日期值包括全天), calendar_name (可选) |
calendar_create_event | 创建新事件。 | calendar_name, summary, start, end, description (可选), location (可选) |
calendar_delete_event | 按UID删除事件。 | calendar_name, uid |
calendar_sync | 强制与远程服务器同步。 | 无 |
API终点
- GET/sse:建立服务器发送事件连接。
- POST/消息:用于向服务器发送JSON-RPC消息的端点。
测试
运行端到端测试脚本以验证功能:
python test_e2e.py许可证
麻省理工学院
