intervals-mcp
intervals-mcp
Автономный MCP-сервер, CLI и плагин Claude Code для учёта времени в Intervals с подходом local-first. Запуск таймера или добавление записи времени сначала обращается к локальной базе SQLite; записи синхронизируются с Intervals в фоновом режиме или по требованию. Отчёты и запросы всегда работают только с локальными данными и никогда не вызывают API Intervals.
Установка (плагин Claude Code)
/plugin marketplace add sixfeetup/intervals-mcp
/plugin install intervals@intervals-mcpСборка не нужна: бандл dist/ уже включён в репозиторий. Единственное требование — Node >= 22.5.
Related MCP server: time-tracker-ai-mcp
Установка (любой MCP-хост)
Склонируйте репозиторий и укажите вашему MCP-хосту на собранный сервер:
git clone https://github.com/sixfeetup/intervals-mcp.git{
"command": "node",
"args": ["/path/to/intervals-mcp/dist/server.mjs"]
}Конфигурация
Учётные данные и настройки определяются в следующем порядке:
Переменные окружения
config.jsonв каталогеINTERVALS_BASE(или~/.intervals/)
Переменные окружения
Переменная | Описание |
| API-ключ Intervals для HTTP Basic-аутентификации |
| Базовый URL API Intervals (по умолчанию: |
| Ваш идентификатор пользователя (person ID) в Intervals (обязателен для синхронизации записей времени) |
| Переопределяет путь локального хранилища по умолчанию ( |
Ключи config.json
Если вы предпочитаете файловую конфигурацию, создайте config.json в каталоге INTERVALS_HOME (или ~/.intervals/):
Ключ | Тип | Описание |
|
| API-ключ Intervals для HTTP Basic-аутентификации |
|
| Базовый URL API Intervals (по умолчанию: |
|
| Ваш идентификатор пользователя (person ID) в Intervals (обязателен для синхронизации записей времени) |
|
| Интервал фоновой синхронизации в миллисекундах |
Запуск intervals setup (или слеш-команды /intervals-setup) записывает этот файл с правами 0600 и никогда не помещает API-ключ в контекст модели — ключ вводится в интерактивной скрытой подсказке в вашем собственном терминале.
CLI
В бандле поставляется CLI без зависимостей (dist/cli.mjs, доступный как intervals через package.json#bin при установке в качестве пакета):
Команда | Описание |
| Настроить учётные данные и выполнить первичную синхронизацию проектов |
| Показать путь к БД, источник учётных данных, таймеры, ожидающую синхронизацию |
| Обновить локальный каталог проектов |
| Отправить ожидающие записи времени в Intervals сейчас |
| Показать, изменить или удалить таймеры |
| Отчёт по записям времени ( |
| Задать значения по умолчанию для проекта |
Выполните node dist/cli.mjs help (или intervals help), чтобы получить полный текст справки.
Инструменты агента
При установке в качестве плагина Claude Code инструменты доступны через префикс mcp__plugin_intervals_intervals__:
Tool | Описание |
| Поиск в локальном каталоге проектов по идентификаторам и классификациям (только локально) |
| Запустить локальный таймер с простым описанием и необязательным параметром |
| Остановить таймер, определить классификацию, создать ожидающую запись времени и синхронизировать |
| Изменить описание или подсказки по проекту/типу работы/модулю для активного локального таймера |
| Безопасно убрать активный таймер или остановленный таймер без связанной записи времени |
| Добавить завершённую запись времени напрямую (длительность в минутах) |
| Изменить существующую локальную запись времени по короткому ID или ID связанного таймера; используйте |
| Удалить локальную или синхронизированную запись времени по короткому ID или ID связанного таймера |
| Отчёт по записям времени по диапазону дат и фильтру по проекту (только локально) |
| Показать активные или недавние локальные таймеры |
| Сопоставить ID остановленного локального таймера с ID связанной локальной записи времени |
| Показать последние локальные записи времени со статусом синхронизации |
| Настроить тип работы/модуль по умолчанию для проекта |
| Немедленно повторить синхронизацию ожидающих записей времени с Intervals |
mcp__plugin_intervals_intervals__start_timer принимает необязательные значения start_at для запуска локального таймера задним числом. Используйте HH:mm или H:mm для сегодняшнего дня в местном времени, YYYY-MM-DD HH:mm для местной даты/времени или ISO-дату/время с явным смещением/часовым поясом. Значения start_at в будущем отклоняются.
Слеш-команды
Команда | Описание |
| Настроить учётные данные Intervals и запустить первичную синхронизацию проектов |
| Показать путь к БД Intervals, источник учётных данных, активные таймеры, ожидаемую синхронизацию, последнюю синхронизацию проектов |
| Обновить локальный каталог Intervals: клиентов, проекты, типы работ и модули |
| Отправить ожидающие локальные записи времени в Intervals сейчас |
| Показать активные или недавние таймеры Intervals, или изменить/удалить таймер по ID |
| Отчёт по локальным записям времени за диапазон, или изменение записи по ID |
| Задать тип работы по умолчанию и необязательный модуль для проекта |
Как это работает
Таймеры существуют только локально. При запуске таймера в локальную базу записывается лёгкая строка только с описанием. Подсказки по проекту, типу работы и модулю необязательны.
Работающие таймеры можно переклассифицировать локально. Измените подсказки проекта, типа работы или модуля до остановки; обновлённая классификация применяется, когда создаётся запись времени.
Остановка/применение создаёт запись времени. Когда вы останавливаете таймер, вы предоставляете (или определяете) проект и тип работы. Сервер создаёт ожидающую запись времени и сразу пытается синхронизировать её с Intervals.
Записи времени — local-first.
mcp__plugin_intervals_intervals__add_time,mcp__plugin_intervals_in intervals__edit_timeиmcp__plugin_intervals_intervals__stop_timerсохраняют данные в SQLite по перед любым сетевым вызовом. Если синхронизация не удалась, запись остаётся локальной со статусомfailedилиpending, и её можно повторить.Синхронизация каталога сохраняет активные записи. Синхронизация проектов загружает все страницы каталога, оставляет активные проекты и активные классификации, а также удерживает клиентов, на которые ссылаются активные проекты.
Отчёты работают только локально.
mcp__plugin_intervals_intervals__query_timeи/intervals-timeчитают SQLite и никогда не вызывают API Intervals.
Заметка для разработчика
Если вы откроете этот репозиторий в Claude Code, вы можете увидеть MCP-сервер intervals в списке как некорректно подключаемый. Это ожидаемо: якорь-файл корня репозитория .mcp.json — это собственная конфигурация плагина, и он ссылается на ${CLAUDE_PLUGIN_DIST}, которая назначается только при установке плагина через /plugin install. Редактирование исходного кода этого репозитория не содержит плагин, поэтому переменная не установлена,Действие not set, server не может запуститься. Любые запросы об этом при работе над кодом — можно безопасно отклонять или игнорировать.
This server cannot be deployed
Maintenance
Related MCP Connectors
Timer and time-tracking add-on: start/stop timers, log entries, CSV export. Data stays local.
Save and retrieve your chosen context, manage shared workspaces, and track project time.
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
- DoneThatOAuthai.donethat
Privacy-first work tracking with summaries, reports, coaching, and AI-ready long-term memory.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables recording, querying, and summarizing daily work entries with tags using a local SQLite database. Supports work logging, search, timeline queries, tag management, and automated reminders for tracking daily tasks.-
- AlicenseAqualityBmaintenanceEnables tracking work time with start/stop timers, logging entries, and generating reports.46 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables adding GPS goals and logging time directly from Claude Desktop, with support for bulk backfill and session management.-
- FlicenseNot gradedqualityDmaintenanceSyncs ATracker time tracking data to a local SQLite database and provides MCP tools for querying tasks, entries, tags, and exporting data.-