Authenticate with a Salesforce session and target /services/data/vXX.0/tooling/query/
Query ApexCodeCoverageAggregate with fields NumLinesCovered and NumLinesUncovered filtered to the classes you care about
Calculate coverage percentage as NumLinesCovered / (NumLinesCovered + NumLinesUncovered)
Cross-reference with the ApexClass object to resolve class names from ApexClassOrTriggerId
Page through results using nextRecordsUrl if the org has many classes
Report classes below 75% coverage threshold and surface the specific uncovered lines via ApexCodeCoverage
Known gotchas
Coverage data in ApexCodeCoverageAggregate reflects the last full test run; stale data appears if tests have not been re-executed after recent code changes
The Tooling API uses its own query endpoint separate from the standard SOQL endpoint; mixing them returns an error
Coverage percentages can momentarily read 0% for new classes until at least one test that covers them has been executed
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp