coverage-lens
v1.0.2
Published
A Model Context Protocol (MCP) server that extracts and analyzes code coverage data from your test reports.
Maintainers
Readme
MCP Coverage Lens
An MCP (Model Context Protocol) server that reads test coverage reports and provides coverage data to AI assistants like Claude.
How It Works
- The server reads Clover XML coverage reports using stream parsing for greater efficiency
- Retrieving only data about the specified file, without loading the entire coverage report into the context window.
- When you ask about a specific file's coverage, it extracts and returns the relevant
<file>tag - The AI assistant can then interpret the coverage data (line hits, branch coverage, etc.)
Features
- Reads Clover XML coverage reports (commonly generated by Istanbul/nyc, PHPUnit, and other testing tools)
- Provides file-specific coverage data on demand
- Integrates seamlessly with MCP-compatible AI clients
- Lightweight and fast with streaming XML parsing
Installation
Using Claude Code CLI
The easiest way to add Coverage Lens to Claude Code:
claude mcp add coverage-lens -- npx -y coverage-lensManual Configuration
Add the following to your MCP configuration file:
{
"mcpServers": {
"coverage-lens": {
"command": "npx",
"args": ["-y", "coverage-lens"]
}
}
}Environment Variables
| Variable | Description | Default |
| --------------------------- | -------------------------------------------- | ----------------------- |
| COVERAGE_REPORT_FILE_PATH | Optional custom path to your clover.xml file | ./coverage/clover.xml |
Available Tools
get_file_coverage
Returns coverage data for a specific file from the test report.
Parameters:
targetFile(string, required): File name or partial path to search for
Example usage in Claude:
What is the test coverage for the file "UserService.ts"?
or without extension file
What is the test coverage for the file "UserController"?Generating Coverage Reports
Coverage Lens reads Clover XML format. Here's how to generate compatible reports:
JavaScript/TypeScript (Jest)
// package.json
{
"scripts": {
"test:coverage": "jest --coverage"
}
}Jest generates clover.xml by default in the coverage/ directory.
Development
# Clone the repository
git clone https://github.com/denisonamaral/mcp-coverage-lens.git
cd mcp-coverage-lens
# Install dependencies
npm install
# Build the project
npm run build
# The compiled output will be in the build/ directoryProject Structure
mcp-coverage-lens/
├── src/
│ └── index.ts # Main MCP server implementation
├── build/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.mdTech Stack
- TypeScript (ES2022)
- MCP SDK for server implementation
- Zod for input validation
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE for details.
