DADERA
AICB · MCP-Server

AICB für Coding-Agenten.

Ein MCP-Server, der Ihrem Agenten die Fragen beantwortet, die eine Textsuche nicht beantworten kann. Dieselbe Analyse gibt es auch als einzelnen Konsolenbefehl.

Getestet mit Claude Code, Codex und OpenCode

Anfrage sendenZurück zum ÜberblickGitHub Releases ↗
Semantische Fragen

Was ein Agent fragen kann

Jede dieser Fragen beantwortet AICB aus dem Symbolgraphen, den Roslyn beim Laden der Solution aufbaut – nicht aus einer Textsuche.

Aufrufer und Auswirkung

Wer benutzt dieses Symbol, direkt und über mehrere Stufen hinweg. Vor einer Änderung die wichtigste Frage.

Vererbung und Implementierung

Wo ist ein Interface implementiert, was überschreibt was, wie sieht die Typhierarchie aus.

Tests

Welche Tests decken ein Symbol ab – und wo fehlt die Abdeckung ganz.

Abhängigkeitsinjektion

Was wird für eine Schnittstelle eingesetzt, und an welchen Stellen wird ein Typ erzeugt.

Struktur und Altlasten

Toter Code, Namespace-Zyklen, Nebenwirkungen wie Datei- oder Netzzugriff, Aufrufe in fremde Bibliotheken.

Oberflächen-Bindungen

Welche XAML-Bindung greift auf welche Property zu – und welche lässt sich gar nicht auflösen. Für WPF, WinUI und Avalonia.

Änderungen prüfen

Ein Review in einem Aufruf: was sich geändert hat, wie weit es reicht, welche neuen Befunde es einführt – mit Urteil. Dazu Änderungen an der öffentlichen API.

Architektur und Pfade

Welche Schicht was benutzen darf, wo Abhängigkeitszyklen liegen, und über welche Aufrufkette eine Methode eine andere erreicht.

Kontext für eine Aufgabe

Zu einer Aufgabe in Worten die betroffenen Typen, ihre Aufrufer und die deckenden Tests – als Paket innerhalb eines Token-Budgets.

Dazu kommen eine Architekturübersicht über die ganze Solution und die Erklärung eines einzelnen Symbols samt seiner Umgebung.

AI Tags aus dem Quelltext stehen auch dem Agenten zur Verfügung: er kann nach getaggten Rollen und Schichten suchen und sieht, welche Angabe vom Entwickler stammt und welche nur geschätzt ist.

Der Server

Ein Verb, kein Dienst

Der Befehl aicb mcp startet einen Server, der über die Standardein- und -ausgabe spricht. Ein Agent, der MCP beherrscht, bekommt die Analyse-Werkzeuge damit in seine eigene Werkzeugliste.

  • 54 Werkzeuge im Standardumfang – 24 immer sichtbar, 30 über das aktive Profil
  • Neun Aufgabenprofile – Erkundung, Refactoring, Fehlersuche, Review, Tests, Dokumentation, Architektur, Performance, Allgemein
  • Fertige Profile – Standard, Refactoring und Debugging mit jeweils passender Werkzeugauswahl, dazu der volle Umfang
  • Sie bestimmen die Sichtbarkeit – welches Werkzeug ein Agent überhaupt angeboten bekommt, legt das Profil fest
  • Getestet mit Claude Code, Codex und OpenCode – drei Clients mit drei verschiedenen Protokollständen, bedient von einem Programm
  • Kein Hintergrundprozess – der Server ist ein Verb der Kommandozeile und endet mit dem Client

Warum die Auswahl überhaupt eine Rolle spielt: jedes angebotene Werkzeug kostet Platz im Kontextfenster des Agenten und erhöht die Chance, dass er zum falschen greift. Ein Profil für die Fehlersuche zeigt andere Werkzeuge als eines für ein Refactoring.

Was der Server dem Agenten mitgibt

Neben den Werkzeugen liefert der Server einen Anleitungstext mit: wann welches Werkzeug das richtige ist, wann eine Textsuche weiterhin genügt, und welche Frage vor einer Änderung zuerst gestellt gehört. Dieser Text ist bearbeitbar und gehört zum Profil.

Einrichtung

Ein Befehl im Projektordner

Danach findet der Agent AICB von selbst. Vorhandene Dateien bleiben unangetastet, ein erneuter Aufruf schadet nicht.

aicb init
  • .mcp.json – der Eintrag, über den ein Client den Server startet
  • Ein Agent-Skill – er bringt dem Agenten bei, wann er zu welchem Werkzeug greift
  • Eine Regel für die Agenten-Umgebung – sie weist eine Textsuche nach einem C#-Symbol ab und verweist auf das passende Werkzeug
  • Ein Bericht – der Befehl sagt je Datei, was er getan hat und was er ausgelassen hat
  • Auf Wunsch ein Review-Paar – zwei weitere Skills prüfen eine Änderung auf Fehler und auf unnötige Komplexität, gestützt auf AICB-Fakten statt auf den Diff allein (aicb init --skills=all)

Der dritte Punkt verändert das Verhalten Ihres Agenten – deshalb steht er hier und nicht im Kleingedruckten. Die Regel ist keine Empfehlung, sie blockiert. Genau das sorgt dafür, dass die Werkzeuge benutzt statt umgangen werden. Mit aicb init --hooks none bleibt sie weg.

Von Hand geht es auch

Wer nichts installieren lassen will, legt den Eintrag selbst an:

{
  "mcpServers": {
    "aicb": { "command": "aicb", "args": ["mcp"] }
  }
}
Arbeitsweise

Die Frage vor der Änderung

Der wertvollste Aufruf ist der erste. Bevor ein Agent ein Symbol anfasst, das anderer Code beim Namen nennt, fragt er, wie weit es reicht.

  • Reichweite statt Trefferliste – nicht nur die direkten Aufrufer, sondern auch deren Aufrufer
  • Was der Compiler nicht sieht – eine Zusicherung über eine Anzahl, ein nicht erschöpfendes switch, eine Registrierungsliste
  • Deckende Tests gleich mit – die Frage „pinnt das überhaupt jemand fest?" gehört daneben
  • Nach der Änderung – Roslyn-Diagnosen ohne vollständigen Build, als schnelle Vorprüfung
  • Kein veralteter Stand – ändern sich Quelldateien nach der Analyse, sagt das jede Antwort; ein Aufruf frischt die Analyse auf

Die Einordnung dazu, damit die Antwort nicht überschätzt wird: eine hohe Reichweite misst, wie viele Stellen den Typ kennen – nicht, wie riskant Ihre konkrete Änderung ist. Ein zusätzlicher Vorgabewert erreicht viele Stellen und bricht trotzdem keine.

Der Agent-Skill aus aicb init schreibt genau diese Reihenfolge fest. Er benutzt nur Standardfelder und funktioniert deshalb in jeder Umgebung, die Skills lädt – aufgelegt wird er automatisch nur für Claude Code, für andere Umgebungen kopieren Sie den Ordner selbst.

Nachvollziehbarkeit

Was der Server mitschreibt

Jeder Werkzeugaufruf wird lokal festgehalten. Die Ansicht MCP Usage in der Desktop-Anwendung zeigt ihn aus – und beantwortet die Frage, was ein Agent tatsächlich benutzt hat.

  • Je Werkzeug – Aufrufzahl, Laufzeit-Perzentile, Antwortgröße, Anteil an allen Aufrufen
  • Je Aufruf – Zeitpunkt, Werkzeug, Client, Ergebnis, Fehlermeldung, dazu eigene Notizen
  • Fehler getrennt gezählt – ein absichtlich abgewiesener Aufruf ist kein Defektverdacht und steht nicht in derselben Spalte
  • Je Client – welcher Agent mit welchem Protokollstand zugegriffen hat

Die Trennung im Reiter Errors ist der Punkt, an dem sich eine Aufzeichnung von einer Statistik unterscheidet: eine abgelaufene Sitzung oder eine leere Datenbank ist eine richtige Absage, kein Fehler. Getrennt davon stehen die Ausnahmen, die auf einen echten Defekt hindeuten – mit der Version, in der sie zuletzt auftraten.

Diese Aufzeichnung liegt in einer lokalen Datenbank und verlässt den Rechner nicht. Sie lässt sich jederzeit vollständig löschen.

Kommandozeile

Eine Frage, eine Antwort

Dieselbe Analyse ohne Agent und ohne laufenden Server. Nützlich für eine schnelle Frage zwischendurch und für Skripte.

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

Die sieben Verben

  • init – AICB in ein Projekt einbinden
  • analyze – Solution analysieren, Kontext-Markdown erzeugen
  • export – Markdown aus einer vorhandenen Sitzung neu erzeugen
  • import – eine gespeicherte Konfiguration übernehmen
  • list – Vorlagen und Profile auflisten
  • mcp – den MCP-Server starten
  • call – ein einzelnes Werkzeug aufrufen und die Antwort ausgeben

Was call besonders macht

  • Kein Server, kein Client – der Befehl startet, antwortet und endet
  • Jedes Werkzeug erreichbar – auch die, die kein Profil anbietet
  • Plattformübergreifend – die Kommandozeile hängt nicht an Windows
  • Maschinenlesbar – die Ausgabe lässt sich weiterverarbeiten

Ebenfalls über die Kommandozeile: die Konfiguration je Solution als Datei neben der .sln – Namespace-Ausschlüsse, Test-Erkennung, Schichtzuordnung. Sie liegt im Repository und gilt damit für alle, die daran arbeiten.

Ehrlich gesagt

Was der MCP-Server nicht tut

Fünf Punkte, die man vor dem ersten Versuch kennen sollte. Zwei sind Voraussetzungen, drei sind bewusste Grenzen.

  • MSBuild wird gebraucht – ein .NET-SDK oder Visual Studio muss installiert sein
  • Nur vertrauenswürdige Projekte öffnen – beim Laden läuft die Build-Logik der Solution, genau wie in Visual Studio
  • Kein HTTP-Zugang – der Server spricht ausschließlich über stdio, es gibt keinen Fernzugriff
  • Kein Ersatz für die Entwicklungsumgebung – AICB liest den Stand auf der Festplatte, nicht Ihren ungespeicherten Editor-Puffer
  • Er ändert Ihren Quelltext nicht – alle Analyse-Werkzeuge lesen nur; was ein Werkzeug schreibt, steht in seiner eigenen Beschreibung

Der letzte Punkt ist Absicht, keine fehlende Funktion: ein Server, der den Baum verändert, den er analysiert, macht seine eigenen Antworten unzuverlässig. Änderungen bleiben bei Ihnen und Ihrem Editor.

Arbeiten Sie mit einem Coding-Agenten?

Fragen zur Einrichtung oder zum Einsatz im Team? Schreiben Sie mir kurz, mit welchem Agenten Sie arbeiten.

Anfrage sendenZur Desktop-Anwendung