Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Calendar Servershow my events for today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP 캘린더 서버
ADT(Algebraic Data Type) 기반의 MCP 캘린더 관리 시스템입니다.
개요
이 프로젝트는 Model Context Protocol(MCP)을 사용하여 캘린더 이벤트를 관리하는 서버입니다. 함수형 프로그래밍 패러다임과 ADT를 적용하여 타입 안전성과 예측 가능성을 보장합니다.
Related MCP server: Eventbrite MCP Server
주요 기능
✅ 캘린더 이벤트 CRUD 작업
✅ 카테고리별 이벤트 분류 (학습, 업무, 휴식, 활동)
✅ 이벤트 상태 관리 (계획됨, 완료됨, 취소됨)
✅ 스태미나 시스템 통합
✅ 시간 충돌 방지
✅ 날짜별/카테고리별 이벤트 조회
설치 및 실행
요구사항
Python 3.10+
uv 패키지 매니저
설치
# 의존성 설치
uv sync
# 개발 의존성 포함 설치
uv sync --extra dev실행
# MCP 서버 실행
uv run python main.py
# 또는 직접 실행
uv run python src/main.pyAPI 도구 (Tools)
1. get_all_events()
모든 캘린더 이벤트를 조회합니다.
2. get_event_by_id(event_id: int)
특정 ID의 이벤트를 조회합니다.
3. create_calendar_event(...)
새로운 캘린더 이벤트를 생성합니다.
매개변수:
title: 이벤트 제목start_time: 시작 시간 (ISO 형식: 2025-08-02T10:00:00)duration: 지속 시간(분)category: 카테고리 (STUDY, WORK, REST, ACTIVITY)description: 이벤트 설명 (선택)location: 장소 (선택)stamina_cost: 스태미나 소모량 (기본값: 0)
4. update_calendar_event(event_id: int, ...)
기존 이벤트를 수정합니다.
5. delete_calendar_event(event_id: int)
이벤트를 삭제합니다.
6. complete_event(event_id: int, stamina_after: int)
이벤트를 완료 상태로 변경합니다.
7. get_events_by_category(category: str)
카테고리별로 이벤트를 조회합니다.
8. get_events_by_date(date: str)
특정 날짜의 이벤트를 조회합니다.
데이터 모델
EventCategory
STUDY: 학습WORK: 업무REST: 휴식ACTIVITY: 활동
EventStatus
PLANNED: 계획됨COMPLETED: 완료됨CANCELED: 취소됨
CalendarEvent
캘린더 이벤트의 핵심 엔티티로 다음 필드를 포함합니다:
ID, 사용자 ID, 제목, 설명, 장소
시작 시간, 지속 시간, 카테고리
스태미나 소모량, 상태, 완료 후 스태미나
생성 시간
프로젝트 구조
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 라이선스 하에 배포됩니다.