Skip to content

Godatcode/Praesidio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MCP Security Rust OWASP MIT License

πŸ›‘οΈ Praesidio

The open-source security platform for MCP servers and AI agents.
Runtime firewall Β· LLM-powered analysis Β· Behavioral anomaly detection Β· Live dashboard
Fully offline. No API keys required. No data leaves your machine.

Quick Start Β· Features Β· Dashboard Β· OWASP Coverage Β· Honeypot Β· Docs


The problem

30+ CVEs against MCP servers in 60 days. 437,000 compromised downloads. Tool poisoning attacks that exfiltrate your SSH keys, WhatsApp history, and private repos β€” all invisible to the user.

Existing solutions require external API calls, leak your tool descriptions to third parties, or only do static scanning. None provide runtime protection.

Praesidio is different: a Rust-native security platform that sits between your MCP client and servers, providing real-time defense β€” entirely offline, with optional LLM-powered deep analysis.

Quick Start

# Install
cargo install praesidio

# Scan all your MCP configs for vulnerabilities
praesidio scan

# Start the runtime proxy (intercepts + filters all MCP traffic)
praesidio proxy

# Launch the security dashboard
praesidio dashboard

# Check if any tools have been tampered with
praesidio pin verify

# Deploy a honeypot to catch attackers
praesidio honeypot start

Example Output

πŸ›‘οΈ  Praesidio v0.1.0 β€” Scanning MCP configurations...

πŸ“‚ Found 3 MCP configs:
   βœ“ Claude Desktop    (~/.config/Claude/claude_desktop_config.json)
   βœ“ Cursor            (~/.cursor/mcp.json)
   βœ“ Claude Code       (./.claude/settings.json)

πŸ” Scanning 7 servers, 23 tools...

🚨 CRITICAL  Tool poisoning detected
   Server: sketchy-math-server
   Tool:   add
   Risk:   Hidden <IMPORTANT> tag with instructions to exfiltrate ~/.ssh/id_rsa
   LLM:    Confirmed malicious (confidence: 0.97)
   Action: BLOCKED

🚨 CRITICAL  Credential leak in output
   Server: custom-api
   Tool:   query
   Risk:   Response contains AWS access key (AKIA...)
   Action: BLOCKED β€” output redacted

⚠️  WARNING   Behavioral anomaly
   Server: filesystem
   Tool:   read_file
   Risk:   Output size 47KB (baseline avg: 2.1KB, z-score: 4.2)
   Action: Flagged for review

βœ… 5 servers, 20 tools passed all checks

πŸ“Š OWASP Compliance: MCP Top 10 (9/10) Β· Agentic Top 10 (8/10)
πŸ“Œ Tool pins: 23 tools pinned (0 changes detected)
🍯 Honeypot: 0 attacks in last 24h

Features

πŸ”₯ Core Firewall

  • Tool poisoning detection β€” Hidden instruction tags, suspicious keywords, sensitive path references
  • Unicode analysis β€” Zero-width characters, bidirectional overrides, homoglyph attacks
  • Credential leak detection β€” AWS keys, GitHub tokens, SSH keys, JWTs, .env contents
  • Tool pinning β€” SHA-256 schema hashing detects rug-pull attacks
  • Permission engine β€” Per-server read/write scoping, tool allowlists, rate limiting

🧠 LLM-Powered Analysis

  • Provider cascade: Local Ollama β†’ Claude API β†’ OpenAI β†’ heuristic fallback
  • Deep tool analysis β€” Semantic intent classification beyond pattern matching
  • Output scanning β€” Detects injection payloads and encoded exfiltration that regex misses
  • Behavioral intent β€” Classifies anomalies as benign changes vs active attacks
  • Fully optional β€” Works perfectly with heuristics only, LLM adds accuracy

πŸ“Š Behavioral Fingerprinting

  • Per-tool profiling β€” Learns what "normal" looks like (output size, entropy, timing, frequency)
  • Statistical anomaly detection β€” Z-score composite across 6 feature dimensions
  • Online learning β€” Profiles update continuously, no training data needed
  • Cold start handling β€” Reduced sensitivity during learning period

🌐 Community Threat Intelligence

  • Crowdsourced threat feed β€” Known-bad tool signatures, CVE mappings
  • Server trust registry β€” npm-audit style trust scores for MCP servers
  • Opt-in sharing β€” Only anonymized hashes, never your data
  • Offline-first β€” Feed syncs periodically, works fully offline between syncs

πŸ–₯️ Live Security Dashboard

  • Real-time event feed β€” WebSocket-powered live view of all security events
  • Server topology β€” Visual map of connected servers with trust scores
  • Tool inspector β€” Deep-dive into any tool's description, LLM analysis, behavior profile
  • OWASP scorecard β€” Compliance status for all 20 OWASP risks
  • Audit trail β€” Searchable, filterable, exportable log of every event

🍯 Honeypot MCP Server

  • Trap tools β€” Fake credentials, fake DB, fake files, fake email sender
  • Attack classification β€” Credential harvesting, SQL injection, path traversal, exfiltration
  • Canary data β€” Plausible but traceable fake secrets
  • Deploy alongside real servers β€” Detect probing before it reaches production

OWASP Coverage

Praesidio maps to all 20 risks across both OWASP MCP Top 10 and OWASP Agentic Top 10:

OWASP MCP Top 10 Status Module
MCP01: Token mismanagement βœ… Credential leak detector
MCP02: Tool poisoning βœ… Scanner + LLM analyzer
MCP03: Privilege escalation βœ… Permission engine
MCP04: Supply chain attacks βœ… Registry + threat feed
MCP05: Command injection βœ… Output filter + LLM
MCP06: Context over-sharing βœ… Behavioral fingerprinting
MCP07: Insufficient auth βœ… Permission enforcer
MCP08: Insufficient logging βœ… Audit logger + dashboard
MCP09: Shadow MCP servers βœ… Config discovery + honeypot
MCP10: Covert channel abuse βœ… Exfil detector + behavior
OWASP Agentic Top 10 Status Module
ASI01: Agent goal hijacking βœ… LLM intent classifier
ASI02: Tool/function misuse βœ… Permissions + behavior
ASI03: Insecure agent memory βœ… Output filter + LLM
ASI04: Prompt injection βœ… Scanner + LLM + behavior
ASI05: Supply chain vuln βœ… Registry + feed + pinner
ASI06: Code execution βœ… Permission scope
ASI07: Identity spoofing βœ… Honeypot detection
ASI08: Excessive permissions βœ… Least-privilege enforcer
ASI09: Insufficient monitoring βœ… Dashboard + audit
ASI10: Multi-agent trust βœ… Cross-server analysis

Configuration

# praesidio.toml

[global]
block_on_critical = true

[llm]
providers = ["local", "anthropic", "openai"]  # Cascade order
trigger = "suspicious"                          # Only use LLM when heuristics flag

[llm.local]
model = "llama3.2:3b"                          # Fast + free

[behavior]
enabled = true
anomaly_warn_threshold = 0.6
anomaly_block_threshold = 0.85

[servers.filesystem]
scope = "read-only"

[servers.github]
scope = "read-write"
blocked_tools = ["delete_repository"]

[servers."*"]
scope = "read-only"

How it works

MCP Client (Claude Desktop, Cursor, Claude Code)
        β”‚
        β–Ό
β”Œβ”€β”€β”€ Praesidio Proxy ────────────────────────┐
β”‚                                            β”‚
β”‚  Inbound:   Scanner β†’ Unicode β†’ Pinner     β”‚
β”‚  LLM:       Deep analysis (if suspicious)  β”‚
β”‚  Outbound:  Credential β†’ Exfil β†’ Injection β”‚
β”‚  Behavior:  Anomaly scoring (per-tool)     β”‚
β”‚  Enforce:   Permissions β†’ Rate limits      β”‚
β”‚  Log:       Audit trail β†’ Dashboard β†’ Feed β”‚
β”‚                                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚
        β–Ό
MCP Servers (only clean traffic passes through)

Comparison

Praesidio mcp-scan (Snyk) Onyx Security Strata
Fully offline βœ… ❌ ❌ ❌
Open source βœ… MIT βœ… ❌ ❌
Runtime proxy βœ… ⚠️ Beta βœ… βœ…
LLM analysis βœ… (local) ❌ (API) ? ❌
Behavioral detection βœ… ❌ βœ… ❌
Honeypot βœ… ❌ ❌ ❌
OWASP coverage 20/20 Partial Partial Partial
Web dashboard βœ… ❌ βœ… βœ…
Language Rust Python ? ?
Price Free Free tier Enterprise Enterprise

Contributing

Praesidio is MIT licensed and welcomes contributions. See CONTRIBUTING.md for guidelines.

Priority areas:

  • Detection rules for new attack patterns
  • Threat feed signatures
  • Dashboard UI improvements
  • Local LLM model benchmarks
  • Integration tests

Built by

Arka

If Praesidio helps protect your MCP setup, consider starring the repo ⭐

License

MIT β€” use it however you want.

About

A security layer for MCP (Model Context Protocol) servers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors