Security scanner for AI agents and MCP servers. OWASP Agentic Top 10 mapping, SARIF output, CI/CD ready.
Project description
agentsec
Static configuration scanner and hardener for AI agent installations. Detects misconfigurations, credential leaks, supply-chain risks, and MCP tool poisoning — then maps every finding to the OWASP Top 10 for Agentic Applications (2026).
Supports OpenClaw, Claude Code, Cursor, Windsurf, Gemini CLI, and MCP server ecosystems.
Scope: agentsec performs static configuration and file analysis. It does not provide runtime protection, behavioral monitoring, or real-time threat detection. Use as one layer in a defense-in-depth strategy.
Quick Start
pip install agentsec-ai
agentsec scan
Scan a specific installation:
agentsec scan ~/.openclaw
What agentsec checks
| Module | Scope |
|---|---|
installation |
Gateway exposure, auth posture, DM/group policy, tool/sandbox settings, SSRF and safety checks, known CVE version checks, sensitive file/dir permissions |
skill |
Instruction malware, risky code patterns (eval/exec/subprocess), prompt-injection patterns, frontmatter capability risk, dependency/install-hook risk |
mcp |
Tool poisoning patterns, auth gaps on remote endpoints, dangerous schema/permissions, unverified npx usage |
credential |
detect-secrets engine (23 plugins) + 11 custom patterns (OpenAI, Anthropic, AWS, Databricks, HuggingFace, etc.), high-entropy detection, git credential leakage |
Reference catalog:
- Checks Catalog (27 named checks + dynamic credential findings)
- CLI Reference (full command/options guide)
Core Commands
# Full installation scan (all scanners, default target=. )
agentsec scan
# JSON report for CI parsing and pipelines
agentsec scan -o json -f report.json
# SARIF output for GitHub code scanning upload
agentsec scan -o sarif -f results.sarif
# Run only selected scanners for focused checks
agentsec scan -s installation,mcp
# Fail build only at/above selected severity
agentsec scan --fail-on critical
# Preview profile changes without writing config
agentsec harden -p workstation
# Apply profile and write hardened config values
agentsec harden -p workstation --apply
# Watch files and auto re-scan on security-relevant changes
agentsec watch ~/.openclaw -i 2
# Pre-install package gate (scan before install)
agentsec gate npm install express
# Pin MCP tool descriptions for rug-pull detection
agentsec pin-tools
# Generate shell hook wrappers for npm/pip install flows
agentsec hook --shell zsh
List available scanners (names + descriptions):
agentsec list-scanners
Hardening Profiles
| Profile | Intended use |
|---|---|
workstation |
Single-owner local usage |
vps |
Remote/self-hosted deployment |
public-bot |
Highest restriction for untrusted public input |
Use agentsec show-profile <name> to inspect exact changes before applying.
Output and Exit Codes
Output formats:
terminal(default)jsonsarif
Exit codes:
0: no findings at/above threshold1: findings found at/above threshold2: usage error (e.g., unknown scanner name)3: runtime error (e.g., file access failure)
GitHub Actions
Use the bundled composite action:
name: Agent Security
on: [push, pull_request]
jobs:
agentsec:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- uses: debu-sinha/agentsec@v0.4.4
with:
fail-on: high
output: sarif
upload-sarif: 'true'
Action definition:
Screenshots
Screenshots below show the experimental demo sandbox flow (intentionally insecure configuration for detection and hardening demonstration). Gate and hook behavior are documented in docs/case-studies/003-preinstall-gate-blocked-malicious-package.md and docs/adr/ADR-0004-pre-install-gate.md.
Step 1: Initial scan on intentionally insecure demo config
Step 2: Apply workstation hardening profile
Step 3: Re-scan findings after hardening
Step 4: OWASP posture view after hardening
MCP Ecosystem Security Dashboard
Weekly automated security scan of the top 50 MCP server repositories, graded A through F.
View the full dashboard - updated every Monday via GitHub Actions.
Benchmarks and Studies
- Fixture benchmark — precision/recall/F1 over a 20-fixture suite (self-authored fixtures, not independently validated).
- Top-50 MCP study — agentsec-only repro run with normalized findings output.
- Top-50 study kit — schema, selection CSV, JSONL findings, and summary JSON.
Current checked-in Top-50 summary data:
docs/benchmarks/top50/reports/top50_summary_20260215.jsondocs/benchmarks/top50/reports/top50_findings_20260215.jsonl
Reproducibility
Fixture benchmark:
python docs/benchmarks/run_benchmark.py
Top-50 study repro:
powershell -ExecutionPolicy Bypass -File scripts\reproduce_top50_study.ps1 -DateStamp 20260215
Note: semgrep and gitleaks baseline runs are optional in the PowerShell repro script and require those tools on PATH.
Adversarial consistency audit (docs vs artifacts):
python scripts/repo_consistency_audit.py
Case Studies
- 001: Insecure workstation remediation
- 002: Public bot hardening on VPS
- 003: Pre-install gate blocked malicious package
- 004: Malicious skill detection and block
Launch Evidence
Development
git clone https://github.com/debu-sinha/agentsec.git
cd agentsec
pip install -c requirements/constraints-dev.txt -e ".[dev]"
ruff check src tests
pytest
Contribution guide:
Security policy:
Governance
Issue intake is template-driven under .github/ISSUE_TEMPLATE/ to keep triage and reproduction quality high.
License
Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentsec_ai-0.4.5.tar.gz.
File metadata
- Download URL: agentsec_ai-0.4.5.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6573d0a4cd478babcb29e56d8c64afbb1b3cbc2e062d8d480781216703006b4f
|
|
| MD5 |
1fd437037e172f7b15b9cdb943e2a869
|
|
| BLAKE2b-256 |
74f9f3dc3b578128d8353f88cfb0c30341ce411042da17b2172217776b39eced
|
Provenance
The following attestation bundles were made for agentsec_ai-0.4.5.tar.gz:
Publisher:
publish.yml on debu-sinha/agentsec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentsec_ai-0.4.5.tar.gz -
Subject digest:
6573d0a4cd478babcb29e56d8c64afbb1b3cbc2e062d8d480781216703006b4f - Sigstore transparency entry: 983622611
- Sigstore integration time:
-
Permalink:
debu-sinha/agentsec@ea9e95a0340f811524a544cbdf55165ef0c64485 -
Branch / Tag:
refs/tags/v0.4.5 - Owner: https://github.com/debu-sinha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea9e95a0340f811524a544cbdf55165ef0c64485 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agentsec_ai-0.4.5-py3-none-any.whl.
File metadata
- Download URL: agentsec_ai-0.4.5-py3-none-any.whl
- Upload date:
- Size: 110.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2a3ba9f2092c165c11ad8204baf5526f9186736fb09bebaf7c46b0e11ee59a3
|
|
| MD5 |
7b733957e3faf1a913be04ea09fddb08
|
|
| BLAKE2b-256 |
2a684ac4185d3028f4b2b61e700a382ff551c1811fb76de32d4cb298e5812468
|
Provenance
The following attestation bundles were made for agentsec_ai-0.4.5-py3-none-any.whl:
Publisher:
publish.yml on debu-sinha/agentsec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentsec_ai-0.4.5-py3-none-any.whl -
Subject digest:
c2a3ba9f2092c165c11ad8204baf5526f9186736fb09bebaf7c46b0e11ee59a3 - Sigstore transparency entry: 983622621
- Sigstore integration time:
-
Permalink:
debu-sinha/agentsec@ea9e95a0340f811524a544cbdf55165ef0c64485 -
Branch / Tag:
refs/tags/v0.4.5 - Owner: https://github.com/debu-sinha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea9e95a0340f811524a544cbdf55165ef0c64485 -
Trigger Event:
release
-
Statement type: