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.

01

Upload coverage

Send LCOV, Cobertura, or JaCoCo from CI.

02

Query through MCP

Resolve the PR run and exact uncovered lines.

03

Target tests

Inspect source locally and focus on the relevant behavior.

04

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 tools

PR 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