Skip to content
Conduit

mcp server

HoneyPot-MCP

MCP server that deploys 25 honeypot protocol engines, honeytokens and canary files, and turns real attacks into ATT&CK-mapped telemetry you analyse by talking to an AI client. Run for 116 h on the pub

tohudgins/HoneyPot-MCPcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "honeypot-mcp": {
      "command": "uvx",
      "args": [
        "honeypot-mcp"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 21, 2026

HoneyPot MCP

CI License: MIT Python

An MCP server that deploys honeypots and honeytokens, and turns what attackers do into telemetry you analyse by talking to an AI client.

> Deploy an SSH honeypot on port 2222 and an HTTP one on 8080.
> Anything critical in the last hour?
> Reconstruct what <ip> did across all my honeypots.
> Export an iptables blocklist for anyone with 10+ hits.

What it is

HoneyPot MCP is a single server that runs decoy services and decoy credentials, records everything that touches them, and exposes the result through the Model Context Protocol. Claude Desktop, Claude Code or any other MCP client becomes the console: you deploy sensors, triage alerts, reconstruct an attacker's session and export blocklists in plain language. The engines capture the artefacts (credentials, commands, dropped files, ransom notes, captured password hashes) and the tools answer questions about them.

What you get

25 protocol enginesRemote access (SSH, Telnet, RDP, VNC), databases (MySQL, PostgreSQL, MSSQL, MongoDB, Redis, Elasticsearch, Memcached), web and APIs (HTTP/S, Docker API, Kubernetes API), mail (SMTP, IMAP, POP3), file sharing (SMB, FTP, NFS, rsync), VoIP and directory (SIP, LDAP, SNMP, DNS), tested against real clients and scanners
Honeytokens and canary filesCloud keys, credential pairs, canary URLs, document trackers and more; a planted credential used on any honeypot escalates straight to CRITICAL
83 MCP tools in three rolesViewer, operator and admin, with live-provisioned per-person API keys and an audit log of every control-plane action
AnalysisMITRE ATT&CK mapping (with a tool that measures its accuracy against blind labels), attacker profiles and risk scores, cross-honeypot timelines, campaign correlation, what attackers did (credentials, commands, dropped files, SSH clients, SIP dialling), who used the bait, packet captures replayed through Suricata or Zeek, YARA scanning of captured files, reports and STIX export, all as tools
DashboardsFive provisioned Grafana dashboards (started by one tool call, on loopback only) and a built-in read-only operations console
AlertsSlack, Teams, email and SIEM delivery (Splunk, Elastic, CEF, syslog, Loki, Datadog)
Threat intelligenceOptional VirusTotal, AbuseIPDB, GeoIP, GreyNoise, abuse.ch, OTX and Shodan InternetDB enrichment

Per-tool and per-engine detail is in docs/REFERENCE.md.

How it works

flowchart LR
    ENG["Protocol engines<br/>and honeytokens"] --> PIPE["Event pipeline<br/>suppression, credential match,<br/>flood guard, batched writes"]
    PIPE --> DB[("Storage<br/>SQLite / PostgreSQL<br/>with hourly rollups")]
    DB --> MCP["MCP tools<br/>(AI client)"]
    DB --> DASH["Grafana and<br/>operations console"]
    DB --> ALERT["Alerts<br/>Slack, Teams, email, SIEM"]

Engines never write to the database directly: every event passes one ingestion path that applies suppression rules, matches planted credentials and caps floods before a single flusher writes it in batches. Statistics are served from hourly rollups rather than the raw alert table, so the cost of an answer does not grow with the size of the database. Tool responses are shaped for an AI context window: list tools return digests, one tool expands a single alert, and bulk output goes to disk. CLAUDE.md documents the pipeline and the plugin patterns.

Applied on a real VPS

The project was run on a public-IP VPS for about five days (116 hours). It stored about 17.7 million events from more than 3,300 source addresses across the 23 engine types deployed (SMTP and DNS were deliberately left off a public address). The traffic was what the internet sends to open services: brute-forcing, scanning, exploit attempts, and a planted credential being replayed against another sensor from outside the host. Every deployed engine was also attacked with real clients from outside, and the headline figures were cross-checked with an independent set of raw-SQL queries. The full write-up, with method and limits, is in docs/RESULTS.md.

Get started

A two-minute demo stack needs Docker and one variable (the Grafana admin password, which has no default), no API keys and no MCP client:

git clone https://github.com/tohudgins/HoneyPot-MCP.git
cd HoneyPot-MCP/docker
export GRAFANA_ADMIN_PASSWORD="$(openssl rand -hex 16)"   # required; echo it to log in
docker compose up -d --build

# Seed ~5,000 synthetic attack events across the last 24h
docker compose exec honeypot-mcp python scripts/seed_demo_data.py

open http://localhost:8090   # operations console
open http://localhost:3000   # Grafana: user admin, the password above

This starts the server, a live Cowrie SSH honeypot on :2222, an HTTP honeypot on :8080, Prometheus and the Grafana dashboards. SSH into localhost:2222 with any password and your session appears in the console within seconds.

Documentation

DocumentWhat it covers
docs/README.mdIndex of the documentation
docs/REFERENCE.mdCapabilities, install, run modes, every MCP tool, SIEM delivery, packet capture
docs/DEPLOY.mdVPS deployment, go-live checklist, backups, offline analysis
docs/HARDENING.mdHost hardening: firewall, Docker guard, sandboxed services
docs/RESULTS.mdWhat the 116-hour run captured and found
docs/FIELD_TEST.mdThe scripts that attack every engine and check the answers
KNOWN_LIMITATIONS.mdWhat works, what does not, and why
CHANGELOG.mdWhat changed in each release
CONTRIBUTING.mdDevelopment setup and the non-obvious rules
SECURITY.mdPrivate vulnerability reporting

Responsible use

Deploy honeypots only on infrastructure you own and are allowed to expose. A honeypot deliberately attracts hostile traffic and stores the malware and credentials it is sent, so treat the host as untrusted and follow docs/HARDENING.md before putting one on a public address. The software is provided as is, without warranty.

Not verified: GreyNoise enrichment and the pfSense, Cloudflare and AWS WAF push tools were not run against real services.

License

MIT

↑↓ navigate openesc close