Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Audit AI skill safety before you ship. Static, semantic, adversarial, supply chain scans.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
TAR_ENGINE_URL, TAR_ENGINE_BYOK_OPENAI_KEY, TAR_ENGINE_BYOK_ANTHROPIC_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"tar-engine": {
"command": "uvx",
"args": [
"tar-engine",
"tar-engine",
"tar-engine-mcp"
],
"env": {
"TAR_ENGINE_URL": "your-value",
"TAR_ENGINE_BYOK_OPENAI_KEY": "your-value",
"TAR_ENGINE_BYOK_ANTHROPIC_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add tar-engine --env TAR_ENGINE_URL=your-value --env TAR_ENGINE_BYOK_OPENAI_KEY=your-value --env TAR_ENGINE_BYOK_ANTHROPIC_KEY=your-value -- uvx tar-engine tar-engine tar-engine-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"tar-engine": {
"command": "uvx",
"args": [
"tar-engine",
"tar-engine",
"tar-engine-mcp"
],
"env": {
"TAR_ENGINE_URL": "your-value",
"TAR_ENGINE_BYOK_OPENAI_KEY": "your-value",
"TAR_ENGINE_BYOK_ANTHROPIC_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"tar-engine": {
"type": "stdio",
"command": "uvx",
"args": [
"tar-engine",
"tar-engine",
"tar-engine-mcp"
],
"env": {
"TAR_ENGINE_URL": "your-value",
"TAR_ENGINE_BYOK_OPENAI_KEY": "your-value",
"TAR_ENGINE_BYOK_ANTHROPIC_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
TAR_ENGINE_URL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント qingxuantang で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:TAR_ENGINE_BYOK_OPENAI_KEY, TAR_ENGINE_BYOK_ANTHROPIC_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.3)がレジストリに届いたのは4 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Date Math
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Date/time math for agents: business days, holidays, time zones, cron, RRULE. 25 free calls/day.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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:
weekly-note-formatter 0 / 100 grade F risk CRITICAL
L01 static SS-003 critical remote script piped to shell (curl … | bash) L01 static PI-002 critical hidden instruction — "don't tell the user" L02 semantic SEM-003 critical only formats docs, yet packages up AWS creds + SSH keys L02 semantic SEM-004 high instructs the model to lie about its network calls L03 adversarial AR-002 high 3/3 role-jailbreak probes changed the skill's behavior
→ below --min-score 70, exit 1
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.
# audit every skill under ./skills, fail the build if any scores below 70
tar-engine scan ./skills --min-score 70
tar-engine list ./skills
tar-engine scan ./skills --json
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:
- name: Audit AI skills
uses: qingxuantang/tar-engine@v0.3.3 # pinned release with: path: ./skills min-score: 70
Prefer a plain step? Run the pinned PyPI release directly — still no git+https:
- run: uvx --from tar-engine==0.3.3 tar-engine scan ./skills --min-score 70
Pre-commit hook:
#!/usr/bin/env bash
tar-engine scan ./skills --min-score 80 || exit 1
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](https://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:
# macOS / Linux
curl -fsSL https://astral.sh/uv/install.sh | sh
irm https://astral.sh/uv/install.ps1 | iex
pipx install uv
pip install --user uv
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:
curl -fsSL https://raw.githubusercontent.com/qingxuantang/tar-engine/master/setup-mcp.sh -o setup-mcp.sh
chmod +x setup-mcp.sh ./setup-mcp.sh # Claude Code (default); add --client cursor|codex
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.Claude Code
claude mcp add tar-engine -- uvx --from tar-engine==0.3.3 tar-engine-mcp
Verify: /mcp list should show tar-engine Connected. Restart Claude Code so this session picks up the new tool surface, then ask:
Audit this SKILL.md: [paste a skill]
Cursor
Edit ~/.cursor/mcp.json (or project-level .cursor/mcp.json):
{
"mcpServers": { "tar-engine": { "command": "uvx", "args": ["--from", "tar-engine==0.3.3", "tar-engine-mcp"] } } }
Reload MCP servers in Cursor (or restart the app), then call audit_skill_text from inside Cursor.
Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.tar-engine]
command = "uvx" args = ["--from", "tar-engine==0.3.3", "tar-engine-mcp"]
Restart the Codex CLI, then call audit_skill_text.
Any other MCP-compatible agent
Most agents accept an MCP server spec with command + args (JSON or TOML):
uvx["--from", "tar-engine==0.3.3", "tar-engine-mcp"] — pinned to a published PyPI release for a reproducible, hash-verifiable installenv (optional):
TAR_ENGINE_URL=http://localhost:8765 to self-hostTAR_ENGINE_BYOK_OPENAI_KEY=sk-... to enable semantic + adversarial layersReload the agent and call audit_skill_text to verify.
By default only the static rule layer runs against your skill — free, deterministic, no LLM cost. To enable the semantic LLM review and the adversarial prompt-fuzz pass, supply your own LLM key explicitly:
"tar-engine": {
"command": "uvx", "args": ["--from", "tar-engine==0.3.3", "tar-engine-mcp"], "env": { "TAR_ENGINE_BYOK_OPENAI_KEY": "sk-..." } }
The key layer is OpenAI-compatible, so you can point it at any compatible endpoint (TAR_ENGINE_BYOK_OPENAI_BASE_URL / TAR_ENGINE_BYOK_OPENAI_MODEL). We deliberate
冒頭だけを表示しています。続きはリポジトリで読めます