Code coverage for agentic coding
Turn every coverage upload into actionable context for coding agents.
Codex, Claude, and other MCP clients can identify, prioritize, and verify coverage targets while your team keeps the GitHub review workflow it already trusts.
Upload coverage
Send LCOV, Cobertura, or JaCoCo from CI.
Query through MCP
Resolve the PR run and exact uncovered lines.
Target tests
Inspect source locally and focus on the relevant behavior.
Verify the PR
Upload again and confirm the patch improved.
Read-only remote MCP
Agent capabilities, grounded in stored coverage
Connect once, discover authorized repositories, and fetch only the coverage context needed for the current task. Repository source stays in the local checkout.
Explore the MCP toolsPR coverage
Project, patch, baseline, conclusions, and changed files.
Uncovered changes
Exact changed lines grouped into contiguous ranges.
File coverage
Covered or uncovered ranges within selected line bounds.
Comparisons
Project and file deltas between matching commits.
Regressions
Only project, file, and line states that got worse.
Test context
Target and nearby hit states—never repository source.
Patch coverage checks
Show whether changed lines are covered and fail the pull request when new code lands without tests.
Project baselines
Compare uploads against the latest base branch run so teams can protect coverage without static thresholds.
GitHub checks
Publish project and patch conclusions directly to the commit status area reviewers already inspect.
PR comments
Summarize uncovered changed lines with links back to detailed run pages for faster review.
Repository dashboards
See recent uploads, pull request coverage, and file-level results for every connected repository.
Organization tokens
Use one organization secret across repositories while keeping repository-level tokens available.
Designed for GitHub Actions
Generate LCOV, Cobertura, or JaCoCo in CI, upload the report with a token, and let 9to5 coverage update the pull request with checks and comments. The action's endpoint override is optional.
- name: Upload coverage
uses: 9to5/9to5-coverage-action@v1
with:
token: ${{ secrets.COVERAGE_UPLOAD_TOKEN }}
path: coverage/lcov.info