C++ code coverage on Windows for AI agents. Find uncovered code from PDBs, no rebuild.
MCP server for covdbg: C++ code coverage on Windows for AI agents. Run tests, find uncovered code, and add targeted tests. No rebuild required.
covdbg measures coverage of the Windows x64 binaries you already build, using their PDB debug information. It works like a debugger: it starts your executable, reads the PDB, and places lightweight probes while the program runs. The MCP server is built into the covdbg executable (since v1.3.0) and is started with covdbg mcp.
This repository holds the MCP registry metadata (server.json, glama.json) and the MCP Bundle manifest (manifest.json) for covdbg. The server itself ships with covdbg.
.covdb) with read-only SQL.covdbg login (covdbg 1.4 and newer sign in to one team, and runs need a seat in that team), or COVDBG_PROJECT_TOKEN for CI.covdbg.yaml next to the target executable, or a config_path passed to run (see the configuration reference)%LocalAppData%\Programs\Liasoft\covdbg and adds that directory to your user PATH.PATH yourself.Then open a new terminal and sign in:
covdbg --version
covdbg login
Sign-in is team-scoped: in the browser you choose one team (your personal team, or a team you own or hold a seat in), and the agent's runs are licensed for that team. Use covdbg login --team <slug> to choose it up front, and covdbg whoami to see which team is active. In CI, COVDBG_PROJECT_TOKEN decides by the token's team.
The server uses stdio transport. Start it from your project directory, or pass --workspace <dir>.
From the project directory:
claude mcp add covdbg -- covdbg mcp
Or add a project .mcp.json:
{
"mcpServers": {
"covdbg": {
"command": "covdbg",
"args": ["mcp"]
}
}
}
.vscode/mcp.json:
{
"servers": {
"covdbg": {
"type": "stdio",
"command": "covdbg",
"args": ["mcp", "--workspace", "${workspaceFolder}"]
}
}
}
.cursor/mcp.json:
{
"mcpServers": {
"covdbg": {
"command": "covdbg",
"args": ["mcp"]
}
}
}
covdbg.mcpb from the latest release.covdbg.exe. The default is the MSI install location.covdbg login; runs are then licensed for the team you signed in to (see covdbg whoami).The bundle does not contain covdbg itself. It launches your installed covdbg.exe, so covdbg updates take effect without a new bundle.
| Tool | Purpose | Main inputs |
|---|---|---|
guide | Workflow and configuration guidance | optional topic (config, excludes, baseline, merging, uncovered, children) |
discover | Find executables and coverage databases | optional root |
run | Start a coverage run; returns a run session right away | target; optional target_arguments, config_path, output_path, follow_children |
wait_run | Wait briefly or collect the completed result | session_id; optional timeout_seconds |
cancel_run | Terminate a run | session_id |
open_coverage | Open an existing database read-only | path |
files | Rank files by uncovered lines | session_id; optional limit, max_coverage_percent |
code | Read uncovered source segments with context | session_id, file_path |
query | Run one read-only SQL statement | session_id, sql; optional max_rows |
merge | Combine databases | input_paths, output_path |
close | Release a run or coverage session | session_id |
run-; coverage session IDs start with covdb-.wait_run blocks for at most 30 seconds. If it reports stillRunning, call it again.success, no_functions_to_track, license_failure, or error.| Variable | Purpose |
|---|---|
COVDBG_PROJECT_TOKEN | Project token for CI or headless use. Local use relies on covdbg login, which is bound to one team. |
COVDBG_OUTPUT | Fixed default output location. Avoid reusing one location across a suite, since later runs overwrite earlier results. |
Keep version in manifest.json and server.json, and the release tag in the server.json package URL, in sync.
Build the bundle. .mcpbignore limits it to manifest.json, icon.png and LICENSE:
npx @anthropic-ai/mcpb validate manifest.json
npx @anthropic-ai/mcpb pack . covdbg.mcpb
Create the GitHub release v<version> and upload covdbg.mcpb as an asset.
Put the bundle's hash into fileSha256 in server.json:
(Get-FileHash covdbg.mcpb -Algorithm SHA256).Hash.ToLower()
Publish to the MCP registry. The com.covdbg/* namespace uses DNS authentication on covdbg.com:
mcp-publisher login dns --domain covdbg.com --private-key <key>
mcp-publisher publish
Glama picks up glama.json from the repository.
The metadata in this repository is licensed under the Apache License 2.0. covdbg itself is licensed separately, with Free, Team, and Enterprise plans. See covdbg.com and the Licensing FAQ.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/liasoft/covdbg-mcp/releases/download/v1.4.0/covdbg.mcpbothercovdbg works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.