/ Каталог / Песочница / keeper.sh
● Сообщество ridafkih ⚡ Сразу

keeper.sh

автор ridafkih · ridafkih/keeper.sh

Universal calendar MCP — aggregate Google, Outlook, iCloud, CalDAV, and ICS calendars into one tool surface your AI agent can query and sync.

keeper.sh is an open-source calendar sync engine with a built-in MCP server. It aggregates events from Google Calendar, Outlook/Office 365, iCloud, CalDAV, Fastmail, and ICS feeds, then exposes them via three MCP tools. Self-hostable with Docker (AGPL-3.0) or available as a cloud service with a free tier.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

keeper-sh.replay ▶ готово
0/0

Установка

Выберите клиент

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Cursor использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "keeper-sh",
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ]
    }
  ]
}

Continue использует массив объектов серверов, а не map.

~/.config/zed/settings.json
{
  "context_servers": {
    "keeper-sh": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "keeper.sh"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

claude mcp add keeper-sh -- npx -y keeper.sh

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: keeper.sh

How to get a daily schedule briefing from all your calendars

👤 Professionals juggling work + personal calendars across providers ⏱ ~5 min beginner

Когда использовать: Every morning when you want Claude to summarize your day across Google, Outlook, and iCloud calendars in one shot.

Предварительные требования
  • keeper.sh running with calendars connected — npx -y keeper.sh or self-host via Docker; connect providers in the web UI
Поток
  1. List connected calendars
    List all my connected calendars in keeper.sh — show provider and account for each.✓ Скопировано
    → Table of calendars with provider names
  2. Pull today's events
    Get all events from today across all calendars. Group by morning/afternoon/evening and flag any conflicts.✓ Скопировано
    → Chronological event list with conflict warnings
  3. Plan the day
    Given those events, suggest an optimal order for my 3 unscheduled tasks: code review, doc writing, and 1:1 prep.✓ Скопировано
    → Time-blocked suggestions fitting around existing events

Итог: A single-view daily briefing across all calendar providers with actionable scheduling advice.

Подводные камни
  • Stale events on the free tier (30-min refresh) — Trigger a manual sync in the web UI before querying, or upgrade to Pro for 1-min refresh
Сочетать с: notion · linear

Analyze your meeting load to reclaim focus time

👤 Engineering managers and ICs drowning in meetings ⏱ ~10 min beginner

Когда использовать: End of week when you suspect meetings ate all your deep work time.

Поток
  1. Pull this week's event count
    How many calendar events did I have this week? Break down by calendar.✓ Скопировано
    → Count per calendar
  2. Get event details for the week
    Get all events from Monday through Friday this week. Calculate total meeting hours and longest uninterrupted block.✓ Скопировано
    → Hour totals and gap analysis
  3. Suggest improvements
    Which recurring meetings could be async? Flag any that overlap or back-to-back with no break.✓ Скопировано
    → Specific meetings to cancel or move

Итог: A data-driven view of your meeting load with concrete suggestions to reclaim time.

Подводные камни
  • All-day events inflate meeting hours — Ask Claude to filter out all-day events before calculating

Detect scheduling conflicts across work and personal calendars

👤 Anyone with calendars on different providers that don't talk to each other ⏱ ~5 min beginner

Когда использовать: Before scheduling something new, check all calendars for conflicts.

Поток
  1. Query a time range
    Get all events next Tuesday between 9am and 5pm across all calendars. Are there any overlaps?✓ Скопировано
    → List of events with any conflicts highlighted
  2. Find open slots
    Find 3 open 1-hour slots next week that are free across all my calendars.✓ Скопировано
    → Concrete time slots with no conflicts

Итог: Conflict-free scheduling across providers without manually checking each calendar.

Подводные камни
  • Timezone mismatches between providers — Always specify IANA timezone in your prompt (e.g., 'in America/New_York')

Комбинации

Сочетайте с другими MCP — эффект x10

keeper-sh + notion

Pull today's calendar events and create a Notion daily planner page with time blocks

Get today's events from keeper.sh, then create a Notion page in my Daily Notes database with time-blocked tasks around the meetings.✓ Скопировано
keeper-sh + linear

Check calendar availability before assigning sprint tasks with deadlines

Show my free blocks this week via keeper.sh, then assign these 3 Linear issues to slots where I have 2+ hours free.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
list_calendars none See all connected calendars and their providers 1 local API call
get_events start: ISO 8601, end: ISO 8601, timezone: IANA Retrieve events within a date range 1 local API call
get_event_count none Quick check of total synced events 1 local API call

Стоимость и лимиты

Во что обходится

Квота API
Self-hosted: unlimited. Cloud free tier: 30-min refresh, 2 sources, 1 destination.
Токенов на вызов
100-500 tokens per tool call; large date ranges can return more
Деньги
Self-hosted: free (AGPL). Cloud: free tier or $5/month Pro (1-min sync, unlimited sources).
Совет
Self-host the standalone Docker image for zero recurring cost. Cloud Pro is worth it only if you need sub-minute sync.

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: calendar:read (per connected provider)
Хранение учётных данных: OAuth tokens and CalDAV credentials encrypted at rest. Session signing via BETTER_AUTH_SECRET env var.
Исходящий трафик: Self-hosted: stays on your server. Cloud: keeper.sh servers. Calendar API calls go to Google/Microsoft/iCloud respectively.
Никогда не давайте: calendar:write (unless you explicitly need sync destinations)

Устранение неполадок

Частые ошибки и исправления

CSRF validation failed

Set the TRUSTED_ORIGINS environment variable to your domain (e.g., https://calendar.example.com)

Проверить: Check the keeper.sh web UI loads without 403 errors
Google OAuth redirect fails

Ensure your Google Cloud OAuth consent screen has the correct redirect URI matching your keeper.sh deployment URL

Events not refreshing

Free tier refreshes every 30 minutes. Trigger a manual sync in the web UI, or upgrade to Pro for 1-minute sync.

Проверить: Check get_event_count before and after manual sync
CalDAV connection rejected

Verify the CalDAV URL includes the full path (usually /dav/calendars/user/). Check credentials and ensure the server supports CalDAV, not just CardDAV.

Проверить: curl -u user:pass -X PROPFIND <caldav-url>

Альтернативы

keeper.sh в сравнении

АльтернативаКогда использоватьКомпромисс
Google Calendar MCPYou only use Google Calendar and want a simpler setupSingle provider; no aggregation across Outlook/iCloud
Notion CalendarYou're already deep in the Notion ecosystemProprietary; no MCP interface

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills