Comparison

Keelix vs Snyk

Short answer: run both — at different stages. Snyk's agent-scan checks MCP server definitions for risky patterns before they deploy. Keelix grades the live deployed box — host config, containers, internet exposure, and the AI agents actually running on it — and rolls everything into a 0–100 posture score. Different stages, different surfaces, no overlap.

Different questions at different stages

Side by side

KeelixSnyk agent-scan
Primary scopeLive deployed box: host config, containers, internet exposure, AI-agent/MCP postureLocal MCP server definitions + tool descriptions (pre-deploy, in isolation)
What it analyzesRunning deployment context — auto-approval state, live host config, open ports, container postureMCP server code and tool descriptions — prompt injection patterns, tool poisoning, hardcoded secrets
AI-agent / MCP posture✓ Auto-approval, plaintext secrets, unvetted servers, lethal trifecta — on the live box✓ Prompt injection, tool poisoning/shadowing, toxic flows, credential handling — in definitions
Host config & exposure✓ 93 CIS/SOC 2/ISO 27001 checks + outside-in exposure (what's reachable from internet)✗ Not scanned
CVE scanningHost OS packages (via posture checks)✓ Known CVEs in MCP server dependencies
Output0–100 posture score + per-finding report, JSON/HTML/scan recordFinding list with severity and issue codes, JSON output
CI gate mechanismExit code on posture threshold (e.g. score ≥ 80)Exit code on findings (block on high/critical severity)
Compliance evidence✓ SOC 2, ISO 27001, CIS Docker Benchmark — shareable audit records✗ Not generated
Requires account / tokenNo — runs entirely locally; CLI is anonymousYes — SNYK_TOKEN environment variable required
Local-first / zero telemetry✓ Nothing leaves your box; secrets redacted at boundaryValidates components against Snyk API; requires network call to Snyk Evo for background mode
LicenseApache-2.0Apache-2.0
PriceCLI free forever; Keelix Cloud (history, alerts, teams) — see /pricingFree tier available; Team/Enterprise plans from $25/month per developer

The token and trust question

Where Snyk agent-scan excels

The deployment context Snyk agent-scan cannot reach

Recommended setup: shift-left with Snyk, gate at deploy with Keelix

Example pipeline (GitHub Actions)
# Build stage — Snyk agent-scan (MCP definition analysis)
- name: Snyk agent-scan
  run: |
    npm install -g @snyk/agent-scan
    snyk-agent-scan
  env:
    SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

# 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

Snyk catches risky definitions before they ship. Keelix confirms the deployed box is fit to run them.

Frequently asked

Does Snyk agent-scan require a Snyk account?
Yes. Snyk agent-scan requires a SNYK_TOKEN environment variable set before running scans. You need a Snyk account (free tier available at snyk.io) and an API token from your account settings. Keelix requires no account, no token, and makes no network calls during a scan.
Can Snyk agent-scan check if my Docker host is exposed to the internet?
No. Snyk agent-scan analyzes MCP server definitions and tool descriptions in isolation — it does not scan host configuration, network exposure, running containers, or deployment context. It answers: 'does this MCP server definition contain risky patterns?' Keelix answers: 'is this deployed box safe to ship?' They operate on different surfaces.
Should I use Keelix or Snyk agent-scan?
Both, at different stages. Run Snyk agent-scan at development time to check an MCP server's tool descriptions for prompt injection patterns, tool poisoning, and known CVEs in its dependencies — before it merges. Run Keelix at deploy time to confirm the whole box — host config, containers, internet exposure, and the AI agents actually running on it — is fit to ship. Neither tool replaces the other.
Does Keelix detect prompt injection in MCP server tool descriptions?
Keelix grades MCP servers on the live deployed box — checking auto-approval state, plaintext secrets in MCP config, unvetted server publishers, and the lethal trifecta. For static analysis of tool descriptions for prompt injection patterns before deployment, Snyk agent-scan is the purpose-built tool. The two tools are complementary: Snyk catches bad definitions at dev time, Keelix grades the deployment context at ship time.
What is the lethal trifecta and does Snyk agent-scan detect it?
The lethal trifecta is a risk pattern introduced by Simon Willison: an AI agent simultaneously has access to private data, is exposed to untrusted input, and has a reachable exfiltration channel. Snyk agent-scan can detect individual risk indicators in tool descriptions; Keelix specifically checks whether all three legs are present together on a deployed box and scores the combined risk as a whole-box posture finding.

Add the deployment-context gate Snyk agent-scan cannot provide.

Free, local-first, Apache-2.0. No account. No token. Nothing leaves your box.

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