时间跟踪器AI-与MCP的日历同步
基于模型上下文协议(MCP)的解决方案,用于自动同步谷歌日历事件 蒂卡尔时间追踪器.
概述
此项目演示了如何使用MCP服务器创建日历同步工具。它由两个主要部分组成:
- 时间跟踪器mcp -Tikal时间跟踪器API的定制MCP服务器
- 时间跟踪器同步 -使用MCP服务器将日历事件同步到时间跟踪器的CLI工具
建筑
┌─────────────────────────────────┐
│ Time Tracker Sync CLI │
│ (time-tracker-sync/) │
└────────────┬────────────────────┘
│
┌──────┴──────┐
│ │
┌─────▼──────┐ ┌──▼──────────────┐
│ Google │ │ Time Tracker │
│ Calendar │ │ MCP Server │
│ MCP │ │ (custom built) │
│ (public) │ │ │
└────────────┘ └─────────┬───────┘
│
┌─────▼──────┐
│ Time │
│ Tracker │
│ API │
└────────────┘特性
- 自动将Google日历会议同步到时间跟踪器
- 将事件分类为会议、假期或WFO(在办公室工作)
- 正确处理以色列假期
- 用Truvify工作填满剩余时间(周日至周四每天9小时)
- 检测并解决与现有时间条目的冲突
- 使用MCP构建,实现模块化和可重用性
快速开始
1.构建时间跟踪器MCP服务器
cd time-tracker-mcp
npm install
npm run build2.设置同步工具
cd time-tracker-sync
npm install
cp .env.example .env
# Edit .env with your credentials
npm run build3.运行同步
cd time-tracker-sync
npm run sync项目组成部分
时间跟踪器mcp/
一个自定义MCP服务器,包装Tikal时间跟踪器API。提供以下工具:
- 身份验证(
time_tracker_login) - 添加时间条目(
time_tracker_add_time) - 查询报告(
time_tracker_get_reports) - 获取项目/任务(
time_tracker_get_projects)
请参阅时间跟踪器mcp/README.md 了解详情。
时间跟踪器同步/
一个CLI工具,使用MCP服务器协调Google日历和时间跟踪器之间的同步。
主要特点:
- 连接到Google日历MCP(公共)和时间跟踪器MCP(本地)
- 实现日常时间计算的业务逻辑
- 根据用户提示处理冲突解决
- 支持按月或单日期同步
请参阅时间跟踪器同步/README.md 了解详情。
配置
时间跟踪器MCP
无需配置-它代理现有的时间跟踪器api。
支持电脑同步传输工具
创建一个 .env 文件在 time-tracker-sync/:
# Time Tracker Credentials
TIME_TRACKER_EMAIL=your.email@tikalk.com
TIME_TRACKER_PASSWORD=your_password
# Google Calendar IDs
GOOGLE_CALENDAR_ID=your.email@tikalk.com
GOOGLE_HOLIDAY_CALENDAR_ID="en.judaism#holiday@group.v.calendar.google.com"
# MCP Server Paths
TIME_TRACKER_MCP_PATH=../time-tracker-mcp/dist/index.js
GOOGLE_CALENDAR_MCP_COMMAND=npx
GOOGLE_CALENDAR_MCP_ARGS=-y,@cocal/google-calendar-mcp使用示例
同步当前月份
cd time-tracker-sync
npm run sync同步特定月份
npm run sync -- --month 2025-11同步单个日期
npm run sync -- --date 2025-11-24测试MCP连接
node dist/index.js test-connection日常逻辑
每个工作日(周日至周四):
- 假期 → 完全跳过
- WFO事件 → 提交9小时Truvify
- 度假活动 → 提交9小时假期(项目=14,任务=8)
- 正常工作日:
- 总会议时间→ 以Tikal会议的形式提交(项目=14,任务=13) - 计算剩余金额→ 以Truvify格式提交(项目=938,任务=5) - 总计=9小时
为什么选择MCP?
该项目展示了MCP的优势:
- 模块化:时间跟踪器MCP可以被其他工具重用
- 关注点分离:API逻辑与业务逻辑分离
- 可测试性:每个组件都可以独立测试
- 可扩展性:易于添加新的MCP工具或连接到其他日历
- 人工智能集成:MCP服务器与Claude和其他AI助手无缝协作
发展
构建两个项目
# Build Time Tracker MCP
cd time-tracker-mcp
npm run build
# Build Sync Tool
cd ../time-tracker-sync
npm run build观看模式
# In separate terminals:
cd time-tracker-mcp && npm run watch
cd time-tracker-sync && npm run watch依赖项
- Node.js 18+
- TypeScript 5.7+
- @模型上下文协议/sdk -MCP-SDK
- 轴 -时间跟踪器API的HTTP客户端
- 日期fns -日期操纵
- 指挥官 -CLI框架
- 询问者 -用户提示
- 动物圈 -架构验证
相关项目
- 时间跟踪器api -底层时间跟踪器API
- @可口可乐/谷歌日历mcp -谷歌日历MCP服务器
故障排除
有关具体的故障排除,请参阅每个子目录中的README文件:
许可证
麻省理工学院
