npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gitflic-mcp

v1.0.0

Published

MCP server for GitFlic API

Downloads

31

Readme

gitflic-mcp

License

Первый и единственный 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 (![alt](data:image/png;base64,…)). 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 из текста, заменяя коротким плейсхолдером (![alt](image#1 · image/png · 12 КБ)), и возвращают сами картинки отдельными бинарными 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-сервер пока не реализована.

Лицензия

Apache License 2.0