gitflic-mcp
Первый и единственный MCP-сервер для GitFlic — российской платформы для хостинга Git-репозиториев.
122 инструмента покрывающий 19 категорий GitFlic API: проекты, issue, связи issue, комментарии, merge request, ветки, коммиты, файлы, теги, релизы, обсуждения, вебхуки, CI/CD, зеркалирование, команды, компании, защита окружений, реестр пакетов и другие.
Построен на TypeScript и Model Context Protocol SDK.
English documentation · GitHub-зеркало
Зачем
- Единственный MCP-сервер для GitFlic. Альтернатив нет — если вам нужен AI-агент для работы с GitFlic, это он.
- Широкое покрытие API. 122 инструмента из 182 задокументированных эндпоинтов — все ключевые операции для повседневной работы с репозиториями.
- Готов к работе. Подключается к Claude Code, Claude Desktop, Cursor и любому другому MCP-совместимому клиенту за минуту.
- Минимальные зависимости. Только MCP SDK и Zod — никаких тяжёлых фреймворков.
Установка
Требования
- Node.js 18+
- Токен доступа GitFlic
Через npx (рекомендуется)
Без клонирования и сборки — пакет gitflic-mcp запускается через npx. Добавьте в конфигурацию MCP-клиента:
{
"mcpServers": {
"gitflic": {
"command": "npx",
"args": ["-y", "gitflic-mcp"],
"env": { "GITFLIC_TOKEN": "ваш_токен" }
}
}
}
Сборка из исходников
# GitFlic (основной)
git clone https://gitflic.ru/project/sazonovfm/gitflic-mcp.git
# или GitHub (зеркало)
git clone https://github.com/revenant20/gitflic-mcp.git
cd gitflic-mcp
npm install
npm run build
Настройка MCP-клиента
При установке через npx (см. выше) конфигурация уже готова. Для сборки из исходников укажите путь к dist/index.js. Например, для Claude Code (.mcp.json в корне проекта):
{
"mcpServers": {
"gitflic": {
"command": "node",
"args": ["/абсолютный/путь/к/gitflic-mcp/dist/index.js"],
"env": {
"GITFLIC_TOKEN": "ваш_токен"
}
}
}
}
Токен можно получить в настройках GitFlic: Настройки → Токены доступа.
| Переменная | Описание | Обязательная |
|---|---|---|
GITFLIC_TOKEN |
Токен доступа GitFlic API | да |
GITFLIC_API_URL |
Базовый URL API (по умолчанию https://api.gitflic.ru) |
нет |
GITFLIC_CACHE_TTL_MS |
TTL кеша чтений в мс (по умолчанию 60000; 0 — отключить кеш) |
нет |
Инструменты
122 инструмента, сгруппированных по 19 категориям. Все параметры пагинации (page, size) опциональны: page по умолчанию 0, size по умолчанию 20 (макс. 100). Инструменты создания/обновления issue, MR и комментариев также принимают опциональный imagePaths для вложения картинок — см. раздел Картинки в текстовых полях. Все read-инструменты принимают опциональный refresh для обхода кеша — см. раздел Кеширование.
Пользователи
get_me
Получить текущего авторизованного пользователя.
Параметры: нет.
get_user
Получить пользователя по алиасу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
userAlias |
string | да | Алиас (username) пользователя |
list_user_projects
Список публичных проектов пользователя.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
userAlias |
string | да | Алиас пользователя |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
Проекты
list_projects
Список проектов авторизованного пользователя.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
q |
string | нет | Поиск по названию |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_project
Получить проект по владельцу и алиасу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
search_projects
Поиск публичных проектов.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
q |
string | нет | Поисковый запрос |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_shared_projects
Список проектов, к которым предоставлен доступ.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
q |
string | нет | Поиск по названию |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
create_project
Создать новый проект.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
title |
string | да | Название проекта |
alias |
string | да | URL-slug проекта (строчные буквы, дефисы) |
isPrivate |
boolean | да | true — приватный, false — публичный |
ownerAlias |
string | да | Алиас владельца (пользователь, команда или компания) |
ownerAliasType |
string | нет | Тип владельца: USER (по умолчанию), TEAM, COMPANY |
language |
string | нет | Язык программирования |
description |
string | нет | Описание проекта |
fork_project
Создать форк проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца исходного проекта |
project |
string | да | Алиас исходного проекта |
title |
string | да | Название форка |
alias |
string | да | URL-slug форка |
isPrivate |
boolean | да | true — приватный, false — публичный |
forkOwnerAlias |
string | да | Алиас владельца форка |
forkOwnerAliasType |
string | нет | Тип владельца форка: USER (по умолчанию), TEAM, COMPANY |
language |
string | нет | Язык программирования |
description |
string | нет | Описание форка |
update_project
Обновить настройки проекта (название, описание, язык, топики).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
title |
string | нет | Название проекта |
description |
string | нет | Описание проекта |
language |
string | нет | Язык программирования |
topics |
string[] | нет | Топики проекта |
delete_project
Удалить проект. Необратимая операция — удаляет репозиторий, issue, MR и все данные.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
list_project_members
Список участников проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
q |
string | нет | Поиск по username |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
invite_project_member
Добавить пользователя в проект с ролью. Приглашение отложенное — участник должен его принять.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
userAlias |
string | да | Алиас пользователя |
role |
string | да | Роль: GUEST/REPORTER/DEVELOPER/ADMIN/OWNER |
change_member_role
Изменить роль участника проекта. Пользователь должен уже быть участником.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
userAlias |
string | да | Алиас участника |
role |
string | да | Новая роль: GUEST/REPORTER/DEVELOPER/ADMIN/OWNER |
remove_project_member
Удалить участника из проекта по алиасу (аккаунт пользователя не удаляется).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
userAlias |
string | да | Алиас участника |
invite_project_team
Добавить команду в проект с максимальной ролью. Для команды OWNER недопустим.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
teamAlias |
string | да | Алиас команды |
maxRole |
string | да | Макс. роль: GUEST/REPORTER/DEVELOPER/ADMIN |
change_team_role
Изменить максимальную роль команды в проекте. Команда должна быть уже добавлена.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
teamAlias |
string | да | Алиас команды |
maxRole |
string | да | Новая макс. роль: GUEST/REPORTER/DEVELOPER/ADMIN |
remove_project_team
Удалить команду из проекта по алиасу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
teamAlias |
string | да | Алиас команды |
Issue
list_issues
Список issue проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_issue
Получить issue по локальному ID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
create_issue
Создать новый issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
title |
string | да | Заголовок |
description |
string | да | Описание |
status |
string | нет | Статус: OPEN (по умолчанию), IN_PROGRESS, CLOSED, COMPLETED |
assignees |
string[] | нет | Алиасы пользователей для назначения |
labels |
string[] | нет | UUID меток (создаются через веб-интерфейс GitFlic) |
delete_issue
Удалить issue. Необратимая операция.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
list_issue_files
Список файлов, прикреплённых к issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
link_issue_file
Прикрепить загруженный файл к issue по UUID загрузки.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
uploadFileUuid |
string | да | UUID загруженного файла |
Примечание:
link_issue_fileиunlink_issue_fileне полностью протестированы — для работы требуетсяuploadFileUuid, а загрузка файлов через API пока не реализована в MCP-сервере.
unlink_issue_file
Отвязать файл от issue (сам файл не удаляется).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
uploadFileUuid |
string | да | UUID файла для отвязки |
update_issue
Обновить существующий issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
title |
string | нет | Новый заголовок |
description |
string | нет | Новое описание |
status |
string | нет | Новый статус: OPEN, IN_PROGRESS, CLOSED, COMPLETED |
assignees |
string[] | нет | Алиасы пользователей (пустой массив — очистить) |
labels |
string[] | нет | UUID меток (пустой массив — очистить) |
Связи issue
list_issue_relations
Список связей (ссылок) issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
create_issue_relation
Создать связь между двумя issue. Обратная связь создаётся автоматически.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID исходной issue |
targetIssueUuid |
string | да | UUID целевой issue (из get_issue) |
relationType |
string | да | Тип связи (см. ниже) |
Типы связей: RELATED, HIERARCHY_FORWARD (дочерняя), HIERARCHY_REVERSE (родительская), AFFECTS_FORWARD, AFFECTS_REVERSE, DUPLICATE_FORWARD, DUPLICATE_REVERSE, DEPENDENCY_FORWARD (преемник), DEPENDENCY_REVERSE (предшественник), TESTED_BY_FORWARD, TESTED_BY_REVERSE, SHARED_PARAMETER_REFERENCED_BY_FORWARD, SHARED_PARAMETER_REFERENCED_BY_REVERSE, SHARED_STEP_REFERENCED_BY_FORWARD, SHARED_STEP_REFERENCED_BY_REVERSE.
delete_issue_relation
Удалить связь между issue. Обратная связь также удаляется.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID исходной issue |
targetIssueUuid |
string | да | UUID целевой issue |
Комментарии к issue
list_issue_comments
Список комментариев к issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
add_issue_comment
Добавить комментарий к issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
text |
string | да | Текст комментария |
edit_issue_comment
Редактировать комментарий к issue. Полностью заменяет текст.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
comment_id |
string | да | UUID комментария (из list_issue_comments) |
text |
string | да | Новый текст комментария |
delete_issue_comment
Удалить комментарий к issue. Необратимая операция.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
issue_id |
integer | да | Локальный ID issue |
comment_id |
string | да | UUID комментария (из list_issue_comments) |
Файлы репозитория
get_file_content
Получить содержимое файла (до 15 МБ, только текстовые).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
file |
string | да | Путь к файлу (например src/index.ts) |
commitHash |
string | да | Хеш коммита или имя ветки |
list_files
Список файлов и директорий по указанному пути.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
filepath |
string | нет | Путь к директории (пусто для корня) |
branch |
string | нет | Имя ветки |
list_files_recursive
Рекурсивный список файлов (дерево репозитория).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
directory |
string | нет | Корневая директория |
commitHash |
string | нет | Хеш коммита или имя ветки |
depth |
number | нет | Глубина рекурсии (0–10) |
Merge Request
list_merge_requests
Список merge request проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_merge_request
Получить merge request по локальному ID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
find_mr_by_commit
Найти merge request, содержащий указанный коммит.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
commit |
string | да | Хеш коммита |
status |
string | нет | Фильтр по статусу: OPENED, MERGED, CLOSED, CANCELLED (GitFlic использует OPENED, не OPEN) |
create_merge_request
Создать merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
title |
string | да | Заголовок |
description |
string | да | Описание |
sourceBranch |
string | да | Исходная ветка |
targetBranch |
string | да | Целевая ветка |
squashCommit |
boolean | нет | Сжать коммиты при слиянии |
removeSourceBranch |
boolean | нет | Удалить исходную ветку после слияния |
update_merge_request
Обновить merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_uuid |
string | да | UUID merge request (из ответа get_merge_request) |
title |
string | да | Заголовок |
targetBranch |
string | да | Целевая ветка |
description |
string | нет | Описание |
squashCommit |
boolean | нет | Сжать коммиты при слиянии |
removeSourceBranch |
boolean | нет | Удалить исходную ветку после слияния |
approve_merge_request
Одобрить или отменить одобрение merge request (переключатель).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
merge_merge_request
Выполнить слияние merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
commitMessage |
string | нет | Сообщение коммита слияния |
squashCommitMessage |
string | нет | Сообщение squash-коммита |
close_merge_request
Закрыть merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
cancel_merge_request
Отменить merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
Обсуждения MR
list_mr_discussions
Список обсуждений merge request.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_mr_discussion
Получить обсуждение по UUID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
discussionUuid |
string | да | UUID обсуждения |
create_mr_discussion
Создать обсуждение (общий комментарий или к строке кода).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
message |
string | да | Текст сообщения |
oldPath |
string | нет | Путь к файлу (старая версия), для комментария к коду |
newPath |
string | нет | Путь к файлу (новая версия), для комментария к коду |
oldLine |
integer | нет | Номер строки (старая версия) |
newLine |
integer | нет | Номер строки (новая версия) |
reply_mr_discussion
Ответить в существующем обсуждении.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
discussionUuid |
string | да | UUID обсуждения |
message |
string | да | Текст ответа |
resolve_mr_discussion
Разрешить (закрыть) обсуждение.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
discussionUuid |
string | да | UUID обсуждения |
delete_mr_discussion
Удалить обсуждение (весь тред).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
mr_id |
integer | да | Локальный ID merge request |
discussionUuid |
string | да | UUID обсуждения |
Ветки
list_branches
Список веток проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_branch
Получить ветку по имени.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
branchName |
string | да | Имя ветки |
get_default_branch
Получить ветку по умолчанию.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
create_branch
Создать ветку от существующей.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
newBranch |
string | да | Имя новой ветки |
originBranch |
string | да | Базовая ветка |
delete_branch
Удалить ветку.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
branchName |
string | да | Имя ветки |
Примечание: DELETE-эндпоинт для веток отсутствует в публичной документации GitFlic, но работает на
api.gitflic.ru. Тело ответа может быть пустым — это трактуется как успех. Ветка не должна быть защищённой. (Ранее эндпоинт возвращал 405 — на текущей версии API работает.)
compare_branches
Сравнить две ветки — список изменённых файлов.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
compare |
string | да | Сравниваемая ветка |
base |
string | нет | Базовая ветка (по умолчанию — ветка по умолчанию) |
compare_branch_file
Изменения одного файла между двумя коммитами (построчный diff). Для всех файлов между коммитами используйте diff_commits, для файлов одного коммита — get_commit_files, для двух веток целиком — compare_branches.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
filePath |
string | да | Путь к файлу в репозитории |
baseHash |
string | да | Хеш базового коммита |
compareHash |
string | да | Хеш сравниваемого коммита |
refresh |
boolean | нет | Обойти кеш чтений |
Коммиты
list_commits
Список коммитов ветки.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
branch |
string | нет | Имя ветки (по умолчанию — ветка по умолчанию) |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_commit
Получить коммит по хешу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
hash |
string | да | Хеш коммита |
get_commit_files
Список файлов, изменённых в коммите.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
hash |
string | да | Хеш коммита |
diff_commits
Diff между двумя коммитами.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
sourceCommitId |
string | да | Хеш исходного коммита |
targetCommitId |
string | да | Хеш целевого коммита |
Теги
list_tags
Список тегов проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_tag
Получить тег по имени.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
tagName |
string | да | Имя тега |
create_tag
Создать тег.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
tagName |
string | да | Имя тега |
message |
string | нет | Сообщение (аннотированный тег) |
commitId |
string | нет | Хеш коммита (указать commitId или branchName) |
branchName |
string | нет | Имя ветки для тега на HEAD (указать commitId или branchName) |
Релизы
list_releases
Список релизов проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_release
Получить релиз по UUID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
releaseUuid |
string | да | UUID релиза |
get_latest_release
Получить последний релиз проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
create_release
Создать релиз.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
title |
string | да | Название релиза |
description |
string | да | Описание релиза |
tagName |
string | да | Имя тега |
preRelease |
boolean | нет | Пометить как пре-релиз |
attachProjectArchive |
boolean | нет | Прикрепить архив проекта |
projectArchiveFormat |
string | нет | Формат архива: zip, tar, tar.gz, tar.xz, tar.bz2, 7z |
update_release
Обновить релиз.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
releaseUuid |
string | да | UUID релиза |
title |
string | да | Название релиза |
tagName |
string | да | Имя тега |
description |
string | нет | Описание релиза |
preRelease |
boolean | нет | Пометить как пре-релиз |
delete_release
Удалить релиз.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
releaseUuid |
string | да | UUID релиза |
Вебхуки
list_webhooks
Список вебхуков проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_webhook
Получить вебхук по ID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
webhook_id |
string | да | UUID вебхука |
create_webhook
Создать вебхук.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
url |
string | да | URL обратного вызова |
secret |
string | да | Секретный ключ |
events |
string[] | да | Список событий (см. ниже) |
update_webhook
Обновить вебхук.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
webhook_id |
string | да | UUID вебхука |
url |
string | да | URL обратного вызова |
secret |
string | да | Секретный ключ |
events |
string[] | да | Список событий (см. ниже) |
delete_webhook
Удалить вебхук.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
webhook_id |
string | да | UUID вебхука |
События вебхуков
COLLABORATOR_ADD, COLLABORATOR_DELETE, COLLABORATOR_UPDATE, ISSUE_CREATE, ISSUE_UPDATE, NEW_ISSUE_NOTE, TAG_CREATE, TAG_DELETE, BRANCH_CREATE, BRANCH_UPDATE, BRANCH_DELETE, MERGE_REQUEST_CREATE, MERGE_REQUEST_UPDATE, MERGE_REQUEST_CLOSE, MERGE_REQUEST_CANCEL, MERGE_REQUEST_ACCEPT, MERGE, DISCUSSION_CREATE, DISCUSSION_COMMENT_CREATE, PIPELINE_NEW, PIPELINE_SUCCESS, PIPELINE_FAIL, WEBHOOK_SEND
CI/CD
list_pipelines
Список пайплайнов проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
start_pipeline
Запустить пайплайн.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
refName |
string | нет | Имя ветки или тега (по умолчанию — ветка по умолчанию) |
isTag |
boolean | нет | true, если refName — тег |
variables |
object[] | нет | Переменные: [{"key": "...", "value": "..."}] |
list_pipeline_jobs
Список задач пайплайна.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
pipeline_id |
integer | да | Локальный ID пайплайна |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
restart_pipeline
Перезапустить пайплайн.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
pipeline_id |
integer | да | Локальный ID пайплайна |
cancel_pipeline
Отменить запущенный пайплайн.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
pipeline_id |
integer | да | Локальный ID пайплайна |
get_job
Получить информацию о задаче.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
job_id |
integer | да | Локальный ID задачи |
list_job_artifacts
Список артефактов задачи.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
job_id |
integer | да | Локальный ID задачи |
restart_job
Перезапустить задачу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
job_id |
integer | да | Локальный ID задачи |
cancel_job
Отменить запущенную задачу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
job_id |
integer | да | Локальный ID задачи |
list_cicd_variables
Список CI/CD переменных проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
list_project_runners
Список CI/CD-раннеров, зарегистрированных в проекте. Возвращает имя, активность, платформу/архитектуру, IP и UUID. Эндпоинт — /project/{owner}/{project}/runners (НЕ под /cicd).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
Зеркалирование
setup_push_mirror
Настроить PUSH-зеркалирование проекта на внешний Git-репозиторий (например GitHub, GitLab).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
source |
string | да | URL целевого репозитория (например https://github.com/user/repo.git) |
login |
string | нет | Имя пользователя для аутентификации |
token |
string | нет | Токен доступа для аутентификации |
trigger_mirror_update
Запустить синхронизацию PUSH-зеркала вручную. Проект должен быть настроен как PUSH-зеркало.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
Команды (Enterprise)
list_teams
Список команд, которыми владеет текущий пользователь. Команда группирует пользователей для общего доступа к проектам.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_shared_teams
Список команд, в которых пользователь участвует, но не владеет.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_team
Детали команды по алиасу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
create_team
Создать команду. Владелец по умолчанию — текущий пользователь.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
alias |
string | да | Алиас/URL-slug (уникальный) |
title |
string | да | Название |
owner |
string | нет | Владелец (по умолчанию текущий пользователь) |
description |
string | нет | Описание |
list_team_members
Список участников команды (username, роль).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
invite_team_member
Пригласить пользователя в команду с ролью.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
user_alias |
string | да | Username |
role |
enum | да | GUEST/REPORTER/DEVELOPER/ADMIN/OWNER |
change_team_member_role
Изменить роль участника команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
user_alias |
string | да | Username |
role |
enum | да | GUEST/REPORTER/DEVELOPER/ADMIN/OWNER |
remove_team_member
Удалить участника из команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
user_alias |
string | да | Username |
Компании (Enterprise)
list_companies
Список публичных компаний. Компания — организационная группировка, владеющая проектами и командами.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_my_companies
Список компаний, которыми владеет текущий пользователь.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_shared_companies
Список компаний, в которых пользователь участвует, но не владеет.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_company
Детали компании по алиасу.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
create_company
Создать компанию.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
alias |
string | да | Алиас/URL-slug (уникальный) |
title |
string | да | Название |
is_private |
boolean | нет | Приватная (по умолчанию false) |
description |
string | нет | Описание |
list_company_members
Список участников компании (username, роль).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
invite_company_member
Пригласить пользователя в компанию с ролью.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
user_alias |
string | да | Username |
role |
enum | да | GUEST/REPORTER/DEVELOPER/ADMIN |
change_company_member_role
Изменить роль участника компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
user_alias |
string | да | Username |
role |
enum | да | GUEST/REPORTER/DEVELOPER/ADMIN |
remove_company_member
Удалить участника из компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
user_alias |
string | да | Username |
Защита окружений (Enterprise)
Правила защиты окружений уровня team и company: окружение (шаблон) → кто может деплоить (ADMINS/DEVELOPER/NO_ONE).
list_team_env_protections
Список правил защиты окружений команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_team_env_protection
Правило защиты окружения команды по UUID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
uuid |
string | да | UUID правила |
create_team_env_protection
Создать правило защиты окружения команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
environment_template |
string | да | Имя/шаблон окружения |
allow_to_deploy |
enum | да | ADMINS/DEVELOPER/NO_ONE |
edit_team_env_protection
Изменить правило защиты окружения команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
uuid |
string | да | UUID правила |
allow_to_deploy |
enum | да | ADMINS/DEVELOPER/NO_ONE |
environment_template |
string | нет | Новое имя/шаблон |
delete_team_env_protection
Удалить правило защиты окружения команды.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
team_alias |
string | да | Алиас команды |
uuid |
string | да | UUID правила |
list_company_env_protections
Список правил защиты окружений компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
get_company_env_protection
Правило защиты окружения компании по UUID.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
uuid |
string | да | UUID правила |
create_company_env_protection
Создать правило защиты окружения компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
environment_template |
string | да | Имя/шаблон окружения |
allow_to_deploy |
enum | да | ADMINS/DEVELOPER/NO_ONE |
edit_company_env_protection
Изменить правило защиты окружения компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
uuid |
string | да | UUID правила |
allow_to_deploy |
enum | да | ADMINS/DEVELOPER/NO_ONE |
environment_template |
string | нет | Новое имя/шаблон |
delete_company_env_protection
Удалить правило защиты окружения компании.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
company_alias |
string | да | Алиас компании |
uuid |
string | да | UUID правила |
Реестр пакетов
Управление содержимым реестра (любой формат) + загрузка/скачивание generic-артефактов. Публикация maven/npm/docker — нативными тулзами.
list_packages
Список пакетов в реестре проекта (UUID, имя, версия, тип).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_package_versions
Список версий пакета.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
package_uuid |
string | да | UUID пакета |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
list_package_files
Список файлов пакета.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
package_uuid |
string | да | UUID пакета |
page |
number | нет | Номер страницы (с 0) |
size |
number | нет | Элементов на странице |
delete_package
Удалить пакет, версию или отдельный файл (необратимо). Только package_uuid — весь пакет; +version — версию; +file_uuid — файл.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
package_uuid |
string | да | UUID пакета |
version |
string | нет | Версия (для удаления версии) |
file_uuid |
string | нет | UUID файла (требует version) |
upload_generic_artifact
Загрузить локальный файл в generic-реестр под package/version/fileName (сырые байты).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
package_name |
string | да | Имя пакета |
version |
string | да | Версия |
file_name |
string | да | Имя файла в реестре |
local_path |
string | да | Путь к локальному файлу |
download_generic_artifact
Скачать файл из generic-реестра в локальный путь.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
owner |
string | да | Алиас владельца |
project |
string | да | Алиас проекта |
package_name |
string | да | Имя пакета |
version |
string | да | Версия |
file_name |
string | да | Имя файла в реестре |
output_path |
string | да | Локальный путь для записи |
Кеширование
Чтобы не дёргать GitFlic API повторно за теми же данными, ответы GET-чтений кешируются в памяти процесса.
- TTL задаётся через
GITFLIC_CACHE_TTL_MS(по умолчанию60000мс). Значение0полностью отключает кеш. - Инвалидация при записи: любая операция записи (POST/PUT/DELETE) к проекту
/{owner}/{project}/…чистит кеш-записи этого проекта. Поэтому после своего жеupdate_issue/create_*/delete_*следующее чтение сразу отдаёт свежее, без ручного сброса. Чужие проекты в кеше не затрагиваются. - Принудительное обновление: все read-инструменты принимают опциональный
refresh: true— он обходит кеш и перечитывает данные с сервера (актуально, когда данные мог изменить кто-то другой через веб-интерфейс в пределах TTL).
Кешируются только чтения; записи никогда не кешируются.
Картинки в текстовых полях
GitFlic хранит и отображает картинки, встроенные прямо в markdown текстовых полей как data-URI (). MCP-сервер инкапсулирует это с двух сторон, чтобы не раздувать контекст агента сырым base64.
Запись. Инструменты создания и обновления принимают опциональный imagePaths (string[]) — пути к локальным файлам-картинкам. Сервер сам читает файл, кодирует в base64 data-URI и дописывает в конец описания/комментария. Агент передаёт путь, а не вставляет base64 вручную.
Поддерживают imagePaths: create_issue, update_issue, add_issue_comment, edit_issue_comment, create_merge_request, update_merge_request, create_mr_discussion, reply_mr_discussion.
Чтение. Инструменты get_issue, get_merge_request, find_mr_by_commit, list_issue_comments, list_mr_discussions, get_mr_discussion (а также ответы create/update) вырезают base64 из текста, заменяя коротким плейсхолдером (), и возвращают сами картинки отдельными бинарными MCP image-блоками. Так агент видит картинку, а контекст не забивается base64.
Нюансы:
- Для
update_merge_requestкартинки дописываются к переданномуdescription— передайте текущее описание (изget_merge_request), чтобы не затереть его. - Картинки крупнее ~750 КБ не инлайнятся (лимит вывода MCP-клиента, по умолчанию ~25000 токенов) — остаётся плейсхолдер с пометкой размера, смотреть в веб-интерфейсе GitFlic.
- GitFlic отдаёт описания issue/MR как markdown, а комментарии — как HTML (
<img src="data:…">); сервер обрабатывает обе формы.
Известные ограничения
- CI/CD требует настройки. Для работы инструментов
start_pipeline,restart_pipeline,cancel_pipelineи операций с задачами необходим файлgitflic-ci.yamlв репозитории и подключённый runner. link_issue_file/unlink_issue_fileне полностью протестированы. ТребуютuploadFileUuidот предварительно загруженного файла. Загрузка файлов через MCP-сервер пока не реализована.