Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
Типы отчётов
Тип отчёта «Акты»
Тип отчёта «Баланс отсутствий»
Тип отчёта «Бронирование»
Тип отчёта «Биллинг»
Тип отчёта «Версии проектов»
Тип отчёта «Задачи»
Тип отчёта «Затраты»
Тип отчёта «Заявки на затраты»
Тип отчёта «Заявки на отсутствия»
Тип отчёта «История ставок пользователей»
Тип отчёта «Запросы ресурсов»
Тип отчёта «Навыки пользователей»
Тип отчёта «Пользователи»
Тип отчёта «Проводки»
Тип отчёта «Ресурсный план»
Тип отчёта «Ресурсный план (по версиям)»
Тип отчёта «Проекты»
Тип отчёта «Сертификаты пользователей»
Тип отчёта «Счета»
Тип отчёта «Счета (строки)»
Тип отчёта «Таймшиты»
Тип отчёта «Таймшиты детально»
Тип отчёта «Финансы»
Тип отчёта «Структура работ»
Тип отчёта «Центры затрат проектов»
Тип отчёта «Задания воркфлоу»
Тип отчета Клиенты
Тип отчета «Контакты»
Тип отчёта «Сделки»
Тип отчёта «История состояний сделок»
Тип отчёта "Договоры"
Тип отчёта «Взаимодействия»
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
Панели сущностей
Фильтры источников данных
FAQ
Настройка и администрирование
Типовой порядок настройки системы
Интеграция с Mattermost
Язык формул и выражений
Язык шаблонов
On-premises
API
Timetta MCP Server
Общие сведения
Примеры использования API
Аутентификация
Справочник API
Reporting API
Рекомендации по работе с Reporting API
Ограничения
История изменений
Термины и определения

Timetta MCP Server

Обновлено: 03.08.2026

Важно

Timetta MCP Server — развиваемая функциональность. Описание ниже соответствует текущей реализации в проекте. Набор инструментов на конкретном сервере зависит от установленной версии и областей доступа токена; проверить его можно через tools/list.

В проекте реализованы 17 MCP-инструментов, включая изменение состояния Issue, добавление комментариев, профили и загрузку сотрудников, поиск и обзор проектов, поиск и создание заявок на отсутствие.

Endpoint

Для облачной Timetta:

https://api.timetta.com/mcp

Для локальной установки:

https://<адрес-WebAPI>/mcp

Используется MCP Streamable HTTP в stateless-режиме. Подключаться рекомендуется через MCP-клиент, а не вызывать endpoint как обычный REST API.

Авторизация

Используется Bearer Token:

Authorization: Bearer <ACCESS_TOKEN>

В качестве токена можно использовать API-токен Timetta, выпущенный от имени конкретного пользователя.

Для выпуска общего API-токена:

  1. Откройте «Настройки системы» → «API-токены».
  2. Нажмите «Выпустить».
  3. Выберите пользователя.
  4. Скопируйте полученный токен.

В текущей реализации поддерживаются общие и личные токены. Личный токен можно выпустить только для себя. Возможность выпуска определяется правом редактирования гранулы «API Токен»: для общего токена требуется область All, для личного — My или All.

Срок действия можно ограничить при выпуске. По умолчанию и максимально — 365 дней. Сохраните токен сразу после получения. Подробнее: API-токены Timetta.

Области доступа токена

Помимо прав пользователя, сервер проверяет области доступа — scopes:

Scope Доступ
mcp:read MCP-инструменты чтения
mcp:write MCP-инструменты чтения и изменения данных
all:read Чтение через API и MCP
all:write Чтение и изменение данных через API и MCP

Для токена только с правом чтения инструменты изменения данных исключаются из tools/list. Их прямой вызов также запрещён.

Scopes не расширяют права пользователя в Timetta. Особенности доступа к агрегатам загрузки отдельно описаны в разделе get_employee_workload.

Пример конфигурации клиента

{
  "mcpServers": {
    "timetta": {
      "type": "http",
      "url": "https://api.timetta.com/mcp",
      "headers": {
        "Authorization": "Bearer <TIMETTA_API_TOKEN>"
      }
    }
  }
}

Конкретный формат конфигурации может отличаться в зависимости от MCP-клиента.

Список инструментов

Инструмент Назначение Изменяет данные
search_help Поиск в официальной справке Нет
find_issues Поиск Issue Нет
get_issue Подробная информация об Issue Нет
create_issue Создание Issue, включая спринт и чек-лист Да
update_issue Изменение полей Issue Да
change_issue_state Переход Issue в другое состояние Да
add_issue_comment Добавление комментария к Issue Да
find_employees Поиск сотрудников Нет
get_employee_profile Профиль сотрудника Нет
get_employee_workload Загрузка сотрудников за период Нет
find_projects Поиск проектов Нет
get_project_overview Сводная информация о проекте Нет
wiki_search Поиск по опубликованным страницам Wiki Нет
find_time_off_requests Поиск заявок на отсутствие Нет
create_time_off_request Создание заявки на отсутствие Да
track_time Списание времени Да
echo Проверка подключения Нет

Общие правила работы

Если проект, сотрудник или другое справочное значение определены неоднозначно, инструмент возвращает needs_clarification и список candidates. Следует уточнить выбор и повторить вызов с ID нужного значения.

В структурированных ответах используются поля status и message. Основные статусы:

Статус Значение
found Чтение или поиск выполнены; список результатов может быть пустым
created Объект создан
updated Объект обновлён
changed Состояние изменено
added Комментарий добавлен
tracked Время списано
needs_clarification Требуется уточнить неоднозначное значение
invalid_request Некорректные или недостающие параметры
not_found Объект не найден среди доступных
not_allowed Операция запрещена правами или бизнес-правилами
failed Не удалось выполнить операцию

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

Инструменты изменения данных следует вызывать только по запросу пользователя. Не повторяйте такие вызовы автоматически после неопределённого результата: повтор может создать дополнительную Issue, заявку, комментарий или списание времени.

Доступные методы

search_help

Ищет информацию в официальной справке Timetta и возвращает релевантные фрагменты статей со ссылками на источники.

Основные параметры:

  • query — вопрос пользователя или краткий поисковый запрос, обязательно; до 1000 символов;
  • language — язык справки, по умолчанию Ru;
  • limit — максимальное количество статей от 1 до 10, по умолчанию 5;
  • chunksPerArticle — максимальное количество фрагментов одной статьи от 1 до 3, по умолчанию 2.

Результаты сгруппированы по статьям. Для статьи возвращаются название и URL, для каждого фрагмента — раздел, текст и точная ссылка.

Ответ пользователю следует формировать по найденным фрагментам и сопровождать ссылками на справку. Если объём текста ограничен сервером, возвращается isTruncated: true; в таком случае можно повторить поиск с более узким запросом.

Поиск выполняется по общедоступной справке и не зависит от прав пользователя на бизнес-данные Timetta. Сам инструмент ничего не изменяет.

find_issues

Ищет Issue, доступные текущему пользователю.

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

Основные параметры:

  • query — предмет или описание проблемы; не дублируйте значения, уже переданные отдельными фильтрами. Точный код, ключ или ID обрабатываются отдельно от гибридного поиска;
  • project — название, код или ID проекта;
  • assignee — имя, код или ID исполнителя;
  • unassigned — только Issue без исполнителя; нельзя использовать вместе с assignee;
  • state — название, код или ID состояния;
  • dueFrom / dueTo — включительные границы срока выполнения; время суток игнорируется;
  • activity — active, inactive или all;
  • limit — максимальное количество результатов от 1 до 25, по умолчанию 10.

Если activity не указан, применяется:

  • active — для широкого поиска;
  • all — при поиске по точному коду, ключу или ID либо при указанном state.

При указанном проекте состояние ищется среди состояний типов Issue этого проекта. Без проекта совпадения по имени состояния объединяются.

Проект и исполнитель поддерживают семантическое разрешение ссылок. При неоднозначности возвращаются кандидаты.

Для каждой Issue возвращаются ID, код, ключ, название, срок, активность, проект, исполнитель, инициатор, состояние и оценка релевантности, когда она рассчитана.

hasMore: true означает, что результаты ограничены. Можно уточнить фильтры или увеличить limit до 25. Параметра offset у инструмента нет.

Фильтры по типу, приоритету, тегам, спринту и родителю в текущем MCP-интерфейсе отсутствуют.

get_issue

Возвращает подробную информацию об Issue, доступной текущему пользователю.

Основной параметр:

  • issue — точный код, ключ или ID Issue, обязательно.

Поиск по названию не выполняется. Если точная ссылка неизвестна, сначала используйте find_issues.

Закрытые Issue также можно получить при наличии права просмотра.

Результат содержит:

  • название и описание;
  • проект и задачу проекта;
  • тип, состояние и активность;
  • исполнителя и инициатора;
  • приоритет и теги;
  • резолюцию и комментарий к резолюции;
  • срок, даты создания и изменения, время входа в текущее состояние;
  • чек-лист;
  • доступные переходы жизненного цикла;
  • информацию о workflow и доступных действиях.

Для каждого пункта чек-листа возвращаются id, title, performer, deadline, fulfilled и position.

Для перехода возвращаются ID, подпись, следующее состояние и признак наличия формы перехода. Доступность переходов вычисляется с учётом текущего пользователя и правил жизненного цикла.

Отдельно возвращаются действия активного workflow, действия запуска workflow и возможность его отмены. Получение этой информации не выполняет сами действия.

create_issue

Создаёт Issue в Timetta. Поддерживает указание спринта и создание чек-листа.

Основные параметры:

  • name — название Issue, обязательно;
  • project — название, код или ID проекта, обязательно;
  • description — описание;
  • projectTask — название, код или ID задачи проекта;
  • assignee — имя, код или ID исполнителя; если не указан, исполнителем становится текущий пользователь;
  • type — тип Issue;
  • priority — приоритет;
  • dueDate — срок выполнения; время суток игнорируется;
  • sprint — точное название или ID доступного спринта; значение current выбирает текущий спринт;
  • checkList — пункты чек-листа в порядке отображения.

Если тип, приоритет или задача проекта не переданы, используются значения по умолчанию.

Пункт checkList содержит:

  • title — непустое название, обязательно;
  • performer — имя, код или ID исполнителя пункта, необязательно;
  • deadline — дата и время в ISO 8601 со смещением часового пояса, необязательно.

Пример:

{
  "name": "Подготовить интеграцию",
  "project": "CRM",
  "sprint": "current",
  "checkList": [
    {
      "title": "Согласовать контракт API"
    },
    {
      "title": "Подготовить тесты",
      "performer": "Иван Петров",
      "deadline": "2026-09-04T18:00:00+03:00"
    }
  ]
}

Пункты создаются невыполненными. Их ID и позиции формируются сервером. Если исполнитель пункта не указан, пункт остаётся без исполнителя.

Issue, чек-лист и привязка к спринту сохраняются в рамках одной транзакции. Если спринт не найден или выбор неоднозначен, частично созданная Issue не сохраняется.

При неоднозначности проекта, исполнителя, спринта или других ссылок возвращаются кандидаты для уточнения.

update_issue

Изменяет поля существующей Issue.

Issue определяется по точному коду, ключу или ID. Поиск по названию не выполняется. Не переданные поля не изменяются.

Основные параметры:

  • issue — код, ключ или ID Issue, обязательно;
  • name — новое название;
  • description — текст описания;
  • descriptionMode — append, чтобы дописать описание, или replace, чтобы заменить его; по умолчанию append;
  • assignee — имя, код или ID исполнителя;
  • clearAssignee — снять исполнителя; нельзя использовать вместе с assignee;
  • priority — название, код или ID приоритета;
  • dueDate — новый срок выполнения;
  • clearDueDate — очистить срок; нельзя использовать вместе с dueDate;
  • projectTask — задача в рамках текущего проекта; нельзя менять, если у Issue есть родитель;
  • type — тип Issue; смена типа сбрасывает состояние жизненного цикла;
  • tags — непустой список названий, кодов или ID тегов, полностью заменяющий текущий набор;
  • clearTags — очистить все теги; не следует передавать вместе с tags.

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

Пустой массив tags не очищает теги — используйте clearTags: true. Пустое описание также не служит командой очистки.

Проект, спринт и чек-лист этим инструментом не изменяются. Для перехода в другое состояние используйте change_issue_state.

При неоднозначных ссылках возвращаются кандидаты. Изменения выполняются с проверкой прав и бизнес-ограничений Timetta.

change_issue_state

Переводит Issue в другое состояние через доступный переход жизненного цикла.

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

Основные параметры:

  • issue — точный код, ключ или ID Issue, обязательно;
  • state — название, код или ID целевого состояния либо ID доступного перехода, обязательно;
  • resolution — название, код или ID резолюции, если она предусмотрена формой перехода;
  • resolutionComment — комментарий к резолюции, если предусмотрен формой;
  • comment — комментарий к переходу, если предусмотрен формой.

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

Активный workflow автоматически не отменяется. Если он запущен, прямое изменение состояния отклоняется: сначала необходимо завершить или отменить workflow доступным способом.

Если форма требует дополнительные значения, возвращаются invalid_request и requiredProperties. Передача резолюции или комментария, которые форма не запрашивает, также отклоняется.

Успешный ответ содержит предыдущее и новое состояние, выполненный переход и обновлённый список доступных переходов.

add_issue_comment

Добавляет комментарий к Issue, доступной текущему пользователю.

Основные параметры:

  • issue — точный код, ключ или ID Issue, обязательно;
  • text — непустой текст комментария, обязательно.

Если точная ссылка неизвестна, сначала используйте find_issues. Закрытые Issue также поддерживаются при наличии права просмотра.

Успешный ответ содержит идентификаторы Issue и комментария, текст, дату создания, автора и реального автора при работе в режиме замещения.

Повторный вызов создаёт отдельный комментарий. Инструмент не является идемпотентным.

Параметры для вложений и структурированных упоминаний пользователей отсутствуют.

find_employees

Ищет сотрудников Timetta, доступных текущему пользователю.

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

Нужно передать хотя бы один поисковый критерий.

Основные параметры:

  • query — поисковая формулировка, например ведущий backend-разработчик с опытом микросервисов;
  • role — название, код или ID роли;
  • location — название, код или ID локации;
  • resourcePool — название, код или ID ресурсного пула;
  • supervisor — имя, код или ID руководителя;
  • level — название, код или ID уровня сотрудника;
  • skills — требуемые навыки с необязательным минимальным уровнем;
  • skillMode — all или any, по умолчанию all;
  • competencies — требуемые компетенции с необязательным минимальным числовым уровнем;
  • competencyMode — all или any, по умолчанию all;
  • certificates — названия или ID сертификатов;
  • certificateMode — all или any, по умолчанию all;
  • validCertificatesOnly — учитывать только утверждённые сертификаты, действующие на текущую дату; по умолчанию true;
  • activeOnly — исключить сотрудников вне периода работы; по умолчанию true;
  • limit — максимальное количество результатов от 1 до 25, по умолчанию 10.

Режим all требует совпадения всех условий внутри соответствующего списка, any — хотя бы одного.

Пример фильтра по навыкам:

{
  "skills": [
    {
      "skill": ".NET",
      "minLevel": 3
    },
    {
      "skill": "PostgreSQL"
    }
  ],
  "skillMode": "all"
}

Пример фильтра по компетенциям:

{
  "competencies": [
    {
      "competency": "Архитектура решений",
      "minLevel": 3
    }
  ],
  "competencyMode": "all"
}

Минимальные уровни навыков и компетенций задаются неотрицательными целыми числами.

Справочные значения поддерживают семантическое разрешение: можно использовать близкую по смыслу формулировку. При неоднозначности возвращаются кандидаты.

Для каждого сотрудника возвращаются:

  • ID, ФИО, код и должность;
  • подразделение, роль, локация и ресурсный пул;
  • руководитель и уровень;
  • навыки, компетенции и сертификаты, совпавшие с фильтрами;
  • релевантность текстовому запросу, если использован query.

Списки совпадений содержат только значения, участвовавшие в фильтрации. Для подробного профиля используйте get_employee_profile.

activeOnly: false отключает проверку периода работы, но не включает деактивированные и служебные учётные записи.

get_employee_profile

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

Основные параметры:

  • employee — точное имя, код или ID сотрудника, обязательно;
  • projectLimit — максимальное количество текущих проектов от 1 до 25, по умолчанию 10;
  • directReportLimit — максимальное количество прямых подчинённых от 1 до 50, по умолчанию 25.

Семантический поиск внутри метода не выполняется. Если точная ссылка неизвестна, сначала используйте find_employees.

Результат содержит:

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

Текущими считаются активные проекты, в которых у сотрудника есть активная запись команды. Это не расчёт занятости за период: для него предназначен get_employee_workload.

Коллекции currentProjects и directReports содержат собственный признак hasMore.

Доступ к связанным данным проверяется отдельно. Отсутствие значения в ответе может означать, что оно не заполнено или недоступно пользователю.

Сертификаты в состав ответа этого инструмента не входят; поиск по ним доступен через find_employees.

get_employee_workload

Возвращает агрегированную загрузку сотрудника, списка сотрудников или ресурсного пула за период.

Основные параметры:

  • periodFrom / periodTo — обязательные включительные границы периода, от 1 до 366 дней; время суток игнорируется;
  • employee — точное имя, код или ID одного сотрудника;
  • employees — список от 1 до 50 точных имён, кодов или ID сотрудников;
  • resourcePool — точное название, код или ID ресурсного пула;
  • includeSoftBookings — учитывать мягкие бронирования при расчёте загрузки и доступности, по умолчанию true;
  • includeDays — вернуть детализацию по дням, по умолчанию false;
  • limit — размер страницы ресурсного пула от 1 до 50, по умолчанию 50;
  • offset — смещение для ресурсного пула, по умолчанию 0.

Нужно передать ровно один параметр выбора: employee, employees или resourcePool.

limit и ненулевой offset допустимы только для ресурсного пула. Для следующей страницы используйте nextOffset, если hasMore: true.

Пример:

{
  "periodFrom": "2026-09-01",
  "periodTo": "2026-09-30",
  "resourcePool": "Разработка",
  "includeSoftBookings": true,
  "includeDays": true,
  "limit": 25,
  "offset": 0
}

Для каждого сотрудника возвращаются:

  • часы рабочего графика — scheduledHours;
  • часы утверждённых отсутствий — timeOffHours;
  • ёмкость после вычета отсутствий — capacityHours;
  • часы ресурсного плана — plannedHours;
  • жёсткие и мягкие бронирования — hardBookedHours и softBookedHours;
  • учитываемые бронирования — bookedHours;
  • объединённая загрузка — loadHours;
  • доступные часы, перегрузка и процент загрузки;
  • агрегаты по проектам;
  • свободные интервалы;
  • story points и признак полноты их оценки;
  • детализация по дням, если запрошена.

Расчёт загрузки

Загрузка рассчитывается как сумма максимума между ресурсным планом и учитываемыми бронированиями для каждого проекта и дня:

loadHours = Σ max(plannedHours, bookedHours)

План и бронирования не складываются напрямую: расчёт предполагает, что они могут описывать одну и ту же работу.

Мягкие и жёсткие бронирования возвращаются раздельно независимо от includeSoftBookings. Этот параметр влияет на учитываемую бронь и производные показатели.

Доступность и перегрузка рассчитываются по дням и затем суммируются. Свободные часы одного дня не компенсируют перегрузку другого.

Свободные интервалы — последовательные календарные даты с положительной доступностью, а не свободные слоты внутри дня.

Если данные графика неполны, возвращается scheduleComplete: false, а итоговые показатели ёмкости и доступности — null. При нулевой ёмкости процент загрузки также равен null.

Story points

Story points считаются отдельно по активным Issue, назначенным сотруднику, если:

  • срок Issue входит в запрошенный период; или
  • спринт Issue пересекается с периодом.

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

Если часть подходящих Issue не оценена, возвращается сумма известных оценок и storyPointsComplete: false.

Story points не переводятся в часы и не распределяются по дням.

Права доступа и ограничения

Доступ к сотрудникам и ресурсному пулу проверяется. Агрегаты отсутствий, планов, бронирований и story points рассчитываются в пределах текущей организации без построчной фильтрации исходных записей по правам.

При этом названия и идентификаторы проектов раскрываются только при наличии доступа. Недоступные проекты объединяются в один блок:

{
  "project": null,
  "isUnknownProject": true,
  "projectName": "Unknown project"
}

Эта политика обозначена полем:

dataScope = aggregates_with_project_visibility

Типы и причины отсутствий, отдельные бронирования и подробности Issue не возвращаются.

Отсутствие плана или бронирований не доказывает, что сотрудник свободен. Инструмент ничего не резервирует; создание Issue также не создаёт бронирование.

find_projects

Ищет проекты, доступные текущему пользователю.

Свободный текст используется для гибридного поиска по названию, коду и описанию проекта. Точное название, код, ключ или ID обрабатываются отдельно.

Основные параметры:

  • query — название, код, ключ, ID или описание искомого проекта; не дублируйте значения отдельных фильтров;
  • manager — имя, код или ID основного руководителя проекта;
  • client — название, код или ID заказчика;
  • state — название, код или ID состояния;
  • periodFrom / periodTo — включительные границы периода;
  • activity — active, inactive или all;
  • limit — максимальное количество результатов от 1 до 25, по умолчанию 10.

Нужно передать хотя бы один критерий.

Период выбирает проекты, у которых интервал StartDate–EndDate пересекается с запрошенным интервалом.

Если activity не указан, применяется active для широкого поиска и all для точного поиска проекта либо при указанном state.

При неоднозначном разрешении ссылок возвращаются кандидаты.

Для каждого проекта возвращаются ID, код, ключ, название, даты начала и окончания, активность, руководитель, заказчик, состояние и релевантность, если она рассчитана.

Ответ содержит hasMore. Для подробной информации используйте get_project_overview.

get_project_overview

Возвращает сводную информацию о проекте с учётом прав пользователя.

Основные параметры:

  • project — точное название, код, ключ или ID проекта, обязательно;
  • teamLimit — максимальное количество доступных записей команды от 1 до 50, по умолчанию 25.

Если точная ссылка неизвестна, сначала используйте find_projects.

Результат содержит:

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

Прогресс рассчитывается по доле завершённых конечных задач проекта — задач без дочерних элементов. Метод расчёта обозначен как completed_leaf_tasks. Это не процент выполнения по трудозатратам и не доля закрытых Issue.

Команда содержит visibleCount, items и hasMore. Количество относится только к доступным записям.

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

Ищет информацию в опубликованных страницах Wiki, доступных текущему пользователю, и возвращает релевантные фрагменты со ссылками.

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

Основные параметры:

  • query — вопрос пользователя или краткий поисковый запрос, обязательно;
  • project — название, код или ID проекта;
  • wikiSpace — название, код, slug или ID Wiki-пространства;
  • limit — максимальное количество страниц от 1 до 10, по умолчанию 5;
  • chunksPerPage — максимальное количество фрагментов одной страницы от 1 до 3, по умолчанию 2.

project и wikiSpace нельзя использовать одновременно. Если оба отсутствуют, поиск выполняется по всем доступным пространствам.

При неоднозначном выборе проекта или пространства возвращаются кандидаты.

Результаты сгруппированы по страницам. Для страницы возвращаются:

  • ID, название и краткое описание;
  • название пространства;
  • URL;
  • признак устаревшей информации isOutdated;
  • релевантность;
  • найденные фрагменты с разделами, текстом и точными ссылками.

Устаревшие страницы не исключаются, но помечаются isOutdated: true. Об этом следует сообщать пользователю.

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

find_time_off_requests

Ищет заявки на отсутствие, доступные текущему пользователю. Заявки других сотрудников возвращаются только при наличии соответствующих прав.

Основные параметры:

  • mine — только заявки текущего пользователя, по умолчанию false;
  • employee — имя, код, ID или поисковая формулировка сотрудника; нельзя использовать вместе с mine: true;
  • timeOffType — название, код, ID или формулировка типа отсутствия;
  • state — точное название, код или ID состояния жизненного цикла заявки;
  • periodFrom / periodTo — включительные границы периода, с которым должна пересекаться заявка;
  • limit — максимальное количество результатов от 1 до 25, по умолчанию 10.

Нужно передать хотя бы один критерий. Сотрудник и тип отсутствия поддерживают семантическое разрешение; при неоднозначности возвращаются кандидаты.

Параметра activity нет. Состояние заявки задаётся через state.

Для каждой заявки возвращаются ID, название, заявитель, тип отсутствия, состояние, даты начала и окончания, части первого и последнего дня, часы, длительность, дата утверждения и прямая ссылка.

Ответ содержит hasMore. Заявки сортируются от более поздних дат начала к более ранним. Параметра offset нет.

create_time_off_request

Создаёт заявку на отсутствие для текущего пользователя в начальном состоянии жизненного цикла.

Инструмент не отправляет заявку на согласование.

Основные параметры:

  • timeOffType — название, код, ID или формулировка типа отсутствия, обязательно;
  • startDate — дата начала, обязательно;
  • finishDate — дата окончания, по умолчанию равна startDate;
  • startDayPart — часть первого дня, по умолчанию full_day;
  • finishDayPart — часть последнего дня многодневной заявки, по умолчанию full_day;
  • startDayHours — часы первого дня при startDayPart: "hours";
  • finishDayHours — часы последнего дня при finishDayPart: "hours";
  • description — описание или комментарий заявителя.

Допустимые части дня:

Значение Часть дня
full_day Полный день
hours Указанное количество часов
half Половина дня
three_quarters Три четверти дня
quarter Четверть дня
one_eighth Одна восьмая дня

Для режима hours нужно передать положительное количество часов. При других режимах соответствующее поле часов указывать нельзя.

Для однодневной заявки используйте только параметры первого дня. finishDayPart не влияет на результат, а передача finishDayHours отклоняется.

Пример заявки на два часа:

{
  "timeOffType": "Отсутствие по личным причинам",
  "startDate": "2026-09-03",
  "startDayPart": "hours",
  "startDayHours": 2,
  "description": "Личные обстоятельства"
}

Тип отсутствия разрешается семантически по названию, коду и описанию. При неоднозначности возвращаются кандидаты.

Создание выполняется через стандартные механизмы Timetta с проверкой прав и бизнес-ограничений. Поддержка почасового отсутствия зависит от выбранного типа.

Успешный ответ содержит ID, заявителя, тип отсутствия, даты, части дней, часы, рассчитанную длительность, описание, начальное состояние и прямую ссылку.

Параметра для создания заявки от имени другого сотрудника нет.

track_time

Списывает время в таймшит текущего пользователя.

Основные параметры:

  • date — дата списания, необязательно; если не указана, используется текущая дата в часовом поясе пользователя;
  • hours — целые или дробные часы;
  • minutes — дополнительные целые минуты;
  • issue — точный код, ключ или ID Issue;
  • project — название, код или ID проекта; обязателен, если не указан issue;
  • projectTask — задача проекта; по умолчанию используется главная задача;
  • comment — комментарий;
  • activity — название или ID вида работ;
  • billCode — название, код или ID Bill Code; при отсутствии используется значение по умолчанию, если оно определено;
  • strategy — способ обработки существующей записи: merge, replace или create_new.

Продолжительность рассчитывается так:

hours + minutes / 60

Нужно передать положительную итоговую длительность. Отрицательные часы или минуты не допускаются.

Стратегии:

  • merge — объединить с существующей записью, по умолчанию;
  • replace — заменить существующую запись;
  • create_new — создать отдельную запись.

Если указан issue, он имеет приоритет и определяет проект и задачу.

Проверяются доступность задачи для списания времени, права пользователя, состояние таймшита и другие ограничения Timetta. При недоступности задачи возвращается not_allowed.

При неоднозначном разрешении ссылок возвращаются кандидаты.

echo

Технический инструмент для проверки подключения. Имя инструмента — echo в нижнем регистре.

Параметр:

  • message — текст для возврата, обязательно.

Пример:

{
  "message": "Hello"
}

Возвращает переданный текст без изменений. Не выполняет бизнес-операций.

Отличия от встроенного AI-помощника

Публичный MCP-интерфейс и каталог инструментов встроенного AI-помощника сейчас различаются.

Во внутреннем каталоге зарегистрированы 13 инструментов. Из перечисленных выше в него пока не включены:

  • add_issue_comment;
  • find_time_off_requests;
  • create_time_off_request;
  • echo.

Также внутренний find_issues поддерживает дополнительные фильтры:

  • initiator — инициатор;
  • createdBy — создатель;
  • modifiedBy — последний изменивший пользователь;
  • follower — подписчик;
  • mentionedUser — упомянутый пользователь.

Эти параметры не опубликованы в текущей MCP-схеме find_issues. При работе внешнего клиента следует ориентироваться на схему, полученную через tools/list.

Протокольные операции MCP

Кроме бизнес-инструментов, сервер поддерживает стандартные операции MCP:

  • инициализацию соединения;
  • получение списка инструментов — tools/list;
  • вызов инструмента — tools/call.
Предыдущая
 Timetta CLI

Содержание

Endpoint Авторизация Области доступа токена Пример конфигурации клиента Список инструментов Общие правила работы Доступные методы search_help find_issues get_issue create_issue update_issue change_issue_state add_issue_comment find_employees get_employee_profile get_employee_workload Расчёт загрузки Story points Права доступа и ограничения find_projects get_project_overview wiki_search find_time_off_requests create_time_off_request track_time echo Отличия от встроенного AI-помощника Протокольные операции MCP
Спросить ИИ Получить ответ по материалам документации
Введите запрос для поиска по документации
Ничего не найдено, уточните запрос
AI

Похоже, вам удобнее русский язык. Перейти на русскую версию?