Audit AI skill safety before you ship. Static, semantic, adversarial, supply chain scans.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Static + semantic + adversarial + supply-chain audit for AI agent skills. Run it in CI, or call it as an MCP tool from Claude Code / Cursor / Codex. BYOK for the LLM layers; free hosted tier + live Playground on tarai.dev.
Listed on the official Model Context Protocol Registry and published to PyPI β one-click install into any MCP-compatible agent.
tar-engine audits SKILL.md (OpenClaw, Claude Code), Codex skill.yaml, Claude Code custom commands (.claude/commands/*.md), and OpenCode configs β with no change to how you author skills. The core idea: a skill can pass every static red-flag check and still behave maliciously at runtime. TAR Engine catches that.
Three ways to run it β two of them install nothing on your machine:
tar-engine scan ./skills --min-score 70 exits 1 if any skill scores below the bar. A pre-publish gate, not a nicer directory card.SKILL.md while you write. It's a pinned, hash-verifiable PyPI release β no arbitrary git+https install. Details below.Point it at a skill that looks fine. A "weekly note formatter" whose SKILL.md reads clean β but buried in it is a curl β¦ | bash step, a "cloud sync" that tars up ~/.aws and ~/.ssh, and an instruction telling the agent to hide those network calls from you:
Regex catches the curl | bash. The semantic and adversarial layers catch the parts regex can't: intent that exceeds the skill's stated purpose, and instructions that turn the agent against its user. Every finding cites the exact source line with a fix.
| Layer | What it looks for | LLM? |
|---|---|---|
| L01 Static | Regex red flags: curl|bash installs, credential/SSH exfil, obfuscated or base64 strings, hidden "ignore previous" style instructions, out-of-scope file writes | No |
| L02 Semantic | Reads what the skill actually asks the agent to do and flags intent beyond its stated purpose | Yes (BYOK) |
| L03 Adversarial | Treats the SKILL.md as a system prompt and runs 15 probes across 5 attack classes to see if it can be coerced into unsafe behavior | Yes (BYOK) |
| L06 Supply chain | Parses declared dependencies and checks them against OSV.dev advisories + a typosquat reference list | No |
The 5 adversarial classes (L03):
| Class | ID | Probes for |
|---|---|---|
| Instruction override | AR-001 | ignore previous, new system prompt hijacks |
| Role jailbreak | AR-002 | DAN / hypothetical / fictional-roleplay bypasses |
| Hidden payload | AR-003 | base64 / leetspeak / unicode-lookalike smuggling |
| Authority spoof | AR-004 | I'm the developer / admin / platform staff |
| Reflective injection | AR-005 | output-as-instruction loops |
Every skill gets a 0β100 score, an AβF grade, and a risk class. L01 and L06 are deterministic and free; L02 and L03 require your own LLM key (BYOK).
These four layers implement a vendor-neutral standard β the Skill Audit Dimensions checklist (static, semantic, adversarial/behavioral, supply-chain). The dimensions are the standard; TAR Engine is one open-source reference implementation. That checklist also says the audit tooling must meet its own supply-chain bar β which is why TAR Engine ships as a pinned, hash-verifiable PyPI release with a zero-install hosted and CI path, not a git+https install.
The tar-engine CLI walks a directory, audits every skill it finds, and exits with a CI-friendly status code.
Discovery covers five formats out of the box:
| File pattern | Format |
|---|---|
**/SKILL.md | OpenClaw, Claude Code, generic md |
**/.claude/commands/*.md | Claude Code custom commands |
**/skill.yaml / .yml | Codex |
**/manifest.json | Codex / Claude Code (key-detected) |
**/opencode.json | OpenCode |
Each audit payload bundles the primary skill file plus sibling .sh / .py / .js / .ts / .yaml / .json helper files in the same directory (200 KB cap). Catches the "SKILL.md clean but install.sh malicious" pattern.
Run it in CI β zero install. The audit runs inside your own CI sandbox on a pinned release; nothing is installed into your agent, and there is no arbitrary git fetch to trust:
Prefer a plain step? Run the pinned PyPI release directly β still no git+https:
Pre-commit hook:
Exit codes: 0 clean, 1 below threshold, 2 usage/missing path.
TAR Engine ships an MCP server as a Python package, runnable with
uvx β no Docker. By default it talks to
the hosted backend at tarai.dev (free,
rate-limited).
https://tarai.dev. We
don't write skill text to disk or log it, but it does leave your
machine. If you're auditing proprietary or sensitive skills,
self-host and set TAR_ENGINE_URL=http://localhost:8765.OPENAI_API_KEY. Semantic + adversarial audit layers require an
explicit opt-in via TAR_ENGINE_BYOK_OPENAI_KEY in the MCP server
config β see BYOK below.uv (one-time, ~5 seconds)The package is run via uvx, which comes with uv. Install once:
Verify with uvx --version.
One-click: grab setup-mcp.sh and run it β it checks
for uv, prompts for an optional BYOK key (hidden input, never written to
disk by the script), and registers the server with your agent:
Or configure it manually. Two install forms are supported:
uvx --from tar-engine==0.3.3 tar-engine-mcp. Every release ships to PyPI with a published hash you can lock in your lockfile β this is the canonical, reproducible install and the form the MCP registry / Anthropic MCPB clients use. No arbitrary git+https; pin the version so you always know exactly what you're running.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/tar-engine)<a href="https://allmcps.com/mcp/tar-engine"><img src="https://allmcps.com/api/badge/tar-engine?style=directory" alt="TAR Engine on AllMCPs" /></a>