MCP threat-model artifact for a scaffolded harness. Reports allowed/denied tools, dangerous permissions count, secrets reachability, network/shell/file-write grants, default-deny posture. Verdict: clean (exit 0) / medium (exit 1) / high (exit 2). The 'enterprise gold' artifact for PR + compliance review.
Scanned 8/31/2026
Install to Claude Code
npx -y skills add ruvnet/metaharness --skill threat-model --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Threat Model?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ruvnet-threat-model)More formats (shields.io, HTML) on the badges page.
---
name: threat-model
description: MCP threat-model artifact for a scaffolded harness. Reports allowed/denied tools, dangerous permissions count, secrets reachability, network/shell/file-write grants, default-deny posture. Verdict: clean (exit 0) / medium (exit 1) / high (exit 2). The 'enterprise gold' artifact for PR + compliance review.
---
# threat-model
> Codex skill: MCP threat-model artifact for PR / compliance review
> (iter 112 → iter 114). User-labelled "enterprise gold."
## What it does
Renders the existing `mcp-scan` findings as a clean threat-model artifact
in the shape a security / compliance reviewer wants to see attached to a
PR:
```
MCP Threat Model
Allowed tools: 3
Denied tools: 14
Dangerous permissions: 0
Secrets reachable: no
Network access: no
Shell access: no
File write: no
Default-deny policy: yes
Audit log: yes
Verdict: clean (exit 0)
```
Same underlying scan as `mcp-scan`, presented as a single-screen artifact.
| Verdict | Exit | Triggers |
|---|---|---|
| `clean` | 0 | no dangerous perms, no secret exposure |
| `medium` | 1 | network OR file-write granted, OR no audit log |
| `high` | 2 | shell granted OR default-deny OFF OR secrets reachable |
The "secrets reachable" heuristic is conservative: true when MCP is in
use AND deny rules don't guard `.env*` AND allow rules include any
`Read(...)` grant.
## Usage from Codex
```
/threat-model path=./my-harness
/threat-model path=./my-harness bundle=true
```
## Equivalent CLI
```bash
harness threat-model ./my-harness # text artifact
harness threat-model ./my-harness --json # full envelope
harness threat-model ./my-harness --bundle # ADR-031 schema-1
harness threat-model ./my-harness --out tm.json # write to file
```
## When to attach this to a PR
- Adding a new MCP server / tool
- Loosening a permission allow rule
- Pulling in a new dependency that exposes shell/network capabilities
- Any change to `.harness/mcp-policy.json` or `.claude/settings.json`
permissions
The artifact is small enough to paste verbatim into the PR description.
## Related skills
- `validate-harness` (iter 22) — release-readiness umbrella (includes
mcp-scan)
- `score-harness` (iter 114) — broader 0-100 scorecard; MCP safety is
one of its 5 dimensions
- `repo-genome` (iter 114) — pre-scaffold readiness; MCP risk is one of
its 7 sections
## See also
- ADR-022 — MCP primitive · ADR-030 — Discovery Loop · ADR-031 — Bundle Pattern
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!