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: Productivity Tracker MCP Server

Установка (любой 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 не может запуститься. Любые запросы об этом при работе над кодом — можно безопасно отклонять или игнорировать.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    Enables natural language task management including logging, updating, and summarizing productivity activities across multiple categories using a local SQLite database. It allows users to manage workflows and generate time-based summaries through standardized Model Context Protocol tools.
    1
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables multi-project workspaces to share structured notes, API contracts, and handoff messages via a local SQLite database, with versioning and read tracking.
    GPL 3.0

View all related MCP servers

Related MCP Connectors

  • Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.

  • Business-day, SLA, cron and recurrence calculations — offline, holiday-aware, no network.

  • Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sixfeetup/intervals-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server