EH Index MCP
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 | Требуется для |
|
| Избранное, параметры архива и авторизованный доступ |
|
| Избранное, параметры архива и авторизованный доступ |
|
| ExHentai |
|
| Необязательная совместимость с сеансом 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 в окружении сервера.
Необязательные числовые переменные окружения:
Переменная | По умолчанию | Назначение |
|
| Тайм-аут операции, включая повторные попытки |
|
| Повторные попытки для HTTP 429, 502, 503 и 504 |
|
| Базовая задержка экспоненциальной отсрочки; приоритет у |
|
| Минимальный интервал между запросами поиска/избранного |
|
| Минимальный интервал между обычными запросами HTML-страниц |
|
| Минимальный интервал между API-запросами |
|
| TTL кэша поиска и страниц изображений; |
|
| TTL кэша списка популярного; |
|
| TTL кэша метаданных/деталей/превью/торрентов; |
|
| Максимальный размер одного явно выбранного локального файла для поиска по 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:authnpm run smoke запускает собранный stdio-сервер через реальный MCP-клиент, выбирает текущую галерею из живого списка популярного и выполняет небольшую публичную проверку. Он также проверяет стабильные поля известного определения тега EHWiki, разрешает известный китайский тег через живую версию EhTagTranslation и сканирует две страницы известного серийного запроса, чтобы убедиться, что повторные загрузки организованы в меньшее количество работ и связных выпусков без вывода их названий. Он не загружает изображения галерей и файлы торрентов.
npm run smoke:auth сначала пересобирает сервер, затем выполняет ручную авторизованную проверку только для чтения с использованием значений EH_MEMBER_ID, EH_PASS_HASH и необязательного EH_IGNEOUS, уже присутствующих в окружении. Он проверяет авторизованный доступ, категории избранного, одно существующее избранное и метаданные параметров архива, не изменяя избранное, не приобретая архивы и не загружая содержимое. Его вывод содержит только логические значения, счетчики и виды архивов; он не печатает учетные данные, идентификаторы галерей, названия, имена категорий или заметки. Эта проверка не выполняется командой npm run check и требует учетной записи как минимум с одним избранным.
Ссылки на проект
Репозиторий: https://github.com/RichardGuan1/eh-index-mcp
Проблемы: https://github.com/RichardGuan1/eh-index-mcp/issues
Отказ от ответственности
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. База данных переводов не включена в этот пакет.
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 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
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/RichardGuan1/eh-index-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server