Epstein-Files-Plugin
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
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 oficialmcp💻 una CLI de Python —
python src/efta_researcher.py, sin necesidad de cliente MCP📦 una biblioteca Python —
from 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:#e8edf4Dos 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 | |
Convertir una cita ( | |
Comprobar si una afirmación viral es real | |
Buscar imágenes, transcriptras, texto OCR o el grafo de conocimiento | |
Ejecutar un join, un count o un | |
Integrar en un agente que no sea Claude Code | |
Entender el sistema de numeración / DataSet de EFTA |
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-pluginInstalació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_corpusEjecutar el servidor MCP standalone
python src/mcp_server.pyLas 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 |
| Búsqueda en subcadenas del índice de Datasmite — cuenta total exacta de coincidencias y paginación porc |
| Filtrar correos por campos de metadatos — mismo conteo total y paginación |
| Lista de documentos conocidos prelenoidados |
| Conviertir un número EFTA a su URL oficial del PDF en DOJ |
| Con una comprobación HEAD verifica si un PDF del DOJ está disponible (consultar el aviso a continuación) |
| Metadatos completos del documento desde el índice de Datasite |
**🧬 Genéricas (las 20 bases de datos, sin codificación por tabla):
Herramienta | Propósito |
| Enumerar las 20 bases de datos Datasite (imágenes, transcriptas, OCR, deposiciones...) |
| Enumerar todas las tablas de una base de datos, con columnas y número de renglones |
| Lista de columnas y cantidad de filas de una tabla |
| Consulta por “wrapped“ sobre cualquiera tabla |
| SQL solo lectura — joins, agregación, |
✅ 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:
limitse 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)ycursorítulopara 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_transcriptionsy datos más — todo alcanzable con las herramientas genéricas. Consulteefta_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 |
|
Cursor / AI ide | Añade la entrada del servidor del |
ChatGPT, Gemini o cualquier agente personalizado/sin interfaz | Señalar a |
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 |
|
| Todas las herramientas de búsqueda/consulta/SQL |
|
|
|
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/epsteiny 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_sqlamplía qué se puede consultar, no la postura ética: la API de Datasette solo aceptaSELECT(un no-SELECTse 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 denominarmcp.server.fastmcp.FastMCPcomomcp.server.mcpserver.MCPServer, un cambio importante que rompe la compatibilidad y que este servidor aún no ha migrado. Unmcp>=1.0.0sin fijar resolvería silenciosamente a la v2.x y fallaría al importar. El paquete independiente no relacionadofastmcpde 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 pipprimero.{%-
requests: se especifica>=2.31.0y 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.
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