使用说明
智能日程管理MCP工具
🧠 AI-powered Schedule Management MCP Tool
基于FastMCP框架的智能日程管理工具,支持语音交互和AI智能功能。
🚀 功能特性
📋 核心功能
- ✅ 智能日程创建 - 支持自然语言创建日程
- 🔍 多维度查询 - 按日期、分类、优先级、标签查询
- ✏️ 灵活更新 - 支持部分更新和批量操作
- 🗑️ 安全删除 - 冲突检测和安全删除机制
- 🏷️ 标签系统 - 灵活的标签分类管理
- 📍 地点支持 - 地点信息管理和交通时间估算
- ⏰ 提醒系统 - 多级智能提醒设置
- 🔄 重复日程 - 支持复杂的重复规则
🤖 AI智能特性
- 🎤 语音交互 - 语音输入创建和管理日程,支持情感识别
- 🧠 上下文理解 - 智能理解对话上下文,支持上下文更新
- 🗣️ 自然语言查询 - 支持自然语言查询日程,智能语义理解
- 🔍 智能语义搜索 - AI驱动的语义搜索,相似度匹配
- ⚡ 智能提醒 - 基于优先级和习惯的智能提醒系统
- 📊 习惯分析 - 用户行为模式识别和多维度习惯分析
- 🎯 冲突解决 - 智能冲突检测和解决方案
- 📈 效率分析 - 生产效率统计和趋势分析
- 🎨 自然语言创建 - 自然语言文本创建日程
🛠️ 安装和使用
环境要求
- Python 3.14+
- uv 包管理器
安装步骤
- 克隆项目
git clone <repository-url>
cd mcp-general-plan
- 安装依赖
uv init . -p 3.14
uv add 'mcp[cli]'
uv add fastmcp pydantic python-dateutil croniter jieba spacy pandas numpy
- 启动服务
python main.py
测试基础功能
运行测试脚本验证功能:
python test_basic_functionality.py
📖 MCP工具接口
核心工具
📝 smart_create_schedule
智能创建日程
smart_create_schedule(
title="会议标题",
start_time="2024-12-15T14:00:00",
end_time="2024-12-15T15:00:00",
description="会议描述",
location_name="会议室A",
priority="high", # low/normal/high/urgent/critical
category="work", # personal/work/study/meeting/health/entertainment/other
tags=["重要", "会议"]
)
🎤 natural_create_schedule
自然语言创建日程
natural_create_schedule(
text_input="明天下午2点到4点在会议室A开会讨论项目进度"
)
🗣️ natural_query_schedules
自然语言查询日程
natural_query_schedules(
query="明天下午的重要会议",
context="昨天刚开完项目启动会"
)
🧠 contextual_update_schedule
上下文更新日程
contextual_update_schedule(
schedule_id=1,
update_text="把会议时间改到后天上午",
context="考虑到团队成员时间安排"
)
📋 get_schedules
查询日程列表
get_schedules(
start_date="2024-12-01", # 可选
end_date="2024-12-31", # 可选
category="work", # 可选
status="pending", # 可选 pending/completed/cancelled
keyword="会议", # 可选
limit=50, # 可选
sort_by="start_time", # 可选
sort_order="asc" # 可选 asc/desc
)
🔍 get_schedule_by_id
根据ID获取日程详情
get_schedule_by_id(schedule_id=1)
✏️ update_schedule
更新日程信息
update_schedule(
schedule_id=1,
title="新标题", # 可选
start_time="2024-12-15T15:00:00", # 可选
end_time="2024-12-15T16:00:00", # 可选
description="新描述", # 可选
priority="urgent", # 可选
category="meeting", # 可选
status="completed" # 可选
)
🗑️ delete_schedule
删除日程
delete_schedule(schedule_id=1)
🔎 search_schedules
搜索日程
search_schedules(keyword="团队", limit=20)
📅 get_today_schedules
获取今天的日程
get_today_schedules()
📆 get_week_schedules
获取本周的日程
get_week_schedules()
⚠️ check_schedule_conflicts
检查日程冲突
check_schedule_conflicts(
start_time="2024-12-15T14:00:00",
end_time="2024-12-15T15:00:00",
exclude_id=1 # 可选,排除特定日程
)
📊 分析工具
🧠 habit_insights
用户习惯分析
habit_insights(
analysis_period="month", # week/month/quarter/year
include_recommendations=True
)
📈 get_habit_comparison
习惯对比分析
get_habit_comparison(
period1="本月",
period2="上月"
)
📊 productivity_analysis
效率分析
productivity_analysis(
period="week", # week/month/quarter/year
include_trends=True, # 包含趋势分析
include_recommendations=True
)
📈 get_productivity_trends
效率趋势分析
get_productivity_trends(
period_type="month", # week/month
periods=4 # 分析周期数
)
⏰ get_upcoming_schedules
获取即将到来的日程
get_upcoming_schedules(hours=24) # 未来24小时内的日程
🔍 AI智能工具
🔎 ai_search_schedules
AI语义搜索日程
ai_search_schedules(
query="重要的工作安排",
similarity_threshold=0.3, # 相似度阈值
include_completed=False, # 是否包含已完成
limit=20
)
⚡ intelligent_reminder
智能提醒管理
intelligent_reminder(
schedule_id=1,
reminder_type="smart", # smart/adaptive/fixed/predictive
custom_times=["30min", "1hour", "1day"]
)
💡 get_reminder_recommendations
获取智能提醒推荐
get_reminder_recommendations(schedule_id=1)
🎤 voice_schedule_manager
语音日程管理
voice_schedule_manager(
voice_input="帮我创建明天下午3点的会议",
action="create", # create/update/query/delete
emotion_detection=True # 情感识别
)
🔊 get_voice_settings
获取语音设置
get_voice_settings()
⚙️ update_voice_settings
更新语音设置
update_voice_settings(
language="zh-CN",
voice_speed=1.0,
emotion_intensity=0.8
)
🎯 test_voice_recognition
测试语音识别
test_voice_recognition(test_text="测试语音识别功能")
📊 数据库结构
核心表
schedules - 日程表
id- 主键title- 标题description- 描述start_time- 开始时间end_time- 结束时间location_id- 地点ID (外键)priority- 优先级 (1-5)category- 分类status- 状态recurrence_rule- 重复规则JSONai_score- AI智能评分
reminders - 提醒表
schedule_id- 日程ID (外键)remind_at- 提醒时间remind_type- 提醒类型is_sent- 是否已发送ai_recommended- 是否AI推荐
locations - 地点表
name- 地点名称address- 地址latitude- 纬度longitude- 经度travel_time_cache- 交通时间缓存JSON
tags - 标签表
name- 标签名称color- 标签颜色
🏗️ 项目结构
mcp-general-plan/
├── main.py # MCP服务入口,包含所有工具函数
├── src/
│ ├── __init__.py
│ ├── database/ # 数据库层
│ │ ├── models.py # 数据库模型
│ │ └── operations.py # 数据库操作
│ ├── services/ # 业务逻辑层
│ │ ├── schedule_service.py # 日程服务
│ │ └── reminder_service.py # 智能提醒服务
│ ├── schemas/ # 数据模式
│ │ ├── schedule.py # 日程数据模式
│ │ ├── user.py # 用户数据模式
│ │ └── analytics.py # 分析数据模式
│ ├── ai/ # AI智能模块
│ │ ├── nlp_engine.py # 自然语言处理引擎
│ │ ├── query_engine.py # 查询引擎
│ │ ├── context_manager.py # 上下文管理器
│ │ └── semantic_search.py # 语义搜索引擎
│ ├── voice/ # 语音交互模块
│ │ └── voice_manager.py # 语音管理器
│ ├── analytics/ # 分析模块
│ │ ├── habit_analyzer.py # 习惯分析器
│ │ └── productivity_tracker.py # 效率追踪器
│ ├── integrations/ # 外部集成
│ ├── utils/ # 工具类
│ │ └── time_parser.py # 时间解析工具
├── tests/ # 测试代码
│ ├── test_basic_functionality.py # 基础功能测试
│ └── test_mcp_client.py # MCP客户端测试
├── docs/ # 文档
├── DESIGN.md # 详细设计文档
└── README.md # 项目说明文档
🧪 测试
运行基础功能测试
python test_basic_functionality.py
测试覆盖的功能
- ✅ 日程创建
- ✅ 日程查询
- ✅ 日程更新
- ✅ 日程删除
- ✅ 日程搜索
- ✅ 冲突检测
- ✅ 今天/本周日程
- ✅ 数据库操作
- ✅ 自然语言创建
- ✅ 提醒功能完整流程(v1.2.0修复)
- ✅ 上下文更新
- ✅ 智能语义搜索
- ✅ 智能提醒系统
- ✅ 语音交互管理
- ✅ 习惯分析
- ✅ 效率分析
最新修复验证 (v1.2.0)
- 提醒功能测试: 验证自然语言创建日程时提醒记录正确创建
# 测试用例 natural_create_schedule("明天下午3点开会,提前10分钟提醒我准备材料") - 预期结果: 创建日程ID和对应的提醒记录,提醒时间计算正确
🚧 开发计划
✅ 已完成
- [x] 基础项目结构
- [x] 数据库设计和实现
- [x] MCP基础框架
- [x] 核心日程CRUD功能
- [x] 基础测试验证
- [x] 智能时间解析
- [x] 自然语言处理引擎
- [x] 自然语言创建日程
- [x] 上下文理解和更新
- [x] 智能语义搜索引擎
- [x] 智能提醒系统
- [x] 语音交互接口
- [x] 用户习惯分析器
- [x] 效率分析和趋势追踪
- [x] AI智能建议引擎
- [x] 多维度分析功能
📋 规划中
- [ ] 外部日历同步 (Google Calendar, Outlook等)
- [ ] 高级统计报表和数据可视化
- [ ] 多语言支持 (英文、日文等)
- [ ] Web管理界面
- [ ] 移动端应用
- [ ] 团队协作功能
- [ ] 第三方集成 (Slack, Teams,钉钉等)
- [ ] 云端同步和备份
🎯 使用示例
基础使用场景
1. 创建工作日程
result = smart_create_schedule(
title="项目评审会议",
start_time="2024-12-15T14:00:00",
end_time="2024-12-15T16:00:00",
description="Q4项目进度评审",
location_name="会议室A",
priority="high",
category="meeting",
tags=["项目", "评审", "重要"]
)
2. 自然语言创建日程
result = natural_create_schedule(
text_input="明天下午2点到4点在会议室A开会讨论项目进度"
)
3. 自然语言查询
result = natural_query_schedules(
query="明天下午的重要会议",
context="昨天刚开完项目启动会"
)
4. AI语义搜索
result = ai_search_schedules(
query="重要的工作安排",
similarity_threshold=0.3
)
5. 语音日程管理
result = voice_schedule_manager(
voice_input="帮我创建明天下午3点的会议",
action="create"
)
6. 智能提醒设置
result = intelligent_reminder(
schedule_id=1,
reminder_type="smart",
custom_times=["30min", "1hour", "1day"]
)
7. 习惯分析
result = habit_insights(
analysis_period="month",
include_recommendations=True
)
8. 效率分析
result = productivity_analysis(
period="week",
include_trends=True
)
高级使用场景
1. 查询本周工作日程
result = get_week_schedules()
if result["success"]:
schedules = result["schedules"]
work_schedules = [s for s in schedules if s["category"] == "work"]
print(f"本周有 {len(work_schedules)} 个工作日程")
2. 检查时间冲突
result = check_schedule_conflicts(
start_time="2024-12-15T15:00:00",
end_time="2024-12-15T17:00:00"
)
if result["has_conflict"]:
print("发现时间冲突:")
for conflict in result["conflicts"]:
print(f"- {conflict['title']}: {conflict['start_time']} - {conflict['end_time']}")
3. 批量日程管理
# 语义搜索批量相关日程
result = ai_search_schedules(query="所有客户会议")
# 习惯对比分析
comparison = get_habit_comparison(period1="本月", period2="上月")
# 效率趋势分析
trends = get_productivity_trends(period_type="month", periods=3)
🤝 贡献指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
📋 更新日志
查看详细的版本更新历史:
- 📄 Release Notes - 完整的版本更新记录
- 🐛 最新修复 (v1.2.0): 修复提醒功能bug,确保自然语言创建日程时提醒记录正确创建
- 🚀 功能改进: 优化智能分割逻辑,支持更多自然语言表达
📞 支持
如有问题或建议,请:
- 查看 Release Notes 了解最新更新
- 查看 DESIGN.md 了解详细设计
- 运行测试脚本检查环境
- 创建 Issue 或 Discussion
智能日程管理MCP工具 - 让日程管理更智能、更高效! 🚀