Epstein-Files-Plugin
Epstein Files Plugin — 모든 AI 에이전트에서 DOJ Epstein Files Transparency Act 공개 자료를 조회
이름, 날짜, 키워드, EFTA 페이지 번호 또는 열린 질문 — 이메일 코퍼스, 사진, 대본, 지식 그래프에 관한 것 — 을 정확하고 인용 가능한 공식 DOJ 문서로 바꿔 줍니다. 손으로 ~2.8M 페이지를 넘길 필요가 없습니다. DOJ의 봇 차단 검색과 싸울 필요도 없습니다.
이미 공개된 DOJ 법원 기록과 공개 풀텍스트 미러에서만 작동합니다. 연구, 팩트체크, 출처 위치 확인을 위한 것이며 — 재식별, 괴롭힘, 신상 공개(doxxing)를 위한 것이 아닙니다. 책임 있는 사용을 참조하세요.
소개
Epstein Files Plugin은 공개된 DOJ Epstein Files Transparency Act(Public Law 119-38, 2025-11-19 서명) 공시 자료를 인덱싱하고 문서를 해석합니다. justice.gov/epstein 아래 12개 DataSet으로 공개된 약 1.4M 문서 / 2.8–2.9M 페이지를 제3자 서비스 epstein-data.com이 미러링하여 쿼리 가능한 20개 데이터베이스로 인덱싱합니다. (수치는 모두 2026-08-24에 실측 검증됨; DOJ가 수집한 전체 규모는 이보다 크며 약 6M 페이지이고, 이번에 공개된 것은 그중 일부입니다 — 완전한 것으로 인용하기 전에 다시 검증하세요.)
다양한 형태로 제공됩니다:
🧩 Claude Code 플러그인 — 마켓플레이스에서 두 줄로 설치
🔌 MCP 서버 (
.mcp.json) — 동일한 서버의 독립 실행형 — 로컬 stdio이며, API 키 없음, 원격 호스트 없음. MCP 호환 클라이언트(Claude Desktop, Cursor, Windsurf 또는 공식mcpSDK 기반 커스텀 에이전트 런타임)와 모두 동작💻 Python CLI —
python src/efta_researcher.py, MCP 클라이언트 불필요📦 Python 라이브러리 —
from efta_core import efta_to_url, get_dataset, 직접 import
사용 이유:
🚀 수동 조회보다 빠름. DOJ 자체 검색은 자동화/헤드리스 접근을 차단합니다(Akamai 봇 보호 — 책임 잇는 사용 참고). 이름, 날짜, 키워드에서 해당 EFTA 번호까지 수 초 안에 바로 도달할 수 있습니다.
🎯 항상 출처로 직접. 모든 결과가 공식
justice.gov/epsteinPDF URL로 이어지며, 문서를 요약으로 확인하는 것이 아니라 직접 원본 문서를 검증하게 됩니다.✅ 선정적이 아니라 팩트체크됨. 알려진 문서 레지스트리는 출처가 분명한 팩트체크(EUvsDisinfo, Reuters, Tempo 등)와 함께 제공되므로, "연결"은 문서가 실제로 보여 주는 내용을 기준으로 라벨링되며 바이럴 캡션이 주장하는 내용을 기준으로 하지 않습니다.
🧠 이메일뿐 아니라 전체를 쿼리. 전용 도구 2개가 이메일 코퍼스를 다루고, 일반 도구 5개가 모든 20개 데이터베이스 — 이미지, 대본, OCR 텍스트, 필기, 증언록, 지식 그래프 — 에 접근하며, 필터 API로 표현할 수 없는 것은 읽기 전용 SQL 우회로로 사용할 수 있습니다.
🗺️ 구조는 한 번만 재구성. 12-DataSet / EFTA-Bates 번호 경계 테이블을 DOJ 자체 공개 페이지와 교차 검증했기 때문에 쿼리마다 다시 도출할 필요가 없습니다.
🔓 플엇폼 종속 없음(No lock-in). 동일한 조회를 CLI, Python import, 또는 어떤 MCP 클라이언트에서도 이용할 수 있습니다.
Related MCP server: DocImprint
아키텍처
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두 계층으로 의도적으로 나누었습니다. 가장 자주 쓰는 단일 테이블을 감싸는 전용(purpose-built) 래퍼 층(빠르고, 다루기 쉽고, 페이지네이션도 제대로 지원)과, 테이블마다 전용 도구를 만들지 않고 나머지 모든 데이터베이스에 접근할 수 있는 일반(generic) 인트로스펙션/쿼리/SQL 층. 이것이 "모든 것을 쿼리할 수 있는가"라는 질문에 대한 답이며, epstein-data.com의 스키마가 2031년까지 진화해도 새로운 코드 없이 작동하는 이유입니다. 전체 설계 원리는 CLAUDE.md 문서를 참고하세요.
원하는 작업
목표 | 사용할 것 |
이름, 날짜, 키워드로 문서 찾기 | |
인용 표기( | |
바이럴 주장이 사실인지 확인 | |
이미지, 대본, OCR 텍스트, 지식 그래프 검색 | |
조인, 집계, | |
Claude Code 이외의 에이전트에 연결 | |
EFTA 번호/DataSet 체계 이해 |
빠른 시작
사전 요구 사항
Python 3.11 이상(3.10은 2026-10-31에 지원 종료 — 기술 스택 최신화 상태 참고)
pip
Claude Code 플러그인으로 설치
/plugin marketplace add Zereo0317/Epstein-Files-Plugin
/plugin install epstein-files-plugin@epstein-files-pluginCLI / 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_corpusMCP 서버 단독 실행
python src/mcp_server.py읽기 전용 MCP 도구 11가지
🔎 전용(purpose-built) (일반적인 경우 — 전문 검색 + 이메일 메타데이터):
도구 | 용도 |
| Datasette 인덱스 전체에서 부분 일치 검색 — 실제 총 매칭 수와 |
| 메타데이터 필드로 이메일 필터링 — 같은 총 매칭 수 + 페이징 |
| 사전 검증되고 팩트체크된 알려진 문서 목록 |
| EFTA 번호를 공식 DOJ PDF URL로 변환 |
| DOJ PDF URL이 살아 있는지 HEAD로 확인(아래 주의 사항) |
| Datasette 인덱스에서 문서 메타데이터 전체 조회 |
🧬 일반(generic) (테이블별 하드코딩 없이 20개 데이터베이스 모두 사용 가능):
도구 | 용도 |
| Datasette의 20개 데이터베이스 목록(이미지, 대본, OCR 텍스트, 증언 등) |
| 데이터베이스 하나의 모든 테이블을 열과 행 수와 함께 나열 |
| 한 테이블의 열 목록과 행 수 |
| 임의의 테이블에 대해 필터 접미사 쿼리 |
| 읽기 전용 SQL — 조인, 집계, |
✅ 도구 11개 모두 각각 readOnlyHint/idempotentHint(네트워크에 접속하는 항목에는 openWorldHint)로 지정되어 있어, 클라이언트가 안전하게 자동 실행할 수 있습니다.
⚠️ 페이징:
limit은 도구에 따라 50–100으로 제한됩니다. 쿼리가 이보다 훨씬 많은 결과와 맞을 수 있습니다(예: "pizza"는 지금 233개 문서와 매칭). 페이징 도구는(N of TOTAL shown)을 표시하며, 더 있을 때cursor로 계속할 수 있습니다.
⚠️ URL 검증: justice.gov는 모든 PDF 뒤에 응답 인증 + Akamai 챌린지를 걸어 두므로, HTTP 상태 코드 하나로는 해당 URL이 살아 있는지 없는지 확실히 구분할 수 없습니다. URL이 정확한 것은 아래에서 검증된 DataSet 경계 표로부터 나오며, justice.gov를 찔러 확인하는 방식이 아닙니다.
❌ 전용 도구만으로는 부족한 분야:
image_analysis(92K개 캡셔있는 이미지),transcripts(오디오/비디오 대본 435건),knowledge_graph,ocr_database,handwriting_transcriptions등 13개가 더 있으며 — 모두 일반화살 도구로 접근합니다. 이 표를 신뢰하는 것보다 현재의 목록은efta_list_databases()를 호출하세요.
AI 에이전트와 함께 사용
Epstein Files Plugin은 클로드 전용이 아니라 MCP 지향 도구입니다. 공식 mcp Python SDK에 포함된 FastMCP 클래스를 사용한 표준 로컬 stdio 서버이며, 표준 Model Context Protocol을 말하는 협의하는 구조입니다. 모든 MCP 호환 클라이언트에서 동작합니다.
클라이언트 | 연결 방법 |
Claude Code / Claude Desktop |
|
Cursor / Windsurf / Cline |
|
ChatGPT, Gemini, 커스텀/헤드리스 에이전트 |
|
일반 MCP 클라이언트 설정
{
"mcpServers": {
"epstein-files-plugin": {
"command": "python",
"args": ["/absolute/path/to/epstein-files-plugin/src/mcp_server.py"]
}
}
}API 키 없음, 인증 없음, 원격 서버 없음 — 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 도구 |
|
|
|
두 제3자 호스트 중 하나의 변경은 코드 변경이 아니라 설정 변경입니다.
예제
예제 1 — 인용을 공식 출처로 확인(resolve)
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.데이터셋 참조
EFTA 번호는 문서 식별자가 아니라 페이지(Bates) 식별자입니다. 20페이지짜리 PDF는 연속된 EFTA 번호 20개를 소비합니다. 아래 경계값은 rhowardstone/Epstein-research-data 매핑에서의 포렌식(forensic) 파일별 범위로, DOJ가 직접 공개한 페이지와 교차 검증되었습니다.
데이터셋 | 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}/EFI{efta:08d}.pdf
연구 및 사실확인 태세
이번 공개 자료는 음론론적 해석을 끌어들이기 쉽습니다. 알려진 문서 레지스트리(efta_known_docs)의 모든 항목은 신뢰도 태그가 붙어 있고, 선성적으로 부풀려진 해석은 제거되어 있습니다.
주제 | 문서가 보여주는 내용 |
Trilateral Commission / CFR | 도스타인의 요구로 언급된 자서전에 이전 회원으로 기재되어 었음 — 엘리트 네트워킹 일뿐이지, 음모가 아님 |
Rothschild | 실제 자문 관계(약 2,500만 달러규모의 Southern Trust 합의); "우크라이나 격변" 이메일 — EUvsDisinfo는 "쿠데타" 버전을 허위 정보로 분류했습니다. |
Rockefeller | Rockefeller University 이사회의 자리 및 후원자 관계 — "혈통"이 아니라 기관 소속 관계임 |
Illuminati | 요청하지 않은 수신(inbound) 이메일이엡스타인에게 전송되어 있음. 회신 기록은 없으며, 멤버십을 입증하는 근거가 아님 |
Gates / BGC3 | 실제 팬데믹 대비 범위 문서; 팩트체커들은 COVID-19 협약 정교는 것이 없다는 판결했습니다. |
책임 있는 사용
✅ 이미 공개된 DOJ 공개 자료(
justice.gov)와 공개된 제3자 전문 미러(epstein-news.com)에서만 동작합니다. 비공개 데이터, 유료 소스, 로그인 뒤의 스크래핑은 없습니다.✅ 알려진 문서 등록소의 모든 주장에는 출처와 신뢰도 태그가 있습니다. "관련"은 문서가 직접적으로 보여주는 내용을 벗어난 해방으로 라벨하지 않으며, 바이럴 캡션이 주장하는 것과는 무관합니다.
✅
efta_run_sql은 쿼리할 수 있는 범위(what)를 넓혀줍니다. 윤리적 태도보는 바뀌지 않습니다: Datasette의 API는SELECT만 허용하며(비SELECT는 SQLite에 도달하기 전에 HTTP 400으로 거부되는 것을 살아있는 서비스에서 확인), epstein-news.com이 사이트를 직접 방문하는 사람에게 이미 공개하는 데이터 이상의 어떤 데이터에도 닿지 못합니다.❌ 재식별 꾸준히, 스토킹, 공개적 신상 노출(doxxing)에 사용하지 않는다. 이 도구는 출처 위치 확인과 검증용 도구이지, 수사나 혐의 추도 엔진이 아닌다 — 문서에서 명시되는 것 이상의 위법 행위를 주장하지 않아요.
❌ 법률 자문도 아니며, 공식 DOJ산 솔루션이나제품도 아니고, epstein-news.com와 제휴 관계조차 아닌다 — 즉 공용 API의 독립 클라이언트를 대상수록 운영.
기술 스택 현황 (2026-08-24)
Python: 3.11+ 필수 (3.10에서 상향 — EOL 2026-10-31). 3.14.7 기준으로 테스트됨.
MCP SDK:
mcp>=1.29.0,<2.0.0로 고정. 공식 MCP SDK v2.0.0(2026-07-28)에서는mcp.server.fastmcp.FastMCP를mcp.server.mcpserver.MCPServer로 변경했습니다 — 이 서버는 아직 이행하지 못한 호환 파괴(breaking change)입니다. 고정하지 않는mcp>=1.0.0선언 시 v2.x로풀이 조용히 해결되어 import에 실패할 수 있습니다. 또, 관련이 없는 독립형fastmcpPyPI 패키지(현재 v3.x/4.0, Prefect)는 의존성이 아닙니다.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)입니다. 소박한 이슈와 풀 리퀘스트는 대환영입니다.
라이선스
MIT-0(MIT 저작자 표기 없음) — LICENSE를 확인하세요. ClawHub가 per-skill 오버라이드 없는 MIT-0을 요구하므로, 일반 MIT를 대신해 특별히 선택되었습니다. 리포지토리는 GitHub에 있는 공개이며, 라이선스 조항은 모든 사람에게 맡게 코드 재배포/재사용 규범을 적용합니다.
면책 조항
Epstein Files Plugin은 DOJ가 Epstein Files Transparency Act에 따라 이미 공개한 자료와 그 동일 공개 자료를 전색하는 출판 제3자 풀텍스트 미인(epstein-news.com)만을 들어내다. 근거가 문서에 인용한 내용을 공식 출처로 연결하고 그 문서가 문자적으로 담고 있는 내용을 보고할 뿐이며 — 원혐조사를 수행하지 않고, 문서 이상의 위법주을 하지 않으며, 공적이 아닌 데이터를 배포, 추가가, 노출하지도 않습니다. 연구, 사실 확인, 출처 검증을 목적으로 합니다 — 특정 개인을 재식별하거나, 목적으로 하거나, 신상정보 공개(doxxing) 하기 위한 도구가 아닙니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.1
- FlicenseNot gradedqualityAmaintenanceVerifiable document intelligence for AI agents. Extract, summarize, claim-check, and notarize PDFs & URLs with cryptographic proofs, cross-document search, and on-chain attestation via Base L2.
- AlicenseAqualityCmaintenanceVerifiable document intelligence for AI agents. Extract text, tables, and structured data from PDFs and URLs. Summarize, answer questions, check claims, and translate — all with cited evidence. Store tamper-evident evidence bundles with cryptographic signatures and on-chain attestation via Base L2. Cross-document semantic search and Q&A across named collections. Pay per call with USDC22151MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to query cryptographically verified facts with zero-knowledge proofs, selective disclosure, and tamper-evident provenance.1791Apache 2.0
Related MCP Connectors
Real-time fact-check, citation verification, and source-freshness for AI agents.
Certified SEC EDGAR fact memory for AI agents with zero hallucination and filing provenance.
Verified, sourced, real-time intelligence layer for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Zereo0317/Epstein-Files-Plugin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server