{
  "markdown": "# Sentinel DV\n\n<!-- mcp-name: io.github.kiranreddi/sentinel-dv -->\n\n[![PyPI](https://img.shields.io/pypi/v/sentinel-dv.svg)](https://pypi.org/project/sentinel-dv/)\n[![MCP Registry](https://img.shields.io/badge/MCP-io.github.kiranreddi%2Fsentinel--dv-007f78)](https://registry.modelcontextprotocol.io/?search=io.github.kiranreddi/sentinel-dv)\n[![CI](https://github.com/kiranreddi/sentinel-dv/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kiranreddi/sentinel-dv/actions/workflows/ci.yml)\n[![Documentation](https://github.com/kiranreddi/sentinel-dv/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/kiranreddi/sentinel-dv/actions/workflows/docs.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-172126.svg)](LICENSE)\n\nSentinel DV v2.3.1 is a read-only Model Context Protocol server for design verification evidence. It indexes exported SystemVerilog, UVM, cocotb, assertion, coverage, regression, and waveform artifacts into DuckDB and exposes 28 bounded, schema-driven tools to AI agents.\n\n[Documentation](https://kiranreddi.github.io/sentinel-dv/) | [Quick start](docs/getting-started/quick-start.md) | [Video walkthrough](docs/getting-started/video-walkthrough.md) | [All tools](docs/tools/mcp-tools-reference.md) | [Agent skills](docs/skills/overview.md)\n\n## What it provides\n\n- **Run and test intelligence:** discovery, summaries, history, topology, diffs, replay-command generation, and live-status snapshots.\n- **Failure analysis:** normalized categories, stable signatures, bounded evidence, assertion failures, and failure clustering.\n- **Coverage closure:** functional, code, toggle, and FSM metrics; trends; gaps; vacuity; SVA status; and protocol-aware constraint candidates.\n- **Waveform context:** precomputed `*.wave.json` and bounded VCD summaries. Native FSDB/WLF streaming is intentionally out of scope.\n- **Agent workflows:** regression triage, single-test failure debugging, and coverage closure skills for Codex, Claude Code, and GitHub Copilot.\n\nSentinel DV does not execute simulations, modify RTL or testbench files, or stream unrestricted raw artifacts. `runs.submit` and `tests.replay` return dry-run commands for engineer review.\n\n## Quick start\n\nPython 3.10 or newer is required. This example indexes the checked-in demo corpus:\n\nFor a persistent environment, install `sentinel-dv>=2.3.1`. The commands below use `uvx` to run the same release without a persistent install.\n\n```bash\ngit clone https://github.com/kiranreddi/sentinel-dv.git\ncd sentinel-dv\ncp demo/config.example.yaml demo/config.yaml\n\nuvx --from sentinel-dv@2.3.1 \\\n  sentinel-dv-index --config \"$PWD/demo/config.yaml\" --index-all\n```\n\nConnect one agent:\n\n### Codex\n\n```bash\ncodex mcp add sentinel-dv \\\n  --env SENTINEL_DV_CONFIG=\"$PWD/demo/config.yaml\" \\\n  -- uvx --from sentinel-dv@2.3.1 sentinel-dv-server\n```\n\n### Claude Code\n\n```bash\nclaude mcp add \\\n  --env SENTINEL_DV_CONFIG=\"$PWD/demo/config.yaml\" \\\n  --transport stdio --scope local sentinel-dv \\\n  -- uvx --from sentinel-dv@2.3.1 sentinel-dv-server\n```\n\n### GitHub Copilot CLI\n\n```bash\ncopilot mcp add sentinel-dv \\\n  --env SENTINEL_DV_CONFIG=\"$PWD/demo/config.yaml\" \\\n  -- uvx --from sentinel-dv@2.3.1 sentinel-dv-server\n```\n\nUse an absolute `SENTINEL_DV_CONFIG` path. Verify the connection in the client's MCP status view, then call `runs.list`.\n\nSee [Agent setup](docs/getting-started/agent-setup.md) for configuration-file examples, project scope, skill discovery, and troubleshooting.\n\n## Production configuration\n\nCopy `config.example.yaml` and define allowed artifact roots:\n\n```yaml\nartifact_roots:\n  - /absolute/path/to/regression/artifacts\n\nindex:\n  type: duckdb\n  path: ./sentinel_dv.db\n\nadapters:\n  uvm: true\n  cocotb: true\n  assertions: true\n  coverage: true\n  waveform_summary: true\n\nsecurity:\n  max_response_bytes: 2097152\n  max_page_size: 200\n  max_evidence_refs: 10\n\nredaction:\n  enabled: true\n  redact_emails: true\n  redact_paths: true\n```\n\nBuild the index before starting the server:\n\n```bash\nsentinel-dv-index --config /absolute/path/to/config.yaml --index-all\nsentinel-dv-server --config /absolute/path/to/config.yaml\n```\n\nRelative paths inside the YAML are resolved from the config file's directory. Production startup never silently falls back to demo data.\n\n## MCP tools\n\nThe 28 tools are grouped by engineering purpose:\n\n| Area | Tools |\n| --- | --- |\n| Runs | `runs.list`, `runs.get`, `runs.summary`, `runs.diff`, `runs.cross_sim`, `runs.submit` |\n| Tests | `tests.list`, `tests.get`, `tests.history`, `tests.topology`, `tests.cluster`, `tests.replay` |\n| Failures and assertions | `failures.list`, `assertions.list`, `assertions.get`, `assertions.failures`, `assertions.sva_status`, `assertions.vacuity` |\n| Coverage | `coverage.list`, `coverage.summary`, `coverage.gaps`, `coverage.trend`, `coverage.advisor` |\n| Regression and simulation | `regressions.summary`, `regression.health`, `sim.status` |\n| Waveforms | `wave.signals`, `wave.summary` |\n\nEvery registered tool carries read-only MCP annotations and a versioned output schema. The [MCP tools reference](docs/tools/mcp-tools-reference.md) documents exact inputs and outputs.\n\n## Agent skills\n\nThe canonical skills live under `skills/`:\n\n- [`sentinel-dv-regression-triage`](skills/sentinel-dv-regression-triage/SKILL.md)\n- [`sentinel-dv-failure-debugging`](skills/sentinel-dv-failure-debugging/SKILL.md)\n- [`sentinel-dv-coverage-closure`](skills/sentinel-dv-coverage-closure/SKILL.md)\n\nDeterministic mirrors support project discovery:\n\n| Host | Path |\n| --- | --- |\n| Codex | `.agents/skills/` |\n| Claude Code | `.claude/skills/` |\n| GitHub Copilot | `.github/skills/` |\n\nThe repository also contains Codex and Claude plugin manifests. `.mcp.json` defines the bundled stdio server command; provide `SENTINEL_DV_CONFIG` or a `config.yaml` in the server working directory.\n\nAfter editing a canonical skill:\n\n```bash\n.venv/bin/python scripts/sync_agent_skills.py\n.venv/bin/python scripts/sync_agent_skills.py --check\n```\n\n## Supported artifact sources\n\n- UVM logs and topology hints\n- cocotb and generic JUnit XML\n- assertion definition and failure JSON\n- SVA run-status JSON\n- supported JSON, XML, text, and HTML coverage summaries\n- `*.wave.json` and VCD\n- live simulation status JSON\n- exported VCS, Xcelium, Questa, and Verilator results\n\nAdapter output is normalized into versioned schemas so clients do not need vendor-specific parsing logic.\n\n## Security model\n\n- Tools are read-only and operate on an index plus configured artifact roots.\n- Path resolution is sandboxed to allowed roots.\n- Evidence counts, excerpts, pages, wave signals, bins, and total response size are bounded.\n- Configurable redaction protects common secrets, email addresses, IP addresses, and local paths.\n- Tool output is deterministic; the MCP server does not generate causal conclusions.\n\nRead [Security](docs/architecture/security.md) and [Production deployment](docs/deployment/production.md) before using production artifacts.\n\n## Verification\n\nCreate a development environment:\n\n```bash\npython3 -m venv .venv\n.venv/bin/pip install -e \".[dev,docs]\"\n```\n\nRun endpoint and workflow checks:\n\n```bash\n.venv/bin/python scripts/verify_all_mcp_tools.py\n.venv/bin/python scripts/verify_skill_workflows.py\n```\n\nRun the full quality suite:\n\n```bash\n.venv/bin/pytest\n.venv/bin/ruff check .\n.venv/bin/black --check .\n.venv/bin/mypy sentinel_dv\n.venv/bin/mkdocs build --strict\n```\n\nThe all-tools verifier invokes every registered MCP endpoint. The skill verifier indexes 52 checked-in demo artifacts and executes the published regression triage, failure debugging, and coverage closure sequences.\n\n## Project layout\n\n```text\nsentinel_dv/\n  adapters/        artifact parsers\n  indexing/        DuckDB indexing and queries\n  normalization/   signatures, taxonomy, redaction, coverage guidance\n  schemas/         versioned response contracts\n  tools/core.py    tool implementations\n  server.py        FastMCP registration and stdio entry point\n\nskills/            canonical agent skills\ndemo/              license-free exported verification fixtures\ndocs/              MkDocs documentation\nscripts/           verification, gallery, release, and skill-sync tooling\ntests/             unit and integration coverage\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). Sentinel DV is licensed under [Apache-2.0](LICENSE).\n",
  "bytes": 8388,
  "sha": "007382b30920c19fe645fe46b338db50b7bd704e5a4c8e940d254d8673e7ddaa",
  "repo_slug": "kiranreddi/sentinel-dv",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_kiranreddi_sentinel_dv_9a58470f/readme"
}