gitflic-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gitflic-mcp list issues in the project myorg/myproject"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gitflic-mcp
Первый и единственный MCP-сервер для GitFlic — российской платформы для хостинга Git-репозиториев.
66 инструментов покрывающих 13 категорий GitFlic API: проекты, issue, merge request, ветки, коммиты, файлы, теги, релизы, обсуждения, вебхуки, CI/CD и другие.
Построен на TypeScript и Model Context Protocol SDK.
Зачем
Единственный MCP-сервер для GitFlic. Альтернатив нет — если вам нужен AI-агент для работы с GitFlic, это он.
Широкое покрытие API. 66 инструментов из 182 задокументированных эндпоинтов — все ключевые операции для повседневной работы с репозиториями.
Готов к работе. Подключается к Claude Code, Claude Desktop, Cursor и любому другому MCP-совместимому клиенту за минуту.
Минимальные зависимости. Только MCP SDK и Zod — никаких тяжёлых фреймворков.
Related MCP server: GitCode MCP Server
Установка
Требования
Node.js 18+
Токен доступа GitFlic
Сборка
git clone https://gitflic.ru/project/sazonovfm/gitflic-mcp.git
cd gitflic-mcp
npm install
npm run buildНастройка MCP-клиента
Добавьте сервер в конфигурацию вашего MCP-клиента. Например, для Claude Code (.mcp.json в корне проекта):
{
"mcpServers": {
"gitflic": {
"command": "node",
"args": ["/абсолютный/путь/к/gitflic-mcp/dist/index.js"],
"env": {
"GITFLIC_TOKEN": "ваш_токен"
}
}
}
}Токен можно получить в настройках GitFlic: Настройки → Токены доступа.
Переменная | Описание | Обязательная |
| Токен доступа GitFlic API | да |
| Базовый URL API (по умолчанию | нет |
Инструменты
66 инструментов, сгруппированных по 13 категориям. Все параметры пагинации (page, size) опциональны: page по умолчанию 0, size по умолчанию 20 (макс. 100).
Пользователи
get_me
Получить текущего авторизованного пользователя.
Параметры: нет.
get_user
Получить пользователя по алиасу.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас (username) пользователя |
list_user_projects
Список публичных проектов пользователя.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас пользователя |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
Проекты
list_projects
Список проектов авторизованного пользователя.
Параметр | Тип | Обяз. | Описание |
| string | нет | Поиск по названию |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_project
Получить проект по владельцу и алиасу.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
search_projects
Поиск публичных проектов.
Параметр | Тип | Обяз. | Описание |
| string | нет | Поисковый запрос |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
list_shared_projects
Список проектов, к которым предоставлен доступ.
Параметр | Тип | Обяз. | Описание |
| string | нет | Поиск по названию |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
update_project
Обновить настройки проекта (название, описание, язык, топики).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Название проекта |
| string | нет | Описание проекта |
| string | нет | Язык программирования |
| string[] | нет | Топики проекта |
list_project_members
Список участников проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Поиск по username |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
Issue
list_issues
Список issue проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_issue
Получить issue по локальному ID.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID issue |
create_issue
Создать новый issue.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Заголовок |
| string | да | Описание |
| string | нет | Статус: |
update_issue
Обновить существующий issue.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID issue |
| string | нет | Новый заголовок |
| string | нет | Новое описание |
| string | нет | Новый статус: |
Комментарии к issue
list_issue_comments
Список комментариев к issue.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID issue |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
add_issue_comment
Добавить комментарий к issue.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID issue |
| string | да | Текст комментария |
Файлы репозитория
get_file_content
Получить содержимое файла (до 15 МБ, только текстовые).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Путь к файлу (например |
| string | да | Хеш коммита или имя ветки |
list_files
Список файлов и директорий по указанному пути.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Путь к директории (пусто для корня) |
| string | нет | Имя ветки |
list_files_recursive
Рекурсивный список файлов (дерево репозитория).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Корневая директория |
| string | нет | Хеш коммита или имя ветки |
| number | нет | Глубина рекурсии (0–10) |
Merge Request
list_merge_requests
Список merge request проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_merge_request
Получить merge request по локальному ID.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
create_merge_request
Создать merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Заголовок |
| string | да | Описание |
| string | да | Исходная ветка |
| string | да | Целевая ветка |
| boolean | нет | Сжать коммиты при слиянии |
| boolean | нет | Удалить исходную ветку после слияния |
update_merge_request
Обновить merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID merge request (из ответа get_merge_request) |
| string | да | Заголовок |
| string | да | Целевая ветка |
| string | нет | Описание |
| boolean | нет | Сжать коммиты при слиянии |
| boolean | нет | Удалить исходную ветку после слияния |
approve_merge_request
Одобрить или отменить одобрение merge request (переключатель).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
merge_merge_request
Выполнить слияние merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | нет | Сообщение коммита слияния |
| string | нет | Сообщение squash-коммита |
close_merge_request
Закрыть merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
cancel_merge_request
Отменить merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
Обсуждения MR
list_mr_discussions
Список обсуждений merge request.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_mr_discussion
Получить обсуждение по UUID.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | да | UUID обсуждения |
create_mr_discussion
Создать обсуждение (общий комментарий или к строке кода).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | да | Текст сообщения |
| string | нет | Путь к файлу (старая версия), для комментария к коду |
| string | нет | Путь к файлу (новая версия), для комментария к коду |
| integer | нет | Номер строки (старая версия) |
| integer | нет | Номер строки (новая версия) |
reply_mr_discussion
Ответить в существующем обсуждении.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | да | UUID обсуждения |
| string | да | Текст ответа |
resolve_mr_discussion
Разрешить (закрыть) обсуждение.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | да | UUID обсуждения |
delete_mr_discussion
Удалить обсуждение (весь тред).
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID merge request |
| string | да | UUID обсуждения |
Ветки
list_branches
Список веток проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_branch
Получить ветку по имени.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Имя ветки |
get_default_branch
Получить ветку по умолчанию.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
create_branch
Создать ветку от существующей.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Имя новой ветки |
| string | да | Базовая ветка |
delete_branch
Удалить ветку.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Имя ветки |
Внимание:
delete_branchне работает наapi.gitflic.ru— возвращает 405 Method Not Allowed. Это ограничение GitFlic API, не ошибка MCP-сервера. Используйтеgit push origin :refs/heads/имя-веткикак альтернативу.
compare_branches
Сравнить две ветки — список изменённых файлов.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Сравниваемая ветка |
| string | нет | Базовая ветка (по умолчанию — ветка по умолчанию) |
Коммиты
list_commits
Список коммитов ветки.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Имя ветки (по умолчанию — ветка по умолчанию) |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_commit
Получить коммит по хешу.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Хеш коммита |
get_commit_files
Список файлов, изменённых в коммите.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Хеш коммита |
diff_commits
Diff между двумя коммитами.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Хеш исходного коммита |
| string | да | Хеш целевого коммита |
Теги
list_tags
Список тегов проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_tag
Получить тег по имени.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Имя тега |
create_tag
Создать тег.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Имя тега |
| string | нет | Сообщение (аннотированный тег) |
| string | нет | Хеш коммита (указать |
| string | нет | Имя ветки для тега на HEAD (указать |
Релизы
list_releases
Список релизов проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_release
Получить релиз по UUID.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID релиза |
get_latest_release
Получить последний релиз проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
create_release
Создать релиз.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | Название релиза |
| string | да | Описание релиза |
| string | да | Имя тега |
| boolean | нет | Пометить как пре-релиз |
| boolean | нет | Прикрепить архив проекта |
| string | нет | Формат архива: |
update_release
Обновить релиз.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID релиза |
| string | да | Название релиза |
| string | да | Имя тега |
| string | нет | Описание релиза |
| boolean | нет | Пометить как пре-релиз |
delete_release
Удалить релиз.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID релиза |
Вебхуки
list_webhooks
Список вебхуков проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
get_webhook
Получить вебхук по ID.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID вебхука |
create_webhook
Создать вебхук.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | URL обратного вызова |
| string | да | Секретный ключ |
| string[] | да | Список событий (см. ниже) |
update_webhook
Обновить вебхук.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | да | UUID вебхука |
| string | да | URL обратного вызова |
| string | да | Секретный ключ |
| string[] | да | Список событий (см. ниже) |
delete_webhook
Удалить вебхук.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| 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
Список пайплайнов проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
start_pipeline
Запустить пайплайн.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| string | нет | Имя ветки или тега (по умолчанию — ветка по умолчанию) |
| boolean | нет |
|
| object[] | нет | Переменные: |
list_pipeline_jobs
Список задач пайплайна.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID пайплайна |
| number | нет | Номер страницы (с 0) |
| number | нет | Элементов на странице |
restart_pipeline
Перезапустить пайплайн.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID пайплайна |
cancel_pipeline
Отменить запущенный пайплайн.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID пайплайна |
get_job
Получить информацию о задаче.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID задачи |
list_job_artifacts
Список артефактов задачи.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID задачи |
restart_job
Перезапустить задачу.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID задачи |
cancel_job
Отменить запущенную задачу.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| string | да | Алиас проекта |
| integer | да | Локальный ID задачи |
list_cicd_variables
Список CI/CD переменных проекта.
Параметр | Тип | Обяз. | Описание |
| string | да | Алиас владельца |
| 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.
Лицензия
Available Tools
66 toolsadd_issue_commentA
Add a text comment to an issue discussion thread. The comment will appear as posted by the authenticated user. Use list_issue_comments to see existing comments first.
Inputs: text (required), owner (required), project (required), issue_id (required).
approve_merge_requestA
Toggle approval on a merge request. If not yet approved by the authenticated user, this adds approval; if already approved, this removes it. Use get_merge_request to check the current approval state first.
Inputs: mr_id (required), owner (required), project (required).
cancel_jobA
Cancel a specific running CI/CD job without affecting other jobs in the pipeline. Use this to stop a single job that is hanging or no longer needed.
Inputs: owner (required), job_id (required), project (required).
cancel_merge_requestA
Cancel a merge request (withdraw it). The MR status changes to CANCELLED, indicating it was withdrawn by the author. Use close_merge_request instead if the MR was reviewed and rejected by others.
Inputs: mr_id (required), owner (required), project (required).
cancel_pipelineA
Cancel a currently running CI/CD pipeline and all its active jobs. The pipeline must be in a running state. Use this to stop a pipeline that is no longer needed.
Inputs: owner (required), project (required), pipeline_id (required).
close_merge_requestA
Close a merge request without merging. The source branch is preserved. Use this when proposed changes are no longer needed or were rejected. To withdraw your own MR, use cancel_merge_request instead.
Inputs: mr_id (required), owner (required), project (required).
compare_branchesA
Compare two branches and list files that differ between them. Returns changed files with added/removed line counts. If base is omitted, compares against the default branch. For a detailed line-by-line diff, use diff_commits instead.
Inputs: owner (required), compare (required), project (required), base.
create_branchA
Create a new branch from an existing one. The new branch will point to the same commit as the origin branch's HEAD. Use list_branches to verify existing branches first.
Inputs: owner (required), project (required), newBranch (required), originBranch (required).
create_issueA
Create a new issue in a GitFlic project. Requires title and description. Status defaults to OPEN but can be set to IN_PROGRESS, CLOSED, or COMPLETED. Labels and assignees are not supported through this tool.
Inputs: owner (required), title (required), project (required), description (required), +1 more.
create_merge_requestA
Create a new merge request to merge one branch into another. Both branches must exist in the project. Optionally enable squash commits or auto-delete of the source branch after merge. Internally resolves the project UUID.
Inputs: owner (required), title (required), project (required), description (required), +4 more.
create_mr_discussionA
Start a new discussion on a merge request. For a general comment, only provide the message. For a line-level code comment, also provide newLine, oldLine, newPath, and oldPath — all four fields are required together for code comments.
Inputs: mr_id (required), owner (required), message (required), project (required), +4 more.
create_releaseA
Create a new release tied to an existing Git tag. Requires title, description, and tag name. The tag must already exist — use create_tag first if needed. Can optionally attach a project archive in various formats (zip, tar.gz, etc.).
Inputs: owner (required), title (required), project (required), tagName (required), +4 more.
create_tagA
Create a new Git tag in a GitFlic project. Provide either commitId (specific commit hash) or branchName (tags the branch HEAD) — at least one is required. Include a message to create an annotated tag; omit it for a lightweight tag.
Inputs: owner (required), project (required), tagName (required), message, +2 more.
create_webhookA
Create a new webhook for a GitFlic project. Requires a callback URL, secret key for signature verification, and a list of events to subscribe to (e.g. ISSUE_CREATE, MERGE_REQUEST_CREATE, PUSH, PIPELINE_SUCCESS).
Inputs: url (required), owner (required), events (required), secret (required), +1 more.
delete_branchA
Delete a branch from a GitFlic project. WARNING: this endpoint currently returns 405 on api.gitflic.ru due to a GitFlic API limitation — this is not an MCP server bug. Do not use until GitFlic fixes the API.
Inputs: owner (required), project (required), branchName (required).
delete_mr_discussionA
Permanently delete a discussion thread and all its replies from a merge request. This action cannot be undone. Use resolve_mr_discussion to mark a discussion as resolved without deleting it.
Inputs: mr_id (required), owner (required), project (required), discussionUuid (required).
delete_releaseA
Permanently delete a release and its attached files. Identified by release UUID. This does not delete the associated Git tag. This action cannot be undone.
Inputs: owner (required), project (required), releaseUuid (required).
delete_webhookA
Permanently delete a webhook from a project. The webhook will stop receiving events immediately. This action cannot be undone.
Inputs: owner (required), project (required), webhook_id (required).
diff_commitsA
Get a full line-by-line diff between two commits. Returns detailed file changes with diff hunks. Can produce very large output for commits with many changes. Use get_commit_files for a lightweight summary of changed files instead.
Inputs: owner (required), project (required), sourceCommitId (required), targetCommitId (required).
get_branchA
Get detailed information about a specific branch by name, including the last commit hash, message, author, and timestamps. Use this before creating a merge request to verify the branch exists.
Inputs: owner (required), project (required), branchName (required).
get_commitA
Get detailed information about a specific commit by its hash (full or short). Returns full commit message, author/committer identities, timestamps, parent commit IDs, and verification status.
Inputs: hash (required), owner (required), project (required).
get_commit_filesA
List all files changed in a specific commit. Returns file paths, change types (ADD/MODIFY/DELETE), and added/removed line counts. Does not return the actual diff content — use diff_commits for that.
Inputs: hash (required), owner (required), project (required).
get_default_branchA
Get the default (main) branch of a project with full details including last commit info. Use this when you need the base branch name for comparisons or merge requests.
Inputs: owner (required), project (required).
get_file_contentA
Read the contents of a single file from a GitFlic repository as plain text. Supports files up to 15 MB. Cannot read binary files (images, archives) — returns 400 for those. The commitHash parameter is required and accepts a branch name (e.g. 'main') or a specific commit hash.
Inputs: file (required), owner (required), project (required), commitHash (required).
get_issueA
Get full details of a specific issue by its local numeric ID. Returns title, description, status (OPEN/IN_PROGRESS/CLOSED/COMPLETED), assigned users, labels, and timestamps. Use list_issues first to discover available issue IDs.
Inputs: owner (required), project (required), issue_id (required).
get_jobA
Get detailed information about a specific CI/CD job by its local ID. Returns job name, status, stage, duration, and runner info. Use list_pipeline_jobs to find job IDs first.
Inputs: owner (required), job_id (required), project (required).
get_latest_releaseA
Get the most recent release of a project with full details including description, attached files, and download links. Use this when you need the current version without browsing all releases.
Inputs: owner (required), project (required).
get_meA
Get the currently authenticated GitFlic user's profile, including username, full name, email, and avatar URL. Use this to verify the current user identity or to get the user alias needed for other API calls.
Inputs: no named parameters.
get_merge_requestA
Get full details of a merge request by its local numeric ID. Returns title, description, source/target branches, status, reviewers, conflict info, and the MR UUID needed for update_merge_request. Use this to inspect an MR before approving or merging.
Inputs: mr_id (required), owner (required), project (required).
get_mr_discussionA
Get a specific discussion thread by UUID, including all replies. Returns full message, author, file/line references for code comments, and all reply messages. Use list_mr_discussions to find discussion UUIDs.
Inputs: mr_id (required), owner (required), project (required), discussionUuid (required).
get_projectA
Get detailed information about a specific GitFlic project by owner and project alias. Returns title, description, default branch, language, topics, transport URLs (HTTP/SSH), and visibility settings. Use this to get project metadata before performing other operations.
Inputs: owner (required), project (required).
get_releaseA
Get full details of a release by its UUID (not tag name). Returns title, description, tag name, attached files with download links, and checksums. Use list_releases to find release UUIDs first.
Inputs: owner (required), project (required), releaseUuid (required).
get_tagA
Get detailed information about a specific tag by name. Returns the tag name, tagged commit ID, message, creation date, and whether it's lightweight or annotated. Use this to find the commit associated with a release version.
Inputs: owner (required), project (required), tagName (required).
get_userA
Get a GitFlic user's public profile by their alias (username). Returns name, avatar, and cover image. Does not return email — use get_me for the authenticated user's email.
Inputs: userAlias (required).
get_webhookA
Get full details of a specific webhook by its UUID, including callback URL, secret, and all subscribed events. Use list_webhooks to find webhook UUIDs first.
Inputs: owner (required), project (required), webhook_id (required).
list_branchesA
List all branches of a GitFlic project with pagination. Returns branch names and last commit messages. Use get_branch for detailed info about a specific branch, or get_default_branch to find the main branch.
Inputs: owner (required), project (required), page, size.
list_cicd_variablesA
List CI/CD environment variables configured for a project. These variables are available to all pipelines during execution. Variable values may be masked for security.
Inputs: owner (required), project (required).
list_commitsA
List commits of a branch with pagination. Defaults to the project's default branch if no branch is specified. Returns short commit hash, message, author, and date. Use get_commit for full details of a specific commit.
Inputs: owner (required), project (required), page, size, +1 more.
list_filesA
List files and directories at a specific path in a repository with last commit metadata. Defaults to root directory if filepath is omitted. Shows one directory level only — use list_files_recursive for a full tree view.
Inputs: owner (required), project (required), branch, filepath.
list_files_recursiveA
List all files in a repository recursively as a flat tree. Returns file paths, extensions, and sizes. The commitHash parameter is required (use a branch name like 'main') — without it the API returns 400. Use the depth parameter (0-10) to limit recursion. For browsing a single directory, use list_files instead.
Inputs: owner (required), project (required), commitHash (required), depth, +1 more.
list_issue_commentsA
List comments on a specific issue with pagination. Returns comment ID, author, truncated text (120 chars), and timestamp. Use get_issue to see the issue description itself — this tool only returns discussion comments.
Inputs: owner (required), project (required), issue_id (required), page, +1 more.
list_issuesA
List issues (tasks) of a GitFlic project with pagination. Returns issue local ID, title, status, and creation date. Issues are the GitFlic equivalent of GitHub Issues. Use get_issue to fetch full details including description and labels.
Inputs: owner (required), project (required), page, size.
list_job_artifactsA
List build artifacts produced by a CI/CD job. Returns artifact file names, UUIDs, and sizes. Artifacts are files generated during job execution (binaries, test reports, etc.).
Inputs: owner (required), job_id (required), project (required).
list_merge_requestsA
List merge requests of a GitFlic project with pagination. Returns MR local ID, title, status (OPEN/MERGED/CLOSED/CANCELLED), and source/target branches. Merge requests are the GitFlic equivalent of GitHub Pull Requests. Use get_merge_request for full details.
Inputs: owner (required), project (required), page, size.
list_mr_discussionsA
List discussion threads on a merge request with pagination. Returns discussion UUID, author, message preview, and resolved status. Discussions can be general comments or line-level code comments. Use get_mr_discussion for full thread details.
Inputs: mr_id (required), owner (required), project (required), page, +1 more.
list_pipeline_jobsA
List individual jobs within a specific CI/CD pipeline. Returns job IDs, names, statuses, and stages. Use get_job for detailed info about a specific job, or list_job_artifacts to see build artifacts.
Inputs: owner (required), project (required), pipeline_id (required), page, +1 more.
list_pipelinesA
List CI/CD pipelines of a GitFlic project with pagination. Returns pipeline IDs, statuses, branch/tag names, and creation dates. Requires .gitflic-ci.yaml and a registered runner in the project. Use list_pipeline_jobs to see individual jobs within a pipeline.
Inputs: owner (required), project (required), page, size.
list_project_membersA
List members (collaborators) of a project with their roles. Supports search by username. Internally resolves the project UUID from owner/alias before querying members.
Inputs: owner (required), project (required), q, page, +1 more.
list_projectsA
List projects owned by the authenticated user, including private ones. Supports filtering by title with the q parameter. To find public projects from other users, use search_projects. To list projects where you are a collaborator, use list_shared_projects.
Inputs: q, page, size.
list_releasesA
List releases of a GitFlic project with pagination. Returns release titles, tag names, pre-release flags, and creation dates. Releases are distribution snapshots tied to Git tags, similar to GitHub Releases. Use get_release or get_latest_release for full details.
Inputs: owner (required), project (required), page, size.
list_tagsA
List all tags of a GitFlic project with pagination. Returns tag names and messages. Tags mark specific points in commit history, typically used for releases. Use get_tag for detailed info including the tagged commit.
Inputs: owner (required), project (required), page, size.
list_user_projectsA
List public projects owned by a specific GitFlic user. Only returns projects visible to the public. To list your own projects (including private ones), use list_projects instead.
Inputs: userAlias (required), page, size.
list_webhooksA
List webhooks configured for a GitFlic project with pagination. Returns webhook IDs, callback URLs, and subscribed event types. Webhooks send HTTP POST requests to external URLs when project events occur (pushes, issues, MRs, etc.).
Inputs: owner (required), project (required), page, size.
merge_merge_requestA
Perform the actual merge of a merge request into its target branch. The MR must be in OPEN status and have no conflicts. Optionally provide custom commit messages for the merge commit and/or squash commit. This is irreversible.
Inputs: mr_id (required), owner (required), project (required), commitMessage, +1 more.
reply_mr_discussionA
Add a reply to an existing discussion thread on a merge request. Requires the discussion UUID from list_mr_discussions or get_mr_discussion. The reply appears as posted by the authenticated user.
Inputs: mr_id (required), owner (required), message (required), project (required), +1 more.
resolve_mr_discussionA
Mark a discussion thread as resolved (closed), indicating the topic has been addressed. Resolved discussions are typically collapsed in the GitFlic UI. Use list_mr_discussions to check which discussions are still open.
Inputs: mr_id (required), owner (required), project (required), discussionUuid (required).
restart_jobA
Restart a specific CI/CD job without re-running the entire pipeline. Useful for retrying a single failed job while keeping other completed jobs intact.
Inputs: owner (required), job_id (required), project (required).
restart_pipelineA
Restart a previously completed or failed CI/CD pipeline. Re-runs all jobs from the beginning. The pipeline is identified by its local numeric ID from list_pipelines.
Inputs: owner (required), project (required), pipeline_id (required).
search_projectsA
Search for public projects across all of GitFlic by title. Returns paginated results with project alias, title, and owner. Only finds public projects — use list_projects for your own private projects.
Inputs: q, page, size.
start_pipelineA
Start a new CI/CD pipeline execution. Defaults to the project's default branch. Specify refName for a different branch or tag (set isTag=true for tags). Can pass custom variables. Requires .gitflic-ci.yaml and a registered runner.
Inputs: owner (required), project (required), isTag, refName, +1 more.
update_issueA
Update an existing issue's title, description, or status. Only provided fields will be changed. The issue is identified by its local numeric ID (not UUID). Use get_issue first to see current values.
Inputs: owner (required), project (required), issue_id (required), title, +2 more.
update_merge_requestA
Update a merge request's title, description, target branch, or squash/remove-branch settings. Requires the MR UUID (not local ID) — get it from get_merge_request response field 'id'. Title and targetBranch are always required.
Inputs: owner (required), title (required), mr_uuid (required), project (required), +4 more.
update_projectA
Update a project's settings including title, description, programming language, and topics. Only the provided fields will be changed. Requires owner or admin permissions on the project.
Inputs: owner (required), project (required), title, topics, +2 more.
update_releaseA
Update an existing release's title, description, tag association, or pre-release flag. The releaseUuid and tagName are always required — omitting tagName causes a 500 error. Use get_release to fetch current values before updating.
Inputs: owner (required), title (required), project (required), tagName (required), +3 more.
update_webhookA
Update an existing webhook's URL, secret, and event subscriptions. All fields are required — this replaces the entire webhook configuration. Use get_webhook first to get current values, then modify what you need.
Inputs: url (required), owner (required), events (required), secret (required), +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Maintenance
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server providing comprehensive Gitea API coverage with 186 tools for managing repositories, issues, pull requests, and CI/CD workflows. It enables autonomous AI agents to perform complex development and administrative tasks directly through a Gitea instance.7MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for the GitCode API, enabling AI assistants to interact with GitCode repositories, issues, pull requests, and more.1MIT
- AlicenseBqualityDmaintenanceMCP server that exposes 39 tools for GitBook API automation, enabling AI agents to manage documentation, change requests, reviews, and Git Sync.3967 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for OpenDev Gitea and Gerrit APIs, enabling repository browsing, code review, and change management for LLM agents.Apache 2.0