Skip to main content
Glama
Radicale CalDAV MCP Server

Radicale CalDAV MCP Server

by mvelak

Radicale CalDAV MCP Server

FastMCP 및 공식 MCP Python SDK로 구축된 Model Context Protocol(MCP) 서버로, LLM 에이전트(Nous Hermes, Claude, OpenAI 등)를 자체 호스팅 Radicale CalDAV 캘린더 및 작어 관자를 연결합니다.


기능

📅 캘린더 이벤트요 (EVEVENT)

  • get_events: 요약, 설명, 위치 is를 대상으로 키워드 검색을 지원하는 optional 날짜/시간 범 into query events.

  • get_free_busy_slots: 주 могут be configured하게 (예: 9:00 AM - 5:00 PM) any other IANA zone에서 actual time slots 계산.

  • create_event: ISO validation, attendee invitation, conflict detection을 포함한 scheduling.

  • update_event: Existing events by UID without overwriting untouched fields.

  • delete_event: Remove events by UID.

📝 작업 및 할 일 (TOTODO)

  • list_todos: Fetch pending or completed tasks, filtered by status (NEEDS-ACTION, COMPLETED, IN-PROCESS, CANCELLED, ALL).

  • create_todo: Create tasks with due dates, priority (1-9), descriptions.

  • complete_todo: Mark completed with automatic 시간 stamp.

🚀 전송 & 배포

  • STDIO Transport: 로컬 실행용 기본 전송(예: Claude Desktop, 로컬 agents).

  • SSE (Server-Sent Events) Transport: 원격, 상시 운영 배포용 HTTP 전송(예: Coolify, Docker).


Related MCP server: caldav-mcp

구성

서버는 환경 변수를 통해 구성합니다 or .env file:

Variable

Default

Description

RADICALE_BASE_URL

http://localhost:5232

Radicale BasURL (예: https://radicale.dubblu.app)

RADICALE_USERNAME

mvela581

CalDAV username

RADICALE_PASSWORD

""

CalDAV password

RADICALE_CALENDAR_SLUG

seuspeptides

해당 캘린더 slug / collection name

DEFAULT_TIMEZONE

America/New_York

기본 IANA time zone

MCP_TRANSPORT

stdio

Transport protocol: stdio or sse

MCP_HOST

0.0.0.0

SSE 모드의 host interface

MCP_PORT

8000

SSE 모드의 port number


로컬 Quickstart

1. 설치

# Clone and enter directory
cd radicale-mcp-server

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

2. 환경 구성

.env.example을 .env로 복사하여 인증 정보를 설정합니다.

cp .env.example .env

3. 로컬 실행

STDIO 모드 (Local Pipe)

python server.py --stdio

SSE 모드 (HTTP Server)

python server.py --sse --host 0.0.0.0 --port 8000

4. 테스트 클라이언트 실행

# Test via STDIO
python test_client.py --mode stdio

# Test via SSE (when server is running)
python test_client.py --mode sse --sse-url http://localhost:8000/sse

5. 자동화 테스트 실행

pytest -v

Coolify 배포

MCP 서버를 Coolify에 배포합니다.

  1. Coolify에서 새 서비스를 생성합니다: Docker Compose 또는 Dockerfile.

  2. 이 리포지토리 또는 docker-compose.yml을 지정합니다.

  3. Coolify UI에서 다음 환경 변수를 설정합니다.

    • RADICALE_BASE_URL=https://radicale.dubblu.app

    • RADICALE_USERNAME=mvela581

    • RADICALE_PASSWORD=your_password

    • RADICALE_CALENDAR_SLUG=seuspeptides

    • DEFAULT_TIMEZONE=America/New_York

    • MCP_TRANSPORT=sse

    • MCP_PORT=8000

  4. 도메인 (예: https://mcp-calendar.yourdomain.com)을 사용하여 Coolify reverse proxy로 port 8000을 노출합니다.

  5. SSE endpoint:

https://mcp-calendar.yourdomain.com/sse

LLM 에이전트 통합 (Nous Hermes / Claude Desktop)

Claude Desktop 설정

claude_desktop_config.json에 다음을 추가합니다.

Local STDIO:

{
  "mcpServers": {
    "radicale_calendar": {
      "command": "/path/to/radicale-mcp-server/.venv/bin/python",
      "args": ["/path/to/radicale-mcp-server/server.py", "--stdio"],
      "env": {
        "RADICALE_BASE_URL": "https://radicale.dubblu.app",
        "RADICALE_USERNAME": "mvela581",
        "RADICALE_PASSWORD": "your_password",
        "RADICALE_CALENDAR_SLUG": "seuspeptides",
        "DEFAULT_TIMEZONE": "America/New_York"
      }
    }
  }
}

Remote SSE (Coolify):

{
  "mcpServers": {
    "radicale_calendar": {
      "url": "https://mcp-calendar.yourdomain.com/sse"
    }
  }
}

Nous Hermes Agent Integration

Tool definitions are auto-generated from docstrings with type specifications. 예시 prompt:

{
  "name": "get_free_busy_slots",
  "arguments": {
    "start_date": "2026-08-26",
    "end_date": "2026-08-28",
    "slot_duration_minutes": 30,
    "working_hours_start": 9,
    "working_hours_end": 17,
    "timezone": "America/New_York"
  }
}

라이선스

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI assistants to CalDAV servers so they can list calendars and browse, create, update, or delete events and to-do tasks within a chosen timeframe. Supports scheduling of recurring and all-day events, task filtering and pagination, and completion tracking through natural language.
    3,018 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to connect to CalDAV servers to list calendars and events, create, update, and delete calendar events, and manage tasks (VTODOs) including listing, creating, updating, completing, and deleting them.
    3,018 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to connect to CalDAV servers and manage calendars through natural language, including listing calendars and browsing, creating, updating, and deleting events and tasks (VTODOs). Supports recurring events, all-day events, due-date filtering, status changes, and pagination of long task lists.
    3,018 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to connect to CalDAV servers and manage calendars, events, and tasks through tools for listing, creating, updating, completing, and deleting items.
    3,018 npm
    MIT