AiNetLinter ist ein Roslyn-basierter Linter und MCP-Server für C#-Solutions. Er prüft Code gegen konfigurierbare Regeln und stellt Coding-Agenten semantische Informationen über Code, Abhängigkeiten und Änderungen bereit.
Im CLI-Modus schreibt AiNetLinter einen Markdown-Report und einen passenden Exit-Code. Im MCP-Modus stellt es dieselbe Analyse-Engine als gezielt abfragbare Werkzeuge bereit. Build und Tests werden nicht ersetzt; sie bleiben eigenständige Prüfungen.
| Situation | AiNetLinter liefert |
|---|---|
| Vor einer Änderung | Deklarationen, Member-Struktur, Metriken, Aufrufer, zugeordnete Tests und offene Regelverstöße für ein Symbol. |
| Beim Nachvollziehen von Abhängigkeiten | Referenzen, Aufrufer- und Aufgerufene-Bäume, Typ-Hierarchien und semantische Dateiabhängigkeiten. |
| Nach einer Änderung | Git-Diff-bezogene Auswirkungen, statisch zugeordnete Tests, Regelverstöße und ein Quality-Gate. |
| Beim Erkunden einer fremden DLL | Öffentliche API, Typen, Member und klassische Extension-Methoden – ohne die Assembly zu laden oder auszuführen. |
Die MCP-Tools geben zu begrenzten Ergebnissen und nicht auflösbaren Abhängigkeiten ihren Vollständigkeitsstatus aus. Agenten können ihren nächsten Schritt daran ausrichten, statt den gesamten Repository-Inhalt als Kontext zu laden.
inspect_assembly und find_assembly_extensions untersuchen eine lokale
.dll statisch über Roslyn. Ohne verfügbare Quelle erzeugt AiNetLinter dafür
eine dekompilierte, schreibgeschützte Analyse-Session.
Für eine eingebundene Fremd-DLL kann zusätzlich eine passende Source-Solution aus einem konfigurierten öffentlichen Git-Repository zugeordnet werden. Dann arbeitet die Assembly-Analyse mit einem schreibgeschützten Source-Snapshot dieser Solution. Symbolsuche, Struktur-, Referenz- und Metrikabfragen beziehen sich damit auf den Quellkontext; Herkunft, Snapshot und mögliche unvollständige Abhängigkeiten bleiben im Ergebnis sichtbar.
Der Abschnitt ExternalSources in appsettings.json verweist auf die
Mapping-Datei und begrenzt die Ressourcen. Ohne gültige Quellzuordnung bleibt
die Dekompilierung der sichere Fallback. Details und der Konfigurationsvertrag:
External-Source-Mapping.
ainetlinter --config rules.json --path .\src\MeinProjekt.slnxDer Lauf liefert Exit-Code 0, wenn keine neuen Verstöße gefunden werden, und
1, wenn Verstöße vorliegen. Für die schrittweise Einführung stehen Baselines
bereit; einfache Roslyn-basierte Korrekturen lassen sich mit --fix anwenden.
Aus der Regelkonfiguration können außerdem Agenten-Regeln synchronisiert werden.
{
"mcpServers": {
"ainetlinter": {
"command": "ainetlinter",
"args": ["--mcp-server"]
}
}
}Im Projektroot liegt die Definition der zu analysierenden Solution und Regeldatei:
{
"solution": "src/MeinProjekt.slnx",
"rules": "rules.json"
}Speichere diese Datei als ainetlinter.project.json. Zielgebundene MCP-Aufrufe
verwenden anschließend targetType (project oder assembly) und einen
absoluten targetPath. Für den Projektstart stellt
ainetlinter://agent-guide den Bootstrap bereit; tools/list beschreibt die
aktuell registrierten Tools und ihre Parameter.
| Dokument | Inhalt |
|---|---|
| MCP- und CLI-Referenz | Tools, Parameter, Antworten, Fehler und Capability-Matrix. |
| Integration | Einbindung in ein bestehendes Projekt, Baseline, CI und MCP-Registrierung. |
| Konfiguration | rules.json, Regel-IDs, Defaults und ExternalSources. |
| MCP-Bootstrap | Einmalige Einrichtung für Agenten und MCP-Hosts. |
AiNetLinter — Quellcode, Changelog und Issues auf GitHub.