
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

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

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


