TAR Engine について
TAR Engineは、AIエージェントのスキルや関連設定を監査するツールです。スキル作者やセキュリティ担当者向けに、静的・意味的・敵対的・サプライチェーンの検査をCLI、CI、ホステッドPlayground、MCPサーバーから提供します。
主な機能
- 01静的・意味的な監査
- 02敵対的なプロンプト検査
- 03依存関係の脆弱性・タイポスクワット検査
- 04スコア、評価、行単位の指摘
- 05CLI、CI、Webでの監査
活用シーン
- 01公開前のスキル安全性確認
- 02基準未満のCIビルドを停止
- 03作成中のスキルをエージェントから監査
MCP 対応
MCPサーバーを提供し、対応クライアントから audit_skill_text を呼び出してスキルを監査できます。意味的・敵対的な検査には明示的なLLMキー設定が必要です。デフォルトでは監査対象のテキストがホステッドバックエンドに送信されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx tar-engineTAR_ENGINE_URLOverride the audit backend. Default is the hosted playground at https://tarai.dev. Set to http://localhost:8765 (or your own tar-engine deployment) to self-host and keep SKILL.md content on your machine.TAR_ENGINE_BYOK_OPENAI_KEYシークレットOpenAI API key that unlocks the semantic LLM and adversarial prompt-fuzz layers. Static and supply-chain layers run without it.TAR_ENGINE_BYOK_ANTHROPIC_KEYシークレットAnthropic API key alternative to the OpenAI key for the semantic and adversarial layers.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TAR Engine — リリース前に AI スキルの安全性を監査
AI エージェントのスキルを対象とした、静的・セマンティック・敵対的・サプライチェーン監査です。CI で実行することも、Claude Code / Cursor / Codex から MCP ツールとして呼び出すこともできます。LLM レイヤーは BYOK に対応し、tarai.dev では無料のホステッドプランとライブプレイグラウンドを提供しています。
公式の Model Context Protocol Registry に掲載され、PyPI で公開されています。MCP 互換エージェントにワンクリックでインストールできます。
tar-engine は SKILL.md(OpenClaw、Claude Code)、Codex skill.yaml、Claude Code のカスタムコマンド(.claude/commands/*.md)、OpenCode の設定を監査します。スキルの作成方法を変える必要はありません。基本的な考え方は、スキルが静的な危険信号のチェックをすべて通過しても、実行時に悪意ある動作をする可能性があるということです。TAR Engine はそれを検出します。
実行方法は 3 つあります。そのうち 2 つはお使いのマシンに何もインストールしません。
- ホステッド版 — インストール不要。 tarai.dev プレイグラウンドでスキルを貼り付けるかアップロードし、ブラウザーで監査結果を確認できます。インストールも、ローカルで信頼するものも必要ありません。
- CI で実行 — エージェントへのインストール不要。 GitHub Action は、固定されたリリースを独自の CI サンドボックス内で実行します。
tar-engine scan ./skills --min-score 70は、基準を下回るスコアのスキルがあると1で終了します。見栄えのよいディレクトリーカードではなく、公開前のゲートです。 - エージェントで実行 — 任意で導入。 MCP サーバーをインストールすれば、作成中の
SKILL.mdをいつでも監査できます。これは 固定され、ハッシュ検証可能な PyPI リリースであり、任意のgit+httpsインストールではありません。詳しくは以下をご覧ください。
監査結果の例
一見問題のないスキルを指定してみましょう。「週次ノートのフォーマッター」の SKILL.md はきれいに見えます。しかし、その中には curl … | bash の手順、「クラウド同期」と称して ~/.aws と ~/.ssh を tar にまとめる処理、そしてそれらのネットワーク通信をユーザーに隠すようエージェントに指示する記述が埋め込まれています。
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
正規表現は curl | bash を検出します。セマンティックレイヤーと敵対的レイヤーは、正規表現では検出できない部分を検出します。スキルに記された目的を超える意図や、エージェントをユーザーに敵対させる指示です。検出結果にはそれぞれ、修正方法とともに該当するソース行が正確に示されます。
4 つの監査レイヤー
| レイヤー | 検出対象 | LLM? |
|---|---|---|
| L01 静的 | 正規表現による危険な兆候:curl|bash を使ったインストール、認証情報や SSH の外部流出、難読化または base64 の文字列、隠された「以前の指示を無視して」のような命令、対象範囲外のファイルへの書き込み | いいえ |
| L02 セマンティック | スキルがエージェントに実際に何をするよう指示しているかを読み取り、明示された目的を超える意図があれば警告します | はい(BYOK) |
| L03 敵対的 | SKILL.md をシステムプロンプトとして扱い、5 つの攻撃クラスにわたる 15 のプローブを実行して、安全でない動作を強制できるかどうかを確認します | はい(BYOK) |
| L06 サプライチェーン | 宣言された依存関係を解析し、OSV.dev のアドバイザリおよびタイポスクワッティングの参照リストと照合します | いいえ |
敵対的な 5 つのクラス(L03):
| クラス | ID | 検出対象 |
|---|---|---|
| 指示の上書き | AR-001 | ignore previous、new system prompt による乗っ取り |
| ロールの脱獄 | AR-002 | DAN/仮定上の状況/架空のロールプレイによる回避 |
| 隠されたペイロード | AR-003 | base64/リートスピーク/Unicode の類似文字による紛れ込み |
| 権限の偽装 | AR-004 | I'm the developer / admin / platform staff |
| 再帰的なインジェクション | AR-005 | 出力を指示として扱うループ |
各スキルには、0~100 のスコア、A~F の評価、リスククラスが付与されます。L01 と L06 は決定論的で無料です。L02 と L03 にはご自身の LLM キーが必要です(BYOK)。
この 4 つのレイヤーは、ベンダーに依存しない標準である スキル監査の観点 チェックリスト(静的、セマンティック、敵対的/動作、サプライチェーン)を実装しています。標準となるのは監査の観点であり、TAR Engine はそのオープンソースのリファレンス実装の 1 つです。このチェックリストでは、監査ツール自体もサプライチェーンの基準を満たす必要があるとされています。そのため TAR Engine は、ハッシュを検証可能な固定バージョンの PyPI リリースとして提供され、git+https によるインストールではなく、インストール不要のホスト型および CI 向けの方法を備えています。
CLI — コマンドラインから AI スキルを監査
tar-engine CLI はディレクトリを走査し、見つかったすべてのスキルを監査して、CI で扱いやすい終了コードを返します。
# audit every skill under ./skills, fail the build if any scores below 70
tar-engine scan ./skills --min-score 70
# list discovered skills without auditing
tar-engine list ./skills
# JSON output for downstream processing
tar-engine scan ./skills --json
標準で次の 5 つの形式を検出します。
| ファイルパターン | 形式 |
|---|---|
**/SKILL.md | OpenClaw、Claude Code、汎用 md |
**/.claude/commands/*.md | Claude Code のカスタムコマンド |
**/skill.yaml / .yml | Codex |
**/manifest.json | Codex/Claude Code(キーを検出) |
**/opencode.json | OpenCode |
各監査ペイロードには、主要なスキルファイルに加え、同じディレクトリ内にある兄弟の .sh / .py / .js / .ts / .yaml / .json ヘルパーファイルが含まれます(上限 200 KB)。「SKILL.md は問題ないが、install.sh は悪意がある」というパターンを検出できます。
CI で実行 — インストール不要。 監査は固定バージョンのリリースを使い、ご自身の CI サンドボックス内で実行されます。エージェントには何もインストールされず、信頼性を確認する必要のある任意の git fetch もありません。
- name: Audit AI skills
uses: qingxuantang/[email protected] # pinned release
with:
path: ./skills
min-score: 70
通常のステップとして実行したい場合は、固定バージョンの PyPI リリースを直接実行してください。こちらも git+https は不要です。
- run: uvx --from tar-engine==0.3.3 tar-engine scan ./skills --min-score 70
Pre-commit フック:
#!/usr/bin/env bash
tar-engine scan ./skills --min-score 80 || exit 1
終了コード:0 問題なし、1 しきい値未満、2 使用法エラー/パスが見つからない。
MCP ツールとしてインストール
TAR Engine は MCP サーバーを Python パッケージとして提供しており、
uvx で実行できます(Docker 不要)。デフォルトでは、
ホスト型バックエンドの tarai.dev(無料、
レート制限あり)と通信します。
まずお読みください — 信頼する内容について
- SKILL.md の送信先。 デフォルト設定では、MCP サーバーは監査を依頼された SKILL.md の内容を
https://tarai.devに POST します。スキルのテキストをディスクに書き込んだり、ログに記録したりすることはありませんが、お使いのマシンから外部へ送信されます。独自のスキルや機密性の高いスキルを監査する場合は、セルフホストして、TAR_ENGINE_URL=http://localhost:8765を設定してください。 - キーが黙って転送されることはありません。 サーバーが
OPENAI_API_KEYを転送することはありません。セマンティック監査と敵対的監査のレイヤーを利用するには、MCP サーバーの設定でTAR_ENGINE_BYOK_OPENAI_KEYを明示的にオプトインする必要があります。詳しくは以下の BYOK をご覧ください。 - 対応環境。 Claude Code CLI、Cursor、Codex CLI など、エージェントがサブプロセスを起動できる環境で利用できます。Claude Desktop、Claude.ai のウェブ版、モバイルアプリでは、ローカル MCP サーバーをインストールできません。これらに対応するホスト型エンドポイントは準備中です — tarai.dev でウェイトリストに登録してください。
ステップ 0 — uv をインストールする(初回のみ、約 5 秒)
このパッケージは uv に付属する uvx 経由で実行します。初回に一度だけインストールしてください。
# macOS / Linux
curl -fsSL https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
# Alternative — via pipx if you don't trust curl|sh
pipx install uv
# Alternative — via pip
pip install --user uv
uvx --version で確認してください。
ステップ 1 — エージェントに登録する
ワンクリック: setup-mcp.sh を取得して実行してください。uv の有無を確認し、任意の BYOK キーの入力を求め(入力は非表示で、スクリプトがディスクに書き込むことはありません)、エージェントにサーバーを登録します。
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
または手動で設定してください。次の 2 つのインストール方法に対応しています。
- PyPI から — 推奨、バージョン固定と検証が可能:
uvx --from tar-engine==0.3.3 tar-engine-mcp。リリースのたびに公開ハッシュとともに PyPI に公開されるため、ロックファイルでハッシュを固定できます。これが標準的で再現可能なインストール方法であり、MCP レジストリや Anthropic MCPB クライアントが使用する方法です。任意のgit+httpsは使用せず、実行する内容を常に正確に把握できるよう、バージョンを固定してください。 - ソースから — 開発用途のみ: Git チェックアウトからインストールすると、公開されたリリースハッシュのない未リリースコードが実行されます。TAR Engine 自体の開発に取り組む場合に限り使用してください。「検証されていない Git URL をインストールする」というパターンは、サプライチェーン監査で警告すべきものなので、推奨される実行方法ではありません。
Claude Code
claude mcp add tar-engine -- uvx --from tar-engine==0.3.3 tar-engine-mcp
確認方法:/mcp list に tar-engine Connected と表示されるはずです。Claude Code を再起動して、このセッションで新しいツールが認識されるようにしてから、次のように依頼してください。
この SKILL.md を監査してください:[スキルを貼り付け]
Cursor
~/.cursor/mcp.json(またはプロジェクトレベルの .cursor/mcp.json)を編集してください。
{
"mcpServers": {
"tar-engine": {
"command": "uvx",
"args": ["--from", "tar-engine==0.3.3", "tar-engine-mcp"]
}
}
}
Cursor で MCP サーバーを再読み込みするか、アプリを再起動してから、Cursor 内で audit_skill_text を呼び出してください。
Codex CLI
~/.codex/config.toml に追加してください。
[mcp_servers.tar-engine]
command = "uvx"
args = ["--from", "tar-engine==0.3.3", "tar-engine-mcp"]
Codex CLI を再起動してから、audit_skill_text を呼び出してください。
その他の MCP 互換エージェント
ほとんどのエージェントでは、command と args(JSON または TOML)を指定した MCP サーバー仕様を利用できます。
- command:
uvx - args:
["--from", "tar-engine==0.3.3", "tar-engine-mcp"]— 再現可能でハッシュ検証可能なインストールのため、公開済みの PyPI リリースにバージョンを固定
env(任意):
- セルフホストする場合は
TAR_ENGINE_URL=http://localhost:8765 - セマンティック監査と敵対的監査のレイヤーを有効にする場合は
TAR_ENGINE_BYOK_OPENAI_KEY=sk-...
エージェントを再読み込みし、audit_skill_text を呼び出して確認してください。
デフォルトでは、スキルに対して静的ルールレイヤーのみが実行されます。 無料で、決定的で、LLM の費用はかかりません。セマンティック LLM レビューと 敵対的プロンプトファジングの実行を有効にするには、LLM キーを明示的に指定してください。
"tar-engine": {
"command": "uvx",
"args": ["--from", "tar-engine==0.3.3", "tar-engine-mcp"],
"env": {
"TAR_ENGINE_BYOK_OPENAI_KEY": "sk-..."
}
}
キーを使うレイヤーは OpenAI 互換なので、互換性のある任意のエンドポイント(TAR_ENGINE_BYOK_OPENAI_BASE_URL / TAR_ENGINE_BYOK_OPENAI_MODEL)を指定できます。一般的な環境変数から OPENAI_API_KEY を読み込むことは、意図的に行っていません。ほとんどの Claude Code / Cursor / OpenAI SDK ユーザーは、別の目的でそのキーを設定しているため、気づかれないまま中継するのは適切ではありません。この MCP サーバーで自分のキーを使いたい場合に限り、TAR_ENGINE_BYOK_OPENAI_KEY を設定してください。
セルフホスト
ホスト型バックエンドのプライバシーとレイテンシのトレードオフが ご希望に合わない場合は、エンジンをローカルで実行してください。
git clone https://github.com/qingxuantang/tar-engine
cd tar-engine
cp .env.example .env # add OPENAI_API_KEY if you want semantic + adversarial
docker compose up -d
次に、MCP サーバーから接続します。
"env": {
"TAR_ENGINE_URL": "http://localhost:8765"
}
同じツール構成で、データはマシンの外に出ず、自分のキーを使えます。レート制限はハードウェアの性能によるものだけです。
公開監査レポート+ライブ Playground(AI 米其林指南)
主要なスキルプラットフォームである Smithery、Claude Hub、MCPHub の人気オープンソーススキルについて、継続的に監査レポートを公開しています。各レポートには、セキュリティスコア、具体的な検出事項、修正の提案が含まれており、このリポジトリに含まれるものとまったく同じパイプラインで生成されています。
レポートを確認し、任意の SKILL.md を貼り付けて、tarai.dev のライブ Playground で約 60 秒で判定結果を取得できます。インストールは不要です。セルフホストする場合も、同じ静的エンドポイントを curl で簡単に利用できます。
curl -X POST http://localhost:8765/api/cockpit/audit/static \
-H "Content-Type: application/json" \
-d '{"skill_text": "<your SKILL.md content>"}'
監査のその先へ
多くの人がこの監査パイプラインを導入しており、これがオープンソースの中核です。同じエンジンにはウィッシュマシンのコックピット(計画 → 実行 → トレース → 監査 → 振り返り)も含まれ、厳選されたドメインパック(クオンツ取引、コンテンツ公開)の有料アドオンも提供しています。これらは監査のユースケースに次ぐものです。パックの詳細と価格については tarai.dev を、コックピットのアーキテクチャについては docs/ をご覧ください。
このリポジトリの内容
tar-engine/
├── backend/
│ ├── app.py # FastAPI entry
│ ├── auditor/ # Audit pipeline: L01 static / L02 semantic / L03 adversarial / L06 supply chain + risk scorer
│ ├── cockpit/ # Wish machine: planner / dispatcher / skill executor / trace / retrospective
│ ├── adapters/ # IDE/runtime adapters (Claude Code, Codex CLI, generic webhook)
│ └── knowledge/ # Knowledge RAG (LlamaIndex + ChromaDB)
├── mcp-server/ # MCP server + CLI (tar-engine / tar-engine-mcp entry points)
├── packs/
│ ├── hello-world/ # Reference demo pack — 5-min install verifier
│ └── postall-content/ # Multi-platform content publishing pack
├── frontend/ # Web UI (static, optional)
├── setup-mcp.sh # One-click MCP registration
├── docker-compose.yml
└── docs/ # Architecture, deployment, contribution notes
ステータス
現在のリリース:v0.3.3 — PyPI で公開され、公式の MCP Registry に掲載されています。
現在利用できる機能:
- ✅ CI に適した終了コードと
--min-scoreのゲートを備えた CLI のscan/list - ✅ Claude Code / Cursor / Codex 向け MCP サーバー(
audit_skill_text) - ✅ 4 つの監査レイヤー — L01 静的、L02 セマンティック、L03 敵対的(15 個のプローブ × 5 クラス)、L06 サプライチェーン
- ✅ 5 種類のスキル形式を標準で検出し、同階層のヘルパーファイルもバンドル
- ✅ ホスト型の無料プラン+tarai.dev のライブ Playground
- ✅ Docker Compose によるセルフホスト(BYOK、データはマシンの外に出ません)
今後のロードマップ:
- Claude Desktop / Web / モバイル向けのホスト型 MCP エンドポイント
- ホスト型の上位プランにおける、複数の被害対象を使った敵対的アンサンブル
- サプライチェーンのカバレッジ拡大+スキル形式アダプターの追加
コントリビューション
すぐにできる貢献方法:
- 使用しているスキルに対して
tar-engine scanを実行し、検出事項(または誤検出)を Issues で共有する - スキル形式アダプターまたは監査ルールを追加する —
backend/auditor/とmcp-server/への PR を歓迎します - セルフホストのクイックスタートを試し、つまずいた点を報告する
有料パック(クオンツ取引、コンテンツ公開)はファーストパーティのみです。packs/ に UGC パックを追加する PR は受け付けません。
ライセンス
Apache 2.0 — 詳細な条件については LICENSE をご覧ください。
謝辞
TAR Engine は、AI によるクオンツ取引ワークフロー向けの監査ツールとして始まり、クオンツエンジニア、コンテンツクリエイター、セキュリティチームとの実際の対話を通じて、汎用的なスキル監査ツールへと発展しました。皆が尋ねていたのは、次の問いのさまざまな形でした。 「悪意のあるものを読まずに出荷してしまうことなく、AI エージェントに実際の作業を任せるにはどうすればよいのか?」
Claude Code を使って Mark Zhou が開発しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。