dsh-verifySAFE
Browser acceptance checks for agent-built web apps. Zero-key starter, CLI, MCP and GitHub Action; inspect explicit assertions and reports.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
中文 | English
Witness — Check the behavior your browser spec describes. Browser assertions can expose some implementation gaps; they do not prove an app is complete or independently reviewed. (Witness is the product name; `dsh-verify` is the package name — same thing.)
[](https://github.com/263311487-ux/dsh-verify/actions/workflows/ci.yml) [](https://www.npmjs.com/package/dsh-verify) [](https://glama.ai/mcp/servers/263311487-ux/dsh-verify) [](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) [](https://github.com/263311487-ux/dsh-verify/stargazers) [](https://github.com/263311487-ux/dsh-verify/actions/workflows/self-acceptance.yml)
If Witness catches something for you, ⭐ [star the repo](https://github.com/263311487-ux/dsh-verify) — it's how this project stays alive.
You asked an AI to build a web app. It said "done." Does it actually work?
dsh-verify opens a real browser and checks — so you never have to take the agent's word for it.
First success — no API key
Requires Node.js 20+ and a one-time Chromium download. Install the current npm release with npm install --save-dev [email protected], then run npx dsh-verify init. Alternatively, run from a clone checkout:
git clone https://github.com/263311487-ux/dsh-verify && cd dsh-verify npm ci npx playwright install chromium node bin/verify.mjs init cd dsh-verify-starter node ../bin/verify.mjs --spec dsh-verify.spec.json # PASS (5/5), exit 0 -> dsh-
210d5071dd95OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add dsh-verify -- npx -y [email protected]
Exposed tools (5)
3 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
dsh_verify | read | Witness — independent browser acceptance testing for agent-built web apps. Runs the dsh-verify CLI (real browser; PASS/FAIL with evidence receipts). Use when the agent built or changed a web app and must prove it works in a real browser. |
generate_and_verify | read | AI-drafts an acceptance checklist for a URL (LLM writes it, a real browser executes it), then immediately runs it in real Chromium. |
health | write | Check that the dsh-verify MCP server and its Chromium browser are ready to run verifications. |
verify_spec | write | Run a dsh-verify acceptance spec (JSON file, or glob) against a real headless Chromium. |
verify_url | read | Verify a live URL against a list of human-style checks, driven by a real headless Chromium. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (3 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (6)
return { url: `http://127.0.0.1:${server.address().port}`, close: () => server.close() };<div class="detail">http://127.0.0.1:63342/index.html</div></div></div>
<div class="detail">http://127.0.0.1:63346/index.html</div></div></div>
baseUrl = `http://127.0.0.1:${server.address().port}`;baseUrl = `http://127.0.0.1:${server.address().port}`;@modelcontextprotocol/sdk, playwright, pngjs
Gates applied: no_behavioural_pass.
210d5071dd95full audit observations/trust-audit/mcp-server/263311487-ux__dsh-verify.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 210d5071dd95 | SAFE | B | 89 | first audit |
Questions
What is the dsh-verify MCP server?
Browser acceptance checks for agent-built web apps. Zero-key starter, CLI, MCP and GitHub Action; inspect explicit assertions and reports.
What tools does dsh-verify expose?
5 in total: 3 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is dsh-verify safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does dsh-verify need?
It reads DEEPSEEK_API_KEY, LLM_API_KEY and OPENAI_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does dsh-verify run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as dsh-verify at 0.9.6.
How current is this page?
The grade is for one exact copy of the source (210d5071dd95), read on 2026-10-12. The repository is watched and re-audited when it changes.