这是一个基于ADT(代数数据类型)的MCP日历管理系统,利用Model Context Protocol(MCP)管理日历事件,通过函数式编程范式和ADT确保类型安全性和可预测性。
本项目是一个使用Model Context Protocol (MCP) 来管理日历事件的服务器。它运用函数式编程范式和ADT,保证了类型的安全性和可预测性。
# 安装依赖项
uv sync
# 包含开发依赖项的安装
uv sync --extra dev
# 启动MCP服务器
uv run python main.py
# 或者直接运行
uv run python src/main.py
用于查询所有日历事件。
根据特定的 ID 查询事件。
创建新的日历事件。 参数:
title
:事件标题start_time
:开始时间(ISO 格式:2025-08-02T10:00:00)duration
:持续时间(分钟)category
:类别(STUDY, WORK, REST, ACTIVITY)description
:事件描述(可选)location
:地点(可选)stamina_cost
:耐力消耗(默认值:0)修改现有的事件。
删除事件。
将事件状态更改为已完成。
按类别查询事件。
查询特定日期的事件。
STUDY
:学习WORK
:工作REST
:休息ACTIVITY
:活动PLANNED
:计划中COMPLETED
:已完成CANCELED
:已取消日历事件的核心实体,包含以下字段:
ittae-MCP/
├── src/
│ ├── __init__.py
│ ├── main.py # MCP服务器主程序
│ ├── models/
│ │ └── __init__.py # 数据模型定义
│ ├── services/
│ │ ├── __init__.py
│ │ └── calendar_service.py # 业务逻辑
│ └── exceptions/
│ └── __init__.py # 异常处理
├── tests/ # 测试文件
├── main.py # 入口点
├── pyproject.toml # 项目配置
└── README.md
create_calendar_event(
title="团队会议",
start_time="2025-08-02T10:00:00",
duration=60,
category="WORK",
description="每周团队会议",
location="会议室A",
stamina_cost=20
)
get_events_by_date("2025-08-02")
complete_event(event_id=1, stamina_after=80)
uv run pytest
uv run black src/
uv run ruff check src/
本项目根据 MIT 许可证进行分发。