data-breach-detector

io.github.beepboop2025由 GitHub 帳號 beepboop2025 發布v0.3.2更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取安全與監控資料與分析

概覽

AI 產生的概覽

唯讀的洩漏情報伺服器,讓助理查詢某機構是否出現在 2007 年至今的公開資料外洩與勒索軟體揭露中。

可以做什麼
  • 依時間倒序讀取公開威脅情報來源中的近期外洩與勒索軟體揭露
  • 檢查某網域、公司或品牌是否出現在歷史揭露中,並提供提及次數與外洩資料類型
  • 依關鍵字、年份範圍、產業、資料類型或最低帳號數檢索完整外洩檔案
  • 建立單一機構的事件時間軸並判斷是否重複受害,以及依年份、來源、資料類型、威脅等級或勒索集團彙總統計
  • 對使用者提供的安全文字做本機威脅等級分類,給出類別與建議處置
  • 列出所彙整的公開情報來源,含各來源最新項目、過期標記與最近抓取錯誤
適用情境
適合資安研究、盡職調查或供應商風險查核:助理需要判斷某機構是否曾被入侵、暴露程度如何,而不接觸外洩紀錄本身。也適合回答橫跨二十年外洩歷史的趨勢問題。
執行需求
可作為遠端託管端點使用,也可從 PyPI 以 pip 安裝為本機程序;本機預設使用 stdio,或在本機以 streamable HTTP 執行。未宣告任何 API 金鑰、帳號或環境變數,公開情報來源無需金鑰。
安裝前請注意
結果僅為中繼資料:存在性、時間、規模與外洩資料類型,絕不包含外洩紀錄。情報來源文字由勒索集團撰寫,伺服器會清洗並去識別化,但回傳的機構名與集團名仍應視為不可信。assess_threat 僅在本機分析,不連網。資料僅限公開情報來源,不提供 .onion 存取或任意抓取。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 data-breach-detector,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.beepboop2025%2Fdata-breach-detector/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "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.

來源:README.md,提交 aed0f48

工具

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.

輸入參數limitoffsetsectorsourcesince_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.

輸入參數limitquery必填offsetsince_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'.

輸入參數limitorderqueryoffsetsectoryear_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.

輸入參數limitentity必填offset

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.

輸入參數limitsectorgroup_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.

輸入參數text必填

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.

無需輸入參數。

版本歷史

1
  1. v0.3.2最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分