Skip to main content
Glama
@guardbee/mcp-security-proxy

@guardbee/mcp-security-proxy

Official

GuardBee MCP

🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch

npm CI OpenSSF Scorecard Socket License: MIT

Security for AI agents and MCP. GuardBee puts a gateway between your agents and their tools and models that masks personal data and secrets, blocks prompt injection and toxic data flows, asks before risky calls and keeps a tamper-evident audit log, plus scanners that check your code and configs against the OWASP MCP Top 10. Open source (MIT), runs on your machine, no account needed.

The gateway and every server speak MCP 2026-07-28 and 2025-11-25 (MCP TypeScript SDK v2), so they work with clients and servers on either revision.

# Put your existing MCP servers behind the gateway (backs up your client config first)
npx -y @guardbee/mcp-security-proxy@^1 init --client claude-desktop   # or cursor, claude-code

# Check a codebase against the OWASP MCP Top 10
npx -y @guardbee/mcp-owasp-scan scan . --fail-on=high

First 5 minutes

  1. Protect your agent — npx -y @guardbee/mcp-security-proxy@^1 init --client cursor (or claude-desktop / claude-code). Restarts the client with GuardBee in front of your MCP servers.

  2. Scan the repo — npx -y @guardbee/mcp-owasp-scan scan . --fail-on=high for OWASP MCP Top 10; npx -y @guardbee/mcp-secret-scanner scan . --history for leaked keys (no MCP client required).

  3. Pick the next tool — see Which package should I use?. Full install paths (container, Helm, hooks, CI): INSTALL.md.

An agent calls a CRM through GuardBee: personal data is masked, a prompt injection is blocked, and sending data out after reading untrusted and sensitive content is refused

Run it yourself: examples/demo (npm install && npm start).

Install anywhere: npm, a signed multi-arch container image (ghcr.io/guardbee/mcp-security-proxy), a Helm chart, coding-agent hooks (Claude Code, Cursor, Codex, Gemini CLI, Windsurf), a GitHub Action and IDEs: see INSTALL.md.

Which package should I use?

You want to…

Install

How

Protect agents at runtime: mask personal data, block injection and toxic flows, approve risky calls, keep an audit log

@guardbee/mcp-security-proxy

Put it in front of your MCP servers (guardbee-proxy init imports your client config)

Check a codebase against the OWASP MCP Top 10 in one pass, in CI

@guardbee/mcp-owasp-scan

npx @guardbee/mcp-owasp-scan scan . --format=sarif --fail-on=high

Give an agent many GuardBee checks from one MCP server

@guardbee/security-suite

guardbee serve (recommended set), --tools=code,network or all

Find leaked keys in files, git history or agent transcripts

@guardbee/mcp-secret-scanner

npx @guardbee/mcp-secret-scanner scan . --history

Audit the MCP servers configured on developer machines

@guardbee/mcp-config-auditor

npx @guardbee/mcp-config-auditor discover

Let an agent query a database without seeing raw personal data

@guardbee/mcp-db-gateway

Point it at your database with a policy

Use the detectors in your own code

@guardbee/guard-core

import { maskPiiInText } from "@guardbee/guard-core"

Every other package is a single check (one OWASP risk, one protocol, one file type); each is in security-suite too. npx @guardbee/security-suite list shows them with what they check.

Related MCP server: MCP Agent Firewall

Benchmarks

Detection is measured, not claimed: packages/pii-bench is a reproducible benchmark for Turkish and international personal data, with bootstrap 95% intervals and the datasets in the repo.

Benchmark

Result

Identifiers (TC Kimlik, IBAN, card, phone, e-mail, …), 400 documents + 160 clean

F1 97.1, recall 100%, false alarms on clean documents 8.1%, 0.04 ms per document

Person names with the optional NER model, same set

F1 99.5

Hand-written hard cases for names (tr-names-challenge)

F1 97.1, 0 false alarms

KVKK Art. 6 special categories with NER (tr-special-challenge)

F1 97.5, 0 false alarms

Bypass suite: 5 identifiers × 16 disguises (base64, hex, URL/HTML/\u escapes, other scripts' digits, separators)

80 / 80 masked, 0 of 16 look-alike strings changed

The identifier detectors were tuned after reading this set's misses, so the challenge sets are the fairer measure; the pii-bench README lists the limits. Any other detector can be run on the same data through its System interface.

MCP attacks: packages/mcp-bench is a public dataset (CC BY 4.0) of poisoned and benign tool definitions, injected and benign tool results, toxic and safe tool catalogs, and rug-pull sequences, in English and Turkish. Third-party baselines run on the same data, and CI fails if GuardBee's scores drop. The leaderboard covers the held-out split:

Task (test split)

GuardBee rules

GuardBee + local judge

mcp-guardian 2.4.0

Cisco MCP Scanner YARA 4.8.7

Tool poisoning, F1

0.50

0.75

0.61

0.42

Indirect injection in tool results, F1

0.47

0.83

0.59

0.27

Toxic flows (lethal trifecta), F1

0.91

—

—

—

Rug pulls (drift + content checks), F1

0.89

—

—

—

GuardBee's rules alone trail mcp-guardian on tool poisoning: no Turkish patterns yet, and narrower phrasing. The README has the per-class numbers, the settings and the limitations.

Prompt injection and jailbreaks, Turkish + English: packages/injection-bench has 2,394 samples: Turkish 576 attacks / 569 benign, English 653 / 596. They come from public datasets (Gandalf, deepset, jackhhao, OpenAssistant) and from hand-written Turkish cases, and the provenance is documented. The leaderboard covers the held-out split:

F1 (test split)

Turkish

English

GuardBee rules (what the proxy blocks)

28.6 (0% false positives)

20.4 (0%)

GuardBee rules + local LLM judge (qwen2.5:7b, ~1 s)

89.6

90.8

ProtectAI DeBERTa-v3 prompt-injection v2

70.2

89.1

GuardBee rules + local classifier (@guardbee/injection-model, ~8 ms)

93.7

91.6

The rules are precise but catch only 11–19% of attacks. GuardBee's optional classifier closes most of that gap in both languages. The English-trained ProtectAI model loses 19 F1 points in Turkish. The README explains both.

Examples

Ready-to-copy proxy policies (minimal, KVKK, coding agent, LLM gateway), client configs for Claude Desktop, Claude Code, Cursor and VS Code, and CI templates for GitHub Actions and GitLab: examples/.

Packages

Package

npm

Description

packages/ai-code-scanner

@guardbee/mcp-ai-code-scanner

Scans a codebase for insecure LLM/AI integration patterns (client-exposed keys, unsafe output handling, excessive agency, PII→prompt, prompt injection)

packages/compliance-checker

@guardbee/mcp-compliance-checker

KVKK/GDPR/CCPA compliance checks

packages/dependency-auditor

@guardbee/mcp-dependency-auditor

CVE scanning for npm/pip/cargo dependencies (OSV)

packages/dns-intelligence

@guardbee/mcp-dns-intelligence

DNS record enumeration, misconfiguration and dangling-subdomain detection

packages/db-gateway

@guardbee/mcp-db-gateway

KVKK/GDPR-compliant gateway between an LLM and a database (PII masking, RBAC, rate limiting, queryable audit log; Prisma/Postgres/MySQL/SQLite/MongoDB adapters; optional insert/update/delete support)

packages/mcp-server-auditor

@guardbee/mcp-server-auditor

Scans other MCP servers' tool definitions for insecure patterns (excessive agency, shell/eval/SQL/SSRF sinks, loose schemas, hardcoded secrets, wildcard CORS)

packages/prompt-injection-scanner

@guardbee/mcp-prompt-injection-scanner

Scans RAG content/scraped pages for indirect prompt injection (instruction override, spoofed role/chat-template tokens, hidden text, "Dear AI" direct address, data-exfiltration instructions)

packages/llm-redteam

@guardbee/mcp-llm-redteam

Actively red-teams a live LLM endpoint/chatbot with canary-based jailbreak/extraction/obfuscation probes (OpenAI/Anthropic/webhook targets)

packages/model-scanner

@guardbee/mcp-model-scanner

Scans ML model files (PyTorch, pickle, safetensors, Keras/H5, ONNX) for supply-chain risks — dangerous pickle deserialization globals, disguised/malformed safetensors headers, Keras Lambda-layer RCE, ONNX external-data path traversal

packages/reverse-shield

@guardbee/mcp-reverse-shield

The defensive side of reverse-engineering MCPs: audits a shipped web build or live site, Electron app, Android APK/AAB, iOS IPA, Unity/PyInstaller/Java build or native/.NET binary for what an analyst gets for free — exposed source maps, missing minification/R8/.NET obfuscation, debug info and symbols, debuggable flags, Electron fuses, missing code signing, embedded keys; A–F grade, build-config fix diffs and CI baselines

packages/vector-store-scanner

@guardbee/mcp-vector-store-scanner

Probes vector-database endpoints (Weaviate, Qdrant, Chroma, Elasticsearch/OpenSearch, Redis, Postgres/pgvector) for unauthenticated exposure of embeddings and RAG data

packages/prompt-leak-scanner

@guardbee/mcp-prompt-leak-scanner

Catches leaked credentials and PII (API keys, TC Kimlik No, credit cards, IBANs) in outbound LLM prompts — as MCP scan tools, and as a live reverse proxy in front of a real LLM API

packages/document-scanner

@guardbee/mcp-document-scanner

Finds PII and credentials inside PDFs, screenshots and scanned documents — PDF text layer plus optional OCR (Turkish and English) — before they reach an LLM

packages/agent-graph-auditor

@guardbee/mcp-agent-graph-auditor

Builds a reachability graph across multi-agent orchestration configs (LangGraph, CrewAI, AutoGen/ag2) to find transitive excessive agency — an agent that reaches a dangerous tool only through delegation to another agent

packages/tool-poisoning-scanner

@guardbee/mcp-tool-poisoning-scanner

Scans MCP server tool definitions for tool poisoning (hidden instructions embedded in a tool's description) and confused-deputy mismatches (a read-only-sounding tool whose handler has a shell/eval/file-write/env-dump sink)

packages/rug-pull-detector

@guardbee/mcp-rug-pull-detector

Connects live to another MCP server (stdio/HTTP), baselines its tools/list response, and detects an "MCP rug pull" — a tool's description/schema/annotations silently changing after it was already approved

packages/memory-poisoning-scanner

@guardbee/mcp-memory-poisoning-scanner

Scans agent code for memory poisoning — untrusted input written into persistent, cross-session memory (MemGPT-style archival/core memory, or a long-term vector store) that later gets recalled and trusted as context

packages/oauth-auditor

@guardbee/mcp-oauth-auditor

Scans an MCP server's own authorization code for OAuth 2.1 anti-patterns named in the MCP spec's Security Considerations — token passthrough, missing audience validation, OAuth/OIDC discovery SSRF, missing PKCE, loose redirect_uri validation, hardcoded client secrets

packages/elicitation-auditor

@guardbee/mcp-elicitation-auditor

Scans MCP server code for elicitation anti-patterns in the 2026-07-28 spec — form mode asking for secrets or payment data, URL mode pointed straight at a third-party authorize endpoint, credentials or PII embedded in the elicitation URL

packages/toxic-flow-auditor

@guardbee/mcp-toxic-flow-auditor

Audits an MCP tool catalog for toxic flows (Simon Willison's lethal trifecta) — untrusted content + sensitive/private data + exfiltration or destruction on the same server; A–F grade, KVKK-aware heuristics, OWASP MCP10:2025

packages/audit-gap-auditor

@guardbee/mcp-audit-gap-auditor

Audits MCP server source for OWASP MCP08:2025 (Lack of Audit and Telemetry) — missing tool-call trails, raw args/results in logs, hard-disabled audit, silent catches, audit events without correlation ids

packages/context-oversharing-auditor

@guardbee/mcp-context-oversharing-auditor

Audits agent/MCP source for OWASP MCP10:2025 context oversharing — full conversation dumps, unscoped memory tools, shared global session stores, system-prompt leaks via tools, cross-session tool-result bleed, unfiltered vector queries (complements toxic-flow’s catalog trifecta)

packages/owasp-scan

@guardbee/mcp-owasp-scan

Unified OWASP MCP Top 10 meta-scanner — path orchestration of GuardBee auditors + live/catalog tools/list toxic-flow/poisoning, A–F grade, SARIF; optional MCP09 Shadow MCP discover

packages/mcp-config-auditor

@guardbee/mcp-config-auditor

Audits MCP client configs (Cursor/Claude/Windsurf/VS Code) and agent SKILL.md for unpinned packages, secrets, wildcard auto-approve, unauthenticated remotes, typosquats, cross-server/skill shadowing; discover finds Shadow MCP (OWASP MCP09) vs an org allowlist

packages/threat-rules

@guardbee/mcp-threat-rules

MCP bridge to Agent Threat Rules (ATR) — runtime detection for prompt injection, tool poisoning, and MCP attacks, with GuardBee follow-up scanner hints

packages/a2a-auditor

@guardbee/mcp-a2a-auditor

Scans an agent's Agent2Agent (A2A) protocol implementation (TypeScript and Python) for anti-patterns found in the reference SDKs' own source — unauthenticated push-notification webhook fetches (SSRF), Agent Cards with no authentication requirement, credentials embedded in publicly-served Agent Card metadata

packages/slopsquat-scanner

@guardbee/mcp-slopsquat-scanner

Checks every dependency declared in a project's own manifest (package.json, requirements.txt, pyproject.toml) against the real npm/PyPI registry — flags names that don't exist at all (likely LLM-hallucinated, i.e. slopsquatting) and names that exist but were only very recently published

packages/unbounded-consumption-auditor

@guardbee/mcp-unbounded-consumption-auditor

Scans LLM/agent application code for Unbounded Consumption ("denial of wallet", OWASP LLM Top 10 2026 #6) — missing output token limits, missing timeouts on hand-rolled LLM HTTP calls, unbounded agent tool-calling/retry loops, explicitly disabled framework safety limits (LangChain max_iterations, openai-agents max_turns), and MCP tool handlers with no visible rate limiting

packages/secret-scanner

@guardbee/mcp-secret-scanner

Scans files for leaked secrets and API keys

packages/security-proxy

@guardbee/mcp-security-proxy

MCP security gateway: several MCP servers behind one policy, with toxic-flow (lethal trifecta) blocking, approvals, PII masking and a hash-chained audit log

packages/security-suite

@guardbee/security-suite

Every scanner and auditor below from one install: one MCP server with the groups you pick, and a CLI that runs any package

packages/ssl-inspector

@guardbee/mcp-ssl-inspector

TLS certificate/cipher/protocol inspection

packages/vulnerability-scanner

@guardbee/mcp-vulnerability-scanner

Triggers GuardBee scans, queries findings, AI-assisted remediation guidance

packages/guard-core

@guardbee/guard-core

(internal) Shared detector library — PII/secret masking, prompt injection rules, tool classification; not an MCP server on its own

packages/telemetry

@guardbee/mcp-telemetry

(internal) Shared usage-telemetry client — not an MCP server on its own

Security

Found a vulnerability? Report it privately: see SECURITY.md. Contributions are welcome: CONTRIBUTING.md.

Telemetry

Packages can send usage telemetry to GuardBee via @guardbee/mcp-telemetry: which tool is called, how often, and how long it takes. It is off by default (opt-in); nothing is sent unless you set GUARDBEE_TELEMETRY=1. When it is on, a one-time notice is printed to stderr on first use.

  • To enable: GUARDBEE_TELEMETRY=1 (or true/on/yes); unset it to turn telemetry off again

  • What's sent: tool name, short (≤40 character) parameter values (e.g. table: "users", limit: 50), success/failure, duration

  • What's NEVER sent: values under keys like content/text/data/filter/password/email/apiKey/token, and any string longer than 40 characters — all replaced with "[redacted: ...]" by redactParams() in packages/telemetry/src/redact.ts. So the full content of scanned files/code, or the real row data from an insert_row/update_row call, is never sent.

Details: packages/telemetry/README.md.

Development

pnpm install
pnpm build     # turbo run build — all packages, in dependency order
pnpm test      # turbo run test

To work on a single package:

pnpm --filter @guardbee/mcp-ssl-inspector dev

Versioning and publishing

Packages are versioned independently (Changesets). If you changed something in a PR:

pnpm changeset

After merging to main, CI automatically opens a version PR; merging that PR publishes the changed packages to npm (see .github/workflows/release.yml).

Stability

Packages at 1.0 or later follow semantic versioning: a breaking change to the CLI, the MCP tool names and parameters, the config format or the exported API comes only with a new major version, and is listed in the package's CHANGELOG.md. New rules and detectors arrive in minor versions; they can report findings an earlier version did not. Packages still at 0.x may change between minor versions.

Package

Stable since

@guardbee/mcp-security-proxy

1.0

@guardbee/guard-core

1.0

@guardbee/mcp-secret-scanner

1.0

@guardbee/mcp-prompt-injection-scanner

1.0

@guardbee/mcp-prompt-leak-scanner

1.0

@guardbee/mcp-toxic-flow-auditor

1.0

Structure

  • pnpm workspaces — packages/*, real workspace:* dependencies (e.g. security-suite depends on the other packages directly from the workspace, not a registry version)

  • Turborepo — build/test/type-check pipeline, dependency-graph-aware ordering and caching

  • Shared config — tsconfig.base.json and vitest.shared.ts at the root; each package layers its own settings on top

Project history

The monorepo's earlier write-ups are in CHANGELOG.md; each package's release notes are in its own CHANGELOG.md and on GitHub Releases.

Available Tools

130 tools
a2a_auditor__list_patternsB

List every A2A (Agent2Agent) protocol pattern this auditor detects, grouped by category

Inputs: no named parameters.

a2a_auditor__scan_directoryC

Recursively scan a directory of A2A agent source for protocol anti-patterns

Inputs: path (required), exclude, include, maxFiles.

a2a_auditor__scan_fileB

Scan a single file for A2A (Agent2Agent) protocol anti-patterns

Inputs: path (required).

a2a_auditor__scan_textA

Scan Agent2Agent (A2A) protocol implementation code for anti-patterns found in the reference SDKs and sample agents: an Agent Card fetching a client-supplied push-notification webhook URL with no host allowlist (SSRF), a request handler wired up with no authentication at all, and a literal credential embedded directly in Agent Card metadata (which is served publicly).

Inputs: content (required), label.

agent_graph_auditor__list_patternsA

List every dangerous-capability rule this auditor looks for at the end of a delegation path, grouped by category

Inputs: no named parameters.

agent_graph_auditor__scan_directoryA

Recursively scan a directory of Python files and report excessive-agency paths found in each. Each file's agent/tool graph is analyzed independently — variable references don't resolve across files, so a Crew/GroupChat whose members are defined in a different file than the assembling call won't be connected.

Inputs: path (required), exclude, include, maxFiles.

agent_graph_auditor__scan_fileA

Scan a single Python file for excessive-agency paths across LangGraph/CrewAI/AutoGen orchestration constructs

Inputs: path (required).

agent_graph_auditor__scan_textA

Scan a Python snippet defining a multi-agent orchestration (LangGraph, CrewAI, or AutoGen/ag2) for excessive agency reachable through delegation or group membership — an agent with no dangerous tool of its own that can still reach one (shell/code-exec/file-write/network/credentials) through another agent it can hand off to.

Inputs: content (required), label.

ai_code_scanner__list_patternsB

List all AI/LLM security patterns that the scanner can detect, grouped by category (including any custom rules loaded from .guardbee/rules)

Inputs: no named parameters.

ai_code_scanner__scan_directoryA

Recursively scan a directory for insecure AI/LLM integration patterns. Automatically skips node_modules, .git, dist, and binary files.

Inputs: path (required), exclude, include, maxFiles.

ai_code_scanner__scan_fileB

Scan a single file for insecure AI/LLM integration patterns

Inputs: path (required).

ai_code_scanner__scan_textA

Scan a text string or code snippet for insecure AI/LLM integration patterns (client-exposed keys, unsafe output handling, excessive agent tool permissions, PII sent to a model, prompt injection surface).

Inputs: content (required), label.

audit_gap_auditor__list_patternsA

List every OWASP MCP08 audit-gap check this auditor runs

Inputs: no named parameters.

audit_gap_auditor__scan_directoryA

Recursively scan a directory of MCP server source for OWASP MCP08 audit/telemetry gaps

Inputs: path (required), exclude, include, maxFiles.

audit_gap_auditor__scan_fileC

Scan a single file for OWASP MCP08 audit/telemetry gaps

Inputs: path (required).

audit_gap_auditor__scan_textB

Scan MCP server source for OWASP MCP08:2025 (Lack of Audit and Telemetry) gaps: tools registered with no audit trail, raw args/results logged, audit hard-disabled, silent catch blocks, audit events without a session/request id.

Inputs: content (required), label.

compliance_checker__analyze_privacy_policyA

Fetch and analyze a privacy policy page for completeness against GDPR/KVKK requirements. Works without an API key.

Inputs: url (required).

compliance_checker__check_complianceA

Run a full compliance scan for a URL against a regulatory framework (KVKK, GDPR, or CCPA) using the GuardBee scanner. Returns a gap analysis and action plan.

Inputs: url (required), framework (required), wait.

compliance_checker__compare_frameworksB

Compare KVKK, GDPR, and CCPA requirements side by side to understand overlaps and gaps

Inputs: no named parameters.

compliance_checker__get_compliance_findingsA

Get compliance findings from a completed GuardBee scan, optionally filtered by severity

Inputs: scanId (required), severity, framework.

compliance_checker__list_requirementsB

List all compliance requirements for a framework with legal basis references

Inputs: framework (required), severity.

context_oversharing_auditor__list_patternsA

List every OWASP MCP10 context-oversharing check this auditor runs

Inputs: no named parameters.

context_oversharing_auditor__scan_directoryA

Recursively scan a directory for OWASP MCP10 context-oversharing issues

Inputs: path (required), exclude, include, maxFiles.

context_oversharing_auditor__scan_fileB

Scan a single file for OWASP MCP10 context-oversharing issues

Inputs: path (required).

context_oversharing_auditor__scan_textB

Scan agent/MCP source for OWASP MCP10:2025 context oversharing — full conversation dumps, unscoped memory tools, shared global session stores, system-prompt leaks via tools, cross-session tool-result bleed, and unfiltered vector queries.

Inputs: content (required), label.

db_gateway__describe_tableB

Get the column names and gateway masking policy for a table — helps the LLM understand what data it can access.

Inputs: table (required).

db_gateway__gateway_statusA

Show the active gateway configuration: field masking rules, table policies, and audit settings.

Inputs: no named parameters.

db_gateway__list_tablesA

List all available database tables. Tables marked as 'deny' in gateway policy are omitted.

Inputs: no named parameters.

db_gateway__query_audit_logA

Query the gateway's own audit log — inspect which tools were called, on which tables, whether they were allowed or denied (and why), and which fields were redacted/written. Covers events since this server process started; count is capped by the gateway's audit.bufferSize (default 200).

Inputs: tool, limit, since, table, +2 more.

db_gateway__query_tableB

Query rows from a database table with optional filters. All results pass through the KVKK/GDPR gateway — sensitive fields are automatically masked.

Inputs: table (required), limit, filter.

dependency_auditor__audit_directoryA

Auto-detect and audit every supported project in a directory: npm (package-lock, pnpm, yarn, bun), Python (uv, Poetry, Pipenv, requirements), Rust (Cargo.lock), Go (go.mod), Ruby (Gemfile.lock) and PHP (composer.lock)

Inputs: directory (required), exploitData, includeDevDeps.

dependency_auditor__audit_npmA

Audit npm dependencies for known CVEs using the OSV database. Reads exact versions from package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock (v1 and berry) or bun.lock, falling back to package.json ranges

Inputs: directory (required), exploitData, includeDevDeps.

dependency_auditor__audit_packageC

Audit a single package by name, version, and ecosystem

Inputs: name (required), version (required), ecosystem (required), exploitData.

dependency_auditor__audit_pipA

Audit Python dependencies for known CVEs using the OSV database. Reads exact versions from uv.lock, poetry.lock or Pipfile.lock, falling back to requirements.txt / pyproject.toml

Inputs: directory (required), exploitData, includeDevDeps.

dns_intelligence__audit_domainsA

Audit several domains at once (e.g. every brand or country domain) and compare them: an A–F grade per domain from all DNS, email, DNSSEC, CAA and nameserver checks, plus each domain's most serious findings

Inputs: domains (required), nameserverProbe.

dns_intelligence__check_email_securityA

Check a domain's email security: MX, SPF (nested lookup count), DMARC, DKIM key strength, MTA-STS and TLS-RPT, with remediation advice

Inputs: domain (required), dkimSelectors.

dns_intelligence__check_takeoverB

Check specific hostnames (e.g. from your DNS zone or certificate logs) for subdomain takeover

Inputs: hosts (required), httpProbe.

dns_intelligence__enumerate_dnsA

Enumerate all DNS records for a domain and detect misconfigurations: SPF, DMARC, DKIM key strength, MTA-STS/TLS-RPT, MX, DNSSEC (signed / broken / weak algorithms) and CAA (including whether it blocks the CA of the live certificate) and nameservers (lame delegation, anonymous zone transfer, open recursion)

Inputs: domain (required), nameserverProbe.

dns_intelligence__enumerate_subdomainsA

Find subdomains from Certificate Transparency logs and a common-name wordlist, and detect subdomain takeovers: CNAMEs to S3, GitHub Pages, Azure, Heroku, Netlify and other providers whose resource is gone (verified fingerprints), or to targets that no longer exist

Inputs: domain (required), httpProbe, certificateTransparency.

dns_intelligence__lookup_dnsB

Perform a targeted DNS lookup for specific record types on a domain

Inputs: type (required), domain (required).

document_scanner__list_detectorsA

List the PII and credential detectors this scanner runs

Inputs: no named parameters.

document_scanner__scan_base64B

Scan a document given as base64 (an attachment, an image a tool returned) for PII and credentials. The type is detected from the bytes.

Inputs: data (required), ocr, label, include, +1 more.

document_scanner__scan_documentA

Find PII (TC Kimlik No, IBAN, card, passport, e-mail, phone, address…) and credentials inside a PDF, an image (screenshot, scanned page) or a text file on disk, before it is given to an LLM. PDFs are read from their text layer; images and scanned pages with OCR (Turkish and English).

Inputs: path (required), ocr, include, languages.

elicitation_auditor__list_patternsA

List every elicitation check this auditor runs

Inputs: no named parameters.

elicitation_auditor__scan_directoryA

Recursively scan a directory of MCP server source for elicitation anti-patterns

Inputs: path (required), exclude, include, maxFiles.

elicitation_auditor__scan_fileC

Scan a single file for elicitation anti-patterns

Inputs: path (required).

elicitation_auditor__scan_textB

Scan MCP server source for elicitation anti-patterns from the 2026-07-28 spec: form mode requesting secrets or embedding a link, URL mode opened directly on a third-party authorize endpoint, credentials in the elicitation URL, a form answer used as the user's identity, and a result used without checking decline or cancel.

Inputs: content (required), label.

llm_redteam__list_probesA

List all red-team probes this tool can run against a target LLM/chatbot, grouped by category. Every probe is canary-based (safe) — none ask the target to produce genuinely harmful content.

Inputs: no named parameters.

llm_redteam__run_probe_suiteA

Run canary-based red-team probes against a live LLM endpoint or chatbot you control, to test whether known jailbreak/extraction/obfuscation techniques bypass its guardrails. ONLY point this at an endpoint you own or are explicitly authorized to test — every probe consumes API quota on the target. Probes never request genuinely harmful content; success is measured by whether the target reproduces a random one-time token, proving an override instruction was obeyed.

Inputs: target (required), probeIds, maxProbes, categories.

mcp_config_auditor__discover_shadow_mcpA

OWASP MCP09:2025 — discover MCP client configs in well-known host paths (Cursor, Claude Desktop, Windsurf, VS Code, Claude Code) and flag servers that are not on an organization allowlist (Shadow MCP). Does not start any MCP server.

Inputs: home, allowlist, includeContentAudit.

mcp_config_auditor__list_host_config_pathsA

List the well-known MCP client config paths this auditor checks during shadow (MCP09) discovery on the current OS.

Inputs: home.

mcp_config_auditor__list_patternsA

List the MCP config, agent skill, shadow-MCP discovery, and cross-server shadowing checks, with their OWASP MCP Top 10 tags.

Inputs: no named parameters.

mcp_config_auditor__scan_config_textA

Scan an MCP client config JSON string (Cursor mcp.json, Claude Desktop, Windsurf, or VS Code) for unpinned packages, secrets, wildcard auto-approve, unauthenticated remote endpoints, and typosquats.

Inputs: content (required), label.

mcp_config_auditor__scan_directoryB

Find mcp.json, mcp_config.json, claude_desktop_config.json, and SKILL.md under a directory and audit each one. A directory scan also compares skill names. Does not start any MCP server.

Inputs: path (required), exclude, maxFiles.

mcp_config_auditor__scan_fileA

Scan one MCP client config file, or a SKILL.md agent skill when the file has that name.

Inputs: path (required).

mcp_config_auditor__scan_inventoryA

Detect cross-server tool shadowing from an inventory of tool catalogs. Pass the tool names and descriptions already collected from each installed server. This tool does not connect to those servers.

Inputs: inventory (required).

mcp_config_auditor__scan_skill_textA

Scan one agent SKILL.md (YAML frontmatter plus body) for unrestricted allowed-tools, instruction override, credential file reads, and literal secrets. Name collisions across skills require a directory scan.

Inputs: content (required), label.

mcp_server_auditor__list_patternsA

List all MCP server security patterns that the auditor can detect, grouped by category

Inputs: no named parameters.

mcp_server_auditor__scan_directoryA

Recursively scan an MCP server's codebase for insecure tool-definition patterns. Automatically skips node_modules, .git, dist, and binary files.

Inputs: path (required), exclude, include, maxFiles.

mcp_server_auditor__scan_fileC

Scan a single file for insecure MCP server/tool-definition patterns

Inputs: path (required).

mcp_server_auditor__scan_textB

Scan a text string or code snippet for insecure MCP server/tool-definition patterns (excessive-agency tool names, shell/eval/SQL/SSRF sinks fed by raw tool input, overly permissive schemas, hardcoded secrets, wildcard CORS).

Inputs: content (required), label.

memory_poisoning_scanner__list_patternsA

List every memory-write and memory-readback pattern this scanner detects, grouped by category

Inputs: no named parameters.

memory_poisoning_scanner__scan_directoryB

Recursively scan a directory of agent source code for memory-poisoning patterns

Inputs: path (required), exclude, include, maxFiles.

memory_poisoning_scanner__scan_fileB

Scan a single file for memory-write and memory-readback poisoning patterns

Inputs: path (required).

memory_poisoning_scanner__scan_textA

Scan agent code for memory-poisoning risks: untrusted input written into persistent, cross-session memory (MemGPT-style archival/core memory, or a vector store used as a long-term knowledge base) without visible sanitization, and memory retrievals fed into a system/assistant-role message or prompt template as trusted context.

Inputs: content (required), label.

model_scanner__list_patternsA

List every dangerous Python global (module.function) this scanner treats as a red flag when found referenced inside a pickled model file, grouped by risk category

Inputs: no named parameters.

model_scanner__scan_directoryA

Recursively scan a directory for ML model files (.pt, .pth, .ckpt, .pkl, .pickle, .bin, .dill, .joblib, .jbl, .npy, .npz, .safetensors, .h5, .hdf5, .keras, .onnx, .gguf, .pb, .pbtxt, .tflite; a TensorFlow SavedModel directory through its saved_model.pb) and report supply-chain risks in each. Automatically skips node_modules, .git, venv, and other non-model directories.

Inputs: path (required), exclude, include, maxFiles.

model_scanner__scan_fileA

Scan a single ML model file for supply-chain risks: dangerous Python globals reachable during pickle deserialization (os/subprocess/eval/socket/dill gadgets, inside PyTorch zip checkpoints, joblib dumps and NumPy object arrays too), a malformed or disguised .safetensors header, a Keras Lambda-layer RCE pattern in .h5/.keras files, a path-traversal external_data reference in .onnx files, malformed GGUF headers and chat templates that escape the Jinja sandbox or carry hidden instructions, and TensorFlow SavedModel/GraphDef/TFLite graphs that read or write files or call Python.

Inputs: path (required).

model_scanner__scan_hf_repoA

Scan every model file in a Hugging Face model repo at a pinned commit. The revision (branch, tag or commit sha, default main) is resolved to a commit sha and all files are read from it. Files over 256 MB are checked from their first 64 MB (and last 64 MB for zip containers), which hold the headers and pickle streams the checks read. Gated or private repos need HF_TOKEN in the server's environment.

Inputs: repo (required), maxFiles, revision.

oauth_auditor__list_patternsA

List every OAuth/token-handling pattern this auditor detects, grouped by category

Inputs: no named parameters.

oauth_auditor__scan_directoryA

Recursively scan a directory of MCP server source for OAuth/token-handling anti-patterns

Inputs: path (required), exclude, include, maxFiles.

oauth_auditor__scan_fileB

Scan a single file for OAuth/token-handling anti-patterns

Inputs: path (required).

oauth_auditor__scan_textB

Scan an MCP server's authorization code for OAuth 2.1 anti-patterns named in the MCP spec's own Security Considerations: token passthrough (forwarding a client's token to a downstream API unchanged), missing audience validation on JWT verification, OAuth/OIDC discovery SSRF, missing PKCE, loose redirect_uri validation, and hardcoded client secrets.

Inputs: content (required), label.

owasp_scan__list_owasp_coverageA

List OWASP MCP Top 10 categories and which GuardBee scanners cover them in this meta-scan

Inputs: no named parameters.

owasp_scan__owasp_scan_catalogC

Audit a tools/list JSON dump for toxic flows and tool-description poisoning (MCP03/MCP10).

Inputs: catalog (required), label.

owasp_scan__owasp_scan_liveA

Connect to a live MCP server (stdio or HTTP), call tools/list, then grade toxic-flow + tool-poisoning (MCP03/MCP10).

Inputs: url, args, command.

owasp_scan__owasp_scan_pathA

Run a unified OWASP MCP Top 10 scan over a filesystem path — orchestrates secret, server, oauth, audit-gap, context-oversharing, toxic-flow, and tool-poisoning auditors; optional MCP04 supply-chain and MCP06 content injection. Returns A–F grade.

Inputs: path (required), maxFiles, withContent, allowlistPath, +2 more.

prompt_injection_scanner__list_patternsA

List all indirect prompt injection patterns that the scanner can detect, grouped by category

Inputs: no named parameters.

prompt_injection_scanner__scan_directoryA

Recursively scan a directory — e.g. a RAG knowledge base or a corpus of scraped pages — for indirect prompt injection payloads. Automatically skips node_modules, .git, dist, and binary files.

Inputs: path (required), exclude, include, maxFiles.

prompt_injection_scanner__scan_fileA

Scan a single file (a knowledge-base document, an HTML page, extracted text) for indirect prompt injection payloads

Inputs: path (required).

prompt_injection_scanner__scan_textB

Scan a text string — a RAG chunk, a scraped web page, a document, a tool result — for indirect prompt injection payloads (instruction-override phrases, spoofed chat-template roles, hidden/invisible text, content addressing 'the AI' directly, data-exfiltration attempts) before it reaches a model's context.

Inputs: content (required), label.

prompt_leak_scanner__list_patternsB

List every credential/PII pattern this scanner detects, grouped by category

Inputs: no named parameters.

prompt_leak_scanner__scan_directoryA

Recursively scan a directory of prompt logs or request-body fixtures for leaked credentials and PII

Inputs: path (required), exclude, include, maxFiles.

prompt_leak_scanner__scan_fileA

Scan a single file — plain text, or a JSON chat-request-body fixture (auto-detected) — for leaked credentials and PII

Inputs: path (required).

prompt_leak_scanner__scan_messagesA

Scan an OpenAI/Anthropic-style chat request body (a JSON object with a messages array and/or a system field) for leaked credentials and PII in every message's text content, before it would be sent to the model.

Inputs: body (required).

prompt_leak_scanner__scan_textA

Scan a raw text string (e.g. a prompt you're about to send to an LLM) for leaked credentials (API keys, private keys, JWTs) and PII (TC Kimlik No, credit card, IBAN, email, phone) — checksum-validated where applicable to keep false positives low.

Inputs: content (required), label.

rug_pull_detector__baseline_serverA

Connect to an MCP server (stdio command or Streamable HTTP URL), read its current tools/list response, and store it as the trusted baseline for future drift checks. Call this once, right after you've reviewed and approved a server's tools.

Inputs: cwd, env, url, args, +2 more.

rug_pull_detector__check_serverA

Connect to an MCP server and compare its current tools/list response against the stored baseline. A tool whose description, schema, or annotations changed since baseline is a 'rug pull' — approved once, silently different now. If no baseline exists yet, one is captured automatically (set autoBaseline=false to require an explicit baseline_server call first).

Inputs: cwd, env, url, args, +3 more.

rug_pull_detector__list_baselinesB

List every server this scanner has a stored baseline for

Inputs: no named parameters.

secret_scanner__list_patternsB

List all secret patterns that the scanner can detect

Inputs: no named parameters.

secret_scanner__scan_agent_historyA

Scan the transcripts coding agents keep on this machine (Claude Code, Codex, Gemini CLI, Continue) for secrets that were pasted into a chat or printed by a command. Such a secret was already sent to the model provider and should be rotated. Each secret is reported once with how often it appears.

Inputs: entropy.

secret_scanner__scan_directoryA

Recursively scan a directory for exposed secrets and API keys. Automatically skips node_modules, .git, dist, and binary files.

Inputs: path (required), entropy, exclude, include, +2 more.

secret_scanner__scan_fileC

Scan a single file for exposed secrets and API keys

Inputs: path (required), entropy.

secret_scanner__scan_gitA

Scan a git repository for secrets in what git says was added: the staged changes (before a commit) or every commit's added lines (history). History finds secrets that were deleted from the files but are still in the repository.

Inputs: mode (required), path (required), range, entropy, +2 more.

secret_scanner__scan_textB

Scan a text string or code snippet for exposed secrets and API keys

Inputs: content (required), label, entropy.

slopsquat_scanner__check_packageB

Check a single package name against the real npm or PyPI registry

Inputs: name (required), ecosystem (required).

slopsquat_scanner__scan_directoryB

Auto-detect and check both npm and pip manifests (package.json, requirements.txt, pyproject.toml) in a directory against their real registries

Inputs: directory (required).

slopsquat_scanner__scan_npmA

Check every dependency declared in a package.json (dependencies, devDependencies, peerDependencies, optionalDependencies) against the real npm registry -- flags any package name that doesn't exist at all (a likely LLM-hallucinated dependency an attacker may have pre-registered, i.e. 'slopsquatting'), and separately notes any that exist but were only first published very recently.

Inputs: directory (required).

slopsquat_scanner__scan_pipA

Check every dependency declared in requirements.txt or pyproject.toml against the real PyPI registry -- flags any package name that doesn't exist at all (a likely LLM-hallucinated dependency an attacker may have pre-registered), and separately notes any that exist but were only first published very recently.

Inputs: directory (required).

ssl_inspector__check_cert_expiryB

Check certificate expiry for one or more domains and highlight certificates expiring soon

Inputs: hosts (required), warnDays.

ssl_inspector__get_cert_infoB

Get detailed certificate information for a domain including fingerprint, SANs, and issuer chain

Inputs: host (required), port.

ssl_inspector__inspect_sslA

Inspect TLS certificate, cipher suite, and protocol configuration for a single domain

Inputs: host (required), port, probes, checkHsts.

ssl_inspector__inspect_ssl_bulkB

Inspect TLS configuration for multiple domains in parallel

Inputs: hosts (required), port, probes.

threat_rules__evaluate_eventC

Evaluate a structured ATR AgentEvent JSON (type, content, fields, sessionId, …).

Inputs: event (required), lane, format.

threat_rules__evaluate_fileC

Read a local file and evaluate its contents against ATR + GuardBee rules

Inputs: path (required), lane, type, format.

threat_rules__evaluate_textC

Evaluate free text against Agent Threat Rules (ATR) plus GuardBee KVKK/TR rules. Returns matches with follow-up scanner hints.

Inputs: content (required), lane, type, format, +1 more.

threat_rules__explain_bridgeB

Explain how Agent Threat Rules (ATR) complements GuardBee static MCP auditors

Inputs: no named parameters.

threat_rules__framework_mapA

Show how GuardBee's runtime findings map to OWASP Top 10 for LLM Applications (2025) and MITRE ATLAS — the mapping guardbee-proxy report uses

Inputs: no named parameters.

threat_rules__list_rulesC

List loaded ATR + GuardBee detection rules (optionally filter by category or source).

Inputs: lane, source, category.

threat_rules__rule_statsB

Summarize loaded rule counts by category and source (ATR vs GuardBee)

Inputs: lane.

tool_poisoning_scanner__list_patternsA

List every description-injection phrase and confused-deputy sink rule this scanner detects

Inputs: no named parameters.

tool_poisoning_scanner__scan_directoryB

Recursively scan a directory of MCP server source for tool-poisoning and confused-deputy patterns

Inputs: path (required), exclude, include, maxFiles.

tool_poisoning_scanner__scan_fileA

Scan a single file for tool-poisoning and confused-deputy patterns in MCP tool registrations

Inputs: path (required).

tool_poisoning_scanner__scan_textB

Scan MCP server source (TypeScript/JavaScript, Python, Go) for tool poisoning (hidden instructions embedded in a tool's description string, read by the calling LLM as trusted context) and confused-deputy tools (a name/description promising read-only behavior while the handler has a shell/eval/file-write/env-dump sink).

Inputs: content (required), label, language.

toxic_flow_auditor__audit_catalogA

Audit a tools/list-shaped JSON catalog for the lethal trifecta (toxic flow): untrusted content + sensitive/private data + exfiltration or destruction on the same MCP server. Returns an A–F grade.

Inputs: catalog (required), label.

toxic_flow_auditor__explain_trifectaA

Explain the lethal trifecta / toxic-flow model this auditor uses

Inputs: no named parameters.

toxic_flow_auditor__scan_directoryC

Recursively scan a directory of MCP server source for toxic flows across all registered tools

Inputs: path (required), exclude, maxFiles.

toxic_flow_auditor__scan_fileC

Scan a single source file for toxic flows

Inputs: path (required).

toxic_flow_auditor__scan_sourceA

Scan TypeScript/JavaScript MCP server source for .registerTool(...) and .tool(...) registrations and audit them for toxic flows

Inputs: content (required), label.

unbounded_consumption_auditor__list_patternsA

List every Unbounded Consumption / denial-of-wallet pattern this auditor detects, grouped by category

Inputs: no named parameters.

unbounded_consumption_auditor__scan_directoryB

Recursively scan a directory of LLM/agent application source for Unbounded Consumption / denial-of-wallet anti-patterns

Inputs: path (required), exclude, include, maxFiles.

unbounded_consumption_auditor__scan_fileB

Scan a single file for Unbounded Consumption / denial-of-wallet anti-patterns

Inputs: path (required).

unbounded_consumption_auditor__scan_textB

Scan LLM/agent application code for Unbounded Consumption ("denial of wallet") anti-patterns from OWASP LLM Top 10 2026's #6 category: LLM calls with no output token limit, hand-rolled HTTP calls to an LLM endpoint with no timeout, agent tool-calling or retry loops with no iteration cap, framework safety limits (LangChain max_iterations, openai-agents max_turns) explicitly disabled, and MCP tool handlers that make billable calls with no visible rate limiting.

Inputs: content (required), label.

vector_store_scanner__list_patternsA

List the vector-store types this scanner can fingerprint, and what unauthenticated-access checks it runs for each

Inputs: no named parameters.

vector_store_scanner__scan_endpointA

Probe a vector-database (or vector-index-capable) endpoint for unauthenticated exposure — Weaviate, Qdrant, Chroma, Elasticsearch/OpenSearch (HTTP fingerprinting, escalating from instance info → collection/schema listing → actual stored data), Redis (RESP PING without AUTH), and Postgres/pgvector (wire-protocol SSLRequest + StartupMessage handshake, no real credentials sent). Read-only — never writes or authenticates with real credentials.

Inputs: host (required), tls, port, type, +1 more.

vulnerability_scanner__get_findingsB

Get vulnerability findings from a GuardBee scan with optional severity filter. Includes title, description, and remediation recommendation per finding.

Inputs: page, scanId, brandId, pageSize, +1 more.

vulnerability_scanner__get_scan_statusB

Get the current status and summary of a GuardBee scan by ID

Inputs: scanId (required).

vulnerability_scanner__list_scansC

List recent GuardBee scans in your workspace

Inputs: page, status, brandId, pageSize.

vulnerability_scanner__scan_and_reportA

Run a full GuardBee scan and immediately return all critical and high findings with remediation guidance. Best for quick security assessments.

Inputs: url (required), scenario.

vulnerability_scanner__start_scanB

Start a GuardBee security scan on a URL. Returns a scan ID you can use to check status and get findings.

Inputs: url, wait, brandId, scenario.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 130 tools

    Disambiguation3/5

    The module prefixes and detailed descriptions help distinguish scanners, but the set contains many overlapping scan_text/scan_file/scan_directory/list_patterns families plus multiple meta-orchestrators (owasp_scan_path, vulnerability_scanner, threat_rules). An agent must read descriptions carefully to choose between secret/prompt-leak/document scanners, OWASP meta-scans and individual auditors.

    Naming Consistency4/5

    Names are consistently snake_case and mostly use a predictable module__verb_noun pattern. Minor deviations exist, such as gateway_status, scan_and_report, and baseline_server/check_server, but overall the convention is clear.

    Tool Count1/5

    130 tools is far beyond a well-scoped set and creates a severe selection burden for an agent. Although many tools map to distinct security domains, the repeated action variants across dozens of modules make the surface extremely heavy.

    Completeness4/5

    Coverage is very broad, spanning OWASP MCP categories, secrets, dependencies, TLS/DNS, models, vector stores, compliance, red-teaming, and runtime gateway auditing. Some lifecycle gaps remain, such as baseline deletion/update and gateway policy mutation, but the core scanning and reporting surface is extensive.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Control-plane proxy that sits in front of MCP servers, enforcing per-identity policy (YAML/OPA/Cedar), budget limits, and an audit trail on every call. Includes real-time anomaly detection that auto-blocks a compromised agent without a human in the loop.
      17
      Apache 2.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enforces deterministic security policies on Model Context Protocol traffic between agents and remote MCP servers, including request validation, signed human approval, response-side credential blocking, prompt-injection flagging, and privacy-minimized auditing.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables secure MCP traffic by filtering threats with a 3-stage detection pipeline, applying RBAC policies, and redacting sensitive data in real-time via an SSE-inspecting proxy.
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents and MCP clients to safely access upstream MCP servers through centralized policy enforcement, including allow/deny/approval decisions, schema pinning, circuit breakers, and audit logging.
      MIT