npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

stryker-mcp-reporter

v1.16.1

Published

Ein Stryker Reporter Plugin, das Mutation Testing Ergebnisse nativ über das Model Context Protocol (MCP) bereitstellt.

Readme

⚡ stryker-mcp-reporter & Control Server

npm version Node version Mutation Score Architecture GitHub Discussions License

"100% Code Coverage sagt dir nur, was ausgeführt wurde. Stryker MCP befähigt deine KI zu beweisen, was unzerstörbar ist."

Ein hochmodernes Stryker Mutator Plugin & Standalone Control Server, das Mutation Testing Ergebnisse sowie interaktive Steuerung per Model Context Protocol (MCP) über SSE und stdio für KI-Agenten (Antigravity, Cursor, Cline, Roo Code, Claude Desktop) bereitstellt.

🚀 Quickstart🤖 KI-Agenten Setup🏗️ Architektur🤝 Contributing


📖 Die Story: Warum stryker-mcp-reporter?

[!IMPORTANT] Das 100% Coverage-Paradoxon:
Standard Code Coverage misst lediglich, welche Zeilen Code während eines Tests einmal ausgeführt wurden – selbst wenn deine Tests schwache oder gar keine Assertions enthalten. Generative KI-Agenten schreiben heute in Sekunden hunderte Zeilen Testcode, neigen aber zum "Happy Path Bias" und lassen logische Randfälle unbemerkt durch.

Die Stryker MCP Revolution:
Stryker mutiert deinen Quellcode (z. B. verwandelt es > in >=, löscht Rückgabewerte oder invertiert Logik). Überlebt ein Mutant, existiert eine unsichtbare Testlücke.
stryker-mcp-reporter macht diese Mutanten für KI-Agenten lesbar und steuerbar. KI-Pair-Programmer erkennen Lücken autonom, schreiben exakte Grenzwert-Tests und eliminieren überlebende Mutanten in Echtzeit.


📸 In Aktion (Reale Screenshots)

📊 1. Echter Stryker HTML Mutation Testing Report

Stryker HTML Report

🧬 2. Mutanten-Detailanalyse mit In-Line Code Diff

Stryker File Detail

💻 3. Standalone MCP Control Server & Real-Time Protocol Verification (npm run test:e2e)

Terminal MCP Server

🤖 4. Live KI-Mutanten Auto-Remediation (suggest_mutant_fixes)

AI Mutant Auto Remediation Analysiert überlebende Mutanten im Code-Kontext und erzeugt präzise TypeScript-Assertions (expect(result).toBe(...)) sowie konkrete Randwert-Test-Snippets für KI-Pair-Programmer.

🔮 5. Gezielte Mutanten-Risikoprognose (predict_mutation_impact)

Mutation Impact Risk Predictor Analysiert geänderte Quelldateien aus git diff in unter einer Sekunde und klassifiziert das Risiko überlebender Mutanten (HIGH, MEDIUM, LOW) für optimale Test-Priorisierung.

📈 6. Historische Score Trend Analytics (stryker://analytics/trends)

Mutation Score Trend Analytics Verfolgt den historischen Verlauf von Mutation-Scores über mehrere Testläufe hinweg, berechnet Score-Deltas (+5.7% Steigerung) und visualisiert die Trend-Richtung.


🌟 Hauptmerkmale

  • Interaktives Mutation Testing: KI-Agenten können Mutationstests gezielt per MCP-Tool-Call anstoßen, beobachten und auswerten.
  • 🤖 AI Mutant Auto-Remediation: suggest_mutant_fixes generiert maßgeschneiderte Unit-Test Assertions für überlebte Mutanten.
  • 🛠️ Hybrid Auto-Remediation Profiling: Kombiniert statische Analyse und dynamisches Profiling, um KI-Reparaturvorschläge für überlebende Mutanten noch präziser zu machen.
  • 🔮 Git-Diff Risikoprognose: predict_mutation_impact prognostiziert in < 1s das Mutationsrisiko geänderter Quellcodedateien.
  • 🎯 Targeted Git-Diff Executions: Mit run_targeted_mutation_tests werden nur die in Git geänderten TypeScript-Dateien getestet – spart bis zu 90% Laufzeit!
  • 💾 SQLite Caching & History: Speichert Testergebnisse, Trends und Historie sicher in einer lokalen SQLite Datenbank für pfeilschnellen Abruf und Langzeit-Analysen.
  • 📈 Score Trend Tracking: Greife über stryker://analytics/trends auf den historischen Score-Verlauf und Score-Deltas zu.
  • 📦 Live MCP Resources: Greife über URIs wie stryker://report/survived oder stryker://status direkt auf Testdaten zu.
  • 📌 Persistente Desktop Overlays: Endgültige Testergebnisse (Completion/Error) bleiben auf dem Bildschirm fixiert, bis sie aktiv vom Entwickler weggeklickt werden.
  • 🔊 Dezenter Mutant Hunter Cyber-Sound: Beinhaltet einen frei nutzbaren, synthetisierten Cyber-Chime (assets/sounds/mutant_hunter.wav), der das Ende der Mutantenjagd ankündigt.

📦 Installation & Schnellstart

Voraussetzungen: Node.js >= 22.0.0 und @stryker-mutator/core >= 8.0.0.

Installiere das Plugin in deinem Projekt:

npm install --save-dev stryker-mcp-reporter

Modus 1: Stryker Reporter Plugin

Füge das Plugin und den Reporter zu deiner stryker.config.mjs hinzu:

// stryker.config.mjs
export default {
  plugins: [
    "@stryker-mutator/*",
    "stryker-mcp-reporter",
  ],
  reporters: [
    "clear-text",
    "progress",
    "mcp", // MCP Reporter aktivieren
  ],
};

Beim Ausführen von npx stryker run startet der MCP-Server nach dem Testlauf automatisch auf http://127.0.0.1:3000/mcp/sse.

Modus 2: Standalone MCP Control Server

Starte den MCP Server direkt über die CLI:

# STDIO Modus (für lokale KI-Tools & direktes Spawning):
npx stryker-mcp-server --stdio

# Oder SSE Modus (Server-Sent Events via HTTP Port 3000):
npx stryker-mcp-server --sse

Der Server steht dauerhaft bereit und erlaubt KI-Agenten das dynamische Ausführen von Mutationstests per MCP Tool Call.


🤖 Interaktives KI-Agenten Setup

Verbinde deine bevorzugte KI-Entwicklungsumgebung im Handumdrehen mit stryker-mcp-reporter. Du kannst zwischen STDIO (direktes Spawning via CLI, empfohlen) und SSE (HTTP/Server-Sent Events) wählen.

🌟 Option A: STDIO Transport (Empfohlen für lokale IDEs & KI-Tools)

Wähle die passende Konfiguration für dein Betriebssystem aus:

🐧 🍏 Linux & macOS (npx):

{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "npx",
      "args": ["-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

🪟 Windows (cmd.exe Wrapper - empfohlener Npx-Start):

Warum cmd.exe? Auf Windows ist npx ein Batch-Skript (npx.cmd). Viele KI-Tools starten Prozesse ohne Shell-Kontext. cmd.exe /c stellt den sauberen Start sicher und das --silent-Flag verhindert stdout-Verschmutzung.

{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": [
        "/c",
        "npx",
        "-y",
        "--silent",
        "stryker-mcp-reporter"
      ]
    }
  }
}

⚡ Direkter Pfad (Lokale Entwicklung / Maximale Geschwindigkeit):

{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "node",
      "args": [
        "C:\\Users\\DEIN_BENUTZER\\Projects\\stryker-mcp-reporter\\dist\\cli.js"
      ]
    }
  }
}

🌐 Option B: SSE Transport (Server-Sent Events via HTTP)

Starte den MCP Server vorher im Hintergrund via npx stryker-mcp-server --sse und trage folgende URL ein:

{
  "mcpServers": {
    "stryker-mutation-testing": {
      "url": "http://127.0.0.1:3000/mcp/sse"
    }
  }
}

1. 🪐 Google Antigravity (Antigravity CLI / IDE)

  • Projekt-Ebene: .antigravity/mcp.json (im Wurzelverzeichnis deines Projekts)
  • Globale Konfiguration:
    • Windows: %USERPROFILE%\.gemini\config\mcp_config.json
    • macOS / Linux: ~/.gemini/config/mcp_config.json
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

2. ⚡ Cursor IDE

  • Projekt-Ebene: .cursor/mcp.json (im Wurzelverzeichnis deines Projekts)
  • Globale Konfiguration:
    • Windows: %USERPROFILE%\.cursor\mcp.json
    • macOS / Linux: ~/.cursor/mcp.json
    • Oder im GUI-Menü: Cursor Settings -> Features -> MCP
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

3. 🧩 Cline (VS Code Extension)

  • Datei: cline_mcp_settings.json
  • Pfade:
    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Oder in VS Code: Cline Tab -> MCP Servers Icon -> Configure MCP Servers
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

4. 🦘 Roo Code (VS Code Extension)

  • Projekt-Ebene: .roo/mcp.json
  • Globale Konfiguration: mcp_settings.json
    • Windows: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

5. 🏄 Windsurf IDE (Codeium)

  • Datei: mcp_config.json
  • Pfade:
    • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
    • macOS / Linux: ~/.codeium/windsurf/mcp_config.json
  • Oder via Command Palette: Ctrl+Shift+P / Cmd+Shift+P -> Windsurf: Open MCP Configuration
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

6. 🧡 Claude Desktop

  • Datei: claude_desktop_config.json
  • Pfade:
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "stryker-mutation-testing": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "-y", "--silent", "stryker-mcp-reporter"]
    }
  }
}

🔌 MCP Schnittstellen

📦 Resources (Datenabruf)

| Resource URI | MimeType | Beschreibung | | :--- | :--- | :--- | | stryker://report/latest | application/json | Der vollständige Stryker Mutation Testing Report im JSON-Format. | | stryker://report/summary | application/json | Kompakte Zusammenfassung der Mutations-Metriken (Score, Killed, Survived). | | stryker://report/survived | application/json | Liste aller überlebenden Mutanten inkl. Pfad, Zeile, Mutator & Ersetzung. | | stryker://analytics/trends | application/json | Historische Trendanalyse der Mutationsscore-Entwicklung und Score-Deltas. | | stryker://status | application/json | Aktueller Ausführungsstatus von Stryker (idle, running, completed, failed). |

🛠️ Tools (Interaktive Steuerung)

| Tool Name | Parameter | Beschreibung | | :--- | :--- | :--- | | run_mutation_tests | mutate, concurrency, testRunner, configFile | Startet einen vollständigen oder spezifischen Mutationstest-Lauf. | | run_targeted_mutation_tests | commitSha, revision, fromRevision, toRevision | Erkennt in Git geänderte TypeScript-Dateien (git diff) und testet gezielt nur diese. | | suggest_mutant_fixes | filePath | Generiert KI-gestützte Behebungsratschläge, konkrete Code-Assertions & Boundary-Tests für überlebte Mutanten. | | predict_mutation_impact | changedFiles | Analysiert geänderte Quelldateien und prognostiziert in < 1s das Risiko überlebender Mutanten (HIGH, MEDIUM, LOW). | | get_mutation_score | - | Ruft den aktuellen Mutationsscore und die Gesamtzusammenfassung ab. | | get_survived_mutants | filePath | Liefert alle überlebenden Mutanten inkl. Dateipfad, Zeile, Mutator-Typ & Ersetzungscode. | | configure_desktop_notifications | enabled, persistentOverlay, sound | Konfiguriert die nativen Desktop-Benachrichtigungen (Aktivieren, Ton, Persistenter Overlay Status). |

💡 Prompts (KI-gestützte Testgenerierung)

  • explain_survived_mutants: Erzeugt eine strukturierte KI-Instruktion zur detaillierten Ursachenanalyse überlebender Mutanten und zur automatischen Erstellung fehlender Unit Tests nach TDD-Standards.

🏗️ Software Engineering & Architektur-Highlights

stryker-mcp-reporter ist nach den Prinzipien der Clean Architecture / Hexagonal Architecture aufgebaut, um maximale Testbarkeit, Wartbarkeit und Entkopplung zu gewährleisten.

graph TD
    subgraph Infrastructure Layer ["Infrastruktur (Adapters)"]
        Express["Express Server (SSE / MCP)"]
        McpResourceController["McpResourceController"]
        McpToolController["McpToolController"]
        McpPromptController["McpPromptController"]
        StrykerRunner["StrykerCliRunnerAdapter"]
        GitAdapter["GitCliAdapter"]
    end

    subgraph Application Layer ["Applikation (Use Cases)"]
        RunUC["RunMutationTestsUseCase"]
        RunTargetedUC["RunTargetedMutationTestsUseCase"]
        GetSurvivedUC["GetSurvivedMutantsUseCase"]
        GetSummaryUC["GetMutationSummaryUseCase"]
        PublishUC["PublishReportUseCase"]
    end

    subgraph Core Domain Layer ["Kern-Domäne (Pure TS)"]
        ReportStream["ReportStream"]
        StatusStream["ExecutionStatusStream"]
        Entity["MutationInsightEntity"]
        Result["Result<T, E>"]
    end

    Express --> McpResourceController
    Express --> McpToolController
    Express --> McpPromptController
    McpToolController --> RunUC
    McpToolController --> RunTargetedUC
    McpToolController --> GetSurvivedUC
    McpResourceController --> GetSummaryUC
    
    RunUC --> ReportStream
    RunUC --> StatusStream
    RunUC --> StrykerRunner
    RunTargetedUC --> GitAdapter
    RunTargetedUC --> RunUC
    
    PublishUC --> ReportStream

🧠 Vector DB & Developer Skill-Gap Data Model

stryker-mcp-reporter transformiert rohe Mutanten-Ergebnisse in angereicherte MutationInsightEntity-Objekte. Diese enthalten strukturierte Daten zur Speicherung in Vektordatenbanken (Qdrant, Pinecone, ChromaDB, Weaviate) für RAG-Pipelines:

  1. Mutator-Kategorie: (z. B. Arithmetic & Math, Equality & Logic, Exception Handling).
  2. Architekturschicht: (z. B. Domain, Application, Infrastructure).
  3. Risikoscore & Schweregrad: Automatisches Scoring (0 – 100) zur Priorisierung von Testlücken.
  4. Embedding Payload: Vektor-DB-ready Text-String für automatisierte KI-Trainings und Entwickler-Analysen.

🤝 Contributor Onboarding & Community

Wir freuen uns über jede Unterstützung! Egal ob Bugfix, neue MCP-Tools oder Dokumentations-Verbesserungen.

🏁 Quickstart für Contributor

git clone https://github.com/kluth/stryker-mcp-reporter.git
cd stryker-mcp-reporter
npm install
npm test              # Unit Tests (Vitest)
npm run test:e2e      # Real E2E MCP SSE Protocol Verification
npm run test:mutation # Stryker Mutation Testing (100% Target)

📝 Lizenz

MIT License © 2026 Matthias Kluth