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
Cisco MCP Scanner answers: “Does this MCP server's source code or tool definitions contain supply-chain threats, malicious patterns, or prompt injection vulnerabilities?” It connects to MCP servers — or scans offline JSON — and runs three complementary engines: YARA rules for pattern-based threat detection, an LLM-as-judge for semantic analysis of whether a tool's implementation matches its stated description, and the Cisco AI Defense API for threat intelligence. It also checks Python dependencies for known CVEs and vulnerabilities. Apache-2.0, genuinely capable at supply-chain analysis, and the right tool for auditing an MCP server before it reaches production.
Keelix answers: “Is this deployed box fit to ship — including the AI agents and MCP servers running on it right now?” It scans from outside the box in, audits host config against 93 CIS/SOC 2/ISO 27001 controls, checks what ports are actually reachable from the internet, and grades every AI agent and MCP server on the machine for auto-approval state, plaintext secrets in config files, and the lethal trifecta. The result is a single 0–100 score you can gate CI on — with no account required and nothing leaving your box.
The gap between the two tools is deployment context. Cisco MCP Scanner can tell you an MCP server's tool implementations look suspicious in isolation. It cannot tell you whether auto-approval is actually active on the box where that server is running, or whether that box has port 2375 reachable from the open internet. That gap is exactly what Keelix closes.
Side by side
| Keelix | Cisco MCP Scanner | |
|---|---|---|
| Primary scope | Live deployed box: host config, containers, internet exposure, AI-agent/MCP posture | MCP server tools, prompts, resources, and source code — analyzed in isolation |
| What it analyzes | Running deployment context — auto-approval state, live host config, open ports, container posture | MCP 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 analysis | Checks for unvetted/unknown MCP server publishers | ✓ Deep behavioral code analysis, VirusTotal integration, CVE/PYSEC/GHSA in Python deps |
| Scanning engines | Deterministic posture checks (CIS/SOC 2/ISO 27001 mapped) + exposure scan | YARA rules + LLM-as-judge + Cisco AI Defense API (can use independently or combined) |
| Output | 0–100 posture score + per-finding report, JSON/HTML/scan record | Security findings list with severity; CLI, REST API, or SDK output |
| CI gate mechanism | Exit 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 / account | No — runs entirely locally; CLI is anonymous | Optional — Cisco AI Defense API engine requires a key; YARA + LLM engines run standalone |
| Local-first / zero telemetry | ✓ Nothing leaves your box; secrets redacted at boundary | Depends on engine: YARA/LLM run locally; Cisco AI Defense engine calls Cisco API |
| License | Apache-2.0 | Apache-2.0 |
| Price | CLI free forever; Keelix Cloud (history, alerts, teams) — see /pricing | Free (Apache-2.0); Cisco AI Defense API engine may require a commercial key |
Where Cisco MCP Scanner excels: supply-chain and source analysis
Cisco MCP Scanner was built for a problem that is genuinely hard: detecting malicious intent in MCP server code before it reaches production. Its behavioral analysis engine is particularly capable — it tracks data flow across files, builds control-flow graphs, runs taint analysis, and flags mismatches between what a tool claims to do in its description and what the code actually does. That kind of static analysis catches a class of threats that live-deployment scanning fundamentally cannot: a server that looks benign until it silently exfiltrates data on the twenty-third call.
The three-engine architecture also gives teams flexibility. The YARA and LLM-as-judge engines run fully locally with no external credentials. The Cisco AI Defense API engine adds Cisco's threat intelligence layer for teams that have the account. You can run useful supply-chain analysis without touching Cisco's cloud at all — which matters in air-gapped or highly regulated environments.
For teams building MCP servers, consuming third-party MCP servers, or evaluating whether an external tool is safe to add to an agent's allowed list, Cisco MCP Scanner is the right first step.
The deployment context Cisco MCP Scanner cannot reach
After Cisco MCP Scanner clears an MCP server's definitions and code, there are deployment-context questions that supply-chain analysis cannot answer:
- Is the MCP server on this box configured with auto-approval active? A clean supply-chain verdict with auto-approval enabled means any prompt injection that slips through turns into unconstrained tool execution.
- Does the Claude Code or Cursor config file on this host contain a plaintext Anthropic API key or database password? Secrets in MCP config files are a deployment-time exposure that no amount of source-code analysis will surface.
- Is this box missing the firewall controls that prevent Docker from silently binding containers to
0.0.0.0and bypassing UFW? Port 2375 reachable from the open internet is a finding that lives at the infrastructure layer, not the server definition layer. - Does the deployed agent have all three legs of the lethal trifecta active simultaneously — private data access, untrusted input exposure, and an open exfiltration channel? The combined deployment-context risk is only visible on the live box.
None of these are source-code or supply-chain issues. All of them are deployment-context issues. They show up at runtime, on the box, in the config that was provisioned after the image was built and before the server definitions were audited. That is exactly what Keelix scans.
Recommended setup: audit the server with Cisco, gate the deployment with Keelix
A practical pipeline for teams running AI agents on self-hosted infrastructure: Cisco MCP Scanner runs at development or code-review time to audit MCP server source code and tool definitions for supply-chain threats — before the server is deployed anywhere. Keelix runs in the deploy-to-staging stage to confirm the live box — host config, exposure, and every agent running on it — meets the posture threshold before promote-to-production.
# 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-secretsCisco 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 ↗]
Related
- Keelix AI/MCP security — the deployment surface Cisco MCP Scanner does not grade
- Agent auto-approval — the silent risk multiplier at deploy time
- Plaintext secrets in MCP config — blast radius and remediation
- The Lethal Trifecta — what it is and how Keelix detects it
- Keelix vs Snyk agent-scan — shift-left MCP analysis vs. whole-box posture
- Keelix vs Trivy — complementary tools, different surfaces
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.