logo

RedmineKanban

Login
Redmine MCP соединяет AI-клиент с Redmine и его плагинамиRedmine MCP соединяет AI-клиент с Redmine и его плагинами
Icon
15.09.2026 г.

Как подключить Redmine к ИИ и перестать мучаться с плагинами

WIP-лимиты в Канбане: не магия, а управляемая...

WIP-лимиты в Канбане: не магия, а управляемая...

Стандартный MCP закрывает REST API. Рабочий Redmine компании живёт в плагинах.

Готовый MCP-сервер для Redmine обычно отдаёт стандартный REST API: проекты, задачи, комментарии и трудозатраты.

Этого хватает, пока кто-то не попросит чек-лист задачи, колонку Agile-доски или данные внутреннего плагина. Дальше модель упирается: она видит только ядро Redmine.

Подключить Redmine к ИИ просто. Подключить тот Redmine, которым компания реально пользуется, — уже нет.

Зрелый Redmine обрастает Agile, Helpdesk, CRM, чек-листами, отчётами и самописными модулями. Большая часть реального workflow и бизнес-данных живёт там, а не в ядре.

Большинство MCP-интеграций знает только REST API Redmine. Возможности плагинов в этот контракт сами не попадают — их нужно добавлять.

Почему одного REST API Redmine недостаточно

У каждого плагина свой API-контракт.
(1)
Нужно понять, есть ли REST API, какие endpoint'ы и параметры он принимает, как устроены ответы и какие права проверяются.

Универсальный request перекладывает работу на модель.
(2)
С одним `request(url, params)` LLM должна сама угадывать endpoint'ы, допустимые значения и формат ответа. Узкие tools вроде `get_checklist` или `add_checklist_item` дают фиксированный и проверяемый контракт.

Ручная интеграция плохо масштабируется на много плагинов.
(3)
Каждый новый плагин — снова проектирование tools, схем, permissions, ошибок и тестов. Чем больше плагинов, тем дороже поддерживать этот каталог.

Что изменили: расширяемый Redmine MCP

Сначала мы вручную разбирали API каждого плагина и превращали методы в MCP tools. Для одного плагина это работает. Для десятка — уже нет.

Redmine MCP работает внутри Redmine и отдаёт общий Registry. Другие плагины регистрируют там свои tools, resources, prompts и capabilities. MCP-серверу не нужно знать их бизнес-логику.

Вместо отдельных MCP-серверов для Redmine, Agile, Checklists и каждого внутреннего модуля остаётся одна цепочка: AI-клиент → Redmine MCP → Redmine → нужный плагин.

Плагин становится расширением MCP, а не форком сервера. Если плагин можно править, интеграцию кладём в `lib/.../mcp.rb`, подключаем `RedmineMcp::ExtensionApi` и регистрируем tools. Имена идут по схеме `redmine_<plugin>_<action>`.

Если сторонний плагин менять нельзя, адаптер живёт в `redmine_mcp/lib/redmine_mcp/extensions/`. Форкать чужой плагин только ради MCP не нужно. Оба пути используют один Extension API и один Registry.

Часть этой работы может сделать AI-агент. В Redmine MCP есть skill `redmine-mcp-plugin-integration`: как читать API, serializers и services плагина; дробить функции на tools; описывать input/output schemas; проверять permissions и тестировать результат.

Сценарий: отдаём агенту исходники плагина, включаем skill, просим добавить MCP-поддержку. Для плагина чек-листов можно получить `redmine_checklists_get_checklist`, `redmine_checklists_add_checklist_item`, `redmine_checklists_update_checklist_item` и `redmine_checklists_delete_checklist_item`.

Дальше пользователь пишет: «Посмотри задачу #1234 и перечисли незакрытые пункты чек-листа». Модель выбирает именованный tool, а не угадывает внутренний API плагина.

Код от агента сам по себе не production-ready. Нужна проверка на реальном API: права, схемы, успех и ошибки. Тесты должны пройти весь путь Registry: validation → permission → handler → response.

Иногда агент попадает с первого раза, иногда нужен уточняющий контекст по плагину. В обоих случаях это дешевле, чем проектировать каждую интеграцию с нуля.

Права остаются правами Redmine. MCP аутентифицируется API-ключом пользователя. Дополнительно нужно право `Use MCP`. Проекты и задачи идут через стандартную видимость (`Project.visible`, `Issue.visible`). Есть глобальный read-only режим, когда запись нужно запретить.

Расширениям стоит вызывать проверки Redmine или существующий REST endpoint плагина от имени текущего пользователя. «Суперпользователя ИИ», который обходит ACL, быть не должно.

Детали реализации — в руководстве по расширениям, установка и клиенты — в README проекта.

Итог

Мы не сделали MCP, который сам находит любой плагин Redmine. Это неверная цель.

Мы сделали Registry, куда плагин регистрирует свои tools, и skill, достаточно подробный, чтобы AI-агент черновил большую часть интеграции.

Когда нужен MCP для следующего плагина, сначала отдаём код агенту. Вручную лезем только если агент не справился.

Смотрите другие наши статьи

5 признаков, что вашей команде нужен чек-лист задач на канбан-доске
Icon
18.12.2025 г.

5 признаков, что вашей команде нужен чек-лист задач на канбан-доске

Как канбан-доска ускоряет проекты в Redmine: От хаоса задач к прозрачному потоку
Icon
29.10.2025 г.

Как канбан-доска ускоряет проекты в Redmine: От хаоса задач к прозрачному потоку

WIP-лимиты в Канбане: не магия, а управляемая предсказуемость
Icon
28.10.2025 г.

WIP-лимиты в Канбане: не магия, а управляемая предсказуемость