data-breach-detector

io.github.beepboop2025Published by GitHub account beepboop2025v0.3.2Updated Oct 24, 2026

Read-only breach intel, full history 2007-today: reports THAT an org was breached, never the data.

Overview

AI-generated overview

Read-only breach-intelligence server that lets an assistant check whether an organization appears in public breach and ransomware disclosures from 2007 to…

What you can do
  • Read recent breach and ransomware disclosures from public threat-intel feeds, newest first
  • Check whether a domain, company or brand appears in any historical disclosure, with mention counts and exposed data types
  • Search the full breach archive by keyword, year range, sector, data type or minimum accounts
  • Build one organization's incident chronology with repeat-victim assessment, and aggregate statistics per year, source, data type, threat level or ransomware actor
  • Classify a piece of security text you supply into a threat level with categories and a recommended action, using local analysis only
  • List the aggregated feeds with per-source freshness, staleness flags and last fetch errors
When to use it
Useful for security research, due diligence or vendor risk checks where an assistant needs to know whether an organization has been breached and how severe the exposure looks, without touching leaked records. Also handy for trend questions about two decades of breach history.
Requirements
Runs as a hosted remote endpoint or as a local process installed from PyPI with pip; the local server speaks stdio by default or streamable HTTP on localhost. No API keys, accounts or environment variables are declared, and the public feeds need no key.
Before you install
Results are metadata only: existence, timing, scale and exposed data types, never leaked records. Feed text comes from ransomware crews, so the server sanitizes and redacts feed-authored strings; treat returned entity and actor names as untrusted. The assess_threat tool is local-only and sends nothing over the network. Data is limited to public feeds, with no .onion access or arbitrary fetching.

Installation

In SourceWeft

  1. Open data-breach-detector in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.beepboop2025%2Fdata-breach-detector/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "data-breach-detector": {
      "type": "http",
      "url": "https://breach.seiche.info/mcp"
    }
  }
}

README

data-breach-detector

A read-only breach-intelligence MCP server. It answers "has this organization ever been breached, what's the recent breach news, what does two decades of breach history look like, how severe is this threat text" from public disclosure feeds — and reports intelligence, not contents: the existence, timing, scale, category and exposed data-types of a breach, never the leaked records themselves.

Built for defenders and for agents that work on their behalf.

Why this instead of the alternatives

Most breach tooling sits in one of three camps, and each has a structural gap:

  • Consumer checkers (HaveIBeenPwned's site) answer one question — "is my email in a breach" — one account at a time, one source at a time.
  • Leak-data brokers (DeHashed, IntelX, LeakCheck and the like) sell access to the leaked records themselves. Wiring one into an AI agent hands the agent stolen credentials.
  • Enterprise intel platforms (SpyCloud, Recorded Future, Flashpoint) do the join properly — behind five-figure contracts and closed APIs.

This server takes a fourth position:

  1. Four primary sources, one queryable surface. The verified breach directory (HIBP), a live ransomware leak-site tracker (RansomLook), a ~16k-victim leak-site archive back to 2020 (ransomwatch), and SEC 8-K Item 1.05 filings — companies' own legally mandated "material cybersecurity incident" disclosures. Regulator-grade and criminal-infrastructure-grade evidence in the same index. No key, no contract.
  2. History is first-class. breach_history, breach_timeline and breach_stats treat 2007→today as the product, not a cache: every breach of 2013, an organization's full incident chronology, repeat-victim flagging, per-year and per-actor aggregates.
  3. The ethical boundary is in the code, not the terms of service. No fetch/crawl/proxy primitives, no .onion access, and every feed-authored string is sanitized where the record is built, before any field is assembled from it: emails, hashes, IPs, crypto addresses and credential-shaped tokens are redacted, and the invisible channels used to hide instructions from a human reader (Unicode Tags, zero-widths, bidi overrides, variation selectors, terminal control codes) are stripped. That matters because leak-site titles are written by ransomware crews and read by agents: the same field is both intelligence and an injection surface. Redacting only the two fields a human looks at is not enough, because ids, actor names and statistic bucket keys are built from the same strings.
  4. Honesty is instrumented. feed_sources reports each feed's newest item, a staleness flag and the last fetch error — a dead upstream is a served fact, not a silent hole. (The ransomwatch project itself froze in June 2025; this server says so instead of pretending.)
  5. MCP-native, free, MIT, self-hostable. One pip install, stdio or streamable-HTTP.

What it does not do

  • No arbitrary URL fetch, no crawl, no proxy — no general scraping primitives.
  • No .onion marketplace access, no transactions.
  • Never returns the raw text of a dump, paste or leak. Feed-authored strings are redacted and stripped of hidden-instruction characters at the point each record is constructed, so ids, actor names, entity names, dates, source URLs and aggregation keys are built from sanitized values rather than raw ones.

Sources (public, no key)

  • HaveIBeenPwned /api/v3/breaches — the verified breach directory back to 2007: domain, breach date, pwn count, exposed data categories.
  • RansomLook (ransomlook.io) — live ransomware leak-site tracker.
  • ransomwatch (joshhighet/ransomwatch) — frozen archive of ~16k leak-site posts, Jan 2020 → Jun 2025, retained as history.
  • SEC EDGAR — 8-K filings carrying Item 1.05 Material Cybersecurity Incidents (mandatory first-party disclosure since Dec 2023).

Tools

toolwhat it returns
breach_news(since_days, sector, source, limit, offset)recent disclosures — entity, date, scale, exposed data types, severity
check_exposure(query, since_days, limit, offset)does a domain/company appear anywhere in breach data — yes/no + metadata
breach_history(query, year_from, year_to, sector, data_type, min_accounts, order, limit, offset)search the full archive back to 2007
breach_timeline(entity, limit, offset)one organization's incident-by-incident chronology + repeat-victim assessment
breach_stats(group_by, sector, limit)aggregates per year / source / data type / threat level / ransomware actor
assess_threat(text)classify a piece of security text — level, categories, action (no network)
feed_sources()feeds, per-source freshness, staleness flags, last fetch errors

Every list tool reports count, limit, offset and returned, and breach_stats reports buckets_total, so a truncated answer is visible as truncated and the tail is reachable by paging rather than lost.

Run

bash
pip install data-breach-detector
data-breach-detector           # stdio (for MCP clients)data-breach-detector --http    # streamable-HTTP on 127.0.0.1:8790/mcp

Or point an MCP client at the config:

json
{ "mcpServers": { "data_breach_detector": {  "command": "data-breach-detector"} } }

Hosted remote: https://breach.seiche.info/mcp

License

MIT. The breach data belongs to its sources (HaveIBeenPwned, RansomLook, ransomwatch, SEC EDGAR); this tool only aggregates their public disclosure metadata, with attribution.

Source: README.md at commit aed0f48

Tools

7

breach_news

Recent breach disclosures

Read recent breach and ransomware DISCLOSURES from public threat-intel feeds (HaveIBeenPwned, the RansomLook live leak-site tracker and SEC 8-K Item 1.05 filings), newest first. Every row is metadata only — entity, date, scale, exposed data TYPES, threat level and source — never the leaked data, and a redaction pass strips anything credential-shaped before it is returned. Use sector to narrow to an industry keyword; for one specific organization use check_exposure; for all-time history use breach_history.

Parameterslimitoffsetsectorsourcesince_days

check_exposure

Entity exposure check

Answer whether a domain, company or brand appears in public breach or ransomware DISCLOSURES across ALL history (2007 → today): yes/no with mention count, worst threat level, total accounts exposed across matches, the exposed data TYPES, and the matching disclosure metadata — never the exposed records themselves. This is a triage signal built from disclosure feeds, not proof of compromise; confirm through authorized channels before acting. For the incident-by-incident chronology of one entity, use breach_timeline; for a recent-news sweep, use breach_news. mentions, the aggregates and the data types always cover every match; matches carries one page of them, sized by limit and walked with offset.

Parameterslimitqueryrequiredoffsetsince_days

breach_history

Historical breach search

Search the FULL historical breach archive — every incident this server knows about, back to 2007: HaveIBeenPwned's verified breach directory, the 2020-2025 ransomwatch leak-site archive (~16k victims), the RansomLook live tracker and SEC 8-K Item 1.05 filings. Filter by keyword, year range, sector, exposed data type or minimum scale; order by date or size. Returns disclosure metadata only, never breach contents. Use this for questions like 'what were the biggest breaches of 2013' or 'which airlines have ever been hit by ransomware'.

Parameterslimitorderqueryoffsetsectoryear_todata_typeyear_frommin_accounts

breach_timeline

Entity breach timeline

Build the incident-by-incident CHRONOLOGY of one organization across every source and all history, with judgment on top: first and latest incident, incidents per year, whether the organization is a repeat victim, worst threat level and total accounts ever exposed. Those summary fields cover EVERY incident on record. The timeline list carries a window of them, oldest first within the window, defaulting to the most recent limit incidents and paging backwards with offset, so an organization with a long history shows its current state first rather than only its ancient one. Repeat victimhood is a forward-looking risk signal: organizations named more than once have demonstrably not closed the gap. Metadata only; never the leaked data. For a yes/no presence check use check_exposure.

Parameterslimitentityrequiredoffset

breach_stats

Breach archive statistics

Aggregate the full breach archive into analyst-grade statistics: incidents and accounts exposed per year, per source, per exposed data type, per threat level, or per ransomware actor — plus the five largest incidents ever recorded. Use it to answer 'how has breach volume trended since 2015', 'which ransomware groups have the most victims' or 'how often are passwords part of a breach'. Aggregate counts only; no leaked records.

Parameterslimitsectorgroup_by

assess_threat

Threat-text triage

Classify a piece of security text you supply — an advisory, alert or forum post — into a threat level, matched categories, financial-target flags, a confidence score and a recommended action. Pure local analysis: it collects nothing, stores nothing and reaches no network; the text never leaves the server. Use it to triage findings surfaced by breach_news or from your own monitoring.

Parameterstextrequired

feed_sources

Feed sources & health

List the public disclosure feeds this server aggregates, how many disclosures are cached per source, each source's newest item and an honest staleness flag, plus cache ages. Takes no arguments. Also states the scope plainly: public feeds only — no .onion access, no arbitrary fetching or crawling, no credential or PII output. Check this first if another tool's answer looks thin: a stale live feed is a finding, not background noise.

Takes no parameters.

Version history

1
  1. v0.3.2LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts