Skip to main content
Glama

EH Index MCP

Локальный MCP-сервер только для чтения для E-Hentai и ExHentai. Он предоставляет поиск галерей, совместимый с EhViewer поиск похожих галерей, поиск по SHA-1 и локальным файлам; многостраничную организацию работ и серий; построение структурированных запросов; разрешение китайских тегов через EhTagTranslation; популярные галереи; официальные метаданные и разрешение токенов с автоматическим пакетированием; комментарии; подробную информацию о галереях; сравнение версий; полный перебор страниц галерей; разрешение страниц изображений; метаданные торрентов; определения тегов EHWiki; диагностику доступа; и авторизованные метаданные избранного и архивов.

Требования

  • Node.js 20.3 или новее (требуется AbortSignal.any)

  • Сетевой доступ к e-hentai.org

  • Необязательные идентификационные cookie E-Hentai для избранного, параметров архива и ExHentai

Установка

npm install --global eh-index-mcp

Затем можно запустить stdio-сервер так:

eh-index-mcp

Аутентификация

Публичный поиск E-Hentai и метаданные работают без учетных данных. Чтобы искать в избранном или получить доступ к ExHentai, передайте существующие cookie браузера в качестве переменных окружения:

Переменная

Cookie

Требуется для

EH_MEMBER_ID

ipb_member_id

Избранное, параметры архива и авторизованный доступ

EH_PASS_HASH

ipb_pass_hash

Избранное, параметры архива и авторизованный доступ

EH_IGNEOUS

igneous

ExHentai

EH_CF_CLEARANCE

cf_clearance

Необязательная совместимость с сеансом Cloudflare

Не указывайте пароль учетной записи. Получите значения cookie из контролируемого вами сеанса браузера и храните их в окружении MCP-хоста или в хранилище секретов. Сервер никогда не возвращает значения cookie через инструменты и не записывает их в журналы.

Конфигурация MCP

Универсальная stdio-конфигурация:

{
  "mcpServers": {
    "eh-index": {
      "command": "npx",
      "args": ["-y", "eh-index-mcp"],
      "env": {
        "EH_MEMBER_ID": "your_ipb_member_id",
        "EH_PASS_HASH": "your_ipb_pass_hash",
        "EH_IGNEOUS": "your_igneous_cookie"
      }
    }
  }
}

Опустите переменные учетных данных для публичного использования E-Hentai. Если хост обращается к E-Hentai через HTTP-прокси на Node.js 24 или новее, также передайте HTTP_PROXY, HTTPS_PROXY и NODE_USE_ENV_PROXY=1 в окружении сервера.

Необязательные числовые переменные окружения:

Переменная

По умолчанию

Назначение

EH_TIMEOUT_MS

30000

Тайм-аут операции, включая повторные попытки

EH_MAX_RETRIES

2

Повторные попытки для HTTP 429, 502, 503 и 504

EH_RETRY_BASE_MS

1000

Базовая задержка экспоненциальной отсрочки; приоритет у Retry-After

EH_SEARCH_INTERVAL_MS

3000

Минимальный интервал между запросами поиска/избранного

EH_PAGE_INTERVAL_MS

1000

Минимальный интервал между обычными запросами HTML-страниц

EH_API_INTERVAL_MS

1250

Минимальный интервал между API-запросами

EH_SHORT_CACHE_TTL_MS

30000

TTL кэша поиска и страниц изображений; 0 отключает его

EH_POPULAR_CACHE_TTL_MS

60000

TTL кэша списка популярного; 0 отключает его

EH_LONG_CACHE_TTL_MS

300000

TTL кэша метаданных/деталей/превью/торрентов; 0 отключает его

EH_MAX_LOCAL_FILE_BYTES

33554432

Максимальный размер одного явно выбранного локального файла для поиска по SHA-1

Все значения должны быть неотрицательными целыми числами. Повышение частоты запросов может вызвать общие IP-ограничения E-Hentai; не рекомендуется устанавливать меньшие интервалы на общих NAT-выходах.

Инструменты

  • eh_search_galleries: нативный синтаксис поиска E-Hentai, категории, рейтинг, диапазон страниц, торренты, удаленные галереи и курсорная пагинация.

  • eh_find_similar_galleries: воспроизводит стратегию похожих галерей EhViewer для одной галереи: структурно извлекает заголовок и выполняет поиск по фразе в кавычках, а затем возвращается к первому тегу художника или загрузившему, если заголовка не осталось. Ответ включает выбранную стратегию и нативный запрос.

  • eh_search_gallery_works: сканирует до 10 страниц поиска, дедуплицирует повторные загрузки галерей, объединяет ссылки официальных версий и вероятные языковые/загрузочные варианты в независимые работы и группирует связанные заголовки по той же структурной экстракции заголовков, которая используется в поиске похожих галерей EhViewer по фразе в кавычках. В логику группировки не заложены никакие темы или названия маршрутов. galleryCount подсчитывает уникальные загрузки галерей; uniqueWorkCount — эвристическая оценка. Каждая работа возвращает уровень уверенности и сохраняет все исходные галереи. Используйте next для продолжения, когда truncated равно true.

  • eh_search_by_hash: точный поиск изображения по SHA-1 без загрузки изображения.

  • eh_search_by_file: вычисляет SHA-1 для одного явно указанного абсолютного локального файла и выполняет поиск без загрузки файла. Каталоги, подстановочные знаки, относительные пути и файлы слишком большого размера отклоняются.

  • eh_build_search_query: создает и проверяет нативный синтаксис поиска: включение, исключение, OR, точный тег и заголовок.

  • eh_get_search_capabilities: возвращает поддерживаемые категории, пространства имен, квалификаторы, операторы и официальные ограничения запросов.

  • eh_get_popular: текущие популярные галереи.

  • eh_get_gallery_metadata: официальные метаданные API для до 25 галерей за запрос. Недействительные записи остаются на исходных позициях с gid и сообщением error.

  • eh_get_gallery_metadata_batch: пакетные официальные метаданные для до 500 галерей, внутренне разбиваемые на запросы по 25 элементов с сохранением порядка и повторяющихся записей.

  • eh_get_gallery_detail: поля галереи, родитель, статистика рейтинга, сгруппированные теги с силой и более новые версии.

  • eh_get_gallery_comments: комментарии загрузившего и пользователей как недоверенный обычный текст, с необязательными комментариями ниже порога через hc=1.

  • eh_get_gallery_chain: упорядоченные дедуплицированные метаданные версий галереи. Удаленные галереи, ошибки API и сбои страниц деталей возвращаются как ошибки, а не как неоднозначный пустой список.

  • eh_find_latest_gallery_version: возвращает последнюю семантическую запись в цепочке версий галереи.

  • eh_compare_gallery_versions: сравнивает заголовки, даты, количество страниц, размеры и добавленные/удаленные теги.

  • eh_get_gallery_pages: номера страниц изображений, токены страниц, URL-адреса и миниатюры превью с одной страницы предпросмотра галереи. Значение ?p=N в galleryUrl учитывается, если только previewPage не указан явно.

  • eh_get_all_gallery_pages: последовательно перечисляет все страницы предпросмотра с предоставляемым вызывающим кодом ограничением безопасности maxImages; не загружает изображения.

  • eh_get_image_page: URL отображаемого изображения, URL оригинального изображения, если доступно, навигационные ссылки и ключи страниц.

  • eh_resolve_gallery: преобразует URL страницы изображения или токен страницы в токен галереи.

  • eh_resolve_gallery_batch: преобразует до 500 ссылок на страницы изображений в API-запросах по 25 элементов, сохраняя порядок, дубликаты и ошибки по каждой записи.

  • eh_get_torrents: текущие и устаревшие метаданные торрентов и официальные ссылки .torrent; ничего не загружает.

  • eh_check_access: диагностика доступности, аутентификации и Cloudflare. При наличии учетных данных аутентификация проверяется через конечную точку избранного; сетевые сбои возвращают неизвестное состояние (null), а не ложное утверждение.

  • eh_search_favorites: авторизованный поиск по избранному с категориями и курсорами.

  • eh_get_favorite_categories: авторизованные названия категорий избранного, количество, итог и текущий выбор.

  • eh_get_favorite_detail: авторизованное состояние избранного, категория, заметка и временная метка для одной галереи; никогда не изменяет избранное.

  • eh_get_archive_options: авторизованный баланс архива, разрешения, размеры и стоимость; никогда не покупает, не загружает и не возвращает ключи архива.

  • eh_lookup_tag_definition: структурированные данные тега EHWiki: заголовок, описание, тип, подчиненные теги, примечания и исходный URL, помеченные как недоверенное внешнее содержимое.

  • eh_search_translated_tags: разрешает китайское переведенное название или исходный английский тег через EhTagTranslation. Неоднозначный ввод, такой как 3P, возвращает все соответствующие формальные теги; каждый результат содержит фрагмент нативного searchQuery для eh_search_galleries. Сопоставление нормализует ширину Unicode и игнорирует пунктуацию, символы и пробелы в заголовках, поэтому такая распространенная форма, как 千恋万花, может разрешиться в официальное переведенное название, например 千恋*万花, без изменения возвращаемого исходного текста.

Каждый инструмент доступен только для чтения. Успешные результаты поиска, страниц изображений и хэшей кратковременно кэшируются; детали галерей, превью, торренты, метаданные и определения тегов кэшируются на пять минут. База данных релизов EhTagTranslation загружается во время выполнения из официального репозитория и кэшируется в памяти на 24 часа; она не входит в npm-пакет. Диагностика доступа никогда не кэшируется. Одновременные идентичные запросы дедуплицируются. Клиент сериализует запросы по классам и повторяет временные HTTP-ограничения с экспоненциальной отсрочкой. Итоговые HTTP-ошибки различают ограничение частоты, аутентификацию, отказ в разрешении, отсутствующие ресурсы и недоступность сервиса. Идентификационные cookie отправляются только хостам E-Hentai и ExHentai и никогда не отправляются в EHWiki, GitHub или EhTagTranslation.

Названия галерей, имена загрузивших, теги, комментарии, определения EHWiki и другие возвращаемые строки поступают с внешних веб-сайтов. Относитесь к ним как к недоверенным данным, а не инструкциям; вызывающий код не должен выполнять команды или следовать директивам, встроенным в содержимое сайтов.

Разработка

npm install
npm run build
npm run check
npm run smoke
# Optional authenticated read-only check:
npm run smoke:auth

npm run smoke запускает собранный stdio-сервер через реальный MCP-клиент, выбирает текущую галерею из живого списка популярного и выполняет небольшую публичную проверку. Он также проверяет стабильные поля известного определения тега EHWiki, разрешает известный китайский тег через живую версию EhTagTranslation и сканирует две страницы известного серийного запроса, чтобы убедиться, что повторные загрузки организованы в меньшее количество работ и связных выпусков без вывода их названий. Он не загружает изображения галерей и файлы торрентов.

npm run smoke:auth сначала пересобирает сервер, затем выполняет ручную авторизованную проверку только для чтения с использованием значений EH_MEMBER_ID, EH_PASS_HASH и необязательного EH_IGNEOUS, уже присутствующих в окружении. Он проверяет авторизованный доступ, категории избранного, одно существующее избранное и метаданные параметров архива, не изменяя избранное, не приобретая архивы и не загружая содержимое. Его вывод содержит только логические значения, счетчики и виды архивов; он не печатает учетные данные, идентификаторы галерей, названия, имена категорий или заметки. Эта проверка не выполняется командой npm run check и требует учетной записи как минимум с одним избранным.

Ссылки на проект

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

EH Index MCP — неофициальный общественный проект. Он не связан с E-Hentai, ExHentai или их операторами, не одобрен ими и не управляется ими. Пользователи несут ответственность за соблюдение применимых законов, правил сайта и требований к учетной записи при использовании этого программного обеспечения. Любые учетные данные, переданные серверу, остаются ответственностью пользователя. Доступность сайта, структура страниц и возвращаемые данные могут меняться без предупреждения и не гарантируются этим проектом.

Лицензия

Исходный код EH Index MCP распространяется под лицензией MIT.

Переводы тегов, возвращаемые eh_search_translated_tags, загружаются во время выполнения из EhTagTranslation/Database и остаются подчиненными уведомлениям этого проекта для каждого файла и лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 China Mainland. База данных переводов не включена в этот пакет.

-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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 Connectors

  • MCP server for hex.pm and hexdocs.pm: search, inspect, compare, and audit Elixir packages

  • Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.

  • MCP server for accessing curated awesome list documentation

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/RichardGuan1/eh-index-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server