Skip to main content
Glama
kluth
by kluth

⚡ 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.


Related MCP server: cypress-mcp

📸 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


🌟 Hauptmerkmale

  • Interaktives Mutation Testing: KI-Agenten können Mutationstests gezielt per MCP-Tool-Call anstoßen, beobachten und auswerten.

  • 🎯 Targeted Git-Diff Executions: Mit run_targeted_mutation_tests werden nur die in Git geänderten TypeScript-Dateien getestet – spart bis zu 90% Laufzeit!

  • 📦 Live MCP Resources: Greife über URIs wie stryker://report/survived oder stryker://status direkt auf Testdaten zu.

  • 🤖 Agentic Testgenerierung: Der analyze_survived_mutants-Prompt leitet KI-Agenten an, überlebende Mutanten nach TDD-Prinzipien mit exakten Vitest/Jest-Tests zu eliminieren.

  • 🧠 Vector DB & RAG-Ready Insights: Bündelt Testergebnisse in hochstrukturierte MutationInsightEntity-Objekte für automatisierte Entwickler-Fortbildungen und Skill-Gap-Analysen.


📦 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)

Füge folgende Konfiguration in die MCP-Einstellungen deines KI-Tools ein:

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

Unterstützt in: Claude Desktop, Cursor IDE, Google Antigravity, Roo Code, Cline, Windsurf.


🌐 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)

Füge die Konfiguration zu deiner Workspace-Konfiguration .antigravity/mcp.json oder global unter ~/.gemini/antigravity-cli/mcp.json hinzu:

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

2. ⚡ Cursor IDE

Füge folgenden Block in deine Datei .cursor/mcp.json ein (Settings -> Features -> MCP):

{
  "mcpServers": {
    "stryker-mcp": {
      "command": "npx",
      "args": ["-y", "stryker-mcp-server", "--stdio"]
    }
  }
}

3. 🧩 Cline & Roo Code (VS Code Extension)

Öffne die MCP-Einstellungen (cline_mcp_settings.json / roo_code_mcp_settings.json) in VS Code:

{
  "mcpServers": {
    "stryker-mcp-reporter": {
    }
  }
}

4. 🦘 Roo Code

Öffne die Einstellungen für Roo Code (roo_code_mcp_settings.json):

{
  "mcpServers": {
    "stryker-mcp": {
      "command": "npx",
      "args": ["-y", "stryker-mcp-server"]
    }
  }
}

5. 🧡 Claude Desktop

Editiere deine Claude Desktop Konfigurationsdatei (claude_desktop_config.json):

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

🔌 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://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

baseBranch

Erkennt in Git geänderte TypeScript-Dateien (git diff) und testet gezielt nur diese.

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.

💡 Prompts (KI-gestützte Testgenerierung)

  • analyze_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)"]
        McpAdapter["McpServerAdapter"]
        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 --> McpAdapter
    McpAdapter --> RunUC
    McpAdapter --> RunTargetedUC
    McpAdapter --> GetSurvivedUC
    McpAdapter --> 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

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
11Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kluth/stryker-mcp-reporter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server