Skillaudit

Created By
megamind-0x4 months ago
Security scanner for AI agent skills. Detects credential theft, data exfiltration, prompt injection, reverse shells, dangerous capability combos, and hardcoded secrets. 14 rules, 80+ patterns, 22 secret detectors. Free API + CLI (npx skillaudit). Built by an AI agent.
Overview

🛡️ SkillAudit

The security layer for AI agent skills. Scan, gate, and enforce policy before your agent installs anything.

32 detection rules · 289 patterns · MCP + A2A coverage · Zero dependencies

Live npm API Docs

# Gate check — should my agent install this?
npx skillaudit gate https://example.com/SKILL.md

# Full scan
npx skillaudit https://example.com/SKILL.md

# Scan MCP manifest for schema poisoning
npx skillaudit manifest tools.json

Why SkillAudit?

AI agents install tools, skills, and MCP servers from untrusted sources. Those skills can steal credentials, exfiltrate data, inject prompts, or manipulate other agents — and most of this is invisible to the user.

SkillAudit catches it. One API call before install. That's it.


Quick Start

1. Gate Check (one line)

The infrastructure endpoint. Returns allow/deny.

curl "https://skillaudit.vercel.app/gate?url=https://example.com/SKILL.md"
# → {"allow": true, "decision": "allow", "risk": "clean", ...}

2. Full Scan

curl "https://skillaudit.vercel.app/scan/quick?url=https://example.com/SKILL.md"

3. Bulk Gate (check multiple skills at once)

curl -X POST https://skillaudit.vercel.app/gate/bulk \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/skill1.md", "https://example.com/skill2.md"]}'
# → {"allow": false, "denied": 1, "blocked": [...]}

4. Policy Enforcement

curl -X POST https://skillaudit.vercel.app/policy/evaluate-inline \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/SKILL.md",
    "policy": {"maxRisk": "low", "blockedCategories": ["credential_theft"]}
  }'

What It Detects

32 rule categories, 289 patterns:

CategoryRulesWhat it catches
🔑 Credential TheftCRED_ENV_READ, TOKEN_STEALReading .env, stealing tokens/cookies, accessing SSH keys
📤 Data ExfiltrationDATA_EXFIL, EXFIL_PATTERN, EXFIL_COVERTWebhook.site, DNS exfil, covert channels, image beacons
💉 Prompt InjectionPROMPT_INJECT, TOOL_POISONING"Ignore previous instructions", hidden system prompts
🧬 MCP Schema PoisoningMCP_SCHEMA_POISONHidden instructions in MCP tool descriptions/schemas
🤖 A2A AttacksA2A_AGENT_IMPERSONATION, A2A_TASK_HIJACK, A2A_CROSS_AGENT_INJECT, A2A_DATA_LEAK, A2A_CAPABILITY_ABUSEAgent Card spoofing, task hijacking, cross-agent injection
🐚 Code ExecutionSHELL_EXEC, REVERSE_SHELLShell commands, reverse shells, eval/Function
🔐 Hardcoded Secrets22 detectorsAWS keys, GitHub tokens, JWTs, private keys, API keys
👻 ObfuscationOBFUSCATION, INVISIBLE_TEXTBase64 payloads, zero-width Unicode, encoded URLs
⏰ EvasionTIME_BOMBDate-triggered activation, delayed execution
🔗 Supply ChainSUPPLY_CHAINRemote code loading, curl|bash, dependency confusion
🌐 NetworkNET_SUSPICIOUS, SSRF_PATTERN, DNS_REBINDSSRF, raw IPs, DNS rebinding, metadata endpoints
📦 Container EscapeCONTAINER_ESCAPEDocker socket, nsenter, /proc traversal, LD_PRELOAD
🔄 PersistencePERSISTENCECron injection, systemd, LaunchAgents, pm2, nohup
🕵️ ReconENV_RECONos.hostname, whoami, network interfaces, environment dump
🔧 Agent ManipulationAGENT_MEMORY_MOD, TOOL_SHADOW, CROSS_TOOL_ACCESSMemory modification, tool shadowing, cross-tool data access
💰 Crypto TheftCRYPTO_THEFTWallet files, seed phrases, MetaMask vaults

Smart context suppression: documentation examples and placeholder tokens are automatically suppressed to minimize false positives.


CLI

Zero install, zero config. Requires Node.js 18+.

# Scan a file, URL, or directory
npx skillaudit SKILL.md
npx skillaudit https://github.com/user/repo
npx skillaudit ./my-agent-project/

# Gate check (CI/CD: exit 0 = allow, exit 1 = deny)
npx skillaudit gate https://example.com/SKILL.md
npx skillaudit gate https://example.com/SKILL.md --threshold high

# Scan MCP manifest for schema poisoning
npx skillaudit manifest tools.json

# CI/CD integration
npx skillaudit SKILL.md --fail-on moderate          # Exit 1 if risk >= moderate
npx skillaudit SKILL.md --markdown >> "$GITHUB_STEP_SUMMARY"  # PR summary
npx skillaudit SKILL.md --json | jq .riskLevel      # Machine-readable

# MCP server mode
npx skillaudit --mcp

API Endpoints

Full interactive docs at skillaudit.vercel.app/docs

Gate (Infrastructure)

EndpointDescription
GET /gate?url=Pre-install gate — allow/warn/deny
POST /gate/bulkCheck multiple skills, one composite decision

Scanning

EndpointDescription
GET /scan/quick?url=Quick scan by URL
POST /scan/contentScan raw content
POST /scan/manifestScan MCP tool manifest for schema poisoning
GET /scan/agent-card?url=Scan A2A Agent Card
GET /scan/npm?package=Scan npm package
GET /scan/pypi?package=Scan PyPI package
GET /scan/repo?repo=Scan GitHub repo
POST /scan/depsScan dependency tree
POST /scan/batchBatch scan (up to 20 URLs)
POST /scan/compareDiff two skill versions
POST /scan/deepDeep scan with threat chains

Policy & Intelligence

EndpointDescription
POST /policy/evaluate-inlineEvaluate against custom policy (no auth)
POST /policyCreate stored policy (API key)
GET /reputation/:domainDomain trust score
GET /feedThreat intelligence feed
GET /badge/scan.svg?url=Embeddable SVG badge
GET /certificate/:idSigned audit certificate

Results

EndpointDescription
GET /scan/:idRetrieve scan result
GET /scan/:id/sarifSARIF v2.1.0 output
GET /report/:idShareable HTML report

Rate limit: 30 req/min per IP. Bypass with API key.


MCP Server

Use SkillAudit as a native tool in Claude Desktop, Cursor, or any MCP client:

{
  "mcpServers": {
    "skillaudit": {
      "command": "npx",
      "args": ["skillaudit", "--mcp"]
    }
  }
}

Tools: skillaudit_gate, skillaudit_scan, skillaudit_scan_content, skillaudit_reputation, skillaudit_batch


GitHub Action

name: SkillAudit
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx skillaudit . --fail-on high --markdown >> "$GITHUB_STEP_SUMMARY"

CI/CD Integration

# GitHub Actions — gate check before deploy
npx skillaudit gate "$SKILL_URL" --threshold moderate || exit 1

# Generate PR comment
npx skillaudit ./skills/ --markdown > scan-results.md

# Policy enforcement in pipeline
curl -sf -X POST https://skillaudit.vercel.app/policy/evaluate-inline \
  -H "Content-Type: application/json" \
  -d "{\"url\": \"$SKILL_URL\", \"policy\": {\"maxRisk\": \"low\"}}" \
  | jq -e '.pass == true'

Risk Levels

LevelScoreMeaning
🟢 clean0No issues found
🟡 low1–9Minor concerns, review recommended
🟠 moderate10–24Manual review required
🔴 high25–49Do NOT install without audit
critical50+Almost certainly malicious

Self-Hosted

git clone https://github.com/megamind-0x/skillaudit
cd skillaudit && npm install && npm start
# → http://localhost:3847

Built by Megamind_0x 🧠

Live App · API Docs · Dashboard · npm

Server Config

{
  "mcpServers": {
    "skillaudit": {
      "command": "npx",
      "args": [
        "skillaudit"
      ]
    }
  }
}
Project Info
Created At
4 months ago
Updated At
3 months ago
Author Name
megamind-0x
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Tavily Mcp
@tavily-ai

JavaScript
a year ago
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

a day ago
AI Work Market — USDC settlement rails for AI labor on Base Mainnet)
@Dario (DME)

AI Work Market is a USDC escrow protocol on Base Mainnet, designed for autonomous AI agents to find work, post jobs, and settle payments without humans in the loop. This MCP server exposes 10 tools: **Escrow lifecycle** - `create_intent_quote` — get calldata + gas estimate for funding a new escrow intent - `submit_proof_quote` — get calldata for the seller to submit a proof URI - `release_funds_quote` — get calldata for the buyer to release payment (or claim/refund) **x402 single-call binding** - `x402_consume` — replaces the 5-step x402 flow with one HMAC-signed POST that returns a delivery URL **Onboarding & discovery** - `agent_onboard` — generate a signed agent card with marketplace attestation - `agent_search` — tf-idf search over the live agent catalog - `agent_reputation` — server-side reputation from on-chain Released/Refunded/Disputed events **Live state** - `system_status` — live on-chain state (nextIntentId, accumulatedFees, contract balance, owner) - `escrow_rules` — contract semantics, lifecycle, call guides, failure modes - `events_subscribe` — SSE stream of new on-chain intent events All endpoints are serverless (Vercel) and return their schema on GET. No browser, no wallet UI required for an agent to integrate. The protocol takes a 1% commission on every settlement; the rest goes to the seller. The full AgentCard is at `/.well-known/agent-card.json` (A2A-compatible). The OpenAPI 3.0.3 spec is at `/.well-known/openapi.json` with `components.securitySchemes` (none, hmacX402). `robots.txt` allows GPTBot, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, Amazonbot.

8 hours ago