Skip to main content
Glama
Zereo0317

Epstein-Files-Plugin

by Zereo0317

Epstein Files Plugin — consulta los archivos Epstein del DOJ publicados en virtud de la Ley de Transparencia de los Archivos Epstein desde cualquier agente de IA

Python Protocol MCP Tools Databases License

Convierte un nombre, una fecha, una palabra clave, un número de página EFTA o una pregunta abierta — sobre el corpus de correos electrónicos, las fotos, las transcripciones o el grafo de conocimiento — en el documento exacto, citable y oficial del DOJ. Sin ojear manualmente ~2,8 millones de páginas. Sin luchar contra el buscador del DOJ bloqueado por bots.

Opera solo sobre registros judiciales públicos del DOJ y un espejo público de texto completo. Está pensado para investigación, verificación de datos y localización de fuentes — no para reidentificación, acoso o doxxing. Véase Uso responsable.


Acerca de

Epstein Files Plugin indexa y resuelve documentos en la divulgación pública del DOJ de la Ley de Transparencia de los Archivos Epstein (Ley Pública 119-38, firmada el 2025-11-19) — aproximadamente 1,4 millones de documentos / 2,8–2,9 millones de páginas publicadas en 12 DataSets en justice.gov/epstein, con espejo e indexación como 20 bases de datos consultables por el servicio de terceros epstein-data.com (ambas cifras verificadas en directo el 2026-08-24; el corpus total recopilado por el DOJ es aún mayor, ~6 millones de páginas, de las cuales esta es la parte publicada hasta ahora — vuelva a verificar antes de citarlo como exhaustivo).

Disponible como:

  • 🧩 un plugin para Claude Code: se instala desde un marketplace en dos líneas

  • 🔌 un servidor MCP (.mcp.json) — el mismo servidor, independiente — stdio local, sin claves de API, sin servidor remoto, y funciona con cualquier cliente compatible con MCP: Claude Desktop, Cursor, Windsurf o un runtime de agente personalizado construido sobre el SDK oficial mcp

  • 💻 una CLI de Pythonpython src/efta_researcher.py, sin necesidad de cliente MCP

  • 📦 una biblioteca Pythonfrom efta_cores import efta_to_url, get_dataset, importada directamente

Por qué usarlo:

  • 🚀 Más rápido que la búsqueda manual. El propio buscador del DOJ está bloqueado para acceso automatizado/headless (protección antibots de Akamai — ver Uso responsable); esto va directamente de un nombre, una fecha o una palabra clave al número EFTA equivalente, en segundos.

  • 🎯 Directo a la fuente, siempre. Cada resultado se resuelve a la URL oficial del PDF de justice.gov/epstein — usted verifica el documento primario, nunca una paráfrasis del mismo.

  • Con verificación de datos, no sensacionalista. El registro de documentos conocidos se publica con verificaciones de datos con fuente (EUvsDisinfo, Reuters, Tempoe y otras) para que «ningún» contenido se etiquete según lo que el documento realmente muestra, no según la leyenda viral.

  • 🧠 Totalmente consultable, no solo la bandeja de entrada. Dos herramientas específicas cubren del correo c;acumulación de datos; cinco herramientas genéricas acceden a las 20 bases de datos — imágenes, transcriptas, texto OCR, escritura a mano, deposiciones, psaprop —, y además un paso de escape SQL solo lectura para lo que la API de filtros no pueda expresar.

  • 🗺️ Estructura reconstruida una sola vez. La tabla de límites de numeración de los 12 DataSets / EFTA-Bates se contrastó con las propias páginas de divulgación del DOJ para no re-derivarla en cada consulta.

  • 🔑 Sin cierre. Las mismas búsquedas funcionan desde la CLI, una importación en Python o cualquier cliente MCP.


Related MCP server: DocImprint

Arquitectura

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

Dos capas de herramientas, deliberadamente: envoltorios específicos sobre la única tabla más frecuente (rápidos, ergonómicos, con paginación ordenador) y una capa genérica de introspección/consulta/SQL que llega a las demás bases de datos sin una herramienta dedicada por cada tabla — la respuesta a «¿se puede consultar todo?», yes y a lo que mantiene esto funciona mientras el esquema intercoso crece en epstein-data.com hasta 2031 sin nuevo código. Ver CLAUDE.md para la justificación completa del diseño.


Lo que quiero hacer...

Objetivo

Usa esto

Hallar un documento por nombre, fecha o palabra clave

efta_search / efta_filter_email

Convertir una cita (EFTA00741068) en un enlace oficial del DOJ

efta_asmx

Comprobar si una afirmación viral es real

efta_ebooksResearch & Fact-Check Posture

Buscar imágenes, transcriptras, texto OCR o el grafo de conocimiento

efta_list_databasesefta_query_table

Ejecutar un join, un count o un GROUP BY

efta_run_sql

Integrar en un agente que no sea Claude Code

Uso con el agente de IA

Entender el sistema de numeración / DataSet de EFTA

Referencia DataSet


Inicio rápido

Prerrequisitos

  • Python 3.11 o posterior (3.10 llega al final de su vida el 2026-10-31 — ver Actual win)

  • pip

Instalar como plugin de Claude Code

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

Instalación para CLI / MCP standalone / biblioteca

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)

Ejecutar la 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

Ejecutar el servidor MCP standalone

python src/mcp_server.py

Las 11 herramientas MCP de solo lectura

**🔎 Específicas para un propósito (el caso común — texto completo + alalites de energía):

Herramienta

Propósito

efta_search(query, limit, cursor)

Búsqueda en subcadenas del índice de Datasmite — cuenta total exacta de coincidencias y paginación porc

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

Filtrar correos por campos de metadatos — mismo conteo total y paginación

efta_known_docs(category)

Lista de documentos conocidos prelenoidados

efta_get_url(efta_number)

Conviertir un número EFTA a su URL oficial del PDF en DOJ

efta_verify_url(efta_number)

Con una comprobación HEAD verifica si un PDF del DOJ está disponible (consultar el aviso a continuación)

efta_lookup(efta_number)

Metadatos completos del documento desde el índice de Datasite

**🧬 Genéricas (las 20 bases de datos, sin codificación por tabla):

Herramienta

Propósito

efta_list_databases()

Enumerar las 20 bases de datos Datasite (imágenes, transcriptas, OCR, deposiciones...)

efta_list_tables(database)

Enumerar todas las tablas de una base de datos, con columnas y número de renglones

efta_describe_table(database, table)

Lista de columnas y cantidad de filas de una tabla

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

Consulta por “wrapped“ sobre cualquiera tabla

efta_run_sql(database, sql, params, limit)

SQL solo lectura — joins, agregación, GROUP BY; Datasite rechaza cualquier no-SELECT con HTTP 400

✅ Los 11 están marcados con readOnlyHint/idempotentHint (y openWorldHint donde corresponde, según especificaciones MCP) — un cliente pueda ejecutar de forma segura.

⚠️ Paginación: limit se reduce a 50–100 según la herramienta. Una consulta puede coincidir con muchos más (por ejemplo, "pizza" coincide actualmente con 233 documentos). Cuando existe paginación, las herramientas indican (N de TOTAL) y cursorítulo para continuar.

⚠️ Verificación de URL: justice.gov forra a cada PDF bruta con un verificago de edad y el reto de Akamai, así que un estado HTTP bruto no distingue de forma fisionómica “vida” de “inexistente”. La corrección de las URLs proviene de la tabla verificada de límites de DataSet a continuación, no de que state.gov.

No cubierto ni con las herramientas específicas: el image_analysis (92K imanes), transcripts (435 transcriptos de audio/video), knowledge_graph, ocr_database, handwriting_transcriptions y datos más — todo alcanzable con las herramientas genéricas. Consulte efta_list_databases() para obtener la lista real actual en lugar de depender de la que le rock.


Uso con agentes de IA

Epstein Files Plugin es MCP-first, no Claude-first: es un servidor stdio local estándar (construido con la clase FastMCP del SDK Python mcp) y habla estándar Protocol Universal. Funciona con cualquier cliente compatible con MCP.

Cliente

Cómo conecta

Claude Code / Claude Desktop

/plugin marketplace add y /plugin install, o el mc.

Cursor / AI ide

Añade la entrada del servidor del .mcp.json a los ajustes MCP del cliente

ChatGPT, Gemini o cualquier agente personalizado/sin interfaz

Señalar a src/mcp_server.py por stdio — sin sistema de plugins ni dependencia de Claude

Configuración de cliente MCP genérico

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

sin API keys, sin autenticación, sin servidor remoto — un proceso local hablando stdio, idéntico en cualquier cliente.

Claude Code

Instalado como plugin, el mismo servidor se carga automáticamente desde el .mcp.json de este repositorio (usa ${CLAUDE_PLUGIN_ROOT}, sin necesidad de editar rutas):

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

Sobrescrituras de entorno (resiliencia ante un cambio de espejo o de dominio)

Variable

Default

Afecta

EFTA_DATASETTE_BASE_URL

https://epstein-data.com

Todas las herramientas de búsqueda/consulta/SQL

EFTA_DOJ_BASE_URL

https://www.justice.gov

efta_get_url, efta_verify_url, las opciones --download/--verify de la CLI

Un cambio futuro en cualquiera de los dos hosts de terceros es un cambio de configuración, no un cambio de código.


Ejemplos

Ejemplo 1 — Resolver una cita a su fuente oficial

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.

Ejemplo 2 — Encontrar un email por remitente, destinatario y fecha

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.

Ejemplo 3 — Buscar más allá del corpus de emails (herramientas genéricas)

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.

Ejemplo 4 — Una pregunta que la API de filtros no puede expresar (SQL en bruto)

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.

Referencia de DataSets

Los números EFTA son identificadores de página (Bates), no de documento: un PDF de 20 páginas consume 20 números EFTA consecutivos. Los límites siguientes son los rangos forenses por archivo del mapeo de rhowardstone/Epstein-research-data, contrastados con las propias páginas de divulgación del DOJ.

DataSet

Rango EFTA

Contenido

DS01

1 – 3,158

Fotos, escaneos físicos

DS02

3,159 – 3,857

Fotos, escaneos incautados

DS03

3,858 – 5,586

Pruebas del gran jurado

DS04

5,705 – 8,320

Registros, documentos judiciales

DS05

8,409 – 8,528

Escaneos incautados, declaraciones

DS06

8,529 – 8,998

Declaraciones, actas de acusación

DS07

9,016 – 9,664

Transcripciones

DS08

9,676 – 39,023

Emails, informes policiales

DS09

39,025 – 1,262,781

Corpus principal de emails

DS10

1,262,782 – 2,205,654

Emails, datos financieros

DS11

2,205,655 – 2,730,264

Emails, datos de dispositivo

DS12

2,730,265 – 2,858,497

Documentos judiciales, FBI + ampliación

Patrón de URL del DOJ: https://www.justice.gov/epstein/files/DataSet%20{N}/EFTA{efta:08d}.pdf


Postura de investigación y verificación de datos

Esta publicación atrae lecturas conspirativas. Toda entrada del registro de documentos conocidos (efta_known_docs) lleva una etiqueta de confianza y está libre de sensacionalismo:

Tema

Lo que muestran los documentos

Comisión Trilateral / CFR

La propia biografía de Epstein lo mencionaba como ex miembro — redes de élite, no una conspiración

Rothschild

Una relación de asesoramiento real (acuerdo de Southern Trust de ~$25M); el email de “conmoción en Ucrania”: EUvsDisinfo señaló la versión del “golpe” como desinformación

Rockefeller

Un puesto en el consejo de la Universidad Rockefeller + relación de donante — institucional, no “linaje de sangre”

Illuminati

Un email entrante no solicitado, enviado a Epstein; no hay respuesta registrada; no es prueba de afiliación

Gates / BGC3

Un documento de alcance real sobre preparación ante pandemias; los verificadores de datos no encontraron vínculo con la planificación de COVID-19


Uso responsable

  • ✅ Funciona solo sobre publicaciones del DOJ ya públicas en justice.gov/epstein y sobre un espejo público de texto completo de un tercero (epstein-data.com). Sin datos privados, sin fuentes de pago, sin scraping tras un inicio de sesión.

  • ✅ Cada afirmación del registro de documentos conocidos lleva una fuente y una etiqueta de confianza: una “ conexión” se etiqueta por lo que un documento muestra literalmente, nunca por lo que dice un pie de foto ver.

  • efta_run_sql amplía qué se puede consultar, no la postura ética: la API de Datasette solo acepta SELECT (un no-SELECT se rechaza con HTTP 400 antes de llegar a SQLite — verificado en directo), y no accede a ningún dato que epstein-data.com no exponga ya a cualquiera que navegue a su sitio directamente.

  • No para dis-identificación, acoso o doxxeo. Es una herramienta de localización y verificación de fuentes, no un motor de denuncias ni de acusaciones: no atribuye conductas indebidas más allá de lo que muestra un documento.

  • No es asesoramiento legal, ni un producto oficial del DOJ, ni está afiliado a epstein-data.com — Es un cliente independiente de su API pública.


Actualidad de la pila tecnológica (2026-08-24)

  • Python: se requiere 3.11+ (se bumped desde 3.10 — alcanzó su fin de vida el 2026-10-31). Probado contra la versión 3.14.7.

  • MCP SDK: fijado mcp>=1.29.0,<2.0.0. La v2.0.0 oficial del SDK (2026-07-28) pasó a denominar mcp.server.fastmcp.FastMCP como mcp.server.mcpserver.MCPServer, un cambio importante que rompe la compatibilidad y que este servidor aún no ha migrado. Un mcp>=1.0.0 sin fijar resolvería silenciosamente a la v2.x y fallaría al importar. El paquete independiente no relacionado fastmcp de PyPI (PrefectHQ, ahora en v4.x/4.0) no es una dependencia.

  • pip: el comando de instalación anterior ejecuta python -m pip install --upgrade pip primero.

  • {%- requests: se especifica >=2.31.0 y no hay restricción conocida contra versiones 2.x más nuevas.


Estructura del proyecto

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

Comunidad y soporte

Cómo contribuir

Es una herramienta de investigación pública con un único mantenedor (Zereo0317/Epstein-Files-Plugin). Las issues y los pull requests son bienvenidos.

Licencia

MIT-0 (MIT No Attribution) — consultaLICENSE. Se optó por ella frente al MIT simple específicamente por la compatibilidad con ClawHub, que requiere MIT-0 sin anulaciones por skill. El repositorio es público en GitHub; la concesión de licencia rige la redistribución y la reutilización del mismo por parte de cualquier persona.

Aviso de responsabilidad

Epstein Files Plugin solo expone documentos que el DOJ ya ha hecho públicos en el marco de la Ley Epstein de Transparencia de Archivos, además de un espejo público de texto completo de un tercero (epstein-data.com). Resuelve citas procedentes de la fuente oficial y comunica lo que tiene literalmente un documento: no lleva a cabo una investigación original, no alega conductas indebidas más allá de lo que muestra un documento y no aloja, vuelve a alojar ni expone ningún dato no público. Está pensado para la investigación, la verificación de datos y la verificación de fuentes, no para la reidentificación, el acoso o el 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