Sentinel DV — Claude Code MCP server: UVM logs and coverage triage
Indexes UVM and cocotb logs, coverage reports, regressions and waveform summaries into DuckDB, then hands an AI agent 28 read-only tools.
claude mcp add --env SENTINEL_DV_CONFIG=<SENTINEL_DV_CONFIG> --transport stdio sentinel-dv -- uvx sentinel-dvWhat Sentinel DV does
Sentinel DV pulls exported verification artifacts into a local DuckDB index: UVM logs, cocotb and JUnit XML output, assertion failure JSON, SVA run status, coverage summaries, *.wave.json files and VCD. On top of that index sit 28 tools with versioned output schemas, grouped around runs, tests, failures, coverage, regressions and waveforms. The agent queries the index instead of chewing through raw files.
The server never runs a simulation and never edits RTL or a testbench. runs.submit and tests.replay hand back dry-run commands for an engineer to look over first. Native FSDB and WLF streaming is out of scope — only precomputed summaries. Path resolution stays inside the configured artifact_roots, and response size, page counts and evidence references are capped in the same config, along with redaction of secrets, emails and local paths.
Python 3.10 or newer is required. Build the index before starting the server with sentinel-dv-index --config ... --index-all, and point SENTINEL_DV_CONFIG at an absolute path: relative paths inside the YAML resolve from the config file's own directory. The repository ships skills for regression triage, single-test debugging and coverage closure, plus Codex and Claude plugin manifests.
What it helps with
- locate the failing test inside a large regression run
- cluster failures by stable signature instead of diffing logs by hand
- see which coverage bins are still empty
- diff two runs and spot test-level changes
- get a signal summary out of a VCD without opening a waveform viewer
Example prompts for the agent
- List the runs and find the one with the most failing tests
- Cluster the failures in the latest regression and show evidence for each group
- Which coverage gaps remain, and what does
coverage.advisorsuggest?
How to install Sentinel DV
Platform CLI
claude mcp add --env SENTINEL_DV_CONFIG=<SENTINEL_DV_CONFIG> --transport stdio sentinel-dv -- uvx sentinel-dvReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from sentinel-dv <command>
Platform CLI
codex mcp add sentinel-dv --env SENTINEL_DV_CONFIG=<SENTINEL_DV_CONFIG> -- uvx sentinel-dvReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from sentinel-dv <command>
Config file
{
"mcpServers": {
"sentinel-dv": {
"command": "uvx",
"args": [
"sentinel-dv"
],
"env": {
"SENTINEL_DV_CONFIG": "<SENTINEL_DV_CONFIG>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from sentinel-dv <command>
Config file
{
"servers": {
"sentinel-dv": {
"type": "stdio",
"command": "uvx",
"args": [
"sentinel-dv"
],
"env": {
"SENTINEL_DV_CONFIG": "<SENTINEL_DV_CONFIG>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from sentinel-dv <command>
Platform CLI
gemini mcp add -e SENTINEL_DV_CONFIG=<SENTINEL_DV_CONFIG> sentinel-dv uvx sentinel-dvReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from sentinel-dv <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Sentinel DV
How do I install Sentinel DV in Claude Code?
Run claude mcp add sentinel-dv -- uvx sentinel-dv, or with your own config claude mcp add --env SENTINEL_DV_CONFIG=<SENTINEL_DV_CONFIG> --transport stdio sentinel-dv -- uvx sentinel-dv. Build the index first.
What does Sentinel DV do?
It indexes verification artifacts into DuckDB and exposes 28 read-only tools covering runs, tests, failures, assertions, coverage, regressions and waveform summaries.
Does the server need Python?
Yes, Python 3.10 or newer. It runs through uvx, so a persistent install is optional, but the index has to exist before the server starts.