Skip to main content
Glama
sixfeetup

intervals-mcp

by sixfeetup

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"]
}

Конфигурация

Учётные данные и настройки определяются в следующем порядке:

  1. Переменные окружения

  2. config.json в каталоге INTERVALS_BASE (или ~/.intervals/)

Переменные окружения

Переменная

Описание

INTERVALS_API_KEY

API-ключ Intervals для HTTP Basic-аутентификации

INTERVALS_BASE_URL

Базовый URL API Intervals (по умолчанию: https://api.myintervals.com/)

INTERVALS_PERSON_ID

Ваш идентификатор пользователя (person ID) в Intervals (обязателен для синхронизации записей времени)

INTERVALS_HOME

Переопределяет путь локального хранилища по умолчанию (~/.intervals/)

Ключи config.json

Если вы предпочитаете файловую конфигурацию, создайте config.json в каталоге INTERVALS_HOME (или ~/.intervals/):

Ключ

Тип

Описание

apiKey

string

API-ключ Intervals для HTTP Basic-аутентификации

baseUrl

string

Базовый URL API Intervals (по умолчанию: https://api.myintervals.com/)

personId

number

Ваш идентификатор пользователя (person ID) в Intervals (обязателен для синхронизации записей времени)

syncIntervalMs

number

Интервал фоновой синхронизации в миллисекундах

Запуск intervals setup (или слеш-команды /intervals-setup) записывает этот файл с правами 0600 и никогда не помещает API-ключ в контекст модели — ключ вводится в интерактивной скрытой подсказке в вашем собственном терминале.

CLI

В бандле поставляется CLI без зависимостей (dist/cli.mjs, доступный как intervals через package.json#bin при установке в качестве пакета):

Команда

Описание

setup

Настроить учётные данные и выполнить первичную синхронизацию проектов

status

Показать путь к БД, источник учётных данных, таймеры, ожидающую синхронизацию

sync-projects

Обновить локальный каталог проектов

sync-now

Отправить ожидающие записи времени в Intervals сейчас

timers [recent] / timers edit <timer_id> [field=value ...] / timers delete <timer_id>

Показать, изменить или удалить таймеры

time [range] / time edit <id> [field=value ...]

Отчёт по записям времени (today, yesterday, this-week, last-week, this-month, last-month, YYYY-MM-DD, YYYY-MM-DD..YYYY-MM-DD) или изменить одну (stop_time=HH:mm пересчитывает длительность)

project-defaults <project_id> <worktype_id> [module_id]

Задать значения по умолчанию для проекта

Выполните node dist/cli.mjs help (или intervals help), чтобы получить полный текст справки.

Инструменты агента

При установке в качестве плагина Claude Code инструменты доступны через префикс mcp__plugin_intervals_intervals__:

Tool

Описание

mcp__plugin_intervals_intervals__find_project_context

Поиск в локальном каталоге проектов по идентификаторам и классификациям (только локально)

mcp__plugin_intervals_intervals__start_timer

Запустить локальный таймер с простым описанием и необязательным параметром start_at; проект/тип работы/модуль необязательны

mcp__plugin_intervals_intervals__stop_timer

Остановить таймер, определить классификацию, создать ожидающую запись времени и синхронизировать

mcp__plugin_intervals_intervals__edit_timer

Изменить описание или подсказки по проекту/типу работы/модулю для активного локального таймера

mcp__plugin_intervals_intervals__delete_timer

Безопасно убрать активный таймер или остановленный таймер без связанной записи времени

mcp__plugin_intervals_intervals__add_time

Добавить завершённую запись времени напрямую (длительность в минутах)

mcp__plugin_intervals_intervals__edit_time

Изменить существующую локальную запись времени по короткому ID или ID связанного таймера; используйте stop_time для локального изменения времени остановки с пересчётом длительности

mcp__plugin_intervals_intervals__delete_time

Удалить локальную или синхронизированную запись времени по короткому ID или ID связанного таймера

mcp__plugin_intervals_intervals__query_time

Отчёт по записям времени по диапазону дат и фильтру по проекту (только локально)

mcp__plugin_intervals_intervals__list_timers

Показать активные или недавние локальные таймеры

mcp__plugin_intervals_intervals__lookup_time_entry

Сопоставить ID остановленного локального таймера с ID связанной локальной записи времени

mcp__plugin_intervals_intervals__list_time

Показать последние локальные записи времени со статусом синхронизации

mcp__plugin_intervals_intervals__set_project_defaults

Настроить тип работы/модуль по умолчанию для проекта

mcp__plugin_intervals_intervals__sync_now

Немедленно повторить синхронизацию ожидающих записей времени с Intervals

mcp__plugin_intervals_intervals__start_timer принимает необязательные значения start_at для запуска локального таймера задним числом. Используйте HH:mm или H:mm для сегодняшнего дня в местном времени, YYYY-MM-DD HH:mm для местной даты/времени или ISO-дату/время с явным смещением/часовым поясом. Значения start_at в будущем отклоняются.

Слеш-команды

Команда

Описание

/intervals-setup

Настроить учётные данные Intervals и запустить первичную синхронизацию проектов

/intervals-status

Показать путь к БД Intervals, источник учётных данных, активные таймеры, ожидаемую синхронизацию, последнюю синхронизацию проектов

/intervals-sync-projects

Обновить локальный каталог Intervals: клиентов, проекты, типы работ и модули

/intervals-sync-now

Отправить ожидающие локальные записи времени в Intervals сейчас

/intervals-timers

Показать активные или недавние таймеры Intervals, или изменить/удалить таймер по ID

/intervals-time

Отчёт по локальным записям времени за диапазон, или изменение записи по ID

/intervals-project-defaults

Задать тип работы по умолчанию и необязательный модуль для проекта

Как это работает

  • Таймеры существуют только локально. При запуске таймера в локальную базу записывается лёгкая строка только с описанием. Подсказки по проекту, типу работы и модулю необязательны.

  • Работающие таймеры можно переклассифицировать локально. Измените подсказки проекта, типа работы или модуля до остановки; обновлённая классификация применяется, когда создаётся запись времени.

  • Остановка/применение создаёт запись времени. Когда вы останавливаете таймер, вы предоставляете (или определяете) проект и тип работы. Сервер создаёт ожидающую запись времени и сразу пытается синхронизировать её с 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 не может запуститься. Любые запросы об этом при работе над кодом — можно безопасно отклонять или игнорировать.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Syncs ATracker time tracking data to a local SQLite database and provides MCP tools for querying tasks, entries, tags, and exporting data.
    -