gitflic-mcp
# gitflic-mcp
[](LICENSE)
**Первый и единственный MCP-сервер для [GitFlic](https://gitflic.ru)** — российской платформы для хостинга Git-репозиториев.
**66 инструментов** покрывающих 13 категорий GitFlic API: проекты, issue, merge request, ветки, коммиты, файлы, теги, релизы, обсуждения, вебхуки, CI/CD и другие.
Построен на TypeScript и [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk).
[English documentation](README.en.md)
## Зачем
- **Единственный MCP-сервер для GitFlic.** Альтернатив нет — если вам нужен AI-агент для работы с GitFlic, это он.
- **Широкое покрытие API.** 66 инструментов из 182 задокументированных эндпоинтов — все ключевые операции для повседневной работы с репозиториями.
- **Готов к работе.** Подключается к Claude Code, Claude Desktop, Cursor и любому другому MCP-совместимому клиенту за минуту.
- **Минимальные зависимости.** Только MCP SDK и Zod — никаких тяжёлых фреймворков.
## Установка
### Требования
- Node.js 18+
- Токен доступа GitFlic
### Сборка
```bash
git clone https://gitflic.ru/project/sazonovfm/gitflic-mcp.git
cd gitflic-mcp
npm install
npm run build
```
### Настройка MCP-клиента
Добавьте сервер в конфигурацию вашего MCP-клиента. Например, для Claude Code (`.mcp.json` в корне проекта):
```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`) | нет |
## Инструменты
66 инструментов, сгруппированных по 13 категориям. Все параметры пагинации (`page`, `size`) опциональны: `page` по умолчанию 0, `size` по умолчанию 20 (макс. 100).
### Пользователи
#### 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 | нет | Элементов на странице |
#### update_project
Обновить настройки проекта (название, описание, язык, топики).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| `owner` | string | да | Алиас владельца |
| `project` | string | да | Алиас проекта |
| `title` | string | нет | Название проекта |
| `description` | string | нет | Описание проекта |
| `language` | string | нет | Язык программирования |
| `topics` | string[] | нет | Топики проекта |
#### list_project_members
Список участников проекта.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| `owner` | string | да | Алиас владельца |
| `project` | string | да | Алиас проекта |
| `q` | string | нет | Поиск по username |
| `page` | number | нет | Номер страницы (с 0) |
| `size` | number | нет | Элементов на странице |
### 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` |
#### update_issue
Обновить существующий issue.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| `owner` | string | да | Алиас владельца |
| `project` | string | да | Алиас проекта |
| `issue_id` | integer | да | Локальный ID issue |
| `title` | string | нет | Новый заголовок |
| `description` | string | нет | Новое описание |
| `status` | string | нет | Новый статус: `OPEN`, `IN_PROGRESS`, `CLOSED`, `COMPLETED` |
### Комментарии к 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 | да | Текст комментария |
### Файлы репозитория
#### 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 |
#### 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_branch` не работает на `api.gitflic.ru` — возвращает 405 Method Not Allowed. Это ограничение GitFlic API, не ошибка MCP-сервера. Используйте `git push origin :refs/heads/имя-ветки` как альтернативу.
#### compare_branches
Сравнить две ветки — список изменённых файлов.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| `owner` | string | да | Алиас владельца |
| `project` | string | да | Алиас проекта |
| `compare` | string | да | Сравниваемая ветка |
| `base` | string | нет | Базовая ветка (по умолчанию — ветка по умолчанию) |
### Коммиты
#### 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 | да | Алиас проекта |
## Известные ограничения
- **`delete_branch` не работает.** GitFlic API на `api.gitflic.ru` не поддерживает метод DELETE для веток (405 Method Not Allowed). Используйте `git push origin :refs/heads/имя-ветки` как альтернативу.
- **CI/CD требует настройки.** Для работы инструментов `start_pipeline`, `restart_pipeline`, `cancel_pipeline` и операций с задачами необходим файл `.gitflic-ci.yaml` в репозитории и подключённый runner.
## Лицензия
[Apache License 2.0](LICENSE)
TDQS
Scored across 66 tools
Most tools have clear resource-action distinctions, but there are a few potentially confusing pairs: list_user_projects/list_projects/list_shared_projects all list different project subsets, and close_merge_request vs cancel_merge_request differ only in intent. Descriptions clarify the differences, reducing the risk of misselection.
All tool names follow a consistent verb_noun pattern with lowercase and underscores, using verbs like list, get, create, update, delete, merge, approve, cancel, and start. Even modifiers like recursive or user fit the pattern cleanly, making the naming fully predictable.
With 66 tools, this is far above the 25-tool threshold considered 'too many'. While the server aims to cover a broad platform (GitFlic), the sheer number of tools creates a heavy cognitive load and makes it difficult for an agent to efficiently select the right one.
The server covers a wide range of domains: projects, issues, merge requests, branches, commits, tags, releases, discussions, webhooks, and CI/CD. However, there are notable gaps: no create_project or delete_project, no delete_issue, issue creation does not support labels/assignees, and delete_branch is broken due to the API. Core workflows are present, but some lifecycle operations are missing.