智能日程管理MCP工具

这是一款基于FastMCP框架的智能日程管理工具,提供自然语言创建/查询日程、AI语义搜索、智能提醒、语音交互和效率分析等功能,适用于个人和团队的日程安排与时间管理场景。

  • by Danson-dan
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Danson-dan/mcp_general_plan

使用说明

智能日程管理MCP工具

🧠 AI-powered Schedule Management MCP Tool

基于FastMCP框架的智能日程管理工具,支持语音交互和AI智能功能。

🚀 功能特性

📋 核心功能

  • ✅ 智能日程创建 - 支持自然语言创建日程
  • 🔍 多维度查询 - 按日期、分类、优先级、标签查询
  • ✏️ 灵活更新 - 支持部分更新和批量操作
  • 🗑️ 安全删除 - 冲突检测和安全删除机制
  • 🏷️ 标签系统 - 灵活的标签分类管理
  • 📍 地点支持 - 地点信息管理和交通时间估算
  • ⏰ 提醒系统 - 多级智能提醒设置
  • 🔄 重复日程 - 支持复杂的重复规则

🤖 AI智能特性

  • 🎤 语音交互 - 语音输入创建和管理日程,支持情感识别
  • 🧠 上下文理解 - 智能理解对话上下文,支持上下文更新
  • 🗣️ 自然语言查询 - 支持自然语言查询日程,智能语义理解
  • 🔍 智能语义搜索 - AI驱动的语义搜索,相似度匹配
  • ⚡ 智能提醒 - 基于优先级和习惯的智能提醒系统
  • 📊 习惯分析 - 用户行为模式识别和多维度习惯分析
  • 🎯 冲突解决 - 智能冲突检测和解决方案
  • 📈 效率分析 - 生产效率统计和趋势分析
  • 🎨 自然语言创建 - 自然语言文本创建日程

🛠️ 安装和使用

环境要求

  • Python 3.14+
  • uv 包管理器

安装步骤

  1. 克隆项目
git clone <repository-url>
cd mcp-general-plan
  1. 安装依赖
uv init . -p 3.14
uv add 'mcp[cli]'
uv add fastmcp pydantic python-dateutil croniter jieba spacy pandas numpy
  1. 启动服务
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 - 重复规则JSON
  • ai_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)

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📋 更新日志

查看详细的版本更新历史:

  • 📄 Release Notes - 完整的版本更新记录
  • 🐛 最新修复 (v1.2.0): 修复提醒功能bug,确保自然语言创建日程时提醒记录正确创建
  • 🚀 功能改进: 优化智能分割逻辑,支持更多自然语言表达

📞 支持

如有问题或建议,请:

  1. 查看 Release Notes 了解最新更新
  2. 查看 DESIGN.md 了解详细设计
  3. 运行测试脚本检查环境
  4. 创建 Issue 或 Discussion

智能日程管理MCP工具 - 让日程管理更智能、更高效! 🚀