Skip to main content
Glama

REG.RU MCP Server

MCP-сервер для REG.API 2.0: управление доменами, DNS, услугами, биллингом и DNSSEC через Model Context Protocol (stdio по умолчанию; опционально HTTP Streamable с обязательной аутентификацией).

Официальная документация API: https://www.reg.ru/reseller/api2doc

Возможности

  • Tools — проверка доменов, DNS-записи, услуги, баланс, DNSSEC, папки

  • Resources — баланс, активные услуги, цены TLD, DNS-зона домена

  • Prompts — аудит истекающих услуг, настройка домена под VPS, чеклист миграции

Related MCP server: dynadot-mcp

Требования

  • Node.js 18+ (для Docker — Node 20 Alpine)

  • Учётная запись Рег.ру с включённым API

  • Белый список IP в настройках API личного кабинета (иначе ACCESS_DENIED_FROM_IP)

⚠️ Если в кабинете не добавлен ни один IP сервера, где крутится MCP, все вызовы будут отклонены. Без whitelist работа с API невозможна.

Партнёрские методы (Партнёры)

Часть методов REG.API доступна только партнёрам (reseller). Обычные клиенты получают RESELLER_AUTH_FAILED.

В этом MCP помечены как партнёрские:

Tool / API

Метод REG.API

regru_check_domains

domain/check

regru_suggest_domains

domain/get_suggest

regru_batch_update_dns

zone/update_records

Для клиентских аккаунтов используйте одиночные DNS-инструменты (regru_add_dns_record / regru_delete_dns_record) вместо batch.

Папки

В официальном API нет folder/get_list. Доступны: nop, create, remove, rename, get_services, add_services, remove_services, replace_services, move_services, а также service/get_folders.

Tool

Метод

regru_get_folder_services

folder/get_services

regru_get_service_folders

service/get_folders

regru_create_folder

folder/create

regru_add_services_to_folder

folder/add_services

regru_move_services_between_folders

folder/move_services

Установка

git clone https://github.com/AlekMel/regru-mcp-server.git
cd regru-mcp-server
npm install
npm run build

Скопируйте .env.example в .env и укажите учётные данные (для локального запуска через tsx / отладки).

Песочница (sandbox)

Для безопасной проверки синтаксиса запросов:

REGRU_USERNAME=test
REGRU_PASSWORD=test

В режиме test/test Рег.ру валидирует параметры, но не создаёт заказы, не меняет DNS и не списывает средства.

Переменные окружения

Переменная

Обязательно

Описание

REGRU_USERNAME

да

Логин API

REGRU_PASSWORD

да*

Пароль API (*или ключ)

REGRU_PRIVATE_KEY

нет

PEM-ключ или путь к файлу (RSA-SHA512 по официальному алгоритму подписи)

REGRU_BASE_URL

нет

Базовый URL API (по умолчанию https://api.reg.ru/api/regru2)

MCP_TRANSPORT

нет

stdio (по умолчанию) или http

MCP_AUTH_TOKEN

да при http

Длинный случайный секрет Bearer; без него HTTP не стартует

MCP_ALLOWED_IPS

нет

Список IP/CIDR через запятую; иначе 403

HOST

нет

Адрес bind (по умолчанию 0.0.0.0 в HTTP-режиме)

PORT

нет

Порт HTTP (по умолчанию 3000)

Также поддерживается алиас REGRU_API_BASE_URL.

Подпись RSA-SHA512 строится по официальному Perl-алгоритму: рекурсивный сбор скалярных значений параметров (включая username), пропуск пустых/нулевых/sig, лексикографическая сортировка, склейка через ;, затем RSA-SHA512 + Base64. Подпись считается по полному дереву параметров (до JSON.stringify для input_data). Поля username / password / sig всегда передаются на верхнем уровне формы, не внутри input_data.

Конфигурация Claude Desktop

Файл конфигурации (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "regru": {
      "command": "node",
      "args": ["/absolute/path/to/regru-mcp-server/dist/index.js"],
      "env": {
        "REGRU_USERNAME": "your_login",
        "REGRU_PASSWORD": "your_api_password"
      }
    }
  }
}

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

В настройках MCP (mcp.json / Cursor Settings → MCP):

{
  "mcpServers": {
    "regru": {
      "command": "node",
      "args": ["/absolute/path/to/regru-mcp-server/dist/index.js"],
      "env": {
        "REGRU_USERNAME": "your_login",
        "REGRU_PASSWORD": "your_api_password"
      }
    }
  }
}

После сборки можно вызывать бинарь regru-mcp-server из package.json (bin), если пакет установлен глобально или через npx.

Безопасность / Coolify

Да: голый публичный HTTP MCP без токена — дыра в безопасности. Любой, кто достучится до /mcp, сможет вызывать инструменты от имени ваших учётных данных REG.RU.

Обязательно

  1. MCP_TRANSPORT=http

  2. Сильный MCP_AUTH_TOKEN (например openssl rand -hex 32). Без него процесс завершится с кодом 1 и не откроет порт.

  3. Все запросы к /mcp должны содержать заголовок Authorization: Bearer <тот же токен>. Сравнение — через crypto.timingSafeEqual. Неверный/отсутствующий токен → 401 + WWW-Authenticate: Bearer (без утечки деталей).

  4. Эндпоинт /healthz без авторизации: отвечает 200 и телом ok (только liveness для Coolify/Docker HEALTHCHECK). MCP там нет.

Рекомендуется дополнительно

  • Firewall Coolify / ограничение входящих портов

  • Cloudflare Access (или аналог) перед сервисом

  • MCP_ALLOWED_IPS — allowlist IP/CIDR клиентов (при отказе → 403)

  • Прокси (Coolify Traefik/Caddy) должен корректно выставлять X-Forwarded-For; приложение включает trust proxy, чтобы req.ip отражал клиента

Пример клиента с Bearer

{
  "mcpServers": {
    "regru-remote": {
      "url": "https://your-coolify-host.example/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_LONG_RANDOM_MCP_AUTH_TOKEN"
      }
    }
  }
}

(Точный формат url/headers зависит от клиента MCP; важно передать Bearer на каждый запрос к /mcp.)

Docker / Coolify

# Локально
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)
export REGRU_USERNAME=...
export REGRU_PASSWORD=...
docker compose up --build -d

В Coolify: Dockerfile из репозитория, переменные окружения как в таблице выше. Не деплойте без MCP_AUTH_TOKEN.

Whitelist IP на стороне Reg.ru

Отдельно от MCP-auth: в личном кабинете REG.RU добавьте egress IP вашего VPS в белый список API. Иначе API вернёт ACCESS_DENIED_FROM_IP, даже если Bearer к MCP верный.

Tools

Tool

Описание

regru_check_domains

Проверка доступности доменов и цены (Партнёры: domain/check)

regru_suggest_domains

Подбор имён по ключевому слову (Партнёры)

regru_get_domain_dns

Текущие NS (делегирование)

regru_update_domain_dns

Смена NS-серверов

regru_get_dns_records

Список ресурсных записей зоны

regru_add_dns_record

Добавить A/AAAA/CNAME/MX/TXT/NS/SRV/CAA

regru_delete_dns_record

Удалить запись

regru_batch_update_dns

Пакетное add/delete (Партнёры: zone/update_records)

regru_list_services

Список услуг

regru_get_service_info

Детали услуги

regru_renew_service

Продление (биллинг)

regru_set_autorenew

Автопродление вкл/выкл

regru_get_balance

Баланс аккаунта

regru_get_unpaid_bills

Неоплаченные счета

regru_manage_dnssec

status / enable / disable

regru_get_folder_services

Услуги в папке (folder/get_services)

regru_get_service_folders

Папки услуги (service/get_folders)

regru_create_folder

Создать папку

regru_add_services_to_folder

Добавить услуги в папку

regru_move_services_between_folders

Перенос между папками (folder/move_services)

Resources

URI

Описание

regru://account/balance

Текущий баланс

regru://services/active

Активные услуги

regru://pricing/tlds

Тарифы регистрации/продления по зонам

regru://domains/{domain}/dns

DNS-записи зоны

Prompts

Prompt

Назначение

audit_expiring_services

Услуги, истекающие за 30 дней + баланс

configure_domain_for_vps

A/www/MX/SPF под IP VPS

domain_migration_check

NS, DNSSEC и сервис перед переносом

Scripts

npm run build   # компиляция TypeScript → dist/
npm run dev     # запуск через tsx (stdio)
npm test        # unit-тесты (Jest)
npm run lint    # ESLint

Архитектура

  • Транспорт MCP: stdio (по умолчанию) или HTTP Streamable (MCP_TRANSPORT=http, эндпоинт /mcp)

  • HTTP к REG.API: HTTPS POST, application/x-www-form-urlencoded, сложные структуры в input_data (JSON)

  • Аутентификация не кладётся внутрь input_data

  • RSA-подпись по полному дереву параметров (см. официальные docs)

  • Token-bucket rate limiter (~18 req/min)

  • Очередь для биллинг-операций (защита от BILLING_LOCK)

  • Нормализация IDN → Punycode

Лицензия

MIT — см. LICENSE.

Available Tools

18 tools
regru_add_dns_recordC

Add a DNS resource record to a domain zone. Supports A, AAAA, CNAME, MX, TXT, NS, SRV, CAA record types.

Inputs: content (required), subdomain (required), domain_name (required), record_type (required), +2 more.

regru_batch_update_dnsB

Perform multiple DNS record operations (add/delete) in a single batch request.

Inputs: actions (required), domain_name (required).

regru_check_domainsB

Check domain availability and get prices for one or more domains. Returns availability status and pricing information for each domain.

Inputs: domains (required), currency.

regru_create_folderB

Create a new folder to organize services.

Inputs: folder_name (required).

regru_delete_dns_recordC

Delete a DNS resource record from a domain zone.

Inputs: subdomain (required), domain_name (required), record_type (required), content.

regru_get_balanceB

Get current account balance in the specified currency.

Inputs: currency.

regru_get_dns_recordsB

Get all DNS resource records for a domain zone.

Inputs: domain_name (required).

regru_get_domain_dnsC

Get current DNS name servers (NSS) for a domain.

Inputs: domain_name (required).

regru_get_service_infoB

Get detailed information about a service by service ID or domain name.

Inputs: service_id, domain_name.

regru_get_unpaid_billsB

Get a list of all unpaid bills in the account.

Inputs: no named parameters.

regru_list_foldersA

List all folders in the account used to organize services.

Inputs: no named parameters.

regru_list_servicesB

List all services in the account. Optionally filter by service type (domain, hosting, etc.).

Inputs: servtype.

regru_manage_dnssecA

Manage DNSSEC for a domain: check status, enable, or disable DNSSEC.

Inputs: action (required), domain_name (required).

regru_move_service_to_folderC

Move a service to a specific folder for organization.

Inputs: folder_id (required), service_id (required).

regru_renew_serviceB

Renew a service (domain, hosting, etc.) for a specified period. This is a billing operation.

Inputs: service_id (required), period, ok_if_no_money.

regru_set_autorenewC

Enable or disable automatic renewal for a service.

Inputs: flag (required), service_id (required).

regru_suggest_domainsC

Get domain name suggestions based on a keyword. Returns a list of available similar domains.

Inputs: word (required).

regru_update_domain_dnsC

Update DNS name servers (NSS) for a domain. Changes the authoritative name servers.

Inputs: nss (required), domain_name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 18 tools

    Disambiguation5/5

    Each tool has a distinct, clearly described purpose: domain availability vs. suggestions, name servers vs. DNS records, individual vs. batch DNS operations, and service/billing/folder management are all separable. The only potential overlaps (e.g., get_domain_dns vs. get_dns_records, or batch_update_dns vs. add/delete) are explicitly differentiated by their descriptions.

    Naming Consistency5/5

    All tool names use a consistent snake_case pattern with the regru_ prefix and verb_noun structure. Minor variations like manage_dnssec or set_autorenew still fit the overall convention and remain predictable.

    Tool Count4/5

    At 18 tools, the set is slightly above the typical well-scoped range but each tool maps to a meaningful operation across DNS, services, billing, and folders. No tools appear redundant or purely filler, though the count is on the heavy side.

    Completeness3/5

    The DNS and service-management surfaces cover get/add/delete, renew, autorenew, and folder organization, but domain registration/purchase and service cancellation/deletion are absent. Also, DNS records lack a direct update tool, forcing delete-and-add workarounds for record modifications.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Provides integration with the Namecheap API for domain management operations, including domain listing, availability checks, and nameserver configuration. It allows users to interact with their Namecheap account through natural language commands in MCP-compatible clients.
      3
      20 npm
      20
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      AgentDomain MCP allows AI agents to register, buy, and manage internet domains via the Model Context Protocol. Features include domain search, availability check, purchase, DNS record management, and wallet operations.
      13
      90 PyPI
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server for Internet.bs domain registrar API. Enables checking availability, registering, renewing, and managing domains and DNS from Claude or any MCP client.
      MIT