Skip to content

Danson-dan/general_plan

Repository files navigation

智能日程管理MCP工具

🧠 AI-powered Schedule Management MCP Tool

基于FastMCP框架的智能日程管理工具,支持语音交互和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=["重要", "会议"]
)

📋 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  # 可选,排除特定日程
)

⏰ get_upcoming_schedules

获取即将到来的日程

get_upcoming_schedules(hours=24)  # 未来24小时内的日程

📊 数据库结构

核心表

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 # 日程服务
│   ├── schemas/               # 数据模式
│   │   ├── schedule.py        # 日程数据模式
│   │   ├── user.py           # 用户数据模式
│   │   └── analytics.py      # 分析数据模式
│   ├── ai/                    # AI模块 (规划中)
│   ├── integrations/           # 外部集成 (规划中)
│   └── utils/                 # 工具类 (规划中)
├── tests/                     # 测试代码
├── docs/                      # 文档
├── DESIGN.md                  # 详细设计文档
└── test_basic_functionality.py # 基础功能测试

🧪 测试

运行基础功能测试

python test_basic_functionality.py

测试覆盖的功能

  • ✅ 日程创建
  • ✅ 日程查询
  • ✅ 日程更新
  • ✅ 日程删除
  • ✅ 日程搜索
  • ✅ 冲突检测
  • ✅ 今天/本周日程
  • ✅ 数据库操作

🚧 开发计划

✅ 已完成

  • 基础项目结构
  • 数据库设计和实现
  • MCP基础框架
  • 核心日程CRUD功能
  • 基础测试验证

🔄 进行中

  • 智能时间解析
  • 自然语言处理
  • 语音交互接口
  • 提醒系统完善

📋 规划中

  • AI智能建议引擎
  • 用户习惯分析
  • 外部日历同步
  • 高级统计报表
  • 多语言支持
  • Web界面
  • 移动端应用

🎯 使用示例

基础使用场景

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 = 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)} 个工作日程")

3. 检查时间冲突

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']}")

🤝 贡献指南

  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 文件了解详情。

📞 支持

如有问题或建议,请:

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

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages