stryker-mcp-reporter
This server provides an MCP interface to Stryker mutation testing, enabling AI agents to run, analyze, and improve mutation tests efficiently.
Run full mutation tests (
run_mutation_tests): Execute complete Stryker runs with configurable options like file globs, config path, test runner (e.g., Vitest), and concurrency.Run Git-targeted mutation tests (
run_targeted_mutation_tests): Automatically detect changed TypeScript files (via commit SHA, revision, or range) and test only those, saving up to 90% runtime.Get mutation score (
get_mutation_score): Retrieve the overall score and a detailed summary (killed, survived mutants, etc.).List survived mutants (
get_survived_mutants): Fetch details (file path, line number, mutator type, replacement code) with optional file-path filtering.Configure desktop notifications (
configure_desktop_notifications): Toggle native notifications, enable/disable sounds, and set a persistent overlay until dismissed.
Provides access to Stryker mutation testing results, exposing the latest mutation testing report as a resource.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@stryker-mcp-reporterGet the latest mutation testing report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ stryker-mcp-reporter & Control Server
"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?
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)
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

📊 1. Echter Stryker HTML Mutation Testing Report

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

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

🤖 4. Live KI-Mutanten Auto-Remediation (suggest_mutant_fixes)
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)
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)
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_fixesgeneriert 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_impactprognostiziert in < 1s das Mutationsrisiko geänderter Quellcodedateien.🎯 Targeted Git-Diff Executions: Mit
run_targeted_mutation_testswerden 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/trendsauf den historischen Score-Verlauf und Score-Deltas zu.📦 Live MCP Resources: Greife über URIs wie
stryker://report/survivedoderstryker://statusdirekt 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-reporterModus 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 --sseDer 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 istnpxein Batch-Skript (npx.cmd). Viele KI-Tools starten Prozesse ohne Shell-Kontext.cmd.exe /cstellt den sauberen Start sicher und das--silent-Flag verhindertstdout-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.jsonmacOS / 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.jsonmacOS / Linux:
~/.cursor/mcp.jsonOder 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.jsonPfade:
Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonmacOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonLinux:
~/.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.jsonGlobale Konfiguration:
mcp_settings.jsonWindows:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.jsonmacOS:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.jsonLinux:
~/.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.jsonPfade:
Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.jsonmacOS / 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.jsonPfade:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/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 |
|
| Der vollständige Stryker Mutation Testing Report im JSON-Format. |
|
| Kompakte Zusammenfassung der Mutations-Metriken (Score, Killed, Survived). |
|
| Liste aller überlebenden Mutanten inkl. Pfad, Zeile, Mutator & Ersetzung. |
|
| Historische Trendanalyse der Mutationsscore-Entwicklung und Score-Deltas. |
|
| Aktueller Ausführungsstatus von Stryker ( |
🛠️ Tools (Interaktive Steuerung)
Tool Name | Parameter | Beschreibung |
|
| Startet einen vollständigen oder spezifischen Mutationstest-Lauf. |
|
| Erkennt in Git geänderte TypeScript-Dateien ( |
|
| Generiert KI-gestützte Behebungsratschläge, konkrete Code-Assertions & Boundary-Tests für überlebte Mutanten. |
|
| Analysiert geänderte Quelldateien und prognostiziert in < 1s das Risiko überlebender Mutanten ( |
| - | Ruft den aktuellen Mutationsscore und die Gesamtzusammenfassung ab. |
|
| Liefert alle überlebenden Mutanten inkl. Dateipfad, Zeile, Mutator-Typ & Ersetzungscode. |
|
| 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:
Mutator-Kategorie: (z. B.
Arithmetic & Math,Equality & Logic,Exception Handling).Architekturschicht: (z. B.
Domain,Application,Infrastructure).Risikoscore & Schweregrad: Automatisches Scoring (0 – 100) zur Priorisierung von Testlücken.
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 toolsconfigure_desktop_notificationsA
Konfiguriert die nativen Desktop-Benachrichtigungen (Aktivieren, Ton, Persistenter Status).
| Name | Required | Description | Default |
|---|---|---|---|
| sound | No | Benachrichtigungston aktivieren. | |
| enabled | No | Benachrichtigungen aktivieren oder deaktivieren. | |
| persistentOverlay | No | Persistente Floating-Benachrichtigung aktivieren. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | No | Optionaler Dateipfad-Filter (z.B. 'src/calculator.ts'). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mutate | No | Array von Datei-Globs für Mutationen (z.B. ['src/calculator.ts']). | |
| configFile | No | Pfad zur Stryker Konfigurationsdatei. | |
| testRunner | No | Name des Test-Runners (z.B. 'vitest'). | |
| concurrency | No | Anzahl paralleler Test-Runner-Prozesse. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| revision | No | Ziel-Branch oder Revision für Git-Diff (z.B. 'HEAD~1' oder 'main'). | |
| commitSha | No | Spezifischer Commit-Hash für gezielten Testlauf (z.B. 'a9d1206'). | |
| baseBranch | No | Veraltet: Nutze 'revision' stattdessen. | |
| toRevision | No | Ziel-Revision für Commit-Bereich (z.B. 'v1.1.0' oder 'HEAD'). | |
| fromRevision | No | Start-Revision für Commit-Bereich (z.B. 'v1.0.0' oder 'HEAD~3'). |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v1.5.3- First observed
configure_desktop_notifications - First observed
get_mutation_score - First observed
get_survived_mutants - First observed
run_mutation_tests - First observed
run_targeted_mutation_tests
TDQS
Scored across 5 tools
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.
All tool names follow a consistent verb_noun snake_case pattern: run_*, get_*, configure_*. No mixed conventions or vague verbs.
Five tools is well-scoped for a mutation testing reporter, covering test execution, result retrieval, and notification configuration without unnecessary bloat.
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
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
MCP server for AI access to Swagger by SmartBear.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the pentest reporting and automation features of SysReptor as programmable tools for AI agents and automated workflows. It enables users to manage findings, projects, and templates through a standardized interface by wrapping the reptor CLI.10MIT
- AlicenseNot gradedqualityFmaintenanceMCP server plugin for Cypress that enables AI agents to control a browser for automated testing and interaction.5MIT
- AlicenseAqualityAmaintenanceAn MCP server that brings senior-QA discipline to AI coding assistants, enabling test planning, TDD, mutation testing, and code review.486Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to explore, search, and query API definitions from OpenAPI/Swagger JSON files.59MIT