Honeypot MCP Server
Provides read-only tools to query attacker activity data (sessions, IPs, credentials, commands, malware downloads) from a PostgreSQL database populated by a self-hosted honeypot stack.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Honeypot MCP Servershow me the top attackers from the last 7 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Honeypot MCP Server
A small Model Context Protocol server that exposes my live honeypot's threat-intelligence database to an MCP client (Claude Desktop / Claude Code) as read-only tools — so I can investigate attacker activity by just asking, instead of writing SQL.
The data comes from a self-hosted honeypot stack (Cowrie SSH/Telnet + a custom HTTP honeypot) writing into PostgreSQL — currently ~530k attack sessions, ~33k login attempts, and thousands of captured attacker commands and file-staging events.
Tools
Tool | What it returns |
| Totals (sessions, unique IPs, logins, commands, file events) + breakdown by honeypot/protocol |
| Busiest source IPs with country + ASN org |
| Most-tried username/password pairs |
| Commands attackers ran post-login (TTPs) |
| Sessions grouped by source country |
| Captured file/malware staging (filename, URL, sha256) |
| Full profile for one IP: sessions, geo/ASN, creds tried, commands, ban status |
Safety
Read-only by construction. Every connection opens a read-only transaction and every query is a
SELECT. No tool mutates data.The IP passed to
lookup_ipis validated withipaddressand bound as a query parameter — never string-formatted into SQL.Recommended: point
HONEYPOT_DATABASE_URLat a DB role grantedSELECTonly.
Setup
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then edit with your connection string
export HONEYPOT_DATABASE_URL="postgresql://user:pass@127.0.0.1:5433/honeypot"
python server.py selftest # verify DB connectivity
python server.py # run as an MCP (stdio) serverConnecting a client
Claude Code (claude mcp add):
claude mcp add honeypot -- bash -lc 'cd /path/to/honeypot-mcp && \
HONEYPOT_DATABASE_URL="postgresql://user:pass@127.0.0.1:5433/honeypot" \
.venv/bin/python server.py'Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"honeypot": {
"command": "/path/to/honeypot-mcp/.venv/bin/python",
"args": ["/path/to/honeypot-mcp/server.py"],
"env": { "HONEYPOT_DATABASE_URL": "postgresql://user:pass@127.0.0.1:5433/honeypot" }
}
}
}The DB lives on my server (bound to localhost), so I either run this server there, or launch it over SSH stdio from my laptop:
{ "mcpServers": { "honeypot": {
"command": "ssh",
"args": ["ubuntu", "cd honeypot-mcp && .venv/bin/python server.py"]
}}}This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FradleyJ/honeypot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server