KyaniteLabs/Epoch

KyaniteLabs/Epoch

от kyanitelabs
Epoch - MCP сервер, обучающий AI-агентов реалистично оценивать проекты. Использует PERT, COCOMO II, Monte Carlo и встроенную базу из 126 000+ записей для точных оценок времени, рисков и стоимости.

Epoch — estimation MCP server for AI agents: PERT, COCOMO II, Monte Carlo, schedule-risk tools

Epoch -- Time Estimation MCP Server

Epoch is a time estimation MCP server that helps engineering leads, agents, and planners who need calibrated duration estimates produce PERT/reference-class estimates and record actuals.

TL;DR: Epoch — time estimation MCP server. Best for engineering leads, agents, and planners who need calibrated duration estimates.

CI License: Apache-2.0 MCP npm version MCP Registry

Epoch helps AI agents understand time.

AI can write code, analyze data, and build apps -- but it can't tell you how long something will take, what it'll cost, or whether a deadline is realistic. Epoch fixes that.


Show Me

You: "How long will a 15,000 line project take with a small team?"

Claude (using Epoch):
  COCOMO II nominal: 100 person-months (traditional team)
  AI-adjusted: 9 person-months (LLM-assisted workflow)
  Schedule risk: medium (MAPE 15%, based on 28 historical features)
  Cost estimate (Claude Sonnet): ~$340 in API tokens
You: "How many working days between now and launch?"

Claude (using Epoch):
  Start: May 1, 2026
  End: July 15, 2026
  Business days: 54
  Weekend days: 16
  Holidays: 1 (Independence Day)
  Total calendar days: 75
Инструменты были проиндексированы:
accuracy_trendтолько чтениеидемпотентный

Отслеживает улучшение точности оценок со временем. Вычисляет скользящее окно MAPE и сравнивает с отраслевым базовым уровнем (25%). Показывает, улучшаются ли ваши оценки, ухудшаются или остаются стабильными. Отраслевые исследования показывают, что точность оценок НЕ улучшается с опытом (Cao 2022) — самокорректирующиеся системы вроде Epoch способны противостоять этой тенденции.

Параметры
  • team_idstring

    Необязательный идентификатор команды для ограничения исторических данных.

  • window_sizenumber

    Количество записей на скользящее окно.

add_business_daysтолько чтениеидемпотентный

Добавляет N рабочих дней к начальной дате, пропуская выходные и национальные праздники в зависимости от страны. Поддерживает праздники US, UK, FR, DE и JP. Возвращает итоговую дату. Используйте для расчёта сроков, исключая нерабочие дни.

Параметры
  • countrystring

    Код страны ISO-3166-1-alpha-2 для календаря праздников. Поддерживаемые наборы праздников: US, UK, FR, DE, JP; другие допустимые двухбуквенные коды переходят на подсчет только выходных и сообщают об этом в holidaySupport.

  • daysintegerобязательный

    Количество рабочих дней для добавления (отрицательное для вычитания). Целое число от -100000 до 100000.

  • start_datestringобязательный

    Строка даты в формате ISO для даты начала.

batch_record_actuals

Записывает фактические часы для нескольких оценок за один вызов. Эффективен для массовой отправки обратной связи — принимает от 1 до 500 записей за раз. Каждая запись связывает идентификатор оценки с фактически затраченным временем. Возвращает общее количество, количество успешных и количество неудачных записей. Используйте при закрытии контура обратной связи для многих оценок сразу; передавайте значения estimate_id из get_pending_estimates.

Параметры
  • entriesobject[]обязательный

    Массив записей о фактических часах (1-500 записей).

calibrate_estimatesтолько чтениеидемпотентный

Пересчитывает поправочные коэффициенты для конкретной команды на основе исторических данных об оценках. Сравнивает оценённые и фактические часы для вычисления поправочного множителя. Требует интеграции с системой управления проектами для наилучших результатов. Возвращает рекомендации по повышению точности оценок. Используйте, когда у вас накоплены фактические данные и вы хотите обновить калибровочные факторы команды.

Параметры
  • minimum_samplesnumber

    Минимальное количество выполненных задач, необходимое перед получением калибровочного коэффициента.

  • period_daysnumber

    Окно ретроспективы в календарных днях для данных калибровки.

  • team_idstringобязательный

    Идентификатор команды, данные об исторической точности которого следует проанализировать.

cocomo_estimateтолько чтениеидемпотентный

Адаптированная для LLM параметрическая оценка трудоёмкости COCOMO II. Заменяет традиционные 17 драйверов стоимости человеческого труда на 5 факторов, специфичных для LLM: сложность рассуждения, полнота контекста, влияние преобразования, итеративные циклы и человеческий контроль. Возвращает как номинальные, так и скорректированные с учётом LLM человеко-месяцы. Используйте при оценке трудоёмкости кодовой базы, размер которой можно указать в KLOC. iterative_cycles: значения <= 2.0 являются буквальными множителями (0.5 — однократное выполнение, 1.0 — типичный цикл отладки, 2.0 — интенсивное взаимодействие); значения выше 2.0 являются буквальным количеством циклов, каждый дополнительный цикл добавляет 0.1 к множителю, закреплённому на уровне 2.0 (2.0 -> 2.0x, 3 -> 2.1x, 10 -> 2.8x) — монотонно, без скачка на 2.0.

Параметры
  • ai_nativeboolean | number

    Степень участия ИИ: 0.0 - полностью человек, 1.0 - полностью нативный ИИ, 0.5 - гибрид. Принимает логическое значение для обратной совместимости (true=1.0, false=0.0).

  • context_completenessnumber

    The context you provided (the translation rules) is highly detailed and specific — it covers tone, forbidden phrases, sentence structure, and even gives examples. That puts it at 0.5 (exhaustive specs) on your scale. However, there's a catch: you didn't provide a source text to translate. So for the actual translation task, the context is incomplete — the instructions are exhaustive, but the input is missing. If we're rating the instructions alone, they're 0.5. If we're rating the full context for a translation task, it would be closer to 1.5–2.0 because the source text is absent.

  • human_oversightnumber

    Множитель накладных расходов на проверку человеком. 0.5 = автоматическое объединение, 1.0 = стандартная проверка PR, 2.0 = проверка на соответствие требованиям/безопасность.

  • iterative_cyclesnumber

    Множитель накладных расходов на итерацию или фактическое количество циклов. Шкала множителя: 0.5 = одноразовое выполнение, 1.0 = типичный цикл отладки, 2.0 = интенсивные переключения туда-обратно. Значения выше 2.0 принимаются как фактическое количество циклов и нормализуются внутри системы.

  • klocnumberобязательный

    По оценкам, тысячи строк кода. Считай фактический код, а не комментарии/пустые строки.

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • reasoning_complexitynumber

    Множитель сложности анализа кодовой базы. 0.5 = тривиальный CRUD, 1.0 = средний, 2.0 = новый алгоритм/R&D.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов.

  • transformation_impactnumber

    Шкала преобразования относительно существующего кода. 0.5 = небольшой патч, 1.0 = новый модуль, 2.0 = архитектурная переработка.

cocomo_ground_truthтолько чтениеидемпотентный

Проверь все модели оценки COCOMO на 240 реальных исторических проектах с известной трудоёмкостью. Запускает 6 моделей параллельно: COCOMO Basic, COCOMO II Nominal, COCOMO II + AI с ускорением 12x, и AI + профиль разработчика с градиентами human/hybrid/ai_native. Сообщает MAPE, MMRE, PRED(25), PRED(50), bias по каждой модели с разбивкой по набору данных и типу проекта. Используй cocomo_validate для быстрой проверки только Basic COCOMO.

Параметры
  • dataset_filterstring[]

    Необязательный фильтр: проверяет только по конкретным наборам данных.

cocomo_validateтолько чтениеидемпотентный

Проверяет модель оценки COCOMO на 195 реальных исторических проектах. Запускает базовую формулу COCOMO на проектах из датасетов NASA93, COCOMO81, Albrecht и Kemerer. Сообщает общий MAPE, смещение, точность по типам и рекомендуемые корректировки коэффициентов. Используйте cocomo_ground_truth для полного многомодельного бенчмарка по всем моделям COCOMO и моделям с AI-корректировками.

Параметры
  • dataset_filterstring[]

    Необязательный фильтр: проверяет только по конкретным наборам данных.

compare_modelsтолько чтениеидемпотентный
Параметры
  • reasoning_depthenum

    Ожидаемая глубина цепочки рассуждений.

  • sort_byenum

    Сортирует модели по стоимости (по умолчанию) или по расчетному времени.

  • tokensnumberобязательный

    Общее количество токенов для оценки по всем моделям.

  • tool_callsnumber

    Ожидаемое количество вызовов инструментов.

convert_timezoneтолько чтениеидемпотентный

Преобразует метку времени в формате ISO-8601 в целевой часовой пояс IANA. Входная метка времени должна содержать информацию о часовом поясе или быть в UTC. Возвращает локализованное время, смещение UTC и удобочитаемый формат. Используйте, когда нужно отобразить или сравнить момент времени в местном времени другого региона.

Параметры
  • target_tzstringобязательный

    Целевой идентификатор часового пояса IANA.

  • timestampstringобязательный

    Преобразует метку времени в формате ISO-8601.

count_business_daysтолько чтениеидемпотентный

Подсчитывает количество рабочих дней между двумя датами, исключая выходные и национальные праздники. Подсчёт исключает начальную дату и включает конечную дату. Возвращает целое число дней. Используйте при измерении продолжительности рабочего времени между двумя датами.

Параметры
  • countrystring

    Код страны ISO-3166-1-alpha-2 для календаря праздников. Поддерживаемые наборы праздников: US, UK, FR, DE, JP; другие допустимые двухбуквенные коды переходят на подсчет только выходных и сообщают об этом в holidaySupport.

  • end_datestringобязательный

    Строка даты в формате ISO для даты окончания.

  • start_datestringобязательный

    Строка даты в формате ISO для даты начала.

critical_pathтолько чтениеидемпотентный

Вычисляет критический путь с корректировкой на слияние для расписаний проектов. Выполняет прямой/обратный проход для определения критических задач и резерва. Применяет корректировку на слияние: задачи с более чем 2 предшественниками получают увеличение длительности на 5% за каждого дополнительного предшественника. Возвращает критический путь, резерв задач и длительность проекта. Используйте при последовательном размещении зависимых задач для поиска самого длинного пути и доступного резерва.

Параметры
  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • tasksobject[]обязательный

    Все задачи в графе проекта. Каждая задача должна иметь уникальное имя.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов.

estimate_from_contextтолько чтениеидемпотентный

Классифицирует описание задачи в свободной форме и делегирует оценку референсному классу. Классифицирует task_type и complexity из свободного текста (body задачи, описание PR/diff или сводка задачи), используя ЛОКАЛЬНУЮ, детерминированную эвристику по ключевым словам/сигналам — без вызова LLM (см. src/lib/context-estimate.ts). Подсказки task_type/complexity от вызывающей стороны всегда переопределяют классификацию. Делегирует разрешённые входные данные тому же пути прогнозирования референсных классов, который используется в reference_class_estimate, и возвращает происхождение классификации (classified_task_type, classified_complexity, confidence, signals) вместе с оценкой — чтобы вызывающие стороны могли оценить, насколько ей можно доверять.

Параметры
  • complexitynumber

    Необязательная предварительно оценённая подсказка сложности (1-5); используется, как только появится логика классификации.

  • contextstringобязательный

    Контекст в свободной форме, описывающий задачу для оценки: тело issue, описание PR/diff или сводка задачи. Будет использоваться для классификации task_type и сложности и делегирования в reference_class_estimate / PERT correction, когда появится логика классификации (Phase 5).

  • task_typeenum

    Необязательная подсказка с предварительно классифицированным типом задачи; используется, когда появится логика классификации.

  • team_idstring

    Необязательный идентификатор команды для ограничения исторических данных после выхода логики классификации.

feedback_healthтолько чтениеидемпотентный

Получает отчёт о состоянии цикла обратной связи по оценкам. Показывает общие оценки, фактические значения, процент совпадений, MAPE по инструментам и типам задач, а также готовность к самообучению (для каких типов достаточно данных для автоматической калибровки). Используйте, когда проверяете, достаточно ли зафиксировано фактических данных для запуска калибровки.

Параметры

Без параметров.

get_current_timeтолько чтениеидемпотентный

Возвращает текущую дату и время в указанном часовом поясе IANA. Полезно для привязки LLM к местному времени пользователя. Примеры часовых поясов: 'UTC', 'America/New_York', 'Europe/London', 'Asia/Tokyo'.

Параметры
  • timezonestring

    Идентификатор часового пояса IANA. По умолчанию используется "UTC".

get_pending_estimatesтолько чтениеидемпотентный

Выводит список недавних оценок, для которых ещё не было обратной связи по фактическим часам. Возвращает оценки в ожидании фактических данных, чтобы вы могли отправить обратную связь через record_actual. Используйте этот инструмент, чтобы замкнуть цикл обратной связи по оценкам и со временем повысить их точность.

Параметры
  • limitinteger

    Максимум возвращаемых оценок.

monte_carlo_scheduleтолько чтениеидемпотентный

Запускает симуляцию Монте-Карло для вероятностного анализа рисков расписания. Выбирает длительности задач из треугольных распределений и возвращает оценки завершения P10/P50/P80/P95 с выявленными рисковыми событиями. Использует seed для воспроизводимых результатов. Указывает target_hours (рабочие часы; длительности даны в 8-часовых днях), чтобы получить criticalPathProbability = P(total <= target_hours); без этого параметра поле равно null.

Параметры
  • iterationsnumber

    Количество итераций симуляции Монте-Карло (1–100 000). Чем больше итераций, тем стабильнее процентили.

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • seedinteger

    Необязательное начальное значение для воспроизводимых результатов.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • target_hoursnumber

    Необязательный срок выполнения в рабочих часах (продолжительность задач указана в 8-часовых днях). Когда срок указан, criticalPathProbability возвращает P(total <= target_hours); когда не указан, возвращается null вместо сфабрикованного значения.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • tasksobject[]обязательный

    Список задач с трехточечными оценками в стиле PERT и ребрами зависимостей.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов. Включает отслеживание точности по каждому типу задачи.

parse_durationтолько чтениеидемпотентный

Разбирает строку с длительностью в удобочитаемом формате в секунды. Поддерживает комбинации: y (лет), mo (месяцев), w (недель), d (дней), h (часов), m (минут), s (секунд). Примеры: '2h30m', '1d6h', '1w3d', '45m'. Возвращает общее количество секунд для указанной длительности. Используйте для нормализации длительности в свободной форме перед арифметическими операциями или сравнением.

Параметры
  • duration_stringstringобязательный

    Строка длительности вида «2h30m», «1d6h», «45m».

pert_estimateтолько чтениеидемпотентный

Вычисляет ожидаемую длительность по PERT на основе трёхточечных оценок с использованием бета-распределения. Формула: E = (O + 4M + P) / 6. Возвращает ожидаемое значение, дисперсию, стандартное отклонение и доверительные границы 95%/99% с категоризацией срочности. Используйте при оценке длительности задачи с неопределёнными результатами.

Параметры
  • ai_nativeboolean | number

    Степень участия ИИ: 0.0 - полностью человек, 1.0 - полностью нативный ИИ, 0.5 - гибрид. Принимает логическое значение для обратной совместимости (true=1.0, false=0.0).

  • complexitynumber

    Необязательная подсказка о сложности от 1 (тривиальная) до 5 (экстремальная). Зарезервирована для будущей корректировки с учётом сложности; пока не применяется к итоговой оценке.

  • most_likelynumberобязательный

    Мода распределения - единственный наиболее вероятный исход.

  • optimisticnumberобязательный

    Оптимальная продолжительность. НЕ используйте ваш первоначальный оптимистичный прогноз — это должен быть абсолютный минимум, если всё идёт идеально.

  • pessimisticnumberобязательный

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

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов. Включает отслеживание точности по каждому типу задачи.

  • unitenum

    Определяет единицу времени для всех трёх оценок PERT.

record_actual

Отправляет фактические часы, затраченные по предыдущей оценке, для повышения точности будущих оценок. Работает с любым инструментом оценки. Идентификатор estimate_id берется из ответа оценки. Фактические данные поступают в цикл самообучения: после накопления достаточного количества примеров корректирующие коэффициенты обновляются автоматически, уменьшая смещение оценки.

Параметры
  • actual_hoursnumberобязательный

    Фактические затраченные часы.

  • calibration_provenanceenum

    Необязательная явная классификация происхождения для этого actual, используемая общим предикатом исключения (synthetic/smoke исключаются из калибровочных расчётов). auto_wallclock помечает actual, полученный из wall-clock и автоматически записанный в конце сессии (не подтверждённый целенаправленной проверкой); по умолчанию такой actual включается в обучение коррекции, но подлежит отдельному sanity-контролю и сегментируется отдельно в feedback_health.

  • estimate_idstringобязательный

    Идентификатор оценки, которую нужно обновить.

  • notesstring

    Необязательный контекст.

  • unitenum

    Единица actual_hours - часы. При загрузке значение нормализуется к часам (день = 8 часов, неделя = 40 часов, соглашение о рабочем дне, совпадает с toHours() из estimation.ts). Если единица не указана, по умолчанию используются часы.

reference_class_estimateтолько чтениеидемпотентный

Оценка на основе данных с использованием прогнозирования по референтному классу. Применяет исторические корректирующие коэффициенты на основе соотношения фактических и оценочных значений. Если исторических данных нет, использует средние по отрасли значения (1.3-2.2x для программных задач). Отдавайте предпочтение этому методу перед алгоритмическими моделями, когда есть исторические данные.

Параметры
  • ai_nativeboolean | number

    Степень участия ИИ: 0.0 - полностью человек, 1.0 - полностью нативный ИИ, 0.5 - гибрид. Принимает логическое значение для обратной совместимости (true=1.0, false=0.0).

  • complexitynumber

    Настраивает сложность от 1 (тривиальной) до 5 (экстремальной). Регулирует в пределах диапазона объёма: низкая сложность сокращает оценку, высокая удлиняет.

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • scopeenum

    Ориентировочный размер задачи: small=крошечная правка/доводка, medium=типовая задача, large=значительные усилия, xl=эпический масштаб. Если параметр не указан, размер выводится из сложности: 1-2=small, 3=medium, 4=large, 5=xl.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenumобязательный

    Категория работы, оцениваемой для поиска по эталонному классу.

  • team_idstring

    Необязательный идентификатор команды, ограничивающий исторические данные до конкретной команды.

schedule_riskтолько чтениеидемпотентный

Оценивает риск срыва сроков по оценке на основе исторических данных о точности. Вычисляет доверительные интервалы (p50/p80/p95) на основе MAPE вашей команды. Возвращает уровень риска и практические рекомендации. Использует отраслевой базовый уровень (25% MAPE), если исторических данных нет.

Параметры
  • ai_nativeboolean | number

    Степень участия ИИ: 0.0 - полностью человек, 1.0 - полностью нативный ИИ, 0.5 - гибрид. Принимает логическое значение для обратной совместимости (true=1.0, false=0.0).

  • complexitynumber

    Сложность задачи варьируется от 1 (тривиальная) до 5 (экстремальная). Более высокая сложность расширяет доверительные интервалы.

  • estimated_hoursnumberобязательный

    Расчетные трудозатраты в часах для оценки риска для.

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenum

    Необязательный тип задачи для уточнения поиска исторической точности.

  • team_idstring

    Необязательный идентификатор команды для ограничения исторических данных.

sprint_forecastтолько чтениеидемпотентный

Прогнозирует дату завершения спринта на основе размера бэклога и исторической скорости. Вычисляет среднюю скорость из истории спринтов, преобразует стори-пойнты в часы и возвращает необходимое количество спринтов с пессимистичной оценкой на основе дисперсии скорости. Используйте при планировании даты завершения спринта на основе размера бэклога и истории скорости.

Параметры
  • ai_nativeboolean | number

    Степень участия ИИ: 0.0 - полностью человек, 1.0 - полностью нативный ИИ, 0.5 - гибрид. Принимает логическое значение для обратной совместимости (true=1.0, false=0.0).

  • backlog_pointsnumberобязательный

    Общее количество стори-поинтов или единиц трудозатрат, оставшихся в бэклоге.

  • hours_per_sprintnumber

    Общее количество продуктивных инженерных часов, доступных за спринт (учитывает совещания и накладные расходы).

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • sprint_length_daysnumber

    Календарные дни в одном цикле спринта.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов.

  • velocity_historynumber[]обязательный

    Исторические скорости по завершённым спринтам. Минимум 1 точка данных; для осмысленных прогнозов рекомендуется 3+.

time_mathтолько чтениеидемпотентный

Выполняет составные операции со временем. Направляет запрос к соответствующей подоперации в зависимости от параметра 'operation'. Операции: add_days, add_business_days, diff, convert_tz, parse_nl, format_duration. Используйте для многошаговых или динамических операций со временем; для одиночных вызовов применяйте get_current_time, convert_timezone, parse_duration, add_business_days или count_business_days.

Параметры
  • operandsobjectобязательный

    Пары «ключ-значение», соответствующие ожидаемым полям выбранной операции. Обязательные ключи смотрите в документации по операции.

  • operationenumобязательный

    Арифметическая операция со временем, которую нужно выполнить. Каждая операция ожидает определённые операнды.

token_cost_estimateтолько чтениеидемпотентный

Оценивает реальное время и стоимость в долларах для использования токенов LLM. Объединяет преобразование токенов во время с ценами для конкретной модели. Возвращает разбивку затрат (входные/выходные/накладные) вместе с временной оценкой. Используйте token_time_bridge, если вам нужно только реальное время, а не стоимость в долларах.

Параметры
  • modelstringобязательный

    Идентификатор модели LLM. Неизвестные модели откатываются к общим оценкам.

  • reasoning_depthenum

    Ожидаемая глубина цепочки рассуждений.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов.

  • tokensnumberобязательный

    Общее количество токенов в запросе к LLM (промпт + завершение).

  • tool_callsnumber

    Ожидаемое количество вызовов инструментов в агентном цикле.

token_time_bridgeтолько чтениеидемпотентный

Преобразует лимиты токенов LLM в примерное реальное время выполнения. Использует калибровочные данные для конкретной модели (токенов в секунду, накладные расходы на логическое рассуждение, задержки вызова инструментов), чтобы оценить, сколько времени на самом деле займет задача. Устраняет разрыв между пространством токенов (как агенты рассуждают) и временем (что нужно людям). Используйте token_cost_estimate, если важна ещё и стоимость в долларах.

Параметры
  • modelstringобязательный

    Идентификатор модели LLM. Неизвестные модели откатываются к общим оценкам.

  • projectstring

    Необязательный идентификатор проекта/репозитория, к которому относится эта оценка, для аналитики по нескольким проектам.

  • reasoning_depthenum

    Ожидаемая глубина рассуждений chain-of-thought. Глубокие рассуждения добавляют значительную задержку на токен.

  • session_idstring

    Необязательный идентификатор сессии (создаётся вызывающим агентом или хуком), исключает дубликаты повторных вызовов estimate для одной и той же задачи в рамках сессии.

  • task_labelstring

    Необязательная текстовая метка для идентификации задачи, к которой относится эта оценка (например, ключ задачи или краткое название). Она отображается в выводе get_pending_estimates для сортировки.

  • task_typeenum

    Необязательный тип задачи для сопоставления отзывов.

  • tokensnumberобязательный

    Общее количество токенов в запросе к LLM (промпт + завершение).

  • tool_callsnumber

    Ожидаемое количество вызовов инструментов в агентном цикле. Каждый вызов добавляет задержку из-за накладных расходов.

wait_boundтолько чтениеидемпотентный

Выводит дедлайн из механизма, на котором фактически едет ожидание (закон трёх часов v1.1 A2): fleet = k x cycle_seconds + PERT(turn) + 1 sd; world = PERT(turn) с ОБЯЗАТЕЛЬНЫМ именованным внешним якорем; ceo = именованная ступень лестницы (машинное время никогда не потребляет ступень CEO). Возвращает границу в секундах, дедлайн в UTC и локальном времени (по умолчанию PT) и целое число TTL, готовое для envelope. Круглые человеческие часы - непроверенный запас.

Параметры
  • ceo_rungenum

    Только для CEO ОБЯЗАТЕЛЬНО: ступень лестницы (pass=15m, burst=1h, sleep=1d, cycle=1wk, season=1mo). Ступень И ЕСТЬ предел.

  • clock_classenumобязательный

    На каких из трёх часов едет это ожидание: fleet = только агент (математика цикла механизма), world = внешний 1:1 (требует external_anchor), ceo = именованная лестница (требует ceo_rung). Закон трёх часов v1.1 A2.

  • cycle_secondsnumber

    Только для Fleet: цикл механизма в секундах, к которому привязано ожидание (org bus sweep = 40). По умолчанию 40.

  • cycles_kinteger

    Только для Fleet: множитель циклов, 1..5 по закону (больше циклов = сломанный механизм, а не щедрый дедлайн). По умолчанию 2.

  • external_anchorstring

    Только для World ОБЯЗАТЕЛЬНО: именованное внешнее событие, к которому привязано это ожидание (1:1, без дилатации).

  • from_timestampstring

    Момент начала в формате ISO 8601; пока не указывайте.

  • time_zonestring

    Часовой пояс IANA для отображаемого дедлайна. По умолчанию America/Los_Angeles (правило отображения PT).

  • turn_most_likely_minutesnumber

    Наиболее вероятное время выполнения по PERT в минутах. По умолчанию 45.

  • turn_optimistic_minutesnumber

    Оптимистичная оценка PERT для Turn-time в минутах. По умолчанию 15.

  • turn_pessimistic_minutesnumber

    Пессимистическая оценка PERT времени оборота в минутах (занятые места/места с оборотом). По умолчанию 120.

0.5.2основная
0.5.1
0.5.0
0.4.0
0.3.1
0.3.0
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1

Выберите клиент, чтобы установить KyaniteLabs/Epoch:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "kyanitelabs-epoch-g04euroikg": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"kyanitelabs-epoch-g04euroikg\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"@kyanitelabs/epoch\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add kyanitelabs-epoch-g04euroikg -- npx @kyanitelabs/epoch

Либо через JSON-конфиг:

claude mcp add-json kyanitelabs-epoch-g04euroikg "{\"command\":\"npx\",\"args\":[\"@kyanitelabs/epoch\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add kyanitelabs-epoch-g04euroikg -- npx @kyanitelabs/epoch

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.kyanitelabs-epoch-g04euroikg]
command = "npx"
args = ["@kyanitelabs/epoch"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите KyaniteLabs/Epoch, а в поле команды запуска — строку ниже:
npx @kyanitelabs/epoch

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например kyanitelabs-epoch-g04euroikg.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: kyanitelabs-epoch-g04euroikg
    command: npx
    args:
      - "@kyanitelabs/epoch"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "kyanitelabs-epoch-g04euroikg": {
      "command": "npx",
      "args": [
        "@kyanitelabs/epoch"
      ]
    }
  }
}

Похожие MCP-сервера

tacticlaunch/mcp-linear

tacticlaunch/mcp-linear

от tacticlaunch

MCP сервер для интеграции AI-ассистентов с Linear. Предоставляет инструменты управления задачами, проектами, циклами и документами, включая ресурсы и промпты. Полезен командам, использующим Linear ...

TypeScript⭐ 148
aashari/mcp-server-atlassian-jira

aashari/mcp-server-atlassian-jira

от aashari

Подключает AI-ассистентов к Jira: запрашивайте проекты, задачи, комментарии на естественном языке. Упрощает управление проектами и отслеживание работы для разработчиков, менеджеров и всех пользоват...

TypeScript⭐ 77
roychri/mcp-server-asana

roychri/mcp-server-asana

от roychri

MCP сервер для интеграции с Asana: управляйте задачами, проектами и комментариями из Claude Desktop и других MCP клиентов. Инструмент поддерживает создание, обновление, поиск задач, работу с проектами и статусами. Есть опциональный режим только для чтения для безопасного тестирования.

TypeScript⭐ 149
makeplane/plane-mcp-server

makeplane/plane-mcp-server

от makeplane

Управляет проектами и задачами в Plane: создаёт work items, ищет их по воркспейсу, ведёт циклы и проекты. Облачный хостинг от Plane или локальный запуск.

Python⭐ 343
ernestocorona/kanboard-mcp

ernestocorona/kanboard-mcp

от ernestocorona

MCP сервер для Kanboard с 39 инструментами и JSON-RPC батчингом. Подключает доску к AI-редакторам (Claude Code, Cursor) — агенты читают, планируют и обновляют задачи. Полезен командам, автоматизирующим управление проектами через агентов.

TypeScript⭐ 9
Chunkydotdev/bldbl-mcp

Chunkydotdev/bldbl-mcp

от chunkydotdev

Управляет задачами проекта в Buildable: получает контекст, берёт следующую задачу по приоритету, отмечает прогресс и создаёт обсуждения для связи с разработчиками.

TypeScript⭐ 11
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин