Skip to main content
Glama
Zereo0317

Epstein-Files-Plugin

by Zereo0317

Epstein Files Plugin — запрос к публичному выпуску Министерства юстиции США по закону Epstein Files Transparency Act из любого ИИ-агента

Python Protocol MCP Tools Databases License

Превращает имя, дату, ключевое слово, номер страницы EFTA или свободный вопрос — о корпусе электронной почты, фотографиях, расшифровках или графе знаний — в точный, пригодный для цитирования официальный документ DOJ. Никакого ручного перелистывания ~2,8 миллиона страниц. Никакой борьбы с закрытым от ботов поиском DOJ.

Работает только с уже публичными судебными документами DOJ и с публичным полнотекстовым зеркалом. Создан для исследования, проверки фактов и поиска источников — не для повторной идентификации, преследования или доксинга. См. Ответственное использование.


О проекте

Epstein Files Plugin индексирует и разрешает документы в публичной базе DOJ ЭпштеIN: Закон о прозрачности досье правительственных деловых партнёров (Public Law 119-38, подписан 2025-11-19) Рансляет набор около 1,4 млн документов / 2,8–2,9 млн страниц, опубликованных в 12 наборах (DataSets) на justice.gov/epstein, зеркалированных и проиндексированных как 20 запрашиваемых баз данных сторонним сервисом epstein-data.com (обе цифры проверены вживую 2026-08-24; полный собранный корпус DOJ больше — около 6 млн страниц, из которых опубликована только эта часть — перепроверяйте перед тем, как ссылаться как на исчерпывающий).

Доступен в виде:

  • 🧩 плагин для Claude Code — устанавливается из маркетплейса в две строки

  • 🔌 MCP-сервер (.mcp.json) — тот же сервер, автономный: локальный stdio, без API-ключей, без удалённого хоста, работает с любым MCP-совместимым клиентом: Claude Desktop, Cursor, Windsurf или собственным агентским окружением на официальном mcp SDK

  • 💻 Python CLI-интерфейс — python src/efta_researcher.py, MCP-клиент не нужен

  • 📦 Python-библиотека — from eft_core import efta_to_url, get_dataset, импорт напрямую

Зачем это нужно:

  • 🚀 Быстрее, чем ручной поиск. Собственный поиск DOJ закрыт от автоматического/безголовного доступа (защита от ботов Akamai — см. Ответственное использование); этот инструмент переходит от имени, даты или ключа к нужному номеру EFTA за считанные секунды.

  • 🎯 Всегда прямо к источнику. Каждый результат ведёт к официальному PDF-адресу justice.gov/epstein — вы сами проверяете первоисточник, а не пересказ этого документа.

  • ✅ Фактчекинг, а не хайп. Реестр известных документов снабжён проверяемыми фактами (EUvsDisinfo, Reuters, Tempo и др.), поэтому «связь» помечена тем, что документ реально показывает, а не тем, что обещает вирусная подпись.

  • 🧠 Запрашивается всё, а не только почта. Два специальных инструмента покрывают корпус писем; пять универсальных инструментов работают со всеми 20 базами данных — изображения, транскрипты, OCR-текст, рукописный текст, депозиции, граф знаний, а также доступный только для чтения SQL-люк для всего, что не может выразить с помощью простого фильтра API.

  • 🗺️ Структура пересобрана один раз. Таблица границы 12 DataSet / номеров EFTA–Bates была сверена с собственными страницами DOJ, поэтому её не нужно пересобирать при каждом запросе.

  • 🔓 Без привязки. Те же запросы используются в CLI, Python-импорте или любом MCP-клиенте.


Related MCP server: aether-developer

Архитектура

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

Два слоя инструментов построены осознанно: специализированные обёртки над самой распространённой таблицей (быстренький, удобный, с нормальной пагинацией) и универсальный слой интроспекции/запросов/SQL, который без отдельного инструмента под каждую таблицу достаёт до любой другой базы данных — это и есть ответ «можно ли запросить всё?» и то, что позволяет работать этой схеме по мере развития схемы epstein-data.com до 2031 года без переписывания кода. Полное обоснование архитектуры — в CLAUDE.md.


Мне нужно…

Цель

Что использовать

Найти документ по имени, дате или ключевому слову

efta_search / eft_filter_email

Преобразовать ссылку (EFTA00741068) в официальный DOJ Link

efta_to_url

Проверить реальность вирусной истории

eft_known_docs → Research & Fact-Check

Найти по изображениям, транскриптам, OCR-тексту или графу

ef_list_databases → ef_query_table

Выполнить объединение (join), подсчёт (count) или GROUP BY

ef_run_sql

Интегрировать с агентом, отличным от Claude Code

Использование с ИИ-агентами

Понять структуру 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

11 MCP-инструментов только для чтения

🔍 Специализированные (частный случай — полнотекстовый поиск + метаданные почты):

Инструмент

Назначение

efta_search(query, limit, cursor)

Подстрочный поиск по индексу Datasette — точное количество совпадений + курсорная навигация

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

Фильтрация писем по метаданным — с точным количеством и пагинацией

efta_known_docs(category)

Перечисление предварительно проверенных, факт-чекнутых документов

efta_get_url(efta_number)

Преобразовать номер EFTA в официальный PDF URL DOJ

efta_verify_url(efta_number)

HEAD-проверка, жив ли URL PDF DOJ (см. оговорку ниже)

efta_lookup(efta_number)

Полное метаданных документа из индекса Datasette

🧬 Универсальные (все базы данных Datasette без закрепления под каждую таблицу):

Инструмент

Назначение

efta_list_databases()

Перечислить все 12 баз данDatasette (изображения, транскрипты, 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)

Read-only SQL — объединения, агрегаты, GROUP BY; Datasette отклоняет не-SELECT с HTTP 400

✅ Все 11 инструментов размечены как readOnly/idempotent (и nonBreaking на всём, что обращается к сети) согласно совместимым дополнениям по аннотациям MCP — клиент может безопасно выполнять их автоматически.

⚠️ Пагинация: limit ограничен 50–100 в зависимости от инструмента. Результат может быть гораздо больше (например, «David Gates» — всего 233 документа), и в таком случае инструменты показывают (N of TOTAL shown) и, если дальше есть результаты, предлагают cursor.

⚠️ Проверка URL: каждый PDF на justice.gov закрыт пре- кетом-паролем, поэтому простая HTTP-статистика может не различать «живо» и «не существует». Корректные ссылки достигаются не через попытки достучаться до justice.gov, а через таблицу границ DataSet, которая сверена.

❌ Инструменты общего назначения не покрывают всё, кроме пути: image_analysis (92K изображений с подписями), transcripts (435 аудио/видео расшифровок), knowledge_graph, ocr_database, hand_writing_transcriptions и ещё 13 баз — всё это доступно через универсальные инструменты. Для актуального списка баз вызовите eft_list_databases(), не полагайтесь на эту таблицу.


Использование с ИИ-агентами

Epstein Files Plugin — MCP-first, не Claude-first: стандартный локальный stdio-сервер (построенный на классе FastMCP из официального mcp Python SDK), говорящий на обычном модели Protokoll Context Protocol. Он работает с любым MCP-совместимым клиентом.

Клиент

Как подключается

Claude Code / Claude Desktop

/plugin marketplace add + /plugin install, или «сырое .mcp.json вручную

Cursor / Windsurf / Cline

Добавьте запись сервера из .mcp.json в MCP-настройки клиента

ChatGPT, Gemini или любой headless-агент

Запустите src/mcp_server.py через stdio — плагинная система и зависимость от Claude не обязательны

Конфигурация для общих 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, флаги --download/--verify CLI

Будущее изменение любого из сторонних доменов станет изменением конфигурации, а не кода.


Примеры

Пример 1 — Разрешение цитаты до её официального источника

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 не может выразить (raw 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

Номера EFTA — это страничные (Бейтс) идентификаторы, а не идентификаторы документов — PDF на 20 страниц занимает 20 подряд идущих номеров EFTA. Границы ниже — это криминалистические порайонные диапазоны из сопоставления rhowardstone/Epstein-registration-data, перепроверенные по страницам раскрытия самого DOJ.

DataSet

Диапазон 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 + расширение

Шаблон URL DOJ: https://www.justice.gov/epstein/files/DataSet%20{N}/EFTA{efta:08d}.pdf


Исследовательская и проверочно-фактологическая позиция

Этот релиз привлекает конспирологические интерпретации. Каждая запись в реестре известных документов (efta_known_docs) помечена уровнем уверенности и десенсационализирована:

Тема

О чём говорят документы

Трёхсторонняя комиссия / Совет по междунар. отношениям

В собственном био Эпштейна он указан как бывший член — элитное нетворкинет, а не заговор

Ротшильд

Реальные консультационные отношения (соглашение Southern Trust на ~25 млн долл.); письмо «про переворот в Украине» — EUvsDisinfo признала версию «государственного переправителя» дерождения

The

Место в совете директоров Рокфеллерского университета; мероприятия — институциональное, а не «кровное родство»

Илюминаты

Входящее , не запраши будущее письмо, отправленное Эпнштейну; ответа нет; не является свидетельством членства

Гейтс/БГЦ3

Реальный рамочный скоуп-документ по подготовленности к пандемии; фактчекеры не нашли связи с COVID-19


Ответственное использование

  • ✅ Работает только с уже публично раскрытыми материалами DOJ по адресу justice.gov/epstein и публичным сторонним полнотекстовым зеркалом (epstein-data.com). Никакой частной информации и платных источников, ни фарма используется скрапинг за логином.

  • ✅ Каждое утверждение в реестре известных документов имеет источник и пометку типа «уверенность» — «связь» маркируются по тому, что документально указывает, а не по тому, что утверждается вирусной подписью.

  • ✅ efta_run_sql расширяет набор запросов, а не этическую позицию: собственный API Datasette поддерживает только SELECT (все, что не SELECT, отклоняется с HTTP 400, не доходя до SQLite — проверено вживую), и он не получает доступа к данным, которые epstein-data.com и без того не открывает посетителям своего сайта.

  • ❌ Не для реидентификации, преследования или доксинга. Это инструмент определения источников и проверки, а не система расследований или об остальных навязней — он не обвиняет в прав поиในการions no только того, что показывают документы.

  • ❌ Не юридическая консультация, не официальный заказанный продукт и не аффилирован с epstein-data.com — это независимый клиент их публичного API.

Актуальность технического стека (2026-08-24)

  • Python: required 3.11+ (вместо 3.10 — EOL 2028-10-31). Протестировано на 3.14.7.

  • MCP SDK: закреплено mcp>=1.29.0,<2.0.0. Деfinition в официальном SDK v2.0.0 (2026-07-28) переименована класс mcp.server.fastmcp.FastMCP в mcp.server.mcpserver.MCPServer — это breaking change, под которое данный сервер и не мигрирован. Без фиксированной версии mcp>=1.0.0 тихано установилась бы версия 2.x и импорт был быть неневозможен. Дмысоло изолированный пакет fastmcp из PyPI (PrefectHQ) не является зависимостью.

  • Uno. Команда выше запускает сначала 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)

Сообщество и поддержка

Не основ

Это публичный однопользовательский исследовательский инструмент (Zoroep0317/Epstein-Files-Plugin`). Проверка на обрат. Обращения и pull request приветствуются.

Лицензия

MIT-0 (MIT без указания авторства) — см. LICENSE. Выбор в пользу MIT-0 был сделан специально для совместимости с ClawHub, которая требует именно MIT-0 без дополнительных исключений на отдельные скиллы. Репозиторий публичен на GitHub; условия лицензии определяют права на использование и распространение кода любым лицом.

Отказ от ответственности

Epstein Files Plugin лишь обеспечивает доступ к документам, которые DOJ уже опубликовал в соответствии с Epstein Files Transparency Act, и в публичное полнотекстовое зеркаин от третьего участника. Он разрешает указания на официальный источник и сообщает, что цитата дословно содержится в документе — он не проводит собственного расследования, не обвиняет ни в чём и DOC не показывает. Он не содержит, не перечисляет и не предоставляет никаких частных данных. Предназначен для исследований, фактчекинга и проверки источников — а не для идентификации, преследования или обнародования личных данных, harassment or doxxing.0

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to search SEC filings, earnings transcripts, and EU regulations with ready-to-cite evidence, including exact passages and source links.
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create verifiable, replayable citations, search private knowledge bases, and publish Markdown with verified citation markers.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables full-text, page-level citation search over the House Oversight Committee's published Epstein investigation documents, plus structured search over transcribed rows from Epstein's pilot flight logbook with provenance and confidence markers.
    0
    MIT