Skip to main content

Auditing your AI tooling: penthera agents

Starter. For “is this MCP server or skill safe?”

Audit your agent setup

Your AI tools run code too. penthera agents audits the skills, MCP servers, hooks, permissions, plugins and rule files that Claude Code, Cursor, Claude Desktop, VS Code and Copilot load, and grades the setup A to F.
It is offline and deterministic: no LLM judge, no registry lookups, nothing leaves your machine, and it never modifies the config it reads. Every verdict is a rule you can read in lib/agents/, so a skill can’t talk its way past it. Each finding names the OWASP MCP Top 10 and Agentic Top 10 (ASI) ids it maps to, and the usual --json, -o, --markdown and --sarif outputs all work. The scanner is built for the ways LLM-judged skill scanners have been bypassed: it reads whole files (no context window to overflow), every file in a skill folder (not just SKILL.md), and treats text aimed at a reviewer as a finding rather than an argument.

Why these files matter

A coding agent runs with your developer’s permissions. What it can do is decided by files that rarely get reviewed: .mcp.json, .claude/settings.json, hooks, skills, plugins, CLAUDE.md, AGENTS.md and .cursor/ rules. Some arrive from a teammate’s pull request, some from a marketplace, some from a blog post. In 2025 and 2026 attackers used these paths: skills with instructions hidden from human reviewers, MCP servers launched with npx -y on whatever version was latest, and npm worms that wrote to ~/.claude and ran the claude CLI on the victim’s machine. penthera deps also flags packages that write to ~/.claude, ~/.cursor or .mcp.json, or run the claude, gemini or q CLIs, which is how the s1ngularity attack used local AI tools (penthera deps).

For a team

Add the pre-commit hook so agent-config changes are checked before they are committed, and the GitHub Action in agents mode on pull requests (in CI):

What you get

From Penthera’s own test fixture of a deliberately bad setup (abridged):

What it does not do

  • It reads configuration and files on disk. It does not watch what an agent does at run time, and it does not sandbox anything. For running agents, see running AI agents safely.
  • It does not know whether a remote MCP server is trustworthy. It checks how the server is launched and configured, not what the service behind it does.
  • It does not check the registries for newly published malicious skills or packages. A registry-watching service such as Socket covers that.
  • Its rules cover the patterns in the methodology. A new trick needs a new rule and a release.
Docs index · All commands