Skip to main content
Glama
Zereo0317

Epstein-Files-Plugin

by Zereo0317

Epstein Files Plugin — 모든 AI 에이전트에서 DOJ Epstein Files Transparency Act 공개 자료를 조회

Python Protocol MCP Tools Databases License

이름, 날짜, 키워드, 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 또는 공식 mcp SDK 기반 커스텀 에이전트 런타임)와 모두 동작

  • 💻 Python CLIpython src/efta_researcher.py, MCP 클라이언트 불필요

  • 📦 Python 라이브러리from efta_core import efta_to_url, get_dataset, 직접 import

사용 이유:

  • 🚀 수동 조회보다 빠름. DOJ 자체 검색은 자동화/헤드리스 접근을 차단합니다(Akamai 봇 보호 — 책임 잇는 사용 참고). 이름, 날짜, 키워드에서 해당 EFTA 번호까지 수 초 안에 바로 도달할 수 있습니다.

  • 🎯 항상 출처로 직접. 모든 결과가 공식 justice.gov/epstein PDF 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 문서를 참고하세요.


원하는 작업

목표

사용할 것

이름, 날짜, 키워드로 문서 찾기

efta_search / efta_filter_email

인용 표기(EFTA00741068)를 DOJ 공식 링크로 변환

efta_get_url

바이럴 주장이 사실인지 확인

efta_known_docs연구·팩트체크 테이크

이미지, 대본, OCR 텍스트, 지식 그래프 검색

efta_list_databasesefta_query_table

조인, 집계, GROUP BY 실행

efta_run_sql

Claude Code 이외의 에이전트에 연결

AI 에이전트와 함께 사용

EFTA 번호/DataSet 체계 이해

DataSet 참조


빠른 시작

사전 요구 사항

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

MCP 서버 단독 실행

python src/mcp_server.py

읽기 전용 MCP 도구 11가지

🔎 전용(purpose-built) (일반적인 경우 — 전문 검색 + 이메일 메타데이터):

도구

용도

efta_search(query, count, cursor)

Datasette 인덱스 전체에서 부분 일치 검색 — 실제 총 매칭 수와 cursor 페이징

efta_filter_email(sender, recipient, date_exact, subject, limit, cursor)

메타데이터 필드로 이메일 필터링 — 같은 총 매칭 수 + 페이징

efta_known_docs(category)

사전 검증되고 팩트체크된 알려진 문서 목록

efta_get_url(efta_number)

EFTA 번호를 공식 DOJ PDF URL로 변환

efta_verify_url(efta_number)

DOJ PDF URL이 살아 있는지 HEAD로 확인(아래 주의 사항)

efta_lookup(efta_number)

Datasette 인덱스에서 문서 메타데이터 전체 조회

🧬 일반(generic) (테이블별 하드코딩 없이 20개 데이터베이스 모두 사용 가능):

도구

용도

efta_list_databases()

Datasette의 20개 데이터베이스 목록(이미지, 대본, OCR 텍스트, 증언 등)

efta_list_tables(database)

데이터베이스 하나의 모든 테이블을 열과 행 수와 함께 나열

efta_describe_table(database, table)

한 테이블의 열 목록과 행 수

efta_query_table(database_table, filters, limit, cursor)

임의의 테이블에 대해 필터 접미사 쿼리

efta_run_sql(database, sql, params, limit)

읽기 전용 SQL — 조인, 집계, GROUP BY; Datasette는 SELECT가 아닌 모든 요청을 HTTP 400으로 거부

✅ 도구 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

/plugin marketplace add + /plugin install, 또는 그냥 .mcp.json

Cursor / Windsurf / Cline

.mcp.json의 서버 항목을 그 클라이언트의 MCP 설정에 추가

ChatGPT, Gemini, 커스텀/헤드리스 에이전트

src/mcp_server.py를 stdio로 지정하면 됨 — 플러그인 시스템이나 클로드 서비스 로드 불필요

일반 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" }
    }
  }
}

환경 변수 재정의 (미러 또는 도메인 변경 대비 복원력)

변수

기본값

영향

EFTA_DATASETTE_BASE_URL

https://epstein-data.com

모든 검색/쿼리/SQL 도구

EFTA_DOJ_BASE_URL

https://www.justice.gov

efta_get_url, efta_verify_url, CLI의 --download/--verify

두 제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.FastMCPmcp.server.mcpserver.MCPServer로 변경했습니다 — 이 서버는 아직 이행하지 못한 호환 파괴(breaking change)입니다. 고정하지 않는 mcp>=1.0.0 선언 시 v2.x로풀이 조용히 해결되어 import에 실패할 수 있습니다. 또, 관련이 없는 독립형 fastmcp PyPI 패키지(현재 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) 하기 위한 도구가 아닙니다.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.
    1
  • F
    license
    Not graded
    quality
    A
    maintenance
    Verifiable 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.
  • A
    license
    A
    quality
    C
    maintenance
    Verifiable 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 USDC
    22
    15
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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