Важно
Timetta MCP Server — развиваемая функциональность. В следующих релизах будут добавлены следующие функции:
change_issue_state — отдельный инструмент для перехода Issue между состояниями с проверкой workflow;add_issue_comment — добавление комментария к Issue;get_employee_profile — профиль сотрудника с контактами, подразделением, должностью, руководителем, навыками, грейдом и текущими проектами (строго в рамках прав пользователя);get_employee_workload — загрузка сотрудника или группы за период с отображением проектов, бронирований, доступной ёмкости, перегрузки и свободных интервалов;find_projects — поиск проектов по названию, коду, руководителю, клиенту, состоянию и периоду;get_project_overview — сводная информация о проекте: состояние, сроки, руководитель, заказчик, команда, прогресс, плановые и фактические часы;get_wiki_page — получение страницы по ID, пути или названию;create_wiki_page — создание страницы в выбранном пространстве или под родительской страницей;update_wiki_page — изменение существующей страницы с проверкой версии.Для облачной Timetta:
https://api.timetta.com/mcp
Для локальной установки:
https://<адрес-WebAPI>/mcp
Используется MCP Streamable HTTP в stateless-режиме. Подключаться рекомендуется через MCP-клиент, а не вызывать endpoint как обычный REST API.
Используется OAuth 2.0 Bearer Token:
Authorization: Bearer <ACCESS_TOKEN>
В качестве токена можно использовать API-токен Timetta, выпущенный от имени конкретного пользователя. Для этого:
Токен действует один год и показывается только при выпуске. Для управления API-токенами требуется роль Администратора и право на гранулу «API Токен». Подробнее: API-токены Timetta.
Все операции MCP выполняются от имени пользователя токена и с учётом его прав доступа в Timetta.
Пример конфигурации клиента:
{
"mcpServers": {
"timetta": {
"type": "http",
"url": "https://api.timetta.com/mcp",
"headers": {
"Authorization": "Bearer <TIMETTA_API_TOKEN>"
}
}
}
}
Конкретный формат конфигурации может отличаться в зависимости от MCP-клиента.
search_helpИщет информацию в официальной справке Timetta и возвращает наиболее релевантные фрагменты статей со ссылками на источники. Метод предназначен для ответов на вопросы о возможностях, настройке и использовании Timetta.
Основные параметры:
query — вопрос пользователя или краткий поисковый запрос, обязательно;language — язык справки, по умолчанию Ru;limit — максимальное количество статей от 1 до 10, по умолчанию 5;chunksPerArticle — максимальное количество фрагментов одной статьи от 1 до 3, по умолчанию 2.Результаты сгруппированы по статьям. Для статьи возвращаются название и URL, а для каждого совпавшего фрагмента — раздел, текст и точная ссылка. Ответ следует формировать по найденным фрагментам и сопровождать ссылками на справку. Если общий объём текста ограничен сервером, isTruncated имеет значение true — в этом случае можно повторить поиск с более узким запросом.
Поиск выполняется по общедоступной справке и не зависит от прав пользователя в Timetta. Сам метод ничего не изменяет.
get_issueВозвращает подробную информацию об Issue, доступной текущему пользователю.
Основной параметр:
issue — точный код, ключ или ID Issue, обязательно.Поиск по названию не выполняется. Если точная ссылка неизвестна, сначала используйте find_issues, а затем повторите вызов с ID найденной Issue. Закрытые Issue также можно получить, если у пользователя есть право их просматривать.
Результат содержит название и описание, проект и задачу проекта, тип, состояние, исполнителя, инициатора, приоритет, теги, резолюцию, срок, даты создания и изменения, а также время входа в текущее состояние.
Для каждого доступного перехода возвращаются ID перехода, подпись, следующее состояние и признак наличия формы перехода. Доступность вычисляется с учётом текущего пользователя и правил lifecycle. Отдельно возвращаются доступные действия активного workflow, действия запуска workflow и возможность его отмены.
create_issueСоздаёт Issue в Timetta.
Основные параметры:
name — название Issue, обязательно;project — название, код или ID проекта, обязательно;description — описание;projectTask — задача проекта;assignee — исполнитель;type — тип Issue;priority — приоритет;dueDate — срок выполнения.Если тип, приоритет или задача проекта не переданы, используются значения по умолчанию. Если проект, исполнитель или другое значение определены неоднозначно, метод возвращает список кандидатов для уточнения.
update_issueИзменяет существующий Issue в Timetta.
Issue ищется по точному совпадению: код, ключ или ID. Поиск по названию не выполняется. Не переданные поля не изменяются.
Основные параметры:
issue — код, ключ или ID Issue, обязательно;name — новое название;description — текст описания;descriptionMode — как применить описание:
append — дописать к существующему описанию, значение по умолчанию;replace — заменить описание целиком;assignee — исполнитель: имя, код или ID;clearAssignee — снять исполнителя; нельзя указывать вместе с assignee;priority — приоритет: название, код или ID;dueDate — срок выполнения;clearDueDate — очистить срок; нельзя указывать вместе с dueDate;projectTask — задача проекта в рамках текущего проекта Issue; нельзя менять, если у Issue есть родитель;type — тип Issue; смена типа сбрасывает состояние lifecycle;tags — теги: названия, коды или ID; при передаче полностью заменяют текущий набор;clearTags — очистить все теги; нельзя указывать вместе с tags.Нужно передать хотя бы одно поле для изменения или один из флагов очистки. Проект и состояние workflow этим методом не меняются.
Если исполнитель, приоритет, тип, задача проекта или тег определены неоднозначно, метод возвращает список кандидатов для уточнения. Если Issue закрыт, защищён или у пользователя недостаточно прав, операция не выполняется.
find_issuesИщет Issue Timetta, доступные текущему пользователю.
Метод поддерживает гибридный поиск: свободный текст ищет по названию и описанию Issue, а явно указанные фильтры разрешаются отдельно и применяются как строгие предикаты. Нужно передать хотя бы один критерий поиска.
Основные параметры:
query — только оставшаяся формулировка предмета или проблемы; не дублируйте значения, уже переданные фильтрами; точный код, ключ или ID Issue обрабатываются без ранжирования;project — проект: название, код или ID (семантический resolve);assignee — исполнитель: название, код или ID (семантический resolve);unassigned — только Issue без исполнителя; нельзя указывать вместе с assignee;state — состояние workflow Issue: имя, код или ID; при указанном проекте — среди состояний типов Issue этого проекта; без проекта совпадения по имени объединяются;dueFrom / dueTo — включительный диапазон срока (время игнорируется);activity — фильтр активности:
active — только активные;inactive — только неактивные;all — все;active для широкого поиска, all при точном коде/ключе/ID или при заданном state;limit — максимальное количество результатов от 1 до 25, по умолчанию 10.Описание в индексе хранится до 32 KB UTF-8 (и для embedding, и для FTS). После включения Issue в семантический поиск нужен RebuildSemanticSearch.
Если проект или исполнитель определены неоднозначно, метод возвращает кандидатов для уточнения. Тип, приоритет, теги, спринт и родитель в v1 не поддерживаются.
Для каждого найденного Issue возвращаются: ID, код, ключ, название, срок, активность, проект, исполнитель, состояние и релевантность (при query).
find_employeesИщет сотрудников Timetta, доступных текущему пользователю.
Метод поддерживает гибридный поиск: свободный текст используется для поиска по профилю сотрудника, а явно указанные аналитики разрешаются отдельно и применяются как строгие фильтры.
Основные параметры:
query — поисковая фраза в свободной форме, например ведущий backend-разработчик с опытом микросервисов;role — роль сотрудника: название, код или ID;location — локация: название, код или ID;resourcePool — ресурсный пул: название, код или ID;supervisor — руководитель: имя, код или ID сотрудника;level — уровень сотрудника: название, код или ID;skills — требуемые навыки с необязательным минимальным уровнем;skillMode — способ объединения нескольких навыков:
all — сотрудник должен обладать всеми навыками, значение по умолчанию;any — достаточно любого из навыков;competencies — требуемые компетенции с необязательным минимальным числовым уровнем;competencyMode — способ объединения нескольких компетенций: all или any;certificates — названия или ID сертификатов;certificateMode — способ объединения нескольких сертификатов: all или any;validCertificatesOnly — учитывать только действующие утверждённые сертификаты, по умолчанию true;activeOnly — исключить сотрудников вне периода работы, по умолчанию true;limit — максимальное количество результатов от 1 до 25, по умолчанию 10.Пример фильтра по навыкам:
{
"skills": [
{
"skill": ".NET",
"minLevel": 3
},
{
"skill": "PostgreSQL"
}
],
"skillMode": "all"
}
Пример фильтра по компетенциям:
{
"competencies": [
{
"competency": "Архитектура решений",
"minLevel": 3
}
]
}
Роль, локация, ресурсный пул, уровень, компетенции и сертификаты поддерживают семантический поиск. Например, пользователь может указать близкую по смыслу формулировку, даже если она не совпадает с точным названием аналитики.
Если аналитика или сотрудник определены неоднозначно, метод не выполняет поиск по случайному совпадению. В ответе возвращаются кандидаты, после чего вызов можно повторить с ID выбранного значения.
Для каждого найденного сотрудника возвращаются:
Списки совпавших навыков, компетенций и сертификатов содержат только значения, участвовавшие в фильтрации, а не полный профиль сотрудника.
Поле релевантности заполняется при использовании параметра query. При поиске только по строгим фильтрам оно не возвращает оценку.
wiki_searchИщет информацию в опубликованных страницах Wiki, доступных текущему пользователю, и возвращает наиболее релевантные фрагменты со ссылками на страницы.
Метод использует гибридный поиск по ключевым словам и смыслу. Если пользователь явно упомянул проект или Wiki-пространство, его следует передать отдельным фильтром, а не включать в query.
Основные параметры:
query — вопрос пользователя или краткий поисковый запрос, обязательно;project — проект: название, код или ID;wikiSpace — Wiki-пространство: название, код, slug или ID;limit — максимальное количество страниц от 1 до 10, по умолчанию 5;chunksPerPage — максимальное количество фрагментов одной страницы от 1 до 3, по умолчанию 2.Параметры project и wikiSpace являются необязательными, но их нельзя использовать одновременно. Если ни один из них не указан, поиск выполняется по всем доступным пользователю Wiki-пространствам. Если проект или пространство определены неоднозначно, метод возвращает кандидатов для уточнения.
Результаты сгруппированы по страницам. Для каждой страницы возвращаются:
isOutdated;Устаревшие страницы не исключаются из результатов, но явно помечаются isOutdated: true. При формировании ответа это следует сообщить пользователю.
Поиск учитывает права текущего пользователя, работает только с опубликованным содержимым и ничего не изменяет в Timetta.
track_timeСписывает время в таймшит текущего пользователя.
Основные параметры:
date — дата списания, обязательно;hours и/или minutes — длительность;issue — код, ключ или ID Issue;project — название, код или ID проекта, если Issue не указан;projectTask — задача проекта, по умолчанию — главная задача;comment — комментарий;activity — вид работ;billCode — Bill Code;strategy — обработка уже существующей записи:
merge — объединить, значение по умолчанию;replace — заменить;create_new — создать отдельную запись.Если указан issue, он имеет приоритет и определяет проект и задачу. Проверяются доступность проекта для пользователя, состояние таймшита и права на списание времени.
EchoТехнический тестовый метод. Возвращает переданный текст без изменений:
{
"message": "Hello"
}
Не является бизнес-операцией и предназначен преимущественно для проверки подключения.
Сам MCP-сервер также поддерживает стандартные протокольные операции MCP: инициализацию соединения, получение списка инструментов (tools/list) и их вызов (tools/call).
Похоже, вам удобнее русский язык. Перейти на русскую версию?