谷歌日历MCP服务器
MCP(模型上下文协议)服务器,用于谷歌日历与克劳德的集成。提供日历管理、时间跟踪、联系人CRM和项目管理。
特性
核心日历
- 事件的完整CRUD操作
- 具有范围控制的重复事件支持
- 具有RSVP跟踪功能的与会者管理
- 忙/闲查询和会议时段查找器
- 每周分析简报
时间追踪
- 带有计费标志的项目/阶段/任务层次结构
- 月度工时标准和进度跟踪
- 日历事件解析(
PROJECT * PHASE * Description) - 使用下载URL生成Excel报告
联系人CRM
- 具有多渠道支持的联系人数据库(电子邮件、电报、团队、电话)
- 项目角色分配(19个标准角色)
- 组织管理类型(捐助者、银行、mfi、政府等)
- 模糊搜索与智能联系人解析
- 带下载URL的Excel导出
组织
- 为组织提供完整的CRUD
- 将组织与具有角色的项目联系起来
- 组织类型:捐赠者、dfi、银行、mfi、nbfi、政府、监管机构、客户、供应商、咨询、非政府组织、协会、培训提供者、合作伙伴、其他
建筑
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude │────▶│ MCP Server │────▶│ PostgreSQL │
│ Desktop │ │ (FastAPI) │ │ (shared) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Google │
│ Calendar API│
└─────────────┘部署
云(Docker+GitHub操作)
# Clone
git clone https://github.com/DimaRmnv/G-calendar-mcp.git
cd G-calendar-mcp
# Configure
cp .env.example .env
# Edit .env with your credentials
# Deploy (auto via GitHub Actions on push to main)
git push origin main环境变量
# PostgreSQL
POSTGRES_HOST=shared-postgres
POSTGRES_PORT=5432
POSTGRES_USER=travel
POSTGRES_PASSWORD=your_password
POSTGRES_DB=google_calendar_mcp
# API Security
GCAL_MCP_API_KEY=your_api_key
# OAuth
GCAL_MCP_OAUTH_CLIENT_ID=your_client_id
GCAL_MCP_OAUTH_CLIENT_SECRET=your_secret
# Export URLs
EXPORT_BASE_URL=http://your-server:8005本地开发
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"事件格式
事件解析使用 PROJECT * PHASE * TASK * Description 格式:
| 结构级别 | 格式 | 示例 |
|---|---|---|
| 1 | PROJECT * Description | AIYL-MN * Client meeting |
| 2 | PROJECT * PHASE * Description | BCH * AI * Research automation |
| 3 | PROJECT * PHASE * TASK * Description | CAYIB * KG-BAILYK * 1.1 * Workshop prep |
工具
日历
| 工具 | 说明 |
|---|---|
list_events | 列出事件(时间段:今天/周/月) |
create_event | 使用“会议”链接、与会者创建活动 |
update_event | 更新事件;重复范围 |
delete_event | 删除事件 |
search_events | 自由文本搜索 |
时间追踪
| 工具 | 说明 |
|---|---|
projects_manage | CRUD用于项目、阶段、任务、规范、组织 |
projects_report | 生成状态/周/月报告→ Excel |
联系人
| 工具 | 说明 |
|---|---|
contacts | CRUD用于联系人、渠道、任务 |
报告
报告生成带有临时下载URL的Excel文件(1小时TTL):
# Generate weekly report
projects_report(report_type="week")
# Returns: {"download_url": "http://server/export/uuid", "expires_in": "1 hour"}
# Export contacts
contacts(operations=[{"op": "export_contacts"}])
# Returns: {"download_url": "http://server/export/uuid"}项目角色
| 类别 | 角色 |
|---|---|
| 顾问 | TL、DTL、KE、NKE、PM、BSM、JE、LA、INT |
| 客户端 | CD、CPM、PIU、CP、BEN |
| 捐赠者 | DO、DPM、TA |
| 合作伙伴 | PC,SUB |
组织类型
- 资金:捐赠者,dfi
- 金融的:银行、mfi、nbfi
- 公共:政府、监管机构
- 私人:客户、供应商、咨询
- 非营利组织:非政府组织、协会、培训提供者
- 其他:合作伙伴,其他
项目结构
src/google_calendar/
├── server.py # FastAPI + MCP server
├── export_router.py # Excel download endpoint
├── oauth_server.py # OAuth flow
├── api/ # Google Calendar API
├── db/
│ ├── connection.py # PostgreSQL connection pool
│ └── schema.sql # Database schema
└── tools/
├── contacts/ # Contacts CRM
├── projects/ # Time tracking
└── intelligence/ # Weekly brief许可证
MIT许可证
作者
德米特罗·罗曼诺夫
链接
- 存储库:https://github.com/DimaRmnv/G-calendar-mcp
- MCP协议:https://modelcontextprotocol.io/
