whois — WHOIS и RDAP-сервис с MCP-точкой
whois
Самостоятельный сервис на Go: ищет WHOIS и RDAP по доменам, IP, CIDR и ASN и отдает результат агенту через MCP-точку /mcp
- 66 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Сервис ходит к внешним реестрам и учитывает запросы агента в лимитах и логах
- Открытая MCP-точка без ключей отвечает любому, кто достучится до порта
Установка
- Работает в
Ручная установка
docker run -d --name whois -p 8043:8043 --link redis:redis jinzeyang/whoisОбраз из README, перед ним поднимают контейнер redis. Для небольших нагрузок Redis можно не ставить, тогда запустите бинарный релиз.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Сервис ходит к внешним реестрам и учитывает запросы агента в лимитах и логах
- Открытая MCP-точка без ключей отвечает любому, кто достучится до порта
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Программа на Go отвечает на запросы о регистрации доменов, IPv4 и IPv6 адресах, CIDR-префиксах и номерах автономных систем. Для доменов она ходит к реестрам по протоколу RDAP, а для национальных зон без RDAP разбирает обычный WHOIS и приводит его к JSON. В ответы попадает только часть полей: так сделано под требования ICANN и GDPR к персональным данным. К агенту сервис подключается как MCP-сервер по Streamable HTTP на адресе вида http://host:8043/mcp. Основной инструмент whois_lookup принимает строку с доменом, адресом или номером ASN. Пакетный whois_batch_lookup принимает список запросов, но работает только после включения batch.enabled в config.yaml. Вместе с MCP сервис отдает REST API, спецификацию OpenAPI 3.1, метрики Prometheus и точки проверки здоровья. Кеш по умолчанию лежит в памяти, для нескольких экземпляров к нему подключают Redis. Доступ можно закрыть API-ключами с лимитом запросов на каждый ключ.
Для кого. Админам, регистраторам доменов и разработчикам, которым нужен собственный WHOIS-шлюз с метриками, а агенту нужно спрашивать про домены и сети.
Подходит, если
- Агент проверяет, свободен ли домен и когда у него истекает регистрация
- При разборе инцидента надо выяснить, кому принадлежит IP-адрес или автономная система
- В отчете по аудиту нужна сводка по десяткам доменов за один вызов
- Команде требуется внутренний WHOIS и RDAP шлюз с кешем и лимитами вместо обращений к реестрам напрямую
Не подходит, если
- Нужны контактные данные владельца домена: сервис возвращает ограниченный набор полей из-за GDPR
- Требуется готовый облачный MCP без развертывания: здесь сначала поднимают собственный сервис
- Нужна история смены владельцев домена: сервис отдает текущую регистрационную запись
Пример запроса к агенту
Узнай, когда истекает регистрация домена example.com и в каком реестре он числится, а потом покажи владельца сети для адреса 8.8.8.8.MCP
- Транспорт
- http
- Авторизация
- не нужна
Ограничения
Сервис нужно развернуть самому: в репозитории нет готового облачного адреса для MCP, демонстрационные сайты предназначены для REST. Часть национальных доменных зон не поддерживает RDAP, их разбор ограничен адаптированными суффиксами, для остальных приходит минимальный ответ с пометкой, что зона не поддерживается. Пакетный запрос по умолчанию отключен и рассчитан на работу вместе с API-ключами. MCP-точка при выходе за пределы localhost требует защиты: включите ключи и, при прямом подключении, защиту от DNS rebinding. README написан по-китайски, английская версия лежит в README_EN.md.
Как отключить. Остановите и удалите контейнер командой docker rm -f whois и уберите запись об MCP-сервере из конфигурации клиента. Redis и конфигурационный файл удалите отдельно, если поднимали их для сервиса.
Частые вопросы
Какие запросы понимает whois_lookup?
Домен, адрес IPv4 или IPv6, префикс CIDR и номер ASN вида AS12345. Ответ совпадает с ответом REST API и построен на словаре RDAP.
Почему в ответе нет контактов владельца?
Сервис следует временной спецификации ICANN для регистрационных данных gTLD и требованиям GDPR, поэтому отдает только необходимый минимум. Полные контакты скрыты уже у самих реестров.
Нужен ли Redis?
Нет. Кеш по умолчанию живет в памяти процесса с ограничением по числу записей и размеру. Redis пригодится для нескольких экземпляров и для продакшена, параметр cache.requireRedis делает его обязательным.
Как закрыть доступ к MCP-точке?
Добавьте один или несколько ключей в auth.keys. Все точки кроме /health и /ready тогда требуют заголовок Authorization с Bearer или X-API-Key. Для ключей настраивается имя и лимит запросов в минуту.
Работает ли сервис с WHOIS через прокси?
Да, в config.yaml есть раздел proxy: адрес, логин, пароль и список суффиксов, запросы по которым идут через прокси. Значение all направляет через него все запросы к RDAP, включая IP и ASN.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер Domainstack без ключа: агент узнает регистратора, DNS, хостинг, сертификат, заголовки и SEO домена по запросу
Демон mcpd запускает MCP-серверы из одного файла .mcpd.toml и отдает их агентам и скриптам как обычный HTTP API на локальном порту
MCP Gateway Registry
mcp-gateway-registry
Единый реестр и шлюз для серверов MCP, агентов и скиллов: общий вход, OAuth, аудит и OpenTelemetry. Проект сообщества, развертывание в Docker и облаке
Менеджер MCP-серверов на Node.js: запускает локальные и подключает удаленные серверы и отдает их клиенту одним адресом с REST API для управления
Самостоятельно размещаемый шлюз, который собирает несколько MCP-серверов в один эндпоинт с авторизацией и выбором инструментов
Удаленный MCP-сервер Globalping: ping, traceroute, DNS, MTR и HTTP-проверки из тысяч точек мира по запросу агента
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| whois — WHOIS и RDAP-сервис с MCP-точкой (эта карточка) | нет | не нужна | 66 | |
| uptimepage | да | OAuth | 55 | мониторинг доступности страниц, WHOIS не затрагивает |
| SEO Audit Console | нет | ключ необязателен | 101 | SEO-аудит сайтов в одном MCP, сведений о регистрации доменов не дает |
Коротко о README
Репозиторий описывает запуск через Docker, готовые бинарные релизы и сборку из исходников, подробный config.yaml, список конечных точек и гарантии стабильности для версии 1.x. Отдельная страница docs/mcp.md объясняет подключение клиентов.