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 分