Security scanner for AI agent skills and MCP servers
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Local security checks for AI agents before they trust third-party tools.
Aguara MCP gives Claude Code, Cursor, Windsurf, and any MCP-compatible agent a local tool for reviewing untrusted agent content before acting on it.
When an agent is about to install an MCP server, inspect a skill, read a plugin README, or load a tool configuration, it can call Aguara first. The scan runs locally, inside the MCP server, and returns a structured verdict with findings, severity, remediation, and the rule that triggered.
No LLM calls. No network access. No subprocess to the aguara binary. The MCP server imports Aguara as a Go library and runs the scanner in-process.
Use it to help agents answer questions like:
Aguara MCP v0.8.0 is aligned with Aguara v0.27.0. It includes the current 250-detection catalog, the agent-trust rules for Claude Code project settings, agent instruction files (.cursorrules, AGENTS.md) as high-trust prompt surfaces, npm install-trust policy checks (.npmrc, package.json allowScripts), pnpm supply-chain posture checks, sensitivity-based output redaction, Unicode normalization, and context-aware false-positive reduction. Built on the official MCP SDK (v1, Tier 1).
Repository-wide dependency checks (npm, PyPI, pnpm, Go, crates.io, Composer, RubyGems, Maven, NuGet) are still handled by the Aguara CLI:
These will land as MCP tools in a future release once Aguara core exposes a stable public Check API; see garagon/aguara for the CLI install path.
AI agents are gaining autonomy. They browse registries, discover tools, install MCP servers, and execute third-party code - often without any security review.
This creates a new attack surface. A skill published to a registry today can contain:
curl | bash, shell injection)The agent doesn't know. It can't tell a helpful tool from a weaponized one. The description looks normal. The install succeeds. The damage is done.
This is the gap Aguara MCP fills. It gives the agent a security advisor it can consult as a tool - the same way a developer would run a linter before merging code. One tool call, milliseconds, entirely local. The agent checks first, then decides.
One command, one binary, no external dependencies. The installer verifies SHA256 checksums before extracting and fails closed if no sha256 verifier is available on the host (no silent skip).
Make sure the install directory (
~/.local/bin) is in yourPATH. The binary is statically linked with the Aguara rule catalog and analyzers compiled in so all MCP scans run fully offline. Aguara core's OSV-derived threat-intel snapshot is not bundled in this binary because the MCP does not expose repository-wide dependency checks yet; use the Aguara CLI for those (see garagon/aguara for install + usage).
Claude Code:
Claude Desktop - add to claude_desktop_config.json:
Cursor / Windsurf / any MCP client - stdio transport with aguara-mcp.
Your agent now has a security advisor.
scan_contentScan text for security threats before acting on it. Works on agent skills, READMEs, tool definitions, MCP server descriptions, prompts, package manifest content (package.json), GitHub Actions workflow YAML when the filename argument contains .github/workflows/, Claude Code settings when filename is .claude/settings.json or .claude/settings.local.json, agent instruction files (.cursorrules, .windsurfrules, .clinerules, AGENTS.md, copilot-instructions.md), npm install-trust policy when filename is .npmrc or package.json, and pnpm policy when filename is pnpm-workspace.yaml. Detects prompt injection (pattern + NLP), credential leaks, exfiltration, command execution, supply-chain patterns, MCP attacks, package metadata risks, JavaScript / Python / Rust install-time payload shapes, GitHub Actions trust chains, risky agent host configuration, weakened npm / pnpm supply-chain settings, and Unicode/encoding evasion. Sensitive matches are redacted in the response: when a finding is marked Sensitive=true (cred+exfil combos, toxic-flow cred reads, MCP_007) or belongs to the credential-leak category, matched_text is replaced with [REDACTED] so the scanner never creates a second copy of the secret. Supports context-aware false-positive reduction via tool_name.
| Parameter | Required | Description |
|---|---|---|
content | Yes | The text content to scan |
filename | No | Filename hint for rule matching (default: skill.md) |
tool_name | No | Tool that generated the content (e.g., Bash, Edit, WebFetch). Enables context-aware false-positive reduction |
scan_profile | No | Enforcement profile: strict (default, all rules), content-aware (reduced FP for known tools), or minimal (flag-only mode) |
min_severity | No | Minimum severity to report: INFO, LOW, MEDIUM, HIGH, or CRITICAL |
disabled_rules | No | List of rule IDs to skip (e.g., ["PROMPT_INJECTION_001"]) |
Returns a structured report with verdict (clean, flag, or block), severity-rated findings with remediation guidance, matched patterns, line numbers, confidence scores, and which analysis engine produced each finding.
check_mcp_configCheck an MCP server configuration (JSON) for security issues before adding it to a client. Detects dangerous command shapes in command/args, credential exposure in env, unsafe argument injection, and tool-poisoning patterns. Use on any mcpServers entry from Claude Desktop, Cursor, VS Code, or other MCP clients before enabling it. Sensitive matches are redacted in the response.
| Parameter | Required | Description |
|---|---|---|
config | Yes | MCP configuration as a JSON string |
scan_profile | No | Enforcement profile: strict (default), content-aware, or minimal |
min_severity | No | Minimum severity to report: INFO, LOW, MEDIUM, HIGH, or CRITICAL |
disabled_rules | No | List of rule IDs to skip |
list_rulesBrowse the cataloged security rules. Returns 250 detections (193 YAML pattern rules + 57 analyzer-emitted rules from ci-trust, pkgmeta, jsrisk, pyrisk, rsbuild, npm-policy, pnpm-policy, agent-policy, NLP, toxic-flow, and rug-pull analyzers) spanning multiple threat categories. Useful when the agent needs to understand what Aguara can detect or filter by category.
| Parameter | Required | Description |
|---|---|---|
category | No | Filter by category (e.g., prompt-injection, exfiltration, credential-leak) |
explain_ruleGet detailed information about a specific rule by ID. Resolves both YAML rules (returns patterns plus true/false-positive examples) and analyzer-emitted rule IDs from ci-trust, pkgmeta, jsrisk, pyrisk, rsbuild, npm-policy, pnpm-policy, agent-policy, NLP, toxic-flow, and rug-pull (returns severity, category, analyzer name, description, and remediation; analyzer rules have no inline patterns or examples).
| Parameter | Required | Description |
|---|---|---|
rule_id | Yes | Rule ID (e.g., PROMPT_INJECTION_001) |
discover_mcpDiscover MCP server configurations on the local machine by reading known MCP client config files (Claude Desktop, Cursor, VS Code, Windsurf, and others). Returns the server definitions including commands, arguments, and environment variables. Read-only: this tool never executes the discovered commands and never connects to any server. Pair with check_mcp_config to evaluate each definition before acting on it.
No parameters required.
An agent evaluating whether to install an MCP server from a registry:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/aguara-mcp)<a href="https://allmcps.com/mcp/aguara-mcp"><img src="https://allmcps.com/api/badge/aguara-mcp?style=directory" alt="Aguara MCP on AllMCPs" /></a>