Draugr
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
Description from the maker (original English)
Security scanner for AI Agent skills, plugins, and MCP servers with A-F grading.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"prism-scanner": {
"command": "uvx",
"args": [
"prism-scanner"
]
}
}
}Run this in your terminal
claude mcp add prism-scanner -- uvx prism-scannerPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"prism-scanner": {
"command": "uvx",
"args": [
"prism-scanner"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"prism-scanner": {
"type": "stdio",
"command": "uvx",
"args": [
"prism-scanner"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account aidongise-cell, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 8 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Draugr, Zeqqat, MCP Safety Warden
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
The safe MCP for Dokploy: agents deploy and fix apps without holding keys or seeing secrets.
MCP proxy adding security scanning, behavioral profiling, risk gating, and safe tool call execution.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Security scanner for AI Agent skills, plugins, and MCP servers.
Prism analyzes code for malicious behavior *before* you install it — and checks your system for leftover threats *after* you uninstall.
Unlike marketplace-only trust scores, Prism gives you full lifecycle coverage with code-level transparency — pre-install, runtime, and post-uninstall — across every platform, completely open source.
.env files, private keys, IDE configs, and package-manager credentials before they ship. Inspired by Anthropic's April 2026 source-map leak that exposed 512K lines of Claude Code internals via npm. Wire it into your CI: prism scan ./dist --fail-on high
prism --version reported 0.1.3 after upgrading to 0.2.1); detection behavior is identical to v0.2.1.| Marketplace Trust Scores | Prism Scanner | |
|---|---|---|
| Pre-install | :white_check_mark: Reputation score | :white_check_mark: Deep code analysis |
| Post-uninstall | :x: | :white_check_mark: Residue & persistence scan |
| Inspection | Black-box rating | Code-level, rule-by-rule |
| Platforms | Single ecosystem | ClawHub, MCP, npm, pip |
| Source | Closed | Open (Apache 2.0) |
| Execution | Requires upload | Local-first, offline OK |
pip install prism-scanner
prism scan ./my-skill/
prism scan https://github.com/user/skill-repo
prism clean --scan
prism clean --plan
prism clean --apply
brew tap prismlab/tools
brew install prism-scanner
npx prism-scanner scan https://github.com/user/skill-repo
Add Prism to your CI pipeline — findings appear in GitHub's Security tab:
# .github/workflows/prism-scan.yml
name: Prism Security Scan on: [push, pull_request]
permissions: security-events: write contents: read
jobs: scan: runs-on: ubuntu-latest steps:
Prism Scanner can run as an MCP server, giving AI assistants direct access to security scanning tools.
pip install "prism-scanner[mcp]"
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "prism-scanner": { "command": "prism-mcp" } } }
Or for Claude Code:
claude mcp add prism-scanner prism-mcp
This exposes 4 tools: prism_scan, prism_grade, prism_clean_scan, prism_clean_plan.
# Build the image
docker build -t prism-scanner .
docker run -v $(pwd)/my-skill:/workspace/target:ro prism-scanner scan /workspace/target
docker run prism-scanner scan https://github.com/user/skill-repo
docker run -v $(pwd):/workspace/output prism-scanner scan https://github.com/user/repo --format html -o /workspace/output/report.html
Or use the published image:
docker run ghcr.io/prismlab/prism-scanner scan <target>
Prism operates across 3 analysis layers, each targeting a different phase of the agent lifecycle:
| Layer | Focus | Rules | Examples |
|---|---|---|---|
| 1. Code Behavior (S1-S14) | What the code *does* | 14 | Shell execution, data exfiltration, SSRF, persistence mechanisms, unsafe deserialization, download-and-execute |
| 2. Metadata (M1-M6, P1-P9) | What the package *claims* vs. *contains* | 15 | Hardcoded credentials, typo-squatting, install scripts, obfuscated payloads, prompt injection, suspicious domains |
| 3. System Residue (R1-R10) | What was *left behind* | 10 | LaunchAgents, crontab entries, shell config pollution, orphaned credentials, systemd units, login items |
Total: 39 detection rules with lightweight intra-file taint analysis.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Prism Scanner v0.1.0 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: evil_skill Platform: clawhub Duration: 42ms
[1/3] Behavior Analysis ✗ CRITICAL S8 Data exfiltration: secrets sent to external endpoint evil_skill.py:10 ✗ CRITICAL S10 Download and execute: fetches remote payload evil_skill.py:24 ✗ HIGH S1 Shell execution with untrusted input evil_skill.py:14 ✗ HIGH S13 Persistence: writes LaunchAgent plist evil_skill.py:36 ⚠ MEDIUM S6 Dynamic code execution (eval/exec) evil_skill.py:21
[2/3] Metadata Analysis ✗ CRITICAL P1 Hardcoded credential: AWS Access Key evil_skill.py:47 ⚠ MEDIUM P2 Base64-encoded executable content evil_skill.py:50 ⚠ MEDIUM P6 Prompt injection pattern in string literal evil_skill.py:53
[3/3] Residue Scan (skipped — use prism clean --scan for system-level checks)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Grade: F (Critical)
Key Risks: ▸ CRITICAL: Data exfiltration to external endpoint (S8) ▸ CRITICAL: Download and execute remote payload (S10) ▸ CRITICAL: Hardcoded AWS credential (P1) ▸ HIGH: Shell execution with user input (S1) ▸ HIGH: Persistence mechanism installed (S13)
Behavior Profile: exfiltrates_data, executes_shell, downloads_and_executes, installs_persistence
Recommendation: DO NOT INSTALL — Critical security risks detected.
Findings: 3 critical, 2 high, 3 medium ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Grade | Label | Meaning | Recommendation |
|---|---|---|---|
| A | Safe | No findings or only informational | Safe to use |
| B | Notice | Only LOW severity findings | Likely safe — minor observations |
| C | Caution | 1-4 MEDIUM findings | Review before use — warrants manual inspection |
| D | Danger | 1-2 HIGH, or 5+ MEDIUM | Use in sandbox only — significant risks |
| F | Critical | Any CRITICAL, or 3+ HIGH | Do not install — critical security risks |
# Rich terminal output (default) — color-coded severity, grade highlighting
prism scan ./skill/
prism scan ./skill/ --format json
prism scan ./skill/ --format html -o report.html
prism scan ./skill/ --format sarif -o results.sarif
Generate a standalone, self-contained HTML report with full findings, grade visualization, and risk breakdown — perfect for sharing with teammates or archiving:
prism scan https://github.com/user/skill-repo --format html -o report.html
The HTML report features a dark-themed UI with color-coded severity levels, an interactive grade ring, and a complete findings table. No external dependencies — just open the .html file in any browser.
Add Prism to your GitHub Actions workflow to gate deployments on security findings:
name: Security Scan
on: [push, pull_request]
jobs: prism-scan: runs-on: ubuntu-latest steps:
The --fail-on flag exits with code 1 if any finding meets or exceeds the specified severity (critical, high, or medium), failing the CI pipeline.
scan -> plan -> apply) with automatic backup and --rollback.prismignore to suppress known findings by rule ID with justification--offline to skip all external lookupsDetection rules are defined in YAML files under the rules/ directory:
rules/
├── malicious_signatures.yaml # Known malicious code signatures and hashes ├── permissions.yaml # Permission baseline definitions └── suspicious_domains.yaml # C2 domains, dynamic DNS, disposable TLDs
The pattern engine (P1-P9) and manifest engine (M1-M6) load rules from these files at scan time. Add entries to extend detection without modifying Python code.
src/prism/
├── cli.py # CLI entry point and output formatting ├── scanner.py # Orchestrator — runs engines, collects findings ├── models.py # Finding, ScanResult, Severity, Layer data models ├── scoring.py # Letter-grade risk assessment (A-F) ├── report.py # HTML report generator ├── fetcher.py # Git clone / URL fetching with security guards ├── cleaner.py # System cleanup: plan, apply, rollback ├── suppression.py # .prismignore parsing ├── rules_loader.py # YAML rule loading └── engines/ ├── ast_engine.py # AST-based analysis (S1-S14) ├── pattern_engine.py # Regex pattern matching (P1-P9) ├── manifest_engine.py # M
Only the beginning is shown; read the rest in the repo