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)

NOTE


Hinweis zur Darstellung: Die folgenden Bilder der "Live AI"-Features sind konzeptionelle Visualisierungen der internen MCP-Datenströme, um die gelieferten JSON-Daten greifbar zu machen. Da dies ein Hintergrund-Server ist, werden Sie diese Daten in der Realität direkt in der Chat-Oberfläche Ihres KI-Clients (z.B. Claude Desktop oder Cursor) sehen.

🚀 0. Terminal Stryker Run

Stryker Run

📊 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

Available Tools

5 tools
configure_desktop_notificationsA

Konfiguriert die nativen Desktop-Benachrichtigungen (Aktivieren, Ton, Persistenter Status).

ParametersJSON Schema
NameRequiredDescriptionDefault
soundNoBenachrichtigungston aktivieren.
enabledNoBenachrichtigungen aktivieren oder deaktivieren.
persistentOverlayNoPersistente Floating-Benachrichtigung aktivieren.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It states 'configures' which implies changing settings, but it does not mention whether changes are persistent, require a restart, or have side effects. For a mutation tool, this lack of detail leaves the agent without critical behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the main action and enumerates the key configurable fields. Every word earns its place; there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple configuration tool with three boolean parameters and no output schema, the description provides a satisfactory overview. It could mention return behavior or persistence, but given the tool's simplicity and lack of annotations, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% description coverage for all three boolean parameters ( sound, enabled, persistentOverlay). The description adds no new parameter-level detail beyond what the schema offers, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: configuring native desktop notifications, specifically listing the configurable aspects (enable, sound, persistent status). The verb 'configure' is specific, and the resource is clearly identified, distinguishing it from the unrelated sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly communicates when to use this tool (when configuring desktop notifications) by naming the resource and the settings. There are no exclusions or alternative tools mentioned, but the sibling tools are unrelated, so no comparison is needed. The context is clear enough for an agent to select this tool for notification settings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mutation_scoreA

Ruft den aktuellen Mutationsscore und eine detaillierte Zusammenfassung ab.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states that the tool 'retrieves' data, implying a read-only operation, but does not explicitly rule out side effects, mention authentication requirements, pagination, or return format. The 'detailed summary' is vague and adds little transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key action and resource. Every word earns its place without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter getter, the description adequately conveys the tool's purpose. However, it lacks details about the return format, whether it requires prior test execution, and what 'detailed summary' entails. Sibling tools provide some context, but the description itself could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema trivially covers 100% of them. According to the baseline for 0 params (4), the description is not required to add parameter semantics, and it doesn't need to since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the current mutation score and a detailed summary, using a specific verb and resource. It is distinct from sibling tools like run_mutation_tests and get_survived_mutants, which focus on running tests or listing mutants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as after running mutation tests. It does not mention prerequisites, exclusions, or alternative tools, leaving the usage context entirely unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_survived_mutantsA

Liefert alle überlebenden Mutanten inkl. Dateipfad, Zeile, Mutator-Typ und Ersetzungscode.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoOptionaler Dateipfad-Filter (z.B. 'src/calculator.ts').

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the output content (file path, line, mutator type, replacement code), which gives the agent expectations about the return value. However, it does not explicitly state that the tool is read-only or mention any prerequisites, though 'Liefert' suggests a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence that front-loads the purpose and then lists the included data fields. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and a clear output description, the description is largely complete. It lacks explicit usage guidance and notes on preconditions, but the core functionality and return value are well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with a description for the optional filePath parameter. The tool description adds no additional meaning about the parameter beyond what the schema states, so it meets the baseline for schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Liefert' (delivers) and identifies the resource 'alle überlebenden Mutanten' (all survived mutants), along with the specific data fields included (file path, line, mutator type, replacement code). This clearly distinguishes it from sibling tools like run_mutation_tests or get_mutation_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for retrieving survivors after mutation testing, but it does not explicitly state when to use it versus running mutation tests or getting the mutation score. There are no exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_mutation_testsB

Führt Stryker Mutationstests für das Projekt oder spezifische Dateien aus.

ParametersJSON Schema
NameRequiredDescriptionDefault
mutateNoArray von Datei-Globs für Mutationen (z.B. ['src/calculator.ts']).
configFileNoPfad zur Stryker Konfigurationsdatei.
testRunnerNoName des Test-Runners (z.B. 'vitest').
concurrencyNoAnzahl paralleler Test-Runner-Prozesse.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It only states the action of running mutation tests and does not disclose side effects, resource usage, or what happens after execution (e.g., reports).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, clearly front-loaded with the action. Every word earns its place with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is rich and fully documents parameters, but the description lacks behavioral context such as prerequisites, output format, or performance implications. Still, for a simple execution tool it is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for all 4 parameters. The description adds no extra parameter semantics beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Führt aus' - executes) and clearly identifies the resource ('Stryker Mutationstests') with scope ('für das Projekt oder spezifische Dateien'). It is clear but does not explicitly differentiate from sibling run_targeted_mutation_tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus run_targeted_mutation_tests or other alternatives. The description only states what it does without mentioning exclusions or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_targeted_mutation_testsA

Erkennt in Git geänderte TypeScript-Dateien (für Commits, Commit-Ranges oder Uncommitted Changes) und führt Mutationstests gezielt nur für diese aus.

ParametersJSON Schema
NameRequiredDescriptionDefault
revisionNoZiel-Branch oder Revision für Git-Diff (z.B. 'HEAD~1' oder 'main').
commitShaNoSpezifischer Commit-Hash für gezielten Testlauf (z.B. 'a9d1206').
baseBranchNoVeraltet: Nutze 'revision' stattdessen.
toRevisionNoZiel-Revision für Commit-Bereich (z.B. 'v1.1.0' oder 'HEAD').
fromRevisionNoStart-Revision für Commit-Bereich (z.B. 'v1.0.0' oder 'HEAD~3').

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses the core behavior (detecting changed files and running tests), but it does not mention potential side effects (e.g., whether the working tree is modified), required permissions, or error/success semantics. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded German sentence that concisely conveys the tool's purpose and scope. Every part is meaningful, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 optional parameters, no output schema, and no annotations, the description is incomplete. It does not explain how to invoke uncommitted changes, how the parameters interact (e.g., commitSha vs from/toRevision), or what the command returns. The deprecated baseBranch is only identified in the schema, not the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds high-level context by grouping parameters around commits, commit ranges, and uncommitted changes, but it does not explain parameter precedence or how to specify 'uncommitted changes' using the available parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: detecting Git-changed TypeScript files and running mutation tests targeted only for those. It enumerates supported scopes (commits, commit ranges, uncommitted changes), which strongly differentiates it from the sibling tool run_mutation_tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'gezielt nur für diese' clearly implies this tool is for targeted mutation testing on changed files, providing clear usage context. However, it does not explicitly name run_mutation_tests as the alternative for full test runs or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.5.3
    • First observedconfigure_desktop_notifications
    • First observedget_mutation_score
    • First observedget_survived_mutants
    • First observedrun_mutation_tests
    • First observedrun_targeted_mutation_tests

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

The two run tools could be confused, but their descriptions clearly differentiate full runs from targeted runs on changed files. The remaining tools (get score, get survived mutants, configure notifications) are distinctly scoped.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: run_*, get_*, configure_*. No mixed conventions or vague verbs.

Tool Count5/5

Five tools is well-scoped for a mutation testing reporter, covering test execution, result retrieval, and notification configuration without unnecessary bloat.

Completeness4/5

The core mutation testing workflow is covered (run tests, get score, get survived mutants), but there are minor gaps like retrieving killed mutants or configuring mutation test options, which are not critical for a reporter.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers