Bawbel Scanner logo

Bawbel Scanner

Scans MCP server cards and skill files for AVE vulnerabilities, conformance issues, toxic flows, secrets, and file drift.

Install Bawbel Scanner

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "bawbel-scanner-2": {
      "command": "uvx",
      "args": [
        "bawbel-scanner"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx bawbel-scanner

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 11d ago.

Overview

Bawbel Scanner MCP server analyzes skill files and MCP server-card URLs for AVE vulnerabilities without starting the scanned MCP server. It combines pattern, YARA, Semgrep, optional LLM, and optional Docker-based analysis, then produces findings, risk scores, and OWASP AIVSS v0.8 scores. Use it before production to inspect skills, review server manifests, detect credential exposure, assess delegation chains, or check pinned files for changes.

Use cases

  • Scan skill directories before deployment
  • Inspect MCP server cards without starting servers
  • Find hardcoded credentials in agent files
  • Check delegation chains for unsafe combinations
  • Detect drift in pinned skill files

Key features

  • AVE vulnerability detection
  • OWASP AIVSS v0.8 scoring
  • Toxic-flow analysis
  • MCP manifest conformance grading
  • SARIF, JSON, and text output
  • Skill-file pinning and drift checks

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

12/12 checks healthy over the last 58d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12h ago via OSV.dev · bawbel-scanner (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars12Stargazers on the source repository.
Last commit14d agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.

How Bawbel Scanner works

What Bawbel Scanner MCP server does

Bawbel Scanner MCP server evaluates MCP-related files and metadata before deployment. Its primary inputs are skill files, directories of skills, and MCP server-card URLs. The scanner looks for AVE vulnerabilities, including exposed credentials, unsafe delegation chains, and other patterns covered by its detection rules. It can also grade an MCP server manifest against the MCP specification on an A+ to F scale.

The scanner is designed for offline inspection of a target rather than execution of the target MCP server. The ssc and scan-server-card commands fetch a server card and inspect it without starting the server. Output can include active findings, suppressed or accepted findings, toxic flows, a risk score, and an OWASP AIVSS v0.8 score.

How it works

Scanning begins with preprocessing. Code fences are stripped from consideration, and nearby negation such as warnings or examples can affect detection. The built-in pattern engine uses 40 regular-expression rules and runs without additional dependencies. Optional YARA and Semgrep engines add binary or behavioral matching and structural, multiline analysis.

An optional LLM engine performs semantic analysis through LiteLLM and can help identify synonym-based attacks. An optional sandbox engine performs dynamic behavioral analysis in Docker when enabled. These optional components require separate installation or configuration; the base pattern engine remains available without them.

Results from the engines are merged and deduplicated by AVE identifier and line. Findings are then mapped to capability tags and checked against 12 built-in toxic-flow definitions. This allows the scanner to identify combinations such as credential reading followed by data exfiltration, rather than treating each finding only in isolation.

Setup and configuration

Install the package with its optional components using:

Terminal
pip install "bawbel-scanner[all]"

Initialize a project with bawbel init. This generates a .bawbelignore file and bawbel.yml. The scanner also supports inline and block suppression comments, gitignore-style .bawbelignore patterns, and justified per-finding acceptance with a reason, reviewer, and optional expiry.

The LLM engine requires the llm extra and an API key. The sandbox engine is enabled with BAWBEL_SANDBOX_ENABLED=true and uses Docker.

Tools and capabilities

Bawbel Scanner MCP server provides command-line operations for:

  • Scanning a file or directory, with recursive, JSON, SARIF, severity-failure, no-ignore, and watch options.
  • Generating a remediation report for a component.
  • Checking only hardcoded credentials and secret exposure with creds.
  • Checking unsafe agent delegation chains with chain.
  • Fetching and scanning an MCP server card with ssc or scan-server-card.
  • Grading MCP manifest conformance with conform or scan-conformance.
  • Accepting findings as false positives or accepted risks with tracked suppression details.
  • Hashing skill files with pin and checking later for drift with check-pins or cp.

The Bawbel Scanner MCP server can emit text, JSON, or SARIF for standard scans. Findings carry confidence values and are assigned high, medium, or low confidence bands for display.

Limitations and notes

The scanner does not start scanned MCP servers. Its results depend on the enabled detection engines: YARA, Semgrep, LLM analysis, and sandbox analysis are optional additions to the base pattern engine. A server-card scan evaluates the fetched manifest or card rather than the running behavior of the remote server.

Suppression is available, but accepted findings remain represented in the scan result. Pinning detects changes against a saved .bawbel-pins.json state; it does not establish that a changed file is malicious. The project targets Python 3.10 or newer and is licensed under Apache 2.0.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Bawbel Scanner

Bawbel Scanner is an MCP server that connects to skill files and MCP server-card URLs for security and conformance checks. Its main tools are scanning, reporting, focused credential and delegation-chain checks, server-card scanning, conformance grading, pin checks, and suppression management. It does not start scanned MCP servers.

Install it with `pip install "bawbel-scanner[all]"`. The package targets Python 3.10 or newer.

Run `bawbel ssc <url>` to fetch and scan an MCP server card without starting the server. `bawbel scan-server-card <url>` is an alias for the same operation, so the check evaluates the published card or manifest rather than live server behavior.

Run `bawbel scan <path>` for a skill file or directory. Add `--recursive` for nested content, or choose `--format text`, `json`, or `sarif` for the output format. Use `bawbel report <path>` when you also need remediation guidance for findings.

Yes. Run `bawbel creds <path>` for a focused check of hardcoded credentials and secret exposure. A full `bawbel scan <path>` also evaluates the target against the scanner’s broader AVE detection rules.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewBawbel Scanner AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/bawbel-scanner-2?style=directory)](https://allmcps.com/mcp/bawbel-scanner-2)
HTML Embed
<a href="https://allmcps.com/mcp/bawbel-scanner-2"><img src="https://allmcps.com/api/badge/bawbel-scanner-2?style=directory" alt="Bawbel Scanner on AllMCPs" /></a>