Skarn
OfficialSkarn guard: エージェントプラグイン
フック設定、エージェントスキル、および Skarn 用のローカル MCP サーバー宣言を、4つのホスト向けにパッケージ化し、5つ目のホストは独自のリポジトリから提供します。このリポジトリは Skarn のリリースごとに生成されます。バイナリ、検出ルール、エンジンコードは含まれません。
ここには5つのユニットがあり、そのうち4つはガードユニットです。claude/ と codex/ は、このリポジトリのルートマニフェストが提供するマーケットプレイス内のプラグインで、Claude Code と Codex CLI 向けです。antigravity/ は Antigravity CLI (agy) 用のプラグインディレクトリです。リポジトリのルート自体は Gemini CLI 拡張機能です。Google のインストーラとギャラリークローラーがルートからマニフェストを読み取るためです。ルートにあるファイルは、リポジトリレベルのファイル(この README、LICENSE、SECURITY.md、マーケットプレイスマニフェスト)または Gemini ファイル(gemini-extension.json、GEMINI.md、hooks/、skills/)のいずれかです。他のすべてのホストにはサブディレクトリが割り当てられます。5つ目のユニット recall/ は、同じマーケットプレイス内のスキルのみのプラグインです。スキル1つ、フックなし、MCP サーバーなしです。Cursor ユニットはこのリポジトリにはまったく含まれておらず、https://github.com/skarn-security/cursor-plugin にあります。
ガードは実行前フックです。エージェントがシェルコマンドを実行する、パッチを適用する、ファイルを書き込む、URL を取得する、MCP ツールを呼び出す、またはモデルプロバイダーにプロンプトを送信する前に、保留中のアクションがお使いのマシン上の Skarn 検出エンジンによってスキャンされ、判定が下されます: deny (ブロック)、ask (あなたにエスカレーション)、または allow (サイレント)。ローカルでスキャンし、ネットワーク呼び出しは行わず、生のシークレットを出力することはありません。判定はルール名と編集されたプレビューを示します。
Install
まず skarn バイナリをインストールします(プラグインには含まれていません。フックは PATH 上の skarn guard を呼び出します):
brew install skarn-security/tap/skarnClaude Code:
claude plugin marketplace add skarn-security/agent-guard
claude plugin install skarn-guard@skarnCodex CLI:
codex plugin marketplace add skarn-security/agent-guard
codex plugin add skarn-guard-codex@skarn2つのガードプラグインは異なる名前を持ちます。1つのマーケットプレイスは同じ名前の2つのプラグインを保持できないためであり、それぞれがホストのフック形状(イベント名、ツールマッチャー、ガードがルーティングする --agent)を提供します。配線するホストに応じたものをインストールしてください。両方とも skarn-audit スキルを搭載しており、このマシン上で skarn assess と skarn vet を実行し、編集された調査結果を報告します。編集は Skarn が検出した資格情報の値をマスクします。調査結果の周囲のトランスクリプトコンテキストは依然としてセッション由来であるため、スキルは結果全体を安全なテキストではなくセッションデータとして扱います。
Codex はインストール後に初めて起動したときにフックを信頼するよう求めます。「Hooks need review」プロンプトで「Trust all and continue」を選択してください。選択するまで、フックは実行されず、ガードは保護を提供しません。信頼はフックごとのコンテンツハッシュであるため、後でフックに変更(バージョンアップ、または監査から強制への切り替え)があると再度求められます。Claude Code には信頼ステップは不要で、次のセッションでフックが有効になります。
skarn-recall は同じマーケットプレイス内の3つ目のプラグインで、上記のマーケットプレイス追加で既に到達できます。スキル1つ、フックなし、ホスト固有のものは何もないため、同じプラグインが両方のホストにサービスを提供します:
claude plugin install skarn-recall@skarncodex plugin add skarn-recall@skarnそのスキルは、セッショントランスクリプトから作業内容を再構築します。そのため、ガードの内部ではなく、ガードとは別に提供されます。読み取るトランスクリプトコンテンツは、エージェントにサービスを提供するモデルプロバイダーにマシンから送信されます。編集は Skarn が検出した資格情報をマスクしますが、機密と見なすすべてをマスクするわけではありません。それを望むときにインストールし、プロジェクトと時間枠で読み取る範囲を制限してください。
Gemini CLI はこのリポジトリを拡張機能としてインストールします。これには、監査モードの同じガードフック、skarn-audit スキル、GEMINI.md コンテキストファイル、および以下の MCP サーバーが含まれます:
gemini extensions install https://github.com/skarn-security/agent-guard
gemini extensions list
gemini extensions uninstall skarnインストールでは、拡張機能がフックと MCP サーバーの両方を宣言するため、同意を求められ、フォルダを信頼するよう求められます。両方に回答してください。
Antigravity CLI はクローンの antigravity/ ディレクトリをインストールします:
git clone https://github.com/skarn-security/agent-guard
agy plugin install agent-guard/antigravity
agy plugin list
agy plugin uninstall skarn-guardagy plugin list は、フック、スキル、MCP サーバーの数とともにプラグインを報告します。antigravity/ を手動で ~/.gemini/config/plugins/skarn-guard/ にコピーしても同じことが行われます。
Cursor には独自のリポジトリ https://github.com/skarn-security/cursor-plugin があり、同じリリースで生成されます。Cursor のマーケットプレイスとそのレビューはリポジトリごとに行われるため、そのユニットはここにはありません。
skarn setup は、Claude Code、Codex CLI、Cursor、Copilot CLI、Gemini CLI、Grok Build 向けの代替インストールパスです。プラグインシステムなしで、同じフックを各ホストのネイティブ設定にマージします。Antigravity CLI は認識しないため、そのホストは上記のプラグインディレクトリをインストールするか、フックファイルを手動でマージします。
Related MCP server: netallion-mcp-lite
Local MCP server
4つのガードユニット(claude/、codex/、antigravity/、およびルートの Gemini 拡張機能)はすべて同じ stdio MCP サーバーを宣言しており、ホストは PATH から skarn mcp を実行して起動します。Cursor と VS Code はワンクリックで設定できます:
両方のボタンはサーバーを skarn として登録し、PATH から skarn mcp を実行するため、まずバイナリをインストールしてください。インストールしたくない場合は、Node のみが存在する状態でピン留めされたランチャーフォームが機能します: Cursor または VS Code - 初回実行時に @skarn-security/skarn@0.26.0 をダウンロードし、その後は npx キャッシュを再利用します。新しい Skarn には新しいリンクが必要です。
任意のクライアント向けの手動設定:
{
"mcpServers": {
"skarn": {
"command": "skarn",
"args": ["mcp"]
}
}
}これはお使いのマシン上で実行され、ネットワーク呼び出しは行わず、4つの読み取り専用ツールを公開します: scan_sessions (過去のセッションからの調査結果、プレビューされたすべての値は編集済み)、vet_configs (アシスタント設定サーフェスに関するマスクされたレポート)、list_sessions と session_stats (メタデータと集計、メッセージコンテンツは含まれません)。書き込みツールやメッセージコンテンツを返すツールはありません。
2つのコンテンツツール、search_sessions と get_session は、サーバーを skarn mcp --enable-recall として起動した場合にのみ表示されます。どちらも返す内容をマスクしますが、コンテンツはセッションにサービスを提供するモデルプロバイダーにマシンから送信されるため、上記の宣言ではフラグを設定しません。search_sessions は hours も project も指定しない呼び出しを拒否します。get_session は正確な session_id を1つ受け取ります。これはすでにそのスコープです。
バイナリを自分でインストールしたくない場合は、バージョン固定の npx フォームが機能します:
{
"mcpServers": {
"skarn": {
"command": "npx",
"args": ["-y", "@skarn-security/skarn@0.26.0", "mcp"]
}
}
}npx はサーバーが最初に起動するときにパッケージをダウンロードし、その後はキャッシュするため、最初の起動は遅く、ネットワークアクセスが必要です。バージョンを固定してください。固定されていないフォームは、起動時にレジストリが提供するものに解決され、skarn vet はそれを vet-mcp-unpinned として報告します。使用しないでください。
このリポジトリのルートにある llms-install.md は、サーバーを配線してくれるクライアント向けに、エージェントが読み取れる手順で同じインストールを説明しています。
各ホストは、バイナリが見つからないことを独自の方法で報告します。claude mcp list は Failed to connect と Executable not found in $PATH: "skarn" を表示します。gemini mcp list は skarn サーバーを Disconnected として表示します。codex mcp list はヘルスチェックを実行しないため、行はリストされたまま有効になり、セッションが起動するとサーバーは失敗します。Cursor はプラグインの行を Error - Show Output として表示し、出力パネルは spawn skarn ENOENT で終わります。どの場合でも、ターミナルで skarn --version を実行してください: command not found は、バイナリがインストールされていないか、ホストが継承する PATH にないことを意味します。これは、シェルではなくデスクトップから起動されたアプリケーションではよくあることです。
Audit first, then enforce
両方のガードプラグインは 監査 モードで提供されます(skarn-recall にはフックがないため、モードはありません)。ガードは返したであろう判定を報告し、エージェントの動作を変更することはありません。まずその方法で実行し、実際のブロック率を測定してください。エージェントが継承する環境に SKARN_GUARD_LOG=<path> を設定すると、ガードはフラグが付けられた呼び出しごとに1つの編集済み JSONL レコードを追加します(ts、verdict、tool、rule、severity、編集済みの理由、session、cwd、latency_ms)。クリーンな呼び出しはログに記録されません。
ログがクリーンに見えたら、フックコマンドの --guard-mode audit を --guard-mode enforce に切り替えるか、skarn setup --update --mode enforce を実行してください。強制には Skarn ライセンスが必要です。ライセンスがない場合、ガードは監査のままでブロックではなく報告するため、ライセンスが失効してもエディタが壊れることはありません。
Skarn のリリースでホストのイベントセットが拡大される際にフックを最新に保つのは、以下のプラグイン更新であり、Skarn コマンドではありません。これらのプラグインは独自のフックファイルを保持し、skarn setup --update は skarn setup 自体が書き込んだ Skarn 所有のエントリのみを、書き込んだスコープ(デフォルトではユーザーごと、--scope project ではリポジトリ設定)で更新します。別の方法で配線された設定の場合、--update はそれらのエントリをインストール済みバイナリが書き込むものに書き換え、各エントリを丸ごと置き換えます。ただし、自分で調整したフック呼び出しタイムアウト(timeout、Copilot では timeoutSec)は例外で、置き換え先と明確に対応し、値が妥当な場合に引き継がれるため、マシンごとの予算は更新後も維持されます。そのようなエントリに追加した他のフィールドは削除されます。ターミナルで実行すると、skarn guard report と skarn assess は、リリースごとに1回、遅れているセットアップ配線のユーザーごとのフックを、そのホストの正確な更新コマンドとともに指名します。
Updating
Claude Code:
claude plugin marketplace update skarn
claude plugin update skarn-guard@skarnCodex CLI (更新動詞はありません。再追加で新しいバージョンがインストールされます):
codex plugin marketplace upgrade
codex plugin add skarn-guard-codex@skarnプラグインの更新とバイナリの更新は独立しています。フックコマンドは PATH 上の skarn guard を呼び出すため、brew upgrade skarn だけで新しい検出エンジンが得られます。プラグイン自体が保持するものに変更がある場合、プラグインの更新が重要になります: フックの形状(新しいイベント、新しいフラグ、新しいマッチャー)、スキルのテキスト、またはマニフェストのメタデータ。
Safety
ガードは常に決定を厳しくするだけで、緩めることはありません。ガード自体が失敗した場合の動作はホストによって異なります。各ホストがフックのクラッシュ、タイムアウト、または不正な出力の意味を決定するためです。
Claude Code、Codex CLI、Gemini CLI はフェイルオープンです。不正なイベント、スコープ外のツール、またはガードエラーはすべて allow になり、ガードがエージェントを壊すことはありません。これらのホストでフェイルクローズになる唯一のパスは、ライセンス付きの enforce での --strict であり、各ホストの README に記載されています。
Antigravity CLI は、明示的な allow 以外のすべてのフック結果でフェイルクローズします。クラッシュ、タイムアウト、無効な JSON、空の {} はすべて、監査モードと強制モードの両方で一致した呼び出しをブロックし、PATH に skarn バイナリがない配線済みフックは、一致したすべての呼び出しをブロックします。ガードは受信したすべてのイベントに明示的な決定で応答し、出荷されたマッチャーはスコープするツールのみを指定するため、マッチャーの外のステップがガードの失敗によってブロックされることはありません。そのフックを配線する前に skarn をインストールし、skarn をアンインストールする前にエントリを削除してください。ドキュメント: https://getskarn.com/?utm_source=agent-guard-readme&utm_medium=referral&utm_campaign=home&utm_content=documentation
License, privacy, and support
このリポジトリは MIT ライセンスです。LICENSE を参照してください。設定のみが含まれるため、プラグインマニフェスト、フック、スキル、および MCP サーバー宣言が対象となります。
それらのファイルが呼び出す skarn バイナリは、別途ダウンロードされるものであり、オープンソースではありません。これは https://getskarn.com/terms/ の Skarn エンドユーザーライセンス契約に基づいてライセンスされており、実行することでその契約に同意したことになります。何を読み取り、何を保持し、何を決して外部に送信しないかについては、https://getskarn.com/privacy/ を参照してください。
サポート: hello@getskarn.com。脆弱性レポートは security@getskarn.com までお送りください。このリポジトリの SECURITY.md を参照してください。
This server cannot be installed
Maintenance
Related MCP Connectors
Scan configs, files, or text for leaked secrets and obvious misconfigurations. Nothing stored.
Risk-scan a diff, flag AI-generated-code tells, find secrets. 5 of 7 tools need no account.
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Scan GitHub-hosted AI skills for vulnerabilities: prompt injection, malware, OWASP LLM Top 10.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT
- AlicenseNot gradedqualityAmaintenanceScans text and files for common secrets (AWS, GitHub, etc.) and redacts them to prevent credential leakage in AI-assisted development. Runs entirely locally with no telemetry.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to scan source code for secrets like API keys and passwords locally without network requests.2Apache 2.0
- AlicenseAqualityAmaintenanceScans code strings for hardcoded secrets (AWS keys, tokens, private keys, etc.) and returns redacted findings, helping AI coding agents catch secrets before writing or committing code.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/skarn-security/agent-guard'
If you have feedback or need assistance with the MCP directory API, please join our Discord server