RepoDaily · 2026-06-26 · Security tool

SkillSpector: NVIDIA's Security Scanner for AI Agent Skills

#13 Security tool Python +410 NVIDIA/SkillSpector Open repository

A pre-installation security scanner that checks agent skills for prompt injection, data exfiltration, and malicious patterns before they ever touch your runtime.

Repo typeSecurity tool
Best forTeams running Claude Code, Codex CLI, Gemini CLI, or any MCP-capable agent who need to vet third-party skills before installation
Risk levelLow
Time to evaluate30 minutes for a static scan; 1–2 hours to wire up LLM semantic analysis and CI integration

Primary question: Is this skill safe to install?

91/100

RepoDaily adoption score

RepoDaily rates this as 91/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Low
100Evidence quality

5 source(s) across 5 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

6 workflow step(s), 5 next-action step(s), and 3 command/install signal(s) were detected.

71Maintenance confidence

Trending momentum is +410 stars, with maintenance/release/issue signals counted when present.

100Production readiness

Risk is marked low, with 5 security note(s) and 3 explicit skip condition(s).

83Differentiation

3 opportunity lens item(s), 3 alternative(s), and 0 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

90Agent / AI fit

8 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

AI agent skills used by tools like Claude Code, Codex CLI, and Gemini CLI execute with implicit trust and minimal vetting. NVIDIA's own research shows that 26.1% of skills contain vulnerabilities and 5.2% show likely malicious intent. SkillSpector is a Python-based scanner that inspects skills before installation, surfacing prompt injection, data exfiltration, privilege escalation, supply-chain risks, and more.

The tool runs a two-stage pipeline: fast static pattern matching across 68 vulnerability patterns in 17 categories, followed by an optional LLM-based semantic evaluation. It accepts Git repos, URLs, zip files, directories, or single SKILL.md files, and outputs reports in Terminal, JSON, Markdown, or SARIF format with a 0–100 risk score.

Beyond one-off CLI scans, SkillSpector ships as an MCP server, letting any MCP-capable agent call scanning as a tool and gate skill or MCP installs on the result. This turns it from an out-of-band audit step into a runtime guardrail.

Problem it solves

  • Agent skills are typically installed and executed without security review
  • Skills can contain prompt injection, data exfiltration, privilege escalation, and supply-chain attacks
  • Static code analysis alone misses semantic threats like rogue agent behavior or trigger abuse
  • Existing security tools are not tuned for the skill and MCP-server threat model
  • CI/CD and IDE pipelines lack a standard format for skill-scan results

How it works

  1. Provide a target: a Git repo URL, local directory, zip file, or a single SKILL.md file.
  2. SkillSpector runs static analysis with 68 patterns across 17 categories including AST-based dangerous-code detection, YARA signatures, and taint tracking.
  3. Optionally, an LLM provider performs a second-pass semantic evaluation for deeper context-aware findings.
  4. The SC4 stage queries OSV.dev for live CVE data with automatic offline fallback.
  5. A 0–100 risk score with severity labels and a recommendation is produced; results can be exported as JSON, Markdown, SARIF, or terminal output.
  6. Optionally, run the MCP server so any MCP-capable agent can call scan_skill and gate installs on the verdict.

Self-hosted App

SkillSpector is a locally hosted CLI and MCP server. It can be installed via uv without cloning the repo, built from source with the included Makefile, or run inside Docker with no Python on the host. Static-only scans (--no-llm) require no external API keys, making it suitable for air-gapped environments.

For teams that want semantic analysis, SkillSpector supports OpenAI, Anthropic, NVIDIA Build, Anthropic Vertex-style proxies, and any OpenAI-compatible local endpoint such as Ollama or vLLM. Credentials are passed via environment variables or a .env file, and the tool also works as a Pi extension for scanning skills from inside agent sessions.

Security Scanner Architecture: Skill Review Before Agent Execution

SkillSpector should be treated as a security tool for AI-agent skill files, not as a generic self-hosted app. The adoption path should inspect `README.md`, `pyproject.toml`, `CONTRIBUTING.md`, and `LICENSE`, then run the scanner against a known-safe skill pack and a deliberately suspicious test skill.

The concrete value is pre-execution review: teams need to know whether a skill can request dangerous shell commands, exfiltrate secrets, weaken sandbox rules, or hide unsafe instructions in Markdown. That means scanner output should be saved with exact command, version, path scanned, and false-positive notes.

Who should pay attention?

Good fit if

  • Your team installs third-party agent skills or MCP servers from public sources
  • You use Claude Code, Codex CLI, Gemini CLI, or similar MCP-capable agents in production
  • You need SARIF output for CI/CD or IDE integration
  • You want to enforce install-time gating rather than after-the-fact auditing

Skip for now if

  • You do not use AI agent skills or MCP servers
  • You need a fully managed SaaS scanner with no local infrastructure
  • You require scanning capabilities for languages or runtimes beyond the agent-skill threat model

Risks and cautions

Low

SkillSpector is Apache-2.0, runs locally with no API keys for static scans, and offers Docker and uv-based installation paths. The main consideration is the Python 3.12+ requirement and the optional LLM provider setup for full semantic analysis.

  • Static-only mode works with zero external dependencies via --no-llm
  • Docker image based on the official Python 3.12-slim-bookworm requires no host Python
  • Apache-2.0 license is enterprise-friendly with a DCO contribution model
  • Requires Python 3.12+ which may need environment updates on older systems
  • LLM semantic analysis requires provider credentials and incurs API costs
  • Detects 68 vulnerability patterns across 17 categories including prompt injection, data exfiltration, and privilege escalation
  • Live CVE lookups via OSV.dev with automatic offline fallback
  • Baseline and false-positive suppression using glob rules or fingerprints so re-scans surface only new findings
  • MCP server mode allows agents to gate skill and MCP installs on scan results
  • YARA signatures and AST-based dangerous-code detection for deep static analysis

Alternatives to compare

ApproachWhen to useTrade-off
Semgrep
You need general-purpose static analysis across many languages, not just agent skillsFree / open-source
Bandit
You want a lightweight Python-specific security linterFree / open-source
Custom CI scanning scripts
Your threat model is narrow enough that a few grep-based rules sufficeFree

What this trend reveals

CI/CD Policy Enforcement

SARIF output lets you plug SkillSpector into existing GitHub Actions or GitLab CI pipelines to block merges that introduce high-risk skills.

Run a sample scan on your current skill repositories with --format sarif and review the findings against your team's risk tolerance.

Runtime Install Gate via MCP

The MCP server exposes a scan_skill tool that returns safe_to_install, enabling agents to automatically reject unsafe skills before activation.

Register the MCP server with Claude Code or your agent runtime and test whether a known-vulnerable skill is blocked.

Baseline-Driven Continuous Scanning

The baseline feature lets teams accept known findings and track only new issues across skill updates, reducing alert fatigue.

Generate a baseline for your most-used skill, then update the skill and scan again to confirm only new findings surface.

Best next action

Run a Static Scan on Your Highest-Risk Skill

Install SkillSpector via uv or Docker and run a no-LLM scan against the agent skill your team uses most. This gives you an immediate risk snapshot without any API credentials.

  1. Install: uv tool install git+https://github.com/NVIDIA/skillspector.git
  2. Run: skillspector scan ./your-skill/ --no-llm
  3. Review the terminal output for severity labels and the 0–100 risk score
  4. If risk is high, re-run with --format json --output report.json for a detailed breakdown
  5. Commit a baseline if findings are known and accepted, then scan again to confirm

RepoDaily verdict

SkillSpector fills a critical gap in the AI agent ecosystem: pre-installation security vetting for skills and MCP servers. With 68 detection patterns, optional LLM semantic analysis, SARIF output for CI integration, and an MCP server mode for runtime gating, it is a practical and well-architected tool for any team serious about agent security.

Sources