DADERA
AICB · Serwer MCP

AICB dla agentów programistycznych.

Serwer MCP, który odpowiada Państwa agentowi na pytania, na jakie wyszukiwanie tekstowe odpowiedzieć nie potrafi. Ta sama analiza dostępna jest też jako pojedyncze polecenie konsoli.

Przetestowany z Claude Code, Codex i OpenCode

Wyślij zapytaniePowrót do przegląduGitHub Releases ↗
Pytania semantyczne

O co może zapytać agent

Na każde z tych pytań AICB odpowiada na podstawie grafu symboli, który Roslyn buduje przy wczytywaniu rozwiązania – nie na podstawie wyszukiwania tekstowego.

Wywołania i skutki zmian

Kto używa danego symbolu, bezpośrednio i przez kilka poziomów. Najważniejsze pytanie przed zmianą.

Dziedziczenie i implementacje

Gdzie interfejs jest zaimplementowany, co co przesłania i jak wygląda hierarchia typów.

Testy

Które testy pokrywają dany symbol – i gdzie pokrycia brakuje zupełnie.

Wstrzykiwanie zależności

Co jest dostarczane dla danego interfejsu i w których miejscach powstaje instancja typu.

Struktura i dług techniczny

Martwy kod, cykle przestrzeni nazw, efekty uboczne jak dostęp do plików lub sieci, wywołania bibliotek zewnętrznych.

Powiązania interfejsu graficznego

Które powiązanie XAML sięga do której właściwości – i którego nie da się w ogóle rozwiązać. Dla WPF, WinUI i Avalonia.

Przegląd zmian

Przegląd w jednym wywołaniu: co się zmieniło, jak daleko sięga zmiana, jakie nowe problemy wprowadza – z oceną. Do tego zmiany publicznego API.

Architektura i ścieżki

Która warstwa może czego używać, gdzie są cykle zależności i przez jaki łańcuch wywołań jedna metoda dociera do drugiej.

Kontekst dla zadania

Do zadania opisanego słowami: typy, których dotyczy, ich wywołujący i pokrywające je testy – jako pakiet w ramach budżetu tokenów.

Do tego dochodzą przegląd architektury całego rozwiązania oraz objaśnienie pojedynczego symbolu wraz z jego otoczeniem.

AI Tagi z kodu są dostępne także dla agenta: może wyszukiwać według oznaczonych ról i warstw i widzi, która wartość pochodzi od programisty, a która jest tylko oszacowaniem.

Serwer

Polecenie, nie usługa

Polecenie aicb mcp uruchamia serwer komunikujący się przez standardowe wejście i wyjście. Agent posługujący się MCP otrzymuje narzędzia analityczne we własnej liście narzędzi.

  • 54 narzędzia w zestawie domyślnym – 24 widoczne zawsze, 30 poprzez aktywny profil
  • Dziewięć profili zadaniowych – eksploracja, refaktoryzacja, diagnostyka, przegląd, testy, dokumentacja, architektura, wydajność, ogólny
  • Gotowe profile – standardowy, refaktoryzacja i debugowanie, każdy z dopasowanym zestawem narzędzi, do tego pełny zakres
  • To Państwo decydują o widoczności – które narzędzie agent w ogóle dostanie, określa profil
  • Przetestowany z Claude Code, Codex i OpenCode – trzej klienci z trzema różnymi wersjami protokołu, obsługiwani przez jeden program
  • Bez procesu w tle – serwer jest poleceniem wiersza poleceń i kończy się wraz z klientem

Dlaczego dobór narzędzi w ogóle ma znaczenie: każde oferowane narzędzie zajmuje miejsce w oknie kontekstowym agenta i zwiększa szansę, że sięgnie po niewłaściwe. Profil do diagnostyki pokazuje inne narzędzia niż profil do refaktoryzacji.

Co serwer przekazuje agentowi

Obok narzędzi serwer przekazuje tekst z wytycznymi: kiedy które narzędzie jest właściwe, kiedy zwykłe wyszukiwanie tekstowe nadal wystarcza i jakie pytanie należy zadać przed zmianą. Tekst ten można edytować i należy on do profilu.

Konfiguracja

Jedno polecenie w katalogu projektu

Potem agent sam znajduje AICB. Istniejące pliki pozostają nietknięte, więc ponowne uruchomienie nie szkodzi.

aicb init
  • .mcp.json – wpis, przez który klient uruchamia serwer
  • Umiejętność dla agenta – uczy go, kiedy sięgnąć po które narzędzie
  • Reguła dla środowiska agenta – odrzuca wyszukiwanie tekstowe symbolu C# i wskazuje właściwe narzędzie
  • Raport – polecenie podaje dla każdego pliku, co zrobiło i co pominęło
  • Na życzenie para do przeglądu – dwa dodatkowe skille sprawdzają zmianę pod kątem błędów i zbędnej złożoności, w oparciu o fakty z AICB, a nie tylko o diff (aicb init --skills=all)

Trzeci punkt zmienia zachowanie Państwa agenta – dlatego stoi tutaj, a nie w drobnym druku. Reguła nie jest podpowiedzią, ona blokuje. Właśnie to sprawia, że narzędzia są używane, a nie omijane. Z aicb init --hooks none zostaje pominięta.

Ręcznie też się da

Kto nie chce, aby cokolwiek było instalowane, tworzy wpis samodzielnie:

{
  "mcpServers": {
    "aicb": { "command": "aicb", "args": ["mcp"] }
  }
}
Sposób pracy

Pytanie przed zmianą

Najcenniejsze jest pierwsze wywołanie. Zanim agent dotknie symbolu, który inny kod wywołuje po nazwie, pyta, jak daleko ten symbol sięga.

  • Zasięg zamiast listy trafień – nie tylko bezpośrednie wywołania, ale i ich wywołania
  • Czego nie widzi kompilator – asercja na liczbie, niewyczerpujący switch, lista rejestracji
  • Pokrywające testy obok – pytanie „czy cokolwiek to w ogóle zabezpiecza?" należy postawić od razu
  • Po zmianie – diagnostyka Roslyn bez pełnej kompilacji, jako szybka kontrola wstępna
  • Bez nieaktualnego stanu – jeśli pliki źródłowe zmienią się po analizie, mówi o tym każda odpowiedź; jedno wywołanie odświeża analizę

Zastrzeżenie, aby odpowiedzi nie przeceniać: duży zasięg mierzy, ile miejsc zna dany typ – a nie, jak ryzykowna jest Państwa konkretna zmiana. Dodana wartość domyślna sięga wielu miejsc i nie psuje żadnego.

Umiejętność dla agenta z aicb init zapisuje dokładnie tę kolejność. Używa wyłącznie standardowych pól, więc działa w każdym środowisku wczytującym umiejętności – automatycznie jest umieszczana tylko dla Claude Code, w pozostałych przypadkach katalog kopiują Państwo sami.

Możliwość weryfikacji

Co serwer zapisuje

Każde wywołanie narzędzia jest zapisywane lokalnie. Widok MCP Usage w aplikacji na pulpit to pokazuje – i odpowiada na pytanie, z czego agent rzeczywiście korzystał.

  • Dla każdego narzędzia – liczba wywołań, percentyle czasu, rozmiar odpowiedzi, udział we wszystkich wywołaniach
  • Dla każdego wywołania – czas, narzędzie, klient, wynik, komunikat błędu oraz własne notatki
  • Błędy liczone osobno – świadomie odrzucone wywołanie nie jest podejrzeniem defektu i nie trafia do tej samej kolumny
  • Dla każdego klienta – który agent się połączył i z którą wersją protokołu

Rozdzielenie w zakładce Errors jest tym, co odróżnia zapis od zwykłej statystyki: wygasła sesja albo pusta baza danych to prawidłowa odmowa, a nie błąd. Osobno stoją wyjątki wskazujące na rzeczywisty defekt – wraz z wersją, w której wystąpiły ostatnio.

Zapis ten znajduje się w lokalnej bazie danych i nie opuszcza komputera. Można go w każdej chwili całkowicie usunąć.

Wiersz poleceń

Jedno pytanie, jedna odpowiedź

Ta sama analiza bez agenta i bez działającego serwera. Przydatne przy szybkim pytaniu i w skryptach.

aicb call find_usages --sln C:/repo/App.sln --arg symbol=OrderService

Siedem poleceń

  • init – wpięcie AICB w projekt
  • analyze – analiza rozwiązania i utworzenie kontekstu w Markdown
  • export – ponowne wygenerowanie Markdown z istniejącej sesji
  • import – przejęcie zapisanej konfiguracji
  • list – lista szablonów i profili
  • mcp – uruchomienie serwera MCP
  • call – wywołanie jednego narzędzia i wypisanie odpowiedzi

Czym wyróżnia się call

  • Bez serwera i klienta – polecenie startuje, odpowiada i kończy się
  • Dostęp do każdego narzędzia – także tych, których nie oferuje żaden profil
  • Wieloplatformowość – wiersz poleceń nie jest związany z Windows
  • Czytelne maszynowo – wynik da się dalej przetwarzać

Również przez wiersz poleceń: konfiguracja dla danego rozwiązania jako plik obok .sln – wykluczenia przestrzeni nazw, rozpoznawanie testów, przypisanie warstw. Leży w repozytorium, więc obowiązuje wszystkich, którzy nad nim pracują.

Mówiąc wprost

Czego serwer MCP nie robi

Pięć punktów, które warto znać przed pierwszą próbą. Dwa to wymagania, trzy to świadome ograniczenia.

  • Potrzebny jest MSBuild – musi być zainstalowany .NET SDK lub Visual Studio
  • Tylko zaufane projekty – przy wczytywaniu wykonywana jest logika budowania rozwiązania, dokładnie jak w Visual Studio
  • Brak dostępu przez HTTP – serwer komunikuje się wyłącznie przez stdio, nie ma dostępu zdalnego
  • To nie zamiennik środowiska programistycznego – AICB czyta stan z dysku, a nie niezapisany bufor edytora
  • Nie zmienia Państwa kodu – każde narzędzie analityczne tylko czyta; jeśli narzędzie coś zapisuje, mówi o tym we własnym opisie

Ostatni punkt to świadoma decyzja, a nie brakująca funkcja: serwer, który zmienia analizowane drzewo, czyni własne odpowiedzi niewiarygodnymi. Zmiany pozostają po Państwa stronie, w Państwa edytorze.

Pracują Państwo z agentem programistycznym?

Pytania dotyczące konfiguracji lub pracy w zespole? Proszę krótko napisać, z jakim agentem Państwo pracują.

Wyślij zapytanieDo aplikacji na pulpit