Comparison

Keelix vs Cisco MCP Scanner

Short answer: run both — different surfaces. Cisco MCP Scanner audits MCP server definitions and source code for supply-chain threats before deployment. Keelix grades the live deployed box — host config, internet exposure, and the AI agents actually running on it — and rolls everything into a 0–100 posture score. One catches what's in the server; the other checks how the server is deployed.

Different questions, different surfaces

Side by side

KeelixCisco MCP Scanner
Primary scopeLive deployed box: host config, containers, internet exposure, AI-agent/MCP postureMCP server tools, prompts, resources, and source code — analyzed in isolation
What it analyzesRunning deployment context — auto-approval state, live host config, open ports, container postureMCP server definitions and code — YARA rules, LLM-as-judge, behavioral static analysis, CVEs in dependencies
AI-agent / MCP posture✓ Auto-approval, plaintext secrets in MCP config, unvetted servers, lethal trifecta — on the live box✓ Tool poisoning, prompt injection, malicious code patterns, mismatches between tool description and implementation
Host config & exposure✓ 93 CIS/SOC 2/ISO 27001 checks + outside-in exposure (what's reachable from internet)✗ Not scanned
Supply-chain / source analysisChecks for unvetted/unknown MCP server publishers✓ Deep behavioral code analysis, VirusTotal integration, CVE/PYSEC/GHSA in Python deps
Scanning enginesDeterministic posture checks (CIS/SOC 2/ISO 27001 mapped) + exposure scanYARA rules + LLM-as-judge + Cisco AI Defense API (can use independently or combined)
Output0–100 posture score + per-finding report, JSON/HTML/scan recordSecurity findings list with severity; CLI, REST API, or SDK output
CI gate mechanismExit code on posture threshold (e.g. score ≥ 80)Exit code on findings; also supports offline scanning of pre-generated JSON files
Compliance evidence✓ SOC 2, ISO 27001, CIS Docker Benchmark — shareable audit records✗ Not generated
Requires external API / accountNo — runs entirely locally; CLI is anonymousOptional — Cisco AI Defense API engine requires a key; YARA + LLM engines run standalone
Local-first / zero telemetry✓ Nothing leaves your box; secrets redacted at boundaryDepends on engine: YARA/LLM run locally; Cisco AI Defense engine calls Cisco API
LicenseApache-2.0Apache-2.0
PriceCLI free forever; Keelix Cloud (history, alerts, teams) — see /pricingFree (Apache-2.0); Cisco AI Defense API engine may require a commercial key

Where Cisco MCP Scanner excels: supply-chain and source analysis

The deployment context Cisco MCP Scanner cannot reach

Recommended setup: audit the server with Cisco, gate the deployment with Keelix

Example pipeline (GitHub Actions)
# Build/review stage — Cisco MCP Scanner (supply-chain audit)
- name: Cisco MCP Scanner
  run: |
    pip install cisco-ai-mcp-scanner
    mcp-scanner --analyzers yara,llm --format summary config --config-path mcp-servers.json

# Deploy-to-staging stage — Keelix posture gate (live box)
- name: Keelix posture gate
  uses: jakelamon/keelix@v0.1.0
  with:
    threshold: 80
    fail-on: mcp-auto-approval,mcp-secrets

Cisco MCP Scanner catches threats in the server definition. Keelix confirms the deployed box is fit to run it.

Frequently asked

What does Cisco MCP Scanner actually scan?
Cisco MCP Scanner focuses exclusively on MCP server definitions: it analyzes tools, prompts, resources, server instructions, and source code for supply-chain threats. Its three engines — YARA rules, LLM-as-judge, and the Cisco AI Defense API — look for prompt injection patterns, mismatches between a tool's description and its implementation, malicious code behavior, and known CVEs in Python dependencies. It does not scan Docker host configuration, network exposure, or whether auto-approval is active on a deployed box. [cisco-ai-defense/mcp-scanner ↗]
Should I use Keelix or Cisco MCP Scanner?
Both, at different stages and surfaces. Cisco MCP Scanner is the right tool for supply-chain analysis of an MCP server's source code and tool definitions — before it ships. Keelix is the right tool at deploy time: it scans the live box for host config, internet exposure, and the actual posture of every AI agent running on it, including whether auto-approval is active and whether secrets are sitting in plaintext in MCP config files. The two tools are complementary: Cisco catches what's in the server; Keelix checks how the server is deployed.
Can Cisco MCP Scanner check if my deployed box is exposed to the internet?
No. Cisco MCP Scanner analyzes MCP server definitions and source code in isolation. It cannot tell you whether port 2375 is reachable from the open internet because Docker bypassed UFW, whether your Claude Code config contains a plaintext API key, or whether an MCP server running on your box has auto-approval active. Those are deployment-context findings that require scanning the live running environment — which is exactly what Keelix does.
Does Cisco MCP Scanner require a Cisco AI Defense account?
Not necessarily. The YARA and LLM-as-judge engines run fully locally without any external account. The Cisco AI Defense API engine — which adds Cisco's threat intelligence — requires a separate API key. You can run useful scans with just the open-source engines, but the full three-engine analysis requires a Cisco AI Defense credential. [cisco-ai-defense/mcp-scanner ↗]
What is the lethal trifecta and does Cisco MCP Scanner detect it?
The lethal trifecta is a risk pattern coined by Simon Willison: an AI agent simultaneously has access to private data, is exposed to untrusted input, and has a reachable exfiltration channel. Cisco MCP Scanner can detect individual risk indicators in tool descriptions and source code. Keelix specifically checks whether all three legs are present together on a deployed box — the live auto-approval state, the plaintext secrets reachable on the host, and the open exfiltration channels — and scores the combined risk as a whole-box posture finding. [Lethal Trifecta explainer ↗]

Add the deployment-context gate Cisco MCP Scanner cannot provide.

Free, local-first, Apache-2.0. No account. Nothing leaves your box. Run it after Cisco MCP Scanner clears the server definition.

operator@host — keelix
# install — free & open source (Apache-2.0)
$ curl -fsSL https://keelix.dev/install.sh | sh
$ keelix scan