生产力智能 MCP 🎯
一个基于人工智能的Slack机器人,将日历和生产力管理转变为智能助手。它采用模型上下文协议(MCP)构建,可与您的工作流程无缝集成。
🚀 概述
生产力助手是一款Slack机器人,可帮助您:
- 安排会议 使用自然语言
- 找出最佳会议时间 基于生产力模式
- 保护专注时间 自动地
- 将日历与Slack状态同步
- 分析生产力 获取模式并获得建议
✨ 特点
核心能力
- ✅ 自然语言调度(“明天下午2点安排团队会议”)
- ✅ 智能时间段推荐(考虑生产力模式)
- ✅ 与Google日历集成(读取/写入事件)
- ✅ Slack状态同步
- ✅ 专注时间保护(自动拒绝冲突)
智能功能
- ✅ 多因素时段评分(一天中的时间、会议密度、缓冲时间)
- ✅ 生产力模式分析(最高效时段,繁忙日子)
- ✅ 在专注时间自动开启Slack勿扰模式
- ✅ 日历到Slack同步(会议前自动更新状态)
- ✅ 支持丰富的Slack格式,包括区块和表情符号
🏗️ 建筑学
User (Slack) → Slack Bot → MCP Tools → Backend Services
↓
Google Calendar API
Slack API
OpenAI API (optional)📦 技术栈
- MCP SDK:
@modelcontextprotocol/sdk(TypeScript)(可译为:“(使用TypeScript语言)”或根据上下文简化为“TypeScript”) - 日历: 谷歌日历API v3
- 沟通: Slack Web API + Bolt
- 认证: OAuth 2.0(谷歌API)
- 自然语言处理(NLP): OpenAI GPT-4(可选)
- 前端: Next.js 15(管理仪表板)
🚀 快速入门
先决条件
- Node.js 18及以上版本
- 谷歌云账户(用于日历API)
- 拥有管理员权限的Slack工作区
- OpenAI API密钥(可选,用于更好的自然语言处理)
1. 安装依赖项
npm install2. 配置谷歌日历
- 首选 Google 云控制台
- 创建一个新项目
- 启用Google日历API
- 创建OAuth 2.0凭据(桌面应用程序)
- 添加凭据到
.env.local:
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback- 验证身份:
npm run auth3. 配置Slack机器人
遵循其中的详细指南 SLACK_SETUP.md 收件人:
- 创建Slack应用
- 配置OAuth范围
- 启用套接字模式
- 创建斜杠命令
- 获取API令牌
添加令牌到 .env.local:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your-signing-secret
SLACK_APP_TOKEN=xapp-your-app-token4. 启动机器人
npm run slack-bot🎮 使用方法
快捷指令(或:斜杠命令)
| 命令 | 描述 | 示例 |
|---|---|---|
/schedule | 创建日历事件 | /schedule Team sync tomorrow at 10am for 30 min |
/findtime | 找到最佳时间段 | /findtime 1 hour morning |
/focustime | 激活专注模式 | /focustime 2 hours |
/meetings | 列出即将举行的会议 | /meetings |
/nextmeeting | 获取下次会议信息 | /nextmeeting |
/productivity | 分析模式 | /productivity |
/weeklyreport | 获取每周分析报告 | /weeklyreport |
/monthlyreport | 获取每月分析报告 | /monthlyreport |
/prepmeeting | 准备下次会议 | /prepmeeting |
自然语言
提及该机器人或发送私信:
@Productivity Assistant what's my next meeting?
@Productivity Assistant find time for a 30-minute call tomorrow
@Productivity Assistant schedule a 1:1 with Sarah next week
@Productivity Assistant show me weekly report
@Productivity Assistant prepare for my next meeting智能调度示例
/findtime 1 hour
⭐ Top 5 Optimal Time Slots:
1. Tuesday 10:00 AM (Score: 135)
Peak productivity hours (9-11 AM), Clear block of time, Within preferred hours
2. Wednesday 2:00 PM (Score: 120)
Good afternoon slot, Good buffer time available
3. Thursday 9:30 AM (Score: 130)
Peak productivity hours (9-11 AM), Friday (good for wrap-ups)专注时间保护
/focustime 2 hours
✅ Focus mode activated for 120 minutes
🎯 Slack status: Deep Work - Do Not Disturb
🔕 DND enabled
📅 Calendar blocked📁 项目结构
prod-mcp/
├── server/
│ ├── services/
│ │ ├── auth.service.ts # Google OAuth
│ │ ├── calendar.service.ts # Calendar CRUD
│ │ ├── nlp.service.ts # Natural language parsing
│ │ ├── slack.service.ts # Slack integration
│ │ ├── smart-scheduler.service.ts # Smart scheduling
│ │ └── focus-time.service.ts # Focus time protection
│ ├── tools/
│ │ ├── calendar-tools.ts # Calendar MCP tools
│ │ └── scheduling-tools.ts # Scheduling MCP tools
│ ├── types/
│ │ └── calendar.types.ts # Type definitions
│ ├── slack-bot.ts # Main Slack bot
│ ├── auth-cli.ts # Auth helper
│ └── mcp-server.ts # MCP server
├── app/ # Next.js frontend (admin)
├── components/ # React components
├── SLACK_SETUP.md # Slack setup guide
├── PHASE2_COMPLETE.md # Implementation summary
└── README.md # This file🛠️ 开发
可用脚本
# Authentication
npm run auth # Authenticate with Google Calendar
# Slack Bot
npm run slack-bot # Start Slack bot
# Testing
npm run mcp-test # Test MCP tools
npm run nlp-test # Test NLP service
# Frontend
npm run dev # Start Next.js dev server (admin dashboard)
npm run build # Build for production🧪 测试
见 TESTING.md 用于全面测试指南。
快速测试:
# 1. Authenticate
npm run auth
# 2. Start bot
npm run slack-bot
# 3. Test in Slack
/meetings
/findtime 30 minutes
@bot what's my next meeting?📊 功能分解
智能调度算法
采用多因素评分法:
- ⏰ 一天中的时段: 上午时段(9点至11点)优先
- 🍽️ 对应的中文可以是“餐具”或者根据上下文具体指某种食物或餐饮相关的符号,但在这里作为一个独立的表情符号,通常直接表示“餐饮”或“吃饭”的概念。所以,简单翻译就是“餐饮”或“吃饭”。 避免午餐: 对下午1点至下午1点(此处原文时间表述可能存在笔误,一般应理解为对下午1点至某个更晚时间,但为保持原文结构,此处直译)的时间段进行处罚
- 日历📅 一周中的某天: 基于典型会议模式进行优化
- 📊 表格、数据图表 会议密度: 避开会议多的日子
- ⏱️(倒计时/时间流逝) 缓冲时间: 确保会议间有休息时间
- 🎯(目标) 首选时段: 尊重您的工作时间安排
专注时间保护
- 创建周期性专注时间段
- 带有“禁止预订”功能的自动封锁日历
- 将Slack设置为勿扰模式
- 在Slack中更新状态,使用🎯表情符号
- 自动防止会议冲突
日历-Slack 同步
- 监控即将举行的会议
- 活动前5分钟自动更新Slack状态
- 根据会议类型智能选择表情符号:
- 🗣️ 站会/同步会议 - 🤝 一对一会议 - 📝 评论 - 💼 采访 - 🎯 专注时间
生产力分析
- 确定最高效的工作时段(减少会议时间)
- 找出最不繁忙的日子
- 计算每天平均会议次数
- 提供可操作的建议
🔒 安全
- 适用于Google日历的OAuth 2.0
- 本地存储的代币
data/token.json - Slack Socket 模式(无需公开的 Webhooks)
- 敏感数据的环境变量
- 未在外部服务器上存储数据
🚧 路线图/实施计划
第一阶段:核心日历集成 ✅
- Google OAuth 2.0
- 日历的CRUD操作
- 自然语言解析
- MCP工具定义
第二阶段:灵活与智能调度 ✅
- Slack机器人集成
- 智能调度算法
- 专注时间保护
- 生产力分析
第三阶段:智慧会议 ✅
- 会议准备助手
- 日历分析与见解
- 周报/月报
- 生产率建议
- 基于人工智能的议程生成
📝 文档
SLACK_SETUP.md- 详细的Slack应用配置TESTING.md- 全面的测试指南PHASE2_COMPLETE.md- 第二阶段实施概要PHASE3_COMPLETE.md- 第三阶段实施概要server/README.md- 服务器端文档
🤝 贡献
这个项目是为DoraHacks黑客马拉松而构建的。欢迎贡献!
📄 许可证
麻省理工学院(MIT)
🙏 致谢
- 模型上下文协议(MCP)软件开发工具包(SDK)
- 谷歌日历API
- Slack API
- OpenAI API
- Next.js
______________________________________________________________________
为DoraHacks黑客马拉松倾情打造
