Skip to content
Conduit

mcp server

agentvet

πŸ›‘οΈ Security scanner for AI agent skills, configs, and MCP tools. Vet before you trust.

taku-tez/agentvetcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "agentvet": {
      "command": "npx",
      "args": [
        "-y",
        "@agentvet/cli"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 26, 2026

πŸ›‘οΈ AgentVet

Security scanner for AI agent skills, configs, and MCP tools. Vet before you trust.

License: MIT npm version


Why AgentVet?

AI agents like Claude Code, Devin, Cursor, and Clawdbot are increasingly using external skills, plugins, and MCP tools. These files are often:

  • Unsigned β€” no way to verify authenticity
  • User-contributed β€” anyone can publish to skill marketplaces
  • Highly privileged β€” agents can execute code, access files, and make API calls

A single malicious skill can exfiltrate credentials, install backdoors, or hijack your agent's actions.

AgentVet scans these files before they can do damage.


Features

  • πŸ” Credential Detection β€” Finds hardcoded API keys, tokens, and secrets
  • 🌐 Suspicious URL Detection β€” Flags webhook.site, ngrok, pastebin, and other exfiltration endpoints
  • ⚠️ Dangerous Command Patterns β€” Detects rm -rf, curl | bash, eval(), and similar risks
  • πŸ“ Permission Analysis β€” Identifies overly permissive file access patterns
  • πŸ” File Permission Checks β€” Warns when sensitive files have insecure permissions
  • 🦠 YARA Integration β€” Advanced threat detection with AI agent-specific YARA rules
  • πŸ“¦ Dependency Scanning β€” npm audit and pip-audit integration for vulnerability detection
  • 🧠 LLM Intent Analysis β€” AI-powered detection of malicious instructions in agent configs

Quick Start

npx @agentvet/cli --help

Installation

npm install -g @agentvet/cli

Or run directly with npx:

npx @agentvet/cli scan ./my-skills

Usage

Scan a local directory

agentvet scan ./skills/my-skill

Scan a GitHub repository

agentvet scan https://github.com/user/agent-config

Output formats

# Human-readable (default)
agentvet scan ./skills

# JSON output for CI/CD
agentvet scan ./skills --format json --output report.json

# Quiet mode (summary only)
agentvet scan ./skills --quiet

Dependency scanning

AgentVet scans for vulnerable dependencies using npm audit and pip-audit:

# Dependency scanning enabled by default
agentvet scan ./my-project

# Disable dependency scanning
agentvet scan ./my-project --no-deps

Supports:

  • npm: Scans package-lock.json for known vulnerabilities
  • pip: Scans requirements.txt using pip-audit (requires pip install pip-audit)

LLM intent analysis

Use AI to analyze agent instructions for malicious intent:

# Enable LLM analysis (requires API key)
export OPENAI_API_KEY=sk-...
agentvet scan ./skills --llm

# Or use Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
agentvet scan ./skills --llm --llm-provider anthropic

# Specify model
agentvet scan ./skills --llm --llm-model gpt-4o

Detects:

  • Prompt injection β€” Attempts to override system instructions
  • Hidden commands β€” Secret instructions triggered by conditions
  • Data exfiltration β€” Instructions to leak data externally
  • Deceptive behavior β€” Instructions to hide actions or lie

YARA scanning

AgentVet includes built-in YARA rules for AI agent threats:

# YARA enabled by default
agentvet scan ./skills

# Disable YARA scanning
agentvet scan ./skills --no-yara

# Use custom YARA rules
agentvet scan ./skills --yara-rules ./my-rules

YARA works in two modes:

  • yara-cli: Uses the native yara command (fastest, requires yara installed)
  • js-fallback: Pure JavaScript implementation (works everywhere, no dependencies)

Ignore files

Create .agentvetignore in your project root to exclude files:

# Ignore test fixtures
test/fixtures/

# Ignore documentation with example patterns
docs/*.md

# Ignore backup files
*.bak

# Ignore specific security tool that contains patterns
scripts/security-scanner.js

Supports gitignore-style patterns:

  • * matches anything except /
  • ** matches everything including /
  • /pattern anchors to root
  • pattern/ matches directories

Exit codes

CodeMeaning
0No issues found (or warnings only)
1Critical or high severity issues found

What It Scans

TargetDescription
SKILL.md / skill.mdClawdbot skill definitions
AGENTS.mdAgent instruction files
mcp.json / mcp-config.jsonMCP tool configurations
claude_desktop_config.jsonClaude Desktop MCP config
cline_mcp_settings.jsonCline MCP settings
.cursor-mcp.jsonCursor MCP config
*.js, *.ts, *.pyScripts referenced by skills
.env, config.jsonConfiguration files

Detection Rules

πŸ”΄ Critical

  • Hardcoded AWS keys, API tokens, private keys
  • Known malware patterns (YARA-based)
  • Data exfiltration URLs (webhook.site, requestbin, etc.)
  • MCP: Unrestricted command execution (bash, sh)
  • MCP: Shell injection risks (-c flag patterns)
  • MCP: Hardcoded credentials in tool configs
  • MCP: Root filesystem access

🟑 Warning

  • Dangerous shell commands (rm -rf /, curl | bash)
  • Eval/exec patterns in scripts
  • Overly broad file access permissions
  • Insecure file permissions on credential files
  • MCP: Tunnel services (ngrok, localtunnel)
  • MCP: Raw IP address endpoints
  • MCP: Unrestricted filesystem/network access
  • MCP: Environment variable exposure

πŸ”΅ Info

  • Unusual network endpoints
  • Deprecated API usage

🦠 YARA Rules (AI Agent Threats)

  • Prompt Injection β€” System override attempts, jailbreak patterns
  • Agent Hijacking β€” Hidden instructions, behavior modification
  • Credential Exfiltration β€” Env leaks, file theft to external endpoints
  • Backdoors β€” Reverse shells, crypto miners, remote access
  • Supply Chain β€” Package hijacking, postinstall attacks
  • Obfuscation β€” Base64/hex encoded payloads
  • Privilege Escalation β€” sudo abuse, setuid patterns

Documentation

CI/CD Integration

GitHub Actions (Recommended)

Use the official AgentVet action:

name: AgentVet Security Scan
on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run AgentVet
        uses: taku-tez/agentvet@v1
        with:
          path: '.'
          severity: 'warning'
          fail-on-critical: 'true'

Manual Setup

name: AgentVet Security Scan
on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run AgentVet
        run: npx agentvet scan . --format json --output agentvet-report.json
      - name: Upload Report
        uses: actions/upload-artifact@v4
        with:
          name: agentvet-report
          path: agentvet-report.json

Pre-commit hook

# .git/hooks/pre-commit
npx agentvet scan . --quiet || exit 1

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Adding Detection Rules

Rules are defined in src/rules/. Each rule exports:

module.exports = {
  id: 'credential-aws-key',
  severity: 'critical',
  description: 'Hardcoded AWS access key',
  pattern: /AKIA[0-9A-Z]{16}/g,
  recommendation: 'Use environment variables or a secrets manager'
};

Part of xxVet Series

xxVet is a collection of 15 focused security CLI tools. See full catalog.

License

MIT Β© AgentVet Contributors


Permission Manifest & Trust Chain

AgentVet supports Permission Manifests - declarative files that specify what permissions a skill requires. This enables:

  • Transparency: Users know exactly what a skill will access before installing
  • Verification: AgentVet can compare declared vs actual permissions
  • Trust Chains: Track who created, audited, and verified a skill

Manifest Commands

# Generate manifest from detected usage
agentvet manifest init ./my-skill

# Validate manifest schema
agentvet manifest validate ./my-skill

# Verify skill matches its manifest (CI-friendly)
agentvet manifest verify ./my-skill

# Show trust chain
agentvet manifest trust ./my-skill

# Add audit entry (after code review)
agentvet manifest audit ./my-skill --auditor "org:mycompany" --notes "Reviewed 2026-01-31"

# Show example manifest
agentvet manifest example

Manifest Format

{
  "version": "1.0",
  "name": "my-skill",
  "permissions": {
    "exec": ["git", "npm"],
    "network": ["api.github.com", "*.openai.com"],
    "files": ["read:./", "write:./output"],
    "secrets": ["GITHUB_TOKEN"],
    "elevated": false
  },
  "trust": {
    "author": "github:username",
    "audits": [
      {
        "auditor": "org:acme-corp",
        "date": "2026-01-31",
        "contentHash": "sha256:...",
        "scope": "full"
      }
    ],
    "verified": true
  }
}

Trust Levels

LevelDescription
SelfSelf-declared, no external audit
CommunityAudited by community member
OrganizationAudited by trusted organization
RegistryVerified by official registry (ClawdHub)
OfficialOfficial skill from OpenClaw team
↑↓ navigate openesc close