Skip to main content
Glama
Zereo0317

Epstein-Files-Plugin

by Zereo0317

Epstein Files Plugin — fragen Sie die DOJ-Veröffentlichung des Epstein Files Transparency Act aus jedem KI-Agenten ab

Python Protocol MCP Tools Databases License

Verwandelt einen Namen, ein Datum, ein Schlagwort, eine EFTA-Seitenzahl oder eine offene Frage — zum E-Mail-Korpus, zu den Fotos, zu den Transkripten oder zum Wissensgraph — in das exakte, zitierfähige, offizielle DOJ-Dokument. Kein manuelles Durchblättern von ~2,8 Millionen Seiten. Kein Kampf mit der bot-blockierten Suche des DOJ.

Arbeitet ausschließlich mit bereits öffentlichen DOJ-Gerichtsakten und einem öffentlichen Volltextspiegel. Entwickelt für Recherche, Faktenprüfung und Quellenangabe — nicht für Re-Identifizierung, Belästigung oder Doxing. Siehe Verantwortungsvolle Nutzung.


Über das Plugin

Das Epstein Files Plugin indexiert und löst Dokumente in der öffentlichen DOJ-Veröffentlichung des Epstein Files Transparency Act (Public Law 119-38, unterzeichnet am 2025-11-19) auf — etwa 1,4 Mio. Dokumente / 2,8–2,9 Mio. Seiten, über 12 DataSets auf justice.gov/epstein veröffentlicht sowie vom Drittanbieter epstein-data.com gespiegelt und als 20 abfragbare Datenbanken indiziert (beide Zahlen am 2026-08-24 live verifiziert; der gesamte erfasste Korpus des DOJ ist mit ~6 Mio. Seiten noch größer — dies ist der bisher veröffentlichte Teil; bitte vor einer Zitierung als vollständig nochmals prüfen).

Verfügbar als:

  • 🧩 ein Claude-Code-Plugin — aus einer Marketplace-Umgebung in zwei Zeilen installiert

  • 🔌 ein MCP-Server (.mcp.json) — derselbe Server, eigenständig — lokales stdio, keine API-Schlüssel, kein Remote-Host, funktioniert mit jedem MCP-kompatiblen Client: Claude Desktop, Cursor, Windsurf oder eine eigene Agenten-Laufzeitumgebung auf Basis des offiziellen mcp-SDKs

  • 💻 eine Python-CLIpython src/efta_researcher.py, kein MCP-Client erforderlich

  • 📦 eine Python-Bibliothekfrom efta_core import efta_to_url, get_dataset, direkt importierbar

Warum es nutzen:

  • 🚀 Schneller als die manuelle Suche. Die eigene DOJ-Suche ist für automatisierten/Headless-Zugriff blockiert (Akamai-Bot-Schutz — siehe Verantwortungsvolle Nutzung); dieses Plugin geht direkt von einem Namen, Datum oder Schlagwort in Sekunden zur passenden EFTA-Nummer.

  • 🎯 Direkt zur Quelle, jedes Mal. Jedes Ergebnis löst in die offizielle PDF-URL von justice.gov/epstein auf — Sie prüfen das Originaldokument selbst, niemals eine Paraphrase davon.

  • Faktengeprüft, nicht sensationsheisch. Das Register der bekannten Dokumente enthält belegte Faktenchecks (EUvsDisinfo, Reuters, Tempo u. a.), sodass eine „Verbindung" für das gekennzeichnet wird, was das Dokument tatsächlich zeigt — und nicht für das, was eine virale Bildunterschrift behauptet.

  • 🧠 Vollständig abfragbar, nicht nur das Postfach. Zwei spezialisierte Tools decken den E-Mail-Korpus ab; fünf generische Tools erreichen alle 20 Datenbanken — Bilder, Transkripte, OCR-Text, Handschrift, Vernehmungsprotokolle, den Wissensgraphen — plus eine read-only SQL-Luke für alles, was die Filter-API nicht ausdrücken kann.

  • 🗺️ Struktur, einmal rekonstruiert. Die 12-DataSet-/EFTA-Nummern-Grenztabelle wurde mit den Offenlegungsseiten des DOJ selbstungen abgeglichen, sodass Sie sie nicht für jede Abfrage neu ableiten müssen.

  • 🔓 Kein Lock-in. Dieselben Abfragen funktionieren von einer CLI, aus einem Python-Import oder jedem MCP-Client.

Related MCP server: DocImprint

Architektur

Zwei Werkzeugebenen: bewusst zweckgebaut (Wrapper über die am häufigsten genutzte Tabelle — schnell, ergonomisch, korrekte Paginierung) und eine generische Introspections-/Abfrage-/SQL-Schicht, die jede andere Datenbank ohne dediziertes Werkzeug pro Tabelle erreicht — die Antwort auf „Kann alles einebgefragt werden?“ und das, was dieses System auch noch funktioniert, wenn sich das Schema von epstein-data.com bis in 2031 weiterentwickelt, ohne neuen Code. Siehe CLAUDE.md für die vollständige Design-Begründung.

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

Ich möchte ...

Ziel

Verwenden Sie diese

Ein Dokument per Name, Datum oder Keyword finden

efta_search / efta_filter_email

Ein Zitat (EFTA00741068) in einen offiziellen DOJ-Link überführen

efta_get_url

Prüfen, ob eine virale Behauptung der Wahrheit entspricht

efta_known_docsRecherche- & Faktencheck-Position

Bilder, Transkripte, OCR-Text oder den Wissensgraph durchsuchen

efta_list_databasesefta_query_table

Einen JOIN, eine Anzahl oder einen Zählen GROUP BY ausführen

efta_run_sql

Diese in einen Agenten einbinden, der nicht Claude Code ist

Nutzung mit KI-Agenten

Das EFTA-/DataSet-Verständnis verstehen

DataSet-Reference


Schnellstart

Voraussetzungen

Als Claude-Code-Plugin installieren

/plugin marketplace add Zereo0317/Epstein-Files-Plugin
/plugin install epstein-files-plugin@epstein-files-plugin

Für CLI / eigenständigen MCP / Bibliotheksnutzung installieren

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)

Die CLI ausführen

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

Den MCP-Server eigenständig ausführen

python src/mcp_server.py

Die 11 Nur-Lese-MCP-Tools

🔎 Zweckgebaut (der häufigste Fall — Volltext + E-Mail-Metadaten):

Werkzeug

Nutzen

efta_search(query, limit, cursor)

Teilstring-Suche über den Datasette-Index — echte Gesamttrefferzahl + cursor-Seitungsläden

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

E-Mails anhand von Metadatenfeldern filtern — gleiche Gesamtzahl der Treffer + Seitierung

efta_known_docs(category)

Vorab verifizierte, faktengeprüfte bekannte Dokumente auflisten

efta_get_url(efta_number)

Eine EFTA-Nummer in die offizielle DOJ-PDF-URL konverwerten

efta_verify_url(efta_number)

HEAD-Prüfung, ob eine DOJ-PDF-URL live ist (siehe Einschränkung bei later)

efta_lookup(efta_number)

Vollständige Dokument-Metadaten aus dem Datasette-Index

🧬 Generisch (Alle 20 Datenbanken, keine felseithärtes pro Tabelle):

Tool

Zweck

efta_list_databases()

Alle 20 Datasette-Datenbanken auflisten (Bilder, Transkripte, OCR, Aussagen, Wissensgraph, ... )

efta_list_tables(database)

Jede Tabelle in einer der beiden Datenbanken auflisten – mit Spalten und Zeilenzahl

efta_describe_table(database, table)

Spaltenliste + Zeilenzahl für eine Tabelle

efta_query_table(database, table, filters, limit, cursor)

Filter-Suffix-Abfrage gegen jegliche Tabelle

efta_run_sql(database, sql, params, limit)

Schreibgeschütztes SQL — JOINS, Aggregation, GROUP BY; Datasette lehnt jedes Nicht-SELECT mit HTTP 400 ab

✅ Alle 11 Tools sind gemäß der MCP-Token-Annotationskonvention mit readA/idempotentHint annotiert (und openWorldHint auf allem netzwerkbezogenes Eigenschaften) — ein Client kann sie sicher automatisch ausführen.

⚠️ Pagination: limit ist je nach Tool auf 50–100 begrenzt. Eine Abfrage kann sehr viel mehr Treffer haben (z. B. „pizza“ hat derzeit 233 Treffer) — die paginierten Tools zeigen (N von GESAMT angezeigt) und, wenn mehr vorhanden, rollen cursor zum Fortfahren an.

⚠️ URL-Verifizierung: justice.gov schaltet jede PDF hinter eine Altersprüfung + Akamai-Herausforderung. Ein reiner HTTP-Status kann daher zwischen „live“ und „fehlend“ nicht zuverlässig unterscheiden. Die URL-Korrektheit stammt aus der unten verifizien Bate (DataSet-Grenztabelle), nicht aus dem Proben von justice.gov.

Nicht durch die Werkzeuge allein abgedeckt: image_analysis (92.000 mit Unter)n-notes versehene Bilder), transcripts (435 Audio-/Video-P) , knowledge_graph, ocr_database, handwriting_transcriptions und 13 weitere — alle stattessen über die generischen Werkzeuge aus erreichen. Aufrufe efta_list_databases() für die aktuelle, live Liste, anstatt dieser Tabelle zu vertrauen.

Nutzung mit KI-Agenten

Das Epstein Files Plugin ist MCP-first, nicht Claude-first: ein Standard- lokalen Server für stdio (gebaut auf der FastMCP-Klasse im offiziellen mcp-Python-SDK), der einfaches Model Context Protocol spricht. Es funktioniert mit jedem MCP-kompatiblen Client.

Client

Wie die Verbindung hergestellt wird

Claude Code / Claude Desktop

Brocken Sign-in / oder rohe .mcp.json

Cursor / Windsurf / Cline

Server-Eintrag aus .mcp.json in den MCP-Einstellungen des Clients hinzufügen

ChatGPT, Gemini oder einem eigenen/headless-Agenten

Auf src/mcp_server.py über stdio zeigen — kein Plugin-System oder Claude-Abhängigkeit erforderlich

Generische MCP-Client-Konfiguration

{
  "mcpServers": {
    "epstein-files-plugin": {
      "command": "python",
      "args": ["/absolute/path/to/epstein-files-plugin/src/mcp_server.py"]
    }
  }
}

Keine API-Keys, keine Authentifizierung, kein Remote-Remote-Server — ein lokaler Prozess spricht stdio; identisches Verhalten in jedem Client.

Claude Code

Als Plugin installiert, lädt derselbe Server automatisch aus der .mcp.json dieses Repos (verwendet ${CLAUDE_PLUGIN_ROOT}, keine Pfadanpassung nötig):

{
  "mcpServers": {
    "epstein-files-plugin": {
      "command": "python",
      "args": ["${CLAUDE_PLUGIN_ROOT}/src/mcp_server.py"],
      "env": { "PYTHONUNBUFFERED": "1" }
    }
  }
}

Umgebungs-Overrides (Robustheit bei Spiegel- oder Domainwechsel)

Variable

Standardwert

Betrifft

EFTA_DATASETTE_BASE_URL

https://epstein-data.com

Jedes Such-/Abfrage-/SQL-Werkzeug

EFTA_DOJ_BASE_URL

https://www.justice.gov

efta_get_url, efta_verify_url, die --download/--verify-Flags der CLI

Eine spätere Änderung an einem der beiden Drittanbieter-Hosts ist eine Konfigurationsänderung, keine Codeänderung.


Beispiele

Beispiel 1 — Eine Quellenangabe ihrer offiziellen Quelle zuordnen

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.

Beispiel 2 — Eine E-Mail nach Absender, Empfänger und Datum finden

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.

Beispiel 3 — Über den E-Mail-Korpus hinaus suchen (generische Werkzeuge)

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.

Beispiel 4 — Eine Abfrage, die die Filter-API nicht ausdrücken kann (rohes 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-Referenz

EFTA-Nummern sind Seiten- (Bates-)Kennungen, keine Dokumentenkennungen – ein 20-seitiges PDF verbraucht 20 aufeinanderfolgende EFTA-Nummern. Die Grenzen unten sind die forensischen Pro-Datei-Bereiche aus dem rhowardstone/Epstein-research-data-Mapping, abgeglichen mit den eigenen Offenlegungsseiten des DOJ.

DataSet

EFTA-Bereich

Inhalt

DS01

1 – 3,158

Fotos, physische Scans

DS02

3,159 – 3,857

Fotos, beschlagnahmte Scans

DS03

3,858 – 5,586

Grand-Jury-Beweisstücke

DS04

5,705 – 8,320

Aufzeichnungen, Gerichtsdokumente

DS05

8,409 – 8,528

Beschlagnahmte Scans, Zeugenaussagen

DS06

8,529 – 8,998

Zeugenaussagen, Anklageschriften

DS07

9,016 – 9,664

Transkripte

DS08

9,676 – 39,023

E-Mails, Polizeiberichte

DS09

39,025 – 1,262,781

Haupt-E-Mail-Korpus

DS10

1,262,782 – 2,205,654

E-Mails, Finanzunterlagen

DS11

2,205,655 – 2,730,264

E-Mails, Gerätedaten

DS12

2,730,265 – 2,858,497

Gerichtsdokumente, FBI + Erweiterung

DOJ-URL-Muster: https://www.justice.gov/epstein/files/DataSet%20{N}/EFTA{efta:08d}.pdf


Recherche- und Faktencheck-Grundsätze

Diese Veröffentlichung zieht Verschwörungsnarrationen an. Jeder Eintrag im Register der bekannten Dokumente (efta_known_docs) ist mit einem Konfidenz-Tag versehen und entdramatisiert:

Thema

Was die Dokumente zeigen

Trilateral Commission / CFR

Epsteins eigener Lebenslauf führte ihn als ehemaliges Mitglied auf – Eliten-Netzwerk, kein Komplott

Rothschild

Eine echte Beratungsbeziehung (ein-$25M Southern-Trust-Vereinbarung); die „Ukraine-Umbruch“-E-Mail – EUvsDisinfo hat die „Putsch“-Version als Desinformation eingestuft

Rockefeller

Ein Rök der Rockefeller University + Spenderbeziehung – institutionell, nicht „Blutlinie“

Illuminati

Eine eingehende, unaufgefordert E-Mail an Epstein; keine Antwort in den Aufzeichnungen; kein Beleg für eine Mitgliedschaft

Gates / BGC3

Ein echtes Scoping-Dokument zur Pandemievorsorge; Faktenchecker fanden keine Verbindung zu COVID-19-Planung


Verantwortungsvolle Nutzung

  • ✅ Arbeitet ausschließlich mit bereits öffentlichen DOJ-Veröffentlichungen unter justice.gov/epstein und einem öffentlichen Volltext-Spiegel eines Drittanbieters (epstein-data.com). Keine privaten Daten, keine Quellen hinter Bezahlschranken, kein Scraping hinter einem Login.

  • ✅ Jede Behauptung im Register der bekannten Dokumente trägt eine Quelle und ein Konfidenz-Tag – eine „Verbindung“ wird nur für das gekennzeichnet, was ein Dokument wörtlich zeigt, niemals für das, was eine virale Bildunterschrift behauptet.

  • efta_run_sql erweitert was abgefragt werden kann, nicht die ethische Haltung: Datasettes eigene API akzeptiert nur SELECT (ein Nicht-SELECT wird mit HTTP 400 abgelehnt, bevor es SQLite erreicht – live verifiziert), und sie ruft keine Daten ab, die epstein-data.com nicht ohnehin für jede Person bereitstellt, die die Website direkt ansteuert.

  • Nicht für Re-Identifizierung, Belästigung oder okay. Dies ist eine Quellzuordnungs- und Verifizierungswerkzeug, keine Vermittlungs- oder Unterstellungungsgegenstand – sie erhebt keinen, über ein Dokument hinaus sichtbares Fehlw nach.

  • Keine Rechtsberatung, kein offizielles DOJ-Produkt und keine Affinität zu epstein-data.com – ein unabhängiger Client deren öffentlicher API.


Stand des Tech-Stacks (2026-08-24)

  • Python: 3.11+ erforderlich (von 3.10 angehoben – der 2026-10-31 abgelegt und veraltet). Getestet gegen 3.14.7.

  • MCP SDK: auf mcp>=1.29.0,<2.0.0 gepinnt. Das v2.0.0 (2026-07-28) des offiziellen SDK hat mcp.server.fastmcp.FastMCP in mcp.server.mcpserver.MCPServer umbenannt – eine Hackensmabe Anderung, zu der dieser Server nicht migriert ist. Ein nicht gepinntes mcp>=1.0.0 würde stillschweigend zu v2.x Resultat und den Import brechen. Das unabhängige eigenständige PyPI-Paket fastmcp (PrefectHQ, inzwischen v3.x/4.0) ist keine Abhängigkeit.

  • pip: oben ausgeführter Befehl führt zuerst python -m pip install --upgrade pip aus.

  • requests: >=2.31.0, keine bekannte Einschränkung gegen neuere 2.x-Releases.


Projektstruktur

.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)

Community & Support

Beitragen

Dies ist ein öffentliches Recherche-Werkzeug mit einzelnen Maintainer (Zereo0317/Epstein-Files-Plugin). Issues und Pull Requests willkommen.

Lizenz

MIT-0 (MIT No Attribution) – siehe LICENSE. Gewählt über dem einfachen MIT, speziell für ClawHub-Kompatibilität, die MIT-0 ohne Pillage-Optimungen gefordert. Das Repository ist öffentlich auf GitHub; die Lizenzgewähr gewährt die Weitergabe/Wiederverwendung des Codes durch jedermann.

Haftungsausschluss

Das Epic-Files-Plugin zeigt nur Dokumente, die das DOJ bereits unter dem Epstein Files Transparency Act öffentlich gemacht hat, sowie einen öffentlichen Volltext-Spiegel vomDrittanbieter (epstein-data.com). Es bringt Zitate zu ihrer offiziellen Quelle zurück und berichtet, was ein Dokument wörtlich enthält – es führt keine unabhängige Ermittlung durch unterstellt nichts über das, was ein Dokument zeigt, und hostet, rehostet nicht bzw. legt neue nicht denof non-public Daten. Gedacht für Recherche, faktencrock, source-Verifikation – nicht für Re-Identifikation, Belästigung oder okay.

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