Epstein-Files-Plugin
Epstein Files Plugin —— 让任何 AI 智能体都能查询 DOJ Epstein Files Transparency Act 公开交付的文件
一个姓名、日期、关键词、EFTA 页码,或者一个开放式问题——无论与邮件语料、照片、Transcripts 或知识图谱相关,都能帮你找到对应的、可引用的官方 DOJ 文档。无需手动翻阅约 280 万页内容,也不再需要和 DOJ 的僵尸审查搜索纠缠。
它只能检索 DOJ 已公开的法院记录,以及同样公开的全文镜像。它用于研究、事实核查和来源追溯,而非二次识别、骚扰或人肉搜索。详见负责任地使用。
关于
Epstein Files Plugin 索引并解析 DOJ 在 Epstein Files Transparency Act(公法 119-38,2025-11-19 签署)发布中公开的文档——大约 140 万份文档 / 280–290 万页,分布在 justice.gov/epstein 的 12 个 DataSet 中,由第三方服务 epstein 数据平台镜像并索引为 20 个可查询数据库(两个数据均于 2026-08-24 实时核实;DOJ 的全部已收录档案规模更大,仍有约 600 万页,而这里只是目前公开的部分——在引用为“完整”之前,请再次核实)。
提供以下版本:
🧩 一个 Claude Code 插件 ——安装自 marketplace,但只需两行命令
🔌 一个 MCP 服务器(
.mcp.json)—— 同一个服务器的独立版,本地 stdio,无 API 密钥、无远程主机,适用于任何 MCP 兼容客户端: Claude Desktop、Cursor、Windsurf,或基于官方mcpSDK 的定制 agent 运行时💻 一个 Python CLI ——
python src/eftate_researcher.py,无需 MCP 客户端📦 一个 Python 库 ——
from efta_core import efta_to_url, get_dataset,可直接 import
为什么用它:
🚀 比手动搜索更快。 DOJ 自己的搜索面向自动化/无头访问(Akamai 掉反抓拦截——见负责任地使用);它直接从姓名、日期或关键字就可得到——时间为秒级。
🎯 始终直达原始出處。 每个结果都解析为官方
justice.gov/epstein的 PDF URL——凭证由你自己核对原始文档,而非任何二手转述。✅ 被事实核查,而不只是爆款。 已知文档注册表自带来源可查的事实核查(EUvsDisinfo、Reuters、Tempo 等),因此某个“关联”被归类时,标注的是文档实际上显示了什么,而不是某条病毒式文案所声称的事实。
🧠 完整可查询,而不只是收件箱。 两个专用工具覆盖邮件语料;五个通用工具可覆盖全部 20 个数据库——图片、Transcripts、OCR、乃至手写、交叉证词、知识图谱——并提供只读 SQL 逃生舱来承载过滤 API 无法表达的查询。
🗺️ 结构只需重建一次。 12-DataSet-DataSet 边界 表(Bates number)已与 DOJ 官方披露页面交叉核实,所以你不必每次查询时都重新推导它。
🔓 无锁定。 同样的查询能力可在 CLI、Python 库或任何 MCP 客户端中使用。
Related MCP server: aether-developer
架构
flowchart LR
subgraph Client["Any MCP client"]
A["Claude Code / Claude Desktop\nCursor · Windsurf · custom agent"]
end
subgraph Server["epstein-files-plugin — local stdio, no auth"]
direction TB
PB["Purpose-built tools\nefta_search · efta_filter_email\nefta_lookup · efta_known_docs"]
GEN["Generic tools\nefta_list_databases · efta_list_tables\nefta_describe_table · efta_query_table\nefta_run_sql"]
LOCAL["Local-only\nefta_get_url — pure computation,\nno network call"]
end
subgraph Upstream["Third-party mirror"]
DS[("epstein-data.com\nDatasette JSON API\n20 databases")]
end
DOJ[("justice.gov/epstein\nofficial PDF source")]
A -- "MCP / stdio\nJSON-RPC" --> Server
PB --> DS
GEN --> DS
LOCAL -.->|"constructs URL,\nno request sent"| DOJ
DS -.->|"indexes"| DOJ
style Server fill:#1a2332,stroke:#4b8bbe,color:#e8edf4
style Upstream fill:#0f1720,stroke:#2dd4a7,color:#e8edf4
style DOJ fill:#0f1720,stroke:#94a3b8,color:#e8edf4两个工具层是有意为之:专用包装层针对最常见的表(快速、易用、正常分页),以及通用自省/listings/SQL 层,覆盖其余所有数据库,而不必为每张表写死专用工具——它回答了“能否查所有内容”,并在 epstein-data.com 的 schema 演进到 2031 年时无需新增代码,也能继续 work。完整设计见 CLAUDE.md 中的 reason。
可查询工具
[Deposit payment]; [Q?]
快速开始
前提条件
Python 3.11 或更高版本(3.10 将于 2026-10-31 结束 service life ——见 技术栈现状)
pip
安装为 Claude Code 插件
/plugin marketplace add Zereo0317/Epstein-Files-Plugin
/plugin install epstein-files-plugin@epstein-files-plugin为 CLI / 独立 MCP / 库使用安装
git clone https://github.com/Zereo0317/Epstein-Files-Plugin.git
cd Epstein-Files-Plugin
python -m pip install --upgrade pip
pip install -r requirements.txt # requests, mcp (pinned <2.0 — see below)运行 CLI
python src/efta_researcher.py --list
python src/efta_researcher.py --search "trilateral commission"
python src/efta_researcher.py --sender epstein --recipient schank --date 2009-10-23
python src/efta_researcher.py --efta EFTA00741068
python src/efta_researcher.py --databases
python src/efta_researcher.py --tables image_analysis
python src/efta_researcher.py --sql "select dataset, count(*) as n from doc_search group by dataset" --database full_text_corpus直接(standalone)运行 MCP 服务
python src/mcp_server.py11 个只读 MCP 工具
🔎 专用工具(用于常见场景——全文 + 邮件元数据):
工具 | 用途 |
| 在 Datasette 索引上做子串搜索——得出实际的总匹配数和 |
| 按元数据字段过滤邮件——同樣得到总匹配数与分页 |
| 列出已经过验证、检查过的已知文档 |
| 将某个 EFTA 北方语编号转为对应的官方 DOJ PDF URL 编号 |
| 用 HEAD 请求检查 DOJ PDF URL 是否仍存在(见下方注意) |
| 从 Datasette 索引取回该文档的完整元数据 |
🧬 通用工具(涵盖全部 20 个数据库,无需针对每张表写接口):
工具 | 用途 |
| 列出所有 20 个 Datasette 数据库(images、transcripts、OCR、depositions 等) |
| 列出某个数据库中的全部表,并附带各状态的字段/行数 |
| 打印单张表的字段列表 + 行数 |
| 针对任意表执行 filter-suffix 查询 |
| 只读 SQL — 连接 / 计数 / |
✅ 全部 11 个工具都根据 MCP 工具注解约定标注了 readOnlyHint / idempotentHint(所有网面涉及的还有 openrldHint),客户端可以安全地自动调用它们。
⚠️ 分页:
limit值根据工具在 50–100 之间限制。一次查询可能匹配远不止这些(例如 “pizza” 目前匹配 233 个文档)——分页工具会给出(N OF TOTAL SHOWN),若更多结果存在则返回一个cursor返回。
⚠️ URL 校验:
justice.gov的每个 PDF 后面都有一层年龄验证 + Akamai 验证,所以原始 HTTP 状态未必能区分存活与失效。URL 的成功与否取决于下方的 DataSet 边界表,而不是探测justice.gov。
❌ 仅由专用功能不能直接覆盖:
image_analysis(93K 带说明的图片)、transcripts(434 音/视频透返)、knowledge_graph、ocr_database、handwriting_transcriptions等 17 个以上数据库——这些都可以通过通用工具来访问。请调efta_list_databases()获取实时的最新列表,而不要信任文档表格。
与 AI 智能体配合使用
它是 MCP-first,而不是 Claude-first。它是一个标准的本地 stdio 服务器(构建在官方 mcp Python SDK 里自带的 FastMCP 类上),使用普通 Model Context Protocol 通信。可以与任何支持 MCP 的用户端使用。
客户端 | 如何连接 |
Claude Code / Claude Desktop | 使用 |
Cursor / Windsurf / Cline | 将 |
ChatGPT、Gemini 或自定义/headless | 让它以 stdio 方式连接到 |
通用 MCP 客户端配置
{
"mcpServers": {
"epstein-files-plugin": {
"command": "python",
"args": ["/absolute/path/to/epstein-files-plugin/src/mcp_server.py"]
}
}
}无 API 密钥、无 Auth、也无远程服务器——只是本地进程通过 stdio 对话,在所有客户端里的行为都相同。
Claude Code
以插件方式安装时,同一服务器会从本仓库的 .mcp.json 自动加载(使用
${CLAUDE_PLUGIN_ROOT},无需编辑路径):
{
"mcpServers": {
"epstein-files-plugin": {
"command": "python",
"args": ["${CLAUDE_PLUGIN_ROOT}/src/mcp_server.py"],
"env": { "PYTHONUNBUFFERED": "1" }
}
}
}环境变量覆盖(应对镜像或域名变更)
变量 | 默认值 | 影响范围 |
|
| 所有搜索/查询/SQL 工具 |
|
|
|
未来任一第三方主机发生变化,都只是配置变更,而不是代码变更。
示例
示例 1 — 将引文解析到其官方来源
User request: "What's the DOJ URL for EFTA00741068, and which DataSet is it in?"
Response:
EFTA: EFTA00741068
DataSet: DS9
URL: https://www.justice.gov/epstein/files/DataSet%209/EFTA00741068.pdf
Under the hood:
efta_get_url("EFTA00741068") parses the Bates number, resolves it against the verified
12-DataSet boundary table, and constructs the official DOJ URL — no network call, no guessing.示例 2 — 按发件人、收件人和日期查找电子邮件
User request: "Find the Epstein -> Roger Schank email from October 23, 2009."
Response:
Found 3 email(s):
EFTA00741068 DS9 2009-10-23 12:01:12 <- primary
EFTA00885615 DS9 2009-10-23 12:01:12 (OCR duplicate, reads "grnail.com")
EFTA01821140 DS10 2009-10-23 12:01:12 (third copy, later processing batch)
Under the hood:
efta_filter_email(sender="epstein", recipient="schank", date_exact="2009-10-23") queries the
epstein-data.com Datasette API (DOJ's own /multimedia-search is blocked for headless clients)
and returns every metadata match, so duplicate copies can be cross-referenced by timestamp.示例 3 — 超出邮件语料库之外的搜索(通用工具)
User request: "Any photos in the release that show a passport?"
Response:
efta_list_tables("image_analysis") -> "images" table, 92,249 rows, column "analysis_text"
efta_query_table("image_analysis", "images", filters={"analysis_text__contains": "passport"})
-> matching rows with efta_number, source_pdf, and the analysis text itself
Under the hood:
image_analysis isn't reachable through efta_search (that only covers full_text_corpus).
efta_query_table works against any of the 20 databases using the same filter-suffix syntax,
so no dedicated "image search" tool was needed.示例 4 — 过滤器 API 无法表达的问题(原始 SQL)
User request: "Break down the document count by DataSet."
Response:
efta_run_sql("full_text_corpus",
"select dataset, count(*) as n from doc_search group by dataset order by dataset")
-> 1:650, 2:150, 3:57, 4:143, 5:82, 6:13, 7:17, 8:10479, 9:480658, 10:496404,
11:331597, 12:12339, 98:6, 99:23210 (live counts, 2026-08-24)
Note: two values (98, 99) fall outside the documented 1-12 DataSet scheme — small catch-all
buckets in the source data itself. efta_get_url()/get_dataset() only resolve DataSets 1-12.DataSet 参考
EFTA 编号是页码(Bates)标识符,而不是文档标识符——一份 20 页的 PDF 会占用
20 个连续的 EFTA 编号。下面的边界来自 rhowardstone/Epstein-research-data 映射中按文件进行取证的范围,并与 DOJ 自己的披露页面做了交叉核对。
DataSet | EFTA 范围 | 内容 |
DS01 | 1 – 3,158 | 照片、实物扫描件 |
DS02 | 3,159 – 3,857 | 照片、查获物品扫描 |
DS03 | 3,858 – 5,586 | 大陪审团证物 |
DS04 | 5,705 – 8,320 | 记录、法庭文件 |
DS05 | 8,409 – 8,528 | 查获扫描、证词 |
DS06 | 8,529 – 8,998 | 证词、起诉书 |
DS07 | 9,016 – 9,664 | 庭审记录 |
DS08 | 9,676 – 39,023 | 电子邮件、警方报告 |
DS09 | 39,025 – 1,262,781 | 主要电子邮件语料库 |
DS10 | 1,262,782 – 2,205,654 | 电子邮件、财务 |
DS11 | 2,205,655 – 2,730,264 | 电子邮件、设备数据 |
DS12 | 2,730,265 – 2,858,497 | 法庭文件、FBI + 扩展 |
DOJ URL 模式:https://www.justice.gov/epstein/files/DataSet%20{N}/EFTA{efta:08d}.pdf
研究与事实核查立场
这次发布很容易招致阴谋论式的解读。已知文档注册表(efta_known_docs)中的每个条目
都带有置信度标签,并已去除耸人听闻的修饰:
话题 | 文档显示的内容 |
Trilateral Commission / CFR | 爱泼斯坦自己的履历将他列为 前成员 —— 精英人脉网络,而非阴谋 |
Rothschild | 一段真实的顾问关系(约 2,500 万美元的 Southern Trust 协议);“乌克兰 动荡”邮件 —— EUvsDisinfo 已将“政变”版本标记为不实信息 |
Rockefeller | 一个洛克菲勤大学董事会席位 + 捐赠关系 —— 机构性的,而非“血统” |
Illuminati | 一封 入站、未经主动发送的邮件,发件人是 给 爱泼斯坦的;没有回复记录;不足以证明其成员身份 |
Gates / BGC3 | 一份真实的大流行防范范围文档;事实核查机构未发现其与 COVID-19 规划有关联 |
负责任的使用
✅ 只操作已在
justice.gov/epstein上公开的 DOJ 发布内容,以及一个公开的第三方全文镜像(epstein-data.com)。没有私有数据,没有付费墙来源,不做登录后抓取。✅ 已知文档注册表中的每一项声明都附有来源和置信度标签 —— “关联”只按文档字段字面标注,绝不按病毒式传播的标题来标注。
✅
efta_run_sql扩大的是 可查询范围,而不是伦理姿态:Datasette 自身的 API 只接受SELECT(非SELECT语句在到达 SQLite 前就会收到 HTTP 400 —— 已实际验证),并且它不会触及epstein-data.com尚未直接暴露给任何访问其网站的用户的数据。❌ 不适用于重新识别身份、骚扰或“人肉搜索”。 这是源定位和验证工具,不是调查或控告引擎 —— 它不指控任何文档内容之外的不当行为。
❌ 不构成法律建议,不是 DOJ 的官方产品,也不属于
epstein-data.com—— 只是他们公共 API 的一个独立客户端。
技术栈时效(2026-08-24)
Python: 要求 3.11+(从 3.10 提升 —— 3.10 已于 2026-10-31 EOL,不再支持)。已用 3.14.7 测试。
**MCP SDK:**上限固定为
mcp>=1.29.0,<2.0.0。官方 SDK 的 v2.0.0(2026-07-28)将mcp.server.fastmcp.FastMCP更名,mcp.server.mcpserver.MCPServer—— 这是本服务器尚未迁移的一个破坏性变更。如果未固定版本,mcp>=1.0.0会静默解析为 v2.x 并导致导入失败。与之无关的独立fastmcpPyPI 包(PrefectHQ 维护,现在 v3.x/4.0)并不是本项目的依赖项。pip: 上述安装命令会先执行
python -m pip install --upgrade pip。requests: 要求
>=2.31.0,对较新的 2.x 版本没有已知冲突。
项目结构
.claude-plugin/plugin.json Plugin manifest (Claude Code convenience only)
.mcp.json Local stdio MCP server config (client-agnostic)
src/efta_core.py DataSet boundary table, EFTA -> URL, known-document registry
src/epstein_datasette.py epstein-data.com Datasette API client (purpose-built + generic layer)
src/doj_auth.py justice.gov public anti-bot challenge helper + verification
src/efta_researcher.py Standalone CLI
src/mcp_server.py FastMCP server exposing the 11 tools above
skills/efta-research/ Claude Code skill: research methodology (optional convenience)
skills/doj-auth/ Claude Code skill: justice.gov access details (optional convenience)社区与支持
贡献
这是一个公开的、单一维护者的研究工具(Zereo0317/Epstein-Files-Plugin)。欢迎提交 issue 和 pull request。
许可证
MIT-0(MIT No Attribution)— 见 LICENSE。选用它而非普通 MIT,是为了专门满足ClawHub 的兼容性要求,ClawHub 要求 MIT-0 且不支持按技能覆盖。该仓库在 GitHub 上公开;许可证条款适用于任何人对代码的再分发/复用。
免责声明
Epstein Files Plugin 只呈现哪些文件以及来自哪些数据包,都依赖 Epstein Files Transparency Act 的要求已公开,再结合公开的第三方全文本镜像(epstein-data.com)来提供。它将引文解析到官方源并报告文档字面包含的内容 —— 它不进行独立思考,不指控任何文档尚未呈现的不当行为,也不持有、再持有或暴露任何非公开数据。其目的是研究、事实核查和来源验证 —— 而非用于再识别身份、骚扰或“人肉”。
This server cannot be deployed
Maintenance
Related MCP Connectors
SEC filings, Wikipedia, arXiv, US Census and more for AI agents, with every answer source-linked.
Real-time fact-check, citation verification, and source-freshness for AI agents.
The Epstein investigation document corpus — the documents themselves, plus (phase 2) Epstein's own…
Certified SEC EDGAR fact memory for AI agents with zero hallucination and filing provenance.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to search SEC filings, earnings transcripts, and EU regulations with ready-to-cite evidence, including exact passages and source links.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to create verifiable, replayable citations, search private knowledge bases, and publish Markdown with verified citation markers.MIT
- AlicenseNot gradedqualityBmaintenanceEnables full-text, page-level citation search over the House Oversight Committee's published Epstein investigation documents, plus structured search over transcribed rows from Epstein's pilot flight logbook with provenance and confidence markers.456 npmMIT