Quick Start¶
Get up and running with Sentinel DV in minutes.
Prerequisites¶
- Python 3.10 or higher
- Verification artifacts (UVM logs, cocotb results, coverage reports)
- 500MB+ disk space for indexing
Installation¶
Configuration¶
Required: Sentinel DV does not start without a config file (no silent demo/ default).
From the repository root, copy the template and edit paths for your environment:
Alternatively set export SENTINEL_DV_CONFIG=/absolute/path/to/config.yaml, or place config.yaml / config.yml in the directory where you start the server.
Example config.yaml:
artifact_roots:
- /path/to/verification/regressions
index:
type: duckdb
path: ./sentinel_dv.db
adapters:
uvm: true
cocotb: true
assertions: true
coverage: true
security:
max_page_size: 200
max_response_bytes: 2097152
redaction:
enabled: true
redact_emails: true
redact_paths: true
Example Configuration
Copy config.example.yaml and customize for your environment.
Index Your Artifacts¶
This will:
- Scan configured artifact roots
- Parse verification artifacts using enabled adapters
- Build normalized index in DuckDB
- Generate failure signatures and topology
Expected output:
[INFO] Scanning artifact roots...
[INFO] Found 150 test logs
[INFO] Parsing UVM logs...
[INFO] Parsing cocotb results...
[INFO] Building index...
[INFO] Indexed 150 tests, 45 failures, 1200 assertions, 80 coverage reports
[INFO] Index complete: sentinel_dv.db (125MB)
Start the Server¶
Server will start on stdio (MCP protocol):
Sentinel DV v2.3.0 started
Schema version: 1.0.0
Tools registered: 15
Index ready: 150 tests indexed
Use with Claude Desktop¶
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"sentinel-dv": {
"command": "python",
"args": [
"-m",
"sentinel_dv.server",
"--config",
"/absolute/path/to/config.yaml"
]
}
}
}
Restart Claude Desktop.
First Queries¶
Try these queries with Claude:
Test Failure Analysis
Claude will use: - tests.list to find the test - failures.list to get failure events - tests.topology to understand the testbench structure
Coverage Comparison
Claude will use: - runs.diff to compute differences - coverage.summary to get detailed metrics
Assertion Tracking
Claude will use: - assertions.list to find AXI assertions - assertions.failures to get runtime failures - regressions.summary for time windowing
Regression Health
Claude will use: - regressions.summary for suite-level stats - runs.list to enumerate runs
Waveform window (1.2.0+)
Claude will use: - tests.list to resolve test_id - wave.signals with start_time_ns: 2000, end_time_ns: 3000
Requires waveform_summary: true and an indexed VCD or *.wave.json. See MCP tools reference.
Verify It Works¶
Check that tools are accessible:
# test_connection.py
from sentinel_dv.config import load_config
from sentinel_dv.indexing.store import get_store
config = load_config("config.yaml")
store = get_store()
print(f"Tests indexed: {store.count_tests()}")
print(f"Runs indexed: {store.count_runs()}")
print(f"Failures indexed: {store.count_failures()}")
Next Steps¶
- MCP tool gallery — visual cards for all 28 tools (real JSON from
demo/) - Multi-project demo — UVM, cocotb, Verilator, and commercial simulator fixtures
- VCS, Questa, and Cadence — license-free artifact validation (
python scripts/verify_all_mcp_tools.py --sim vcs) - Verilator + VCD example — end-to-end waveform demo
- Waveform summaries —
*.wave.jsonand*.vcdindexing - Configure adapters for your specific simulator
- Explore tools available for queries
- Understand schemas for structured data
- Deploy to production with systemd
Troubleshooting¶
Index not building?
- Check artifact root paths are correct and readable
- Ensure logs are in recognized format (UVM, cocotb)
Server not starting?
- Verify Python version (3.10+)
- Check config.yaml is valid YAML
- Ensure index database exists and is readable
No results from queries?
- Verify index was built successfully
- Check that artifacts contain expected data
- Try simpler queries first (e.g.,
runs.list)