Перейти к основному содержимому

Инструменты для разработчиков и AI-агентов

API/MCP CloudExplorer

Получайте проверяемые данные CloudExplorer напрямую из приложений или предоставьте к ним доступ вашей AI-модели.

REST API

REST API предоставляет данные CloudExplorer о доменах, сетях и истории сканирования поддоменов. Методы GET читают сохранённые данные; POST /api/v1/check_subdomain ставит новое сканирование в очередь и требует Bearer-токен.

Подключение к REST API

Отправляйте HTTPS-запросы к базовому адресу. GET доступны без токена с общим лимитом 30 анонимных запросов в секунду (при превышении — 429); корректный Bearer обходит этот лимит, неверный Authorization даёт 401. Ошибки возвращаются как application/problem+json с кодом и request_id. Интерактивная документация показывает точные схемы ответов.

Базовый адрес https://api.cloudexplorer.ru
Открыть документацию REST API

Основные методы

GET
/api/v1/status

Состояние данных

Показывает состояние API и доступность подключенных наборов данных.

GET
/api/v1/zones/{zone}/domains

Домены зоны

Возвращает активные домены выбранной зоны с курсорной пагинацией; передавайте возвращенный курсор для получения следующей страницы.

GET
/api/v1/zones/{zone}/statistics

Статистика зоны

Возвращает сохраненные ежедневные показатели зоны за выбранную дату и метрику.

GET
/api/v1/domains/{domain}/ns-history

Текущие данные домена и история NS

Возвращает текущие записи A, AAAA, MX, NS, CNAME и TXT, текущий WHOIS, когда он доступен, и до 200 наблюдавшихся изменений NS. Для публичных IP-адресов из записей A и AAAA и адресов, полученных при DNS-разрешении целей MX, NS и CNAME, ответ содержит статус поиска AS, а если наблюдаемая исходная BGP AS найдена — её номер и описание, если оно доступно. Если для домена или его зоны нет поддерживаемой сохранённой истории NS, текущие данные всё равно возвращаются с history_available=false.

GET
/api/v1/domains/{domain}/whois

WHOIS домена

Возвращает актуальный текстовый ответ системной утилиты WHOIS для домена.

GET
/api/v1/as/lookup?ip={ip}

IP и исходная AS

Определяет наблюдаемую исходную BGP AS публичного IP-адреса и возвращает ее текущее описание.

GET
/api/v1/ptr/lookup?ip={ip}

PTR-запись, AS и история PTR по IP

Возвращает текущую PTR-запись, наблюдаемую исходную BGP AS и историю изменений PTR публичного IPv4-адреса. Данные PTR собираются ежесуточным сканом префиксов AS из зоны охвата коллектора: IPv6 не поддерживается, а адрес вне зоны охвата возвращает ptr.status=no_data. Статус absent означает авторитетное отсутствие PTR, а не таймаут. Параметр limit (от 1 до 500, по умолчанию 100) ограничивает число новейших записей истории; history_truncated=true показывает, что история обрезана.

GET
/api/v1/as/graph/dates

Даты снимков RouteViews

Возвращает даты доступных ежедневных BGP-снимков RouteViews, начиная с самой новой, для построения графа соседей AS.

GET
/api/v1/as/{asn}/graph

Граф соседей AS

Возвращает граф соседей указанной AS по одному коллектору и снимку RouteViews, а не глобальную карту интернета; глубина обхода — от 1 до 3, дату снимка можно выбрать.

POST
/api/v1/check_subdomain

Поставить сканирование поддоменов в очередь

Принимает только JSON {"domain":"example.com"} и действующий Bearer-токен; дополнительные поля, включая priority, запрещены. Строка domain длиной до 1024 символов должна быть DNS-именем, а не URL, IP или wildcard; имя приводится к lowercase/IDNA. Тело — не более 16 KiB. Каждый POST создаёт отдельный заказ с приоритетом 10 и возвращает 202: order_id, нормализованный domain, status="new", priority=10. Неверный домен даёт 422, превышение размера тела — 413.

GET
/api/v1/check_subdomain_order?order_id={order_id}

Проверить заказ сканирования

Принимает целый order_id от 1 до 18446744073709551615. Возвращает status (new/worked/done/error), priority, created_at, started_at, finished_at, duration_seconds, error_type, result_id и result вместе с ID и доменом. Время — UTC, незаполненные поля — null. При status="done" result содержит полный JSON скана, в том числе частичный скан с предупреждениями; до сохранения результата result=null. Неизвестный ID даёт 404; слишком большой результат — 413, недоступные данные — 503.

GET
/api/v1/check_subdomain_history?domain={domain}

Получить историю сканирования поддоменов

Принимает domain длиной 1–1024 символа и приводит DNS-имя к lowercase/IDNA. Возвращает domain, scanned, latest={id,scanned_at,result}, history=[{id,scanned_at,diff}] и message. История отсортирована от новых к старым по времени UTC и ID. Каждый JSON Patch diff (add/remove/replace) применяется непосредственно к latest.result и восстанавливает отдельный старый результат. Если сканов нет: 200, scanned=false, latest=null, history=[], сообщение «Домен не сканировался ранее». Чтение не запускает скан. Свыше 10 000 записей, 32 MiB сохранённого JSON или ответа либо 128 MiB обработки — 413; недоступные данные — 503.

Примеры запросов

Получить список доменов зоны

Запрос возвращает первые 100 активных доменов зоны RU. Для следующей страницы передайте возвращенный сервером cursor без изменений.

curl 'https://api.cloudexplorer.ru/api/v1/zones/ru/domains?limit=100'

Получить текущие данные домена и историю NS

Запрос возвращает текущие записи A, AAAA, MX, NS, CNAME и TXT, текущий WHOIS, когда он доступен, и наблюдаемую историю NS. Для публичных IP-адресов из записей A и AAAA и адресов, полученных при DNS-разрешении целей MX, NS и CNAME, ответ содержит статус поиска AS, а если наблюдаемая исходная BGP AS найдена — её номер и описание, если оно доступно. Если для домена или его зоны нет поддерживаемой сохранённой истории NS, текущие данные остаются доступны, а history_available имеет значение false.

curl 'https://api.cloudexplorer.ru/api/v1/domains/beget.ru/ns-history?limit=100'

Получить граф соседей AS

Запрос возвращает граф соседей AS15169 по снимку RouteViews с глубиной обхода 2. Дату снимка можно передать отдельным параметром.

curl 'https://api.cloudexplorer.ru/api/v1/as/15169/graph?depth=2'

Получить PTR-запись и историю PTR по IP

Запрос возвращает текущую PTR-запись, наблюдаемую исходную BGP AS и до 100 новейших изменений PTR адреса. Если история длиннее, увеличьте limit до 500.

curl 'https://api.cloudexplorer.ru/api/v1/ptr/lookup?ip=8.8.8.8'

Запустить сканирование и проверить заказ

Сначала задайте API_TOKEN в своём окружении. POST вернёт 202 и order_id; подставьте его вместо 123 во второй запрос. Повторный POST создаст ещё один заказ. result появится после status="done".

curl -i -X POST 'https://api.cloudexplorer.ru/api/v1/check_subdomain' -H "Authorization: Bearer ${API_TOKEN}" -H 'Content-Type: application/json' --data '{"domain":"example.com"}'
curl 'https://api.cloudexplorer.ru/api/v1/check_subdomain_order?order_id=123'

Посмотреть историю сканирования поддоменов

Запрос читает последний полный результат и более старые состояния как независимые JSON Patch. Если домен ещё не сканировался, ответ 200 содержит scanned=false и пустую историю.

curl 'https://api.cloudexplorer.ru/api/v1/check_subdomain_history?domain=example.com'

MCP Server

MCP Server предоставляет моделям и AI-агентам инструменты CloudExplorer. Модель может получать домены, статистику зон, WHOIS, историю NS, сведения об AS и графы соседства AS по снимкам RouteViews без самостоятельного формирования REST-запросов.

MCP-сервер работает только на чтение. Инструментов для сканирования поддоменов в MCP нет; постановка заказа доступна через REST API с Bearer-токеном.

Доступные инструменты

TOOL
getAS

Поиск AS по IP

Определяет наблюдаемую исходную BGP AS публичного IP-адреса и возвращает ее описание.

TOOL
getASGraph

Граф соседей AS

Возвращает граф соседей указанной AS по одному коллектору и снимку RouteViews, а не глобальную карту интернета; глубина обхода — от 1 до 3, дату снимка можно выбрать.

TOOL
getASGraphDates

Даты снимков RouteViews

Возвращает даты доступных ежедневных BGP-снимков RouteViews, начиная с самой новой, для построения графа соседей AS.

TOOL
getPTR

PTR-запись, AS и история PTR по IP

Возвращает текущую PTR-запись, наблюдаемую исходную BGP AS и историю изменений PTR публичного IPv4-адреса: ptr.status принимает значения present, absent (авторитетное отсутствие PTR) или no_data (адрес вне зоны охвата ежесуточного PTR-скана, который покрывает только IPv4-префиксы AS коллектора). Параметр limit (от 1 до 500, по умолчанию 100) ограничивает число новейших записей истории; history_truncated=true показывает, что история обрезана.

TOOL
getZoneDomains

Домены зоны

Возвращает активные домены выбранной зоны с курсорной пагинацией; до 500 доменов за один вызов инструмента.

TOOL
getWHOIS

WHOIS домена

Получает актуальный текстовый ответ WHOIS для домена.

TOOL
getNSHistory

Текущие данные домена и история NS

Возвращает текущие A, AAAA, MX, NS, CNAME и TXT, текущий WHOIS, когда он доступен, и до 200 наблюдавшихся изменений NS. Для публичных IP-адресов из записей A и AAAA и адресов, полученных при DNS-разрешении целей MX, NS и CNAME, указывает статус поиска AS, а если наблюдаемая исходная BGP AS найдена — её номер и описание, если оно доступно. Если для домена или его зоны нет поддерживаемой сохранённой истории NS, возвращает текущие данные с history_available=false.

TOOL
getZoneStatistics

Статистика зоны

Возвращает сохраненные ежедневные показатели зоны за выбранную дату и метрику.

Подключение к модели

Добавьте CloudExplorer как удаленный MCP-сервер в клиент, поддерживающий транспорт Streamable HTTP, а затем попросите модель показать доступные инструменты.

MCP endpoint https://mcp.cloudexplorer.ru/mcp
Транспорт Streamable HTTP

Подключение к ChatGPT

Добавьте CloudExplorer в ChatGPT как пользовательское MCP-приложение с OAuth. ChatGPT получит токен после входа на странице CloudExplorer и будет автоматически прикладывать его к вызовам инструментов.

  1. Включите режим разработчика

    Откройте в ChatGPT Settings → Security and login («Настройки → Безопасность и вход») и включите Developer mode. Доступность режима зависит от тарифа и политики рабочего пространства.

  2. Создайте новое приложение

    Откройте раздел Plugins, нажмите «+» и перейдите к созданию нового подключения.

  3. Укажите MCP-сервер

    Введите имя и описание, выберите Connection: Server URL, вставьте адрес MCP-сервера и выберите Authentication: OAuth.

  4. Настройте OAuth

    Откройте Advanced OAuth settings, выберите User-Defined OAuth Client и заполните поля значениями из таблицы ниже. OAuth endpoints должны определиться автоматически.

  5. Создайте подключение

    Подтвердите предупреждение о пользовательском MCP-сервере и нажмите Create.

  6. Войдите и разрешите доступ

    На странице oauth.cloudexplorer.ru войдите через Google-аккаунт (gmail) кнопкой «Sign in with Google», затем нажмите «Разрешить».

  7. Проверьте инструменты

    После возврата в ChatGPT откройте карточку CloudExplorer и убедитесь, что появились Actions. Начните новый чат, выберите CloudExplorer в меню инструментов и отправьте тестовый запрос.

Значения полей ChatGPT

Name
CloudExplorer
Description
Информация о DNS, WHOIS и AS
Connection
Server URL
Server URL
https://mcp.cloudexplorer.ru/mcp
Authentication
OAuth
Callback URL — только проверить
https://chatgpt.com/connector_platform_oauth_redirect
Registration method
User-Defined OAuth Client
OAuth Client ID
cloudexplorer-chatgpt
OAuth Client Secret
Оставить пустым
Token endpoint auth method
none
Scope
mcp.read

Важно: OAuth Client Secret должен остаться пустым. Авторизация выполняется через Google-аккаунт (gmail) на странице oauth.cloudexplorer.ru после создания подключения; отдельные логин и пароль не требуются.

Автоматически найденные OAuth endpoints

ChatGPT получает эти значения из метаданных сервера. Используйте список для проверки; вручную заполнять endpoints обычно не требуется. Пустой Registration URL и предупреждения DCR/CIMD ожидаемы для User-Defined OAuth Client и не мешают подключению.

Auth URL
https://oauth.cloudexplorer.ru/authorize
Token URL
https://oauth.cloudexplorer.ru/token
Authorization server base
https://oauth.cloudexplorer.ru
Resource
https://mcp.cloudexplorer.ru/mcp
Registration URL
Оставить пустым

Авторизация через Google (gmail)

Доступ к MCP выдаётся после входа через Google-аккаунт (gmail) на странице CloudExplorer.

Способ входа
Sign in with Google
Страница входа
https://oauth.cloudexplorer.ru

Если подключение создано, но Actions не отображаются, откройте Plugins → CloudExplorer, нажмите Refresh и начните новый чат.

Официальная инструкция OpenAI

Команды для других MCP-клиентов

Codex

Добавьте удаленный MCP-сервер в конфигурацию Codex.

codex mcp add cloudexplorer --url https://mcp.cloudexplorer.ru/mcp

Claude Code

Добавьте сервер по HTTP в конфигурацию Claude Code.

claude mcp add --transport http cloudexplorer https://mcp.cloudexplorer.ru/mcp

Универсальный пример конфигурации

Для клиента, принимающего JSON-конфигурацию MCP, используйте этот пример. Названия полей могут отличаться — сверяйтесь с документацией вашего клиента.

{
  "mcpServers": {
    "cloudexplorer": {
      "type": "http",
      "url": "https://mcp.cloudexplorer.ru/mcp"
    }
  }
}

Сценарии для модели

Список доменов зоны

Покажи первые 100 активных доменов зоны ru. Если есть следующая страница, верни также курсор.

Текущие данные домена и история NS

Покажи текущие A, AAAA, MX, NS, CNAME и TXT и доступный WHOIS домена beget.ru. Для IP-адресов из A и AAAA и адресов, полученных при DNS-разрешении целей MX, NS и CNAME, покажи статус поиска AS, а если наблюдаемая исходная BGP AS найдена — её номер и описание, если оно доступно. Затем кратко опиши до 100 изменений NS. Если history_available=false, явно скажи, что сохранённая история недоступна.

Статистика зоны

Покажи статистику зоны ru за последнюю доступную дату и укажи использованную метрику.

Поиск AS по IP

Определи наблюдаемую исходную BGP AS для IP-адреса 8.8.8.8 и покажи ее описание.

Граф соседей AS

Построй граф соседей AS15169 глубиной 2 по последнему доступному снимку RouteViews и кратко опиши связи.

PTR-запись и история PTR по IP

Покажи текущую PTR-запись и наблюдаемую исходную BGP AS адреса 8.8.8.8, затем кратко опиши до 100 новейших изменений PTR. Если ptr.status=no_data, явно скажи, что адрес вне зоны охвата PTR-скана.