An MCP (Model Context Protocol) server for analyzing code coverage from MTP (Microsoft Testing Platform) based .NET test projects. Parses Cobertura XML coverage reports and exposes coverage data through MCP tools for AI-assisted development workflows.
- Parse Cobertura XML coverage reports (the standard output from
dotnet testwith code coverage) - Query missed lines and branches for individual source files
- Get overall coverage for classes, methods, projects, and entire solutions
- Generate comprehensive missed coverage reports across a solution
- Discover and merge multiple coverage reports automatically
- .NET 10 SDK or later
- An MTP-compatible test framework (e.g., TUnit, MSTest, xUnit v3)
- Code coverage collection configured (via
testconfig.jsonor CLI flags)
Click to install in your preferred environment:
Note:
- These install links are prepared for the intended NuGet package V1.* identity
UnitTestMcp.Serverand do not require thedotnet toolto be installed first. - If you are not able to use these links yet, use one of the manual configuration options below.
{
"servers": {
"MTP.UnitTest.MCP": {
"type": "stdio",
"command": "dnx",
"args": [
"UnitTestMcp.Server@1.*",
"--yes"
]
}
}
}To install as a dotnet tool:
dotnet tool install --global UnitTestMcp.ServerOr run directly from source:
cd src
dotnet run --project UnitTestMcp.Server| Tool | Description |
|---|---|
GetMissedCoverageForFile |
Gets missed lines and branches for a specific source file |
GetClassCoverage |
Gets overall coverage summary for a specific class |
GetMethodCoverage |
Gets overall coverage summary for a specific method |
GetProjectCoverage |
Gets overall coverage summary for a specific project/package |
GetSolutionCoverage |
Gets overall coverage summary for an entire solution |
GetSolutionMissedCoverage |
Gets a detailed report of ALL missed lines and branches across a solution |
With MTP, code coverage is configured via testconfig.json and the Microsoft.Testing.Extensions.CodeCoverage extension. Add the extension to your test project and configure it for Cobertura output:
{
"extensions": [
{
"extensionId": "Microsoft.Testing.Extensions.CodeCoverage",
"settings": {
"format": "cobertura"
}
}
]
}Then run your tests normally:
dotnet testThe following examples are for end users consuming the published global tool. You do not need to build the project from source to use these configurations.
Add the installed tool as a stdio MCP server with:
claude mcp add dotnet-mtp-coverage-mcp -- dotnet-mtp-coverage-mcpIf your local setup needs environment variables, Claude Code also supports:
claude mcp add -e SOME_SETTING=value dotnet-mtp-coverage-mcp -- dotnet-mtp-coverage-mcpNo additional subprocess flags or arguments are required when using the installed global tool.
For JSON-based MCP clients (for example, Claude Desktop or other clients that use an mcpServers object), use one of the following stdio server configurations.
Installed .NET tool:
{
"mcpServers": {
"dotnet-mtp-coverage-mcp": {
"command": "dotnet-mtp-coverage-mcp"
}
}
}With environment variables:
{
"mcpServers": {
"dotnet-mtp-coverage-mcp": {
"command": "dotnet-mtp-coverage-mcp",
"env": {
"SOME_SETTING": "value"
}
}
}
}This tool expects Cobertura XML format, which is the standard output from the Microsoft.Testing.Extensions.CodeCoverage extension when configured with "format": "cobertura" in testconfig.json.
cd src
dotnet buildcd src
dotnet testsrc/
UnitTestMcp.Core/ # Core library: models, parsers, services
Models/ # Coverage data models (records)
Parsers/ # Cobertura XML parser
Services/ # Coverage query service
UnitTestMcp.Server/ # MCP server executable
Tools/ # MCP tool definitions
tests/
UnitTestMcp.Tests/ # TUnit tests
TestData/ # Sample Cobertura XML fixtures
The Cobertura XML parsing logic and coverage data model concepts in this project are adapted from ReportGenerator by Daniel Palme, licensed under the Apache License 2.0. ReportGenerator is a comprehensive code coverage report generation tool that supports many input and output formats.
MIT License - Copyright (c) 2026 Glenn Watson. See LICENSE for details.