logo

RedmineKanban

Login
Redmine MCP łączący klienta AI z Redmine i jego wtyczkamiRedmine MCP łączący klienta AI z Redmine i jego wtyczkami
Icon
15.09.2026 r.

Jak połączyć Redmine z AI bez walki z każdą wtyczką

Limity WIP w Kanbanie: nie magia, lecz...

Limity WIP w Kanbanie: nie magia, lecz...

Standardowe Redmine MCP obejmuje REST API. Prawdziwe firmowe Redmine żyje we wtyczkach.

Gotowy serwer MCP dla Redmine zwykle udostępnia standardową REST API: projekty, zadania, komentarze i wpisy czasu.

To wystarcza do momentu, gdy ktoś poprosi o checklistę zadania, kolumnę na tablicy Agile albo dane z wewnętrznej wtyczki. Wtedy model uderza w ścianę: widzi tylko rdzeń Redmine.

Połączenie Redmine z AI jest łatwe. Trudna część to połączenie tego Redmine, z którego firma faktycznie korzysta.

Dojrzała instalacja Redmine z czasem obrasta wtyczkami Agile, Helpdesk, CRM, checklistowymi, raportowymi i własnymi rozszerzeniami. To tam znajduje się duża część realnego workflow i danych biznesowych, a nie w samym Redmine.

Większość integracji MCP zna tylko Redmine REST API. Funkcje wtyczek nie są częścią tego kontraktu, dopóki ich nie dodasz.

Dlaczego sama Redmine REST API nie wystarcza

Każda wtyczka ma własny kontrakt API.
(1)
Trzeba ustalić, czy istnieje REST API, jakie endpointy i parametry akceptuje, jak wyglądają odpowiedzi i jakie uprawnienia egzekwuje.

Generyczne narzędzie request przerzuca ciężar na model.
(2)
Mając tylko `request(url, params)`, LLM musi wymyślać endpointy, poprawne wartości i kształt odpowiedzi. Ukierunkowane narzędzia, takie jak `get_checklist` czy `add_checklist_item`, dają mu stały i testowalny kontrakt.

Ręczna integracja nie skaluje się między wtyczkami.
(3)
Każda nowa wtyczka oznacza kolejną rundę projektowania narzędzi, schematów, uprawnień, obsługi błędów i testów. Im więcej wtyczek, tym drożej utrzymać taki katalog.

Co zmieniliśmy: rozszerzalne Redmine MCP

Najpierw ręcznie mapowaliśmy API każdej wtyczki i zamienialiśmy metody na narzędzia MCP. To działa dla jednej wtyczki. Przy wielu przestaje działać.

Redmine MCP działa wewnątrz Redmine i udostępnia wspólny Registry. Inne wtyczki rejestrują tam własne narzędzia, zasoby, prompty i capabilities. Serwer MCP nie musi znać ich logiki biznesowej.

Zamiast osobnych serwerów MCP dla Redmine, Agile, Checklists i każdego wewnętrznego modułu, mamy jedną ścieżkę: klient AI → Redmine MCP → Redmine → docelowa wtyczka.

Wtyczka staje się rozszerzeniem MCP, a nie forkiem serwera MCP. Jeśli możesz edytować wtyczkę, umieść integrację w `lib/.../mcp.rb`, rozszerz `RedmineMcp::ExtensionApi` i zarejestruj narzędzia. Nazwy mają postać `redmine_<plugin>_<action>`.

Jeśli zewnętrznej wtyczki nie da się spatchować, adapter można trzymać w `redmine_mcp/lib/redmine_mcp/extensions/`. Nie musisz forkować cudzego pluginu tylko po to, by dodać MCP. Obie ścieżki używają tego samego Extension API i tego samego Registry.

Część tej pracy integracyjnej może wykonać agent AI. Redmine MCP dostarcza skill `redmine-mcp-plugin-integration`: jak czytać API wtyczek, serializery i serwisy, dzielić funkcje na narzędzia, definiować schematy wejścia i wyjścia, egzekwować uprawnienia oraz testować wynik.

Workflow: daj agentowi kod źródłowy wtyczki, włącz skill i poproś o dodanie obsługi MCP. Dla wtyczki checklist możesz dostać `redmine_checklists_get_checklist`, `redmine_checklists_add_checklist_item`, `redmine_checklists_update_checklist_item` i `redmine_checklists_delete_checklist_item`.

Potem użytkownik może zapytać: „Sprawdź zadanie #1234 i wypisz nieukończone elementy checklisty”. Model wybiera nazwane narzędzie zamiast zgadywać prywatne API wtyczki.

Kod wygenerowany przez agenta nie jest automatycznie gotowy na produkcję. Zweryfikuj go względem rzeczywistego API wtyczki: uprawnienia, schematy oraz ścieżki sukcesu i błędu. Testy powinny obejmować pełną ścieżkę Registry: walidacja → uprawnienie → handler → odpowiedź.

Czasem agent trafia za pierwszym razem, a czasem potrzebuje podpowiedzi specyficznej dla wtyczki. W obu przypadkach to tańsze niż projektowanie każdej integracji od zera.

Uprawnienia pozostają uprawnieniami Redmine. MCP uwierzytelnia się kluczem API użytkownika. Dostęp wymaga też uprawnienia `Use MCP`. Projekty i zadania korzystają ze standardowej widoczności (`Project.visible`, `Issue.visible`). Dostępny jest globalny tryb tylko do odczytu, gdy trzeba zablokować zapis.

Rozszerzenia powinny wywoływać kontrole uprawnień Redmine albo ponownie wykorzystywać istniejący endpoint REST wtyczki jako bieżący użytkownik. Nie ma żadnego superużytkownika AI omijającego ACL Redmine.

Szczegóły implementacji znajdziesz w przewodniku po rozszerzeniach, a instalację i konfigurację klienta opisuje README projektu.

Najważniejszy wniosek

Nie zbudowaliśmy MCP, które automatycznie odkrywa każdą wtyczkę Redmine. To nie jest właściwy cel.

Zbudowaliśmy Registry, w którym wtyczki rejestrują własne narzędzia, oraz skill na tyle szczegółowy, by agent AI mógł przygotować dużą część integracji.

Gdy kolejna wtyczka potrzebuje wsparcia MCP, najpierw dajemy jej kod agentowi. Ręcznie wchodzimy dopiero wtedy, gdy agent sobie nie poradzi.

Zobacz inne nasze artykuły

5 oznak, że Twój zespół potrzebuje checklist w zadaniach na tablicy Kanban
Icon
18.12.2025 r.

5 oznak, że Twój zespół potrzebuje checklist w zadaniach na tablicy Kanban

Jak tablica Kanban przyspiesza projekty w Redmine: Od chaosu zadań do przejrzystego przepływu
Icon
29.10.2025 r.

Jak tablica Kanban przyspiesza projekty w Redmine: Od chaosu zadań do przejrzystego przepływu

Limity WIP w Kanbanie: nie magia, lecz kontrolowana przewidywalność
Icon
28.10.2025 r.

Limity WIP w Kanbanie: nie magia, lecz kontrolowana przewidywalność