hostkey-mcp-server-ru
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOSTKEY_API_KEY | Yes | Your Hostkey API key. Required for authorization. Obtain from InvAPI → API key management. | |
| HOSTKEY_TOKEN_TTL | No | Optional. Token TTL (see .env.example). | |
| HOSTKEY_HTTP_TIMEOUT | No | Optional. HTTP timeout (see .env.example). | |
| HOSTKEY_ALLOW_DESTRUCTIVE | No | Optional. Set to '1' to allow destructive operations like OS reinstall, PXE, and service cancellation. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_serversA | Список серверов аккаунта Hostkey с фильтрами. Перед первым вызовом автоматически обновляет инвентарь (eq/update_servers). Возвращает ID серверов и краткие данные; для полной карточки используйте get_server. |
| get_serverB | Полная информация о сервере по его ID (eq/show): конфигурация, сеть, статус, расположение. |
| get_power_statusA | Текущий статус питания сервера (включён/выключен). |
| get_server_sensorsA | Показания аппаратных сенсоров сервера (температуры, напряжения, вентиляторы). Только для bare-metal. |
| get_server_tagsB | Все теги сервера (tags/list). Теги хранят произвольные пары ключ-значение. |
| search_servers_by_tagB | Поиск серверов по имени или значению тега (tags/user_search). Возвращает ID серверов. |
| list_presetsA | Актуальный список доступных instant-серверов (VM/BM/GPU/vGPU) с ценами в указанной локации. Токен не требуется. Нужен для подбора preset перед заказом. |
| search_presetsA | Поиск подходящих свободных серверов под конкретный пресет по имени (например, vm.pico). Требует авторизации. |
| get_preset_pricingB | Цены на доступные пресеты в указанных валютах (presets/info). Токен не требуется. |
| list_preset_groupsA | Список групп пресетов для категоризации каталога (presets/groups). Токен не требуется. |
| get_presetA | Информация о конкретном пресете или обо всех пресетах (presets/show). Может требовать авторизации в зависимости от прав. |
| list_stock_serversA | Список доступных stock-серверов (физические серверы стандартных конфигураций, деплой в течение рабочего дня). Токен не требуется. |
| get_stock_serverA | Детальная информация о конкретном stock-сервере (stocks/show). |
| list_osA | Список операционных систем, доступных для установки на пресет/сервер (os/list). Без instance_id возвращает ОС для всех пресетов. Токен не требуется. |
| list_softwareA | Список ПО (marketplace-приложений), доступного для автоустановки на сервер (software/list). Токен не требуется. |
| list_traffic_plansA | Доступные тарифные планы трафика для пресета в локации (traffic_plans/list). Токен не требуется. |
| get_account_infoA | Информация о текущем API-токене и аккаунте (auth/info): доступные вызовы, тип и роль аккаунта, ID привязанных серверов. Полезно для проверки подключения. |
| logoutA | Завершить текущую API-сессию (auth/logout): сессионный токен удаляется из InvAPI. При следующем вызове клиент автоматически выполнит повторный вход по API-ключу. |
| list_api_keysB | Список всех API-ключей аккаунта (api_keys/list). |
| list_server_api_keysA | Список API-ключей, выданных для конкретного сервера (api_keys/list_for_server). |
| get_api_keyB | Информация о конкретном API-ключе (api_keys/view). |
| get_api_key_historyB | История использования API-ключа за период (api_keys/history). |
| create_api_keyA | Создать новый API-ключ для аккаунта или конкретного сервера (api_keys/add). Значение ключа будет показано один раз в ответе — сохраните его. |
| update_api_keyB | Изменить параметры API-ключа (api_keys/edit): имя, IP-белый список, уведомления, активность. |
| delete_api_keyA | Удалить API-ключ (api_keys/delete). ДЕСТРУКТИВНО: приложения, использующие ключ, потеряют доступ. |
| get_network_statusA | Состояние сетевых интерфейсов сервера (net/get_status): порт, свитч, VLAN, скорость, MAC, статус подключения. |
| get_port_graphsB | Графики загрузки порта за период (net/show_cacti): день/месяц/год. |
| get_ip_infoC | Информация о сетевом интерфейсе по IP-адресу (ip/get_ip). |
| get_ptr_recordA | Текущая PTR-запись (reverse DNS) для IP-адреса (ip/get_ptr). |
| port_onC | Включить сетевой порт сервера (net/port_on). |
| port_offA | Выключить сетевой порт сервера (net/port_off). ДЕСТРУКТИВНО: сервер потеряет сетевую связность по этому интерфейсу. |
| block_ipA | Заблокировать IP-адрес на сервере на уровне сети Hostkey (net/block_ip). Полезно для abuse-запросов. |
| unblock_ipC | Снять блокировку IP-адреса на сервере (net/unblock_ip). |
| update_ptr_recordB | Обновить PTR-запись для IP-адреса (ip/update_ptr). Несколько записей передаются разделителем %0A. |
| set_main_ipB | Назначить основной IP-адрес сервера (ip/set_main), когда адресов несколько. |
| list_dns_zonesA | Список всех DNS-зон аккаунта на серверах PowerDNS Hostkey (pdns/list_zones). |
| get_dns_zoneB | Содержимое DNS-зоны: все записи (A, AAAA, CNAME, MX, TXT и т.д.) с авторитетного сервера (pdns/view_zone). |
| list_dns_domainsA | Список всех доменов пользователя из таблицы доменов (pdns/list_domains). |
| list_dns_subdomainsB | Список сабдоменов по ID сервера (pdns/list_subdomains). |
| add_dns_domainA | Создать DNS-зону и добавить домен в таблицу доменов (pdns/add_domain). Требует права pdns/edit. |
| delete_dns_domainA | Удалить домен по ID: DNS-зону, сам домен и все его сабдомены (pdns/delete_domain). ДЕСТРУКТИВНО. Требует права pdns/edit. |
| add_dns_subdomainA | Добавить сабдомен в таблицу сабдоменов (pdns/add_subdomain). Требует права pdns/edit. |
| edit_dns_subdomainA | Обновить сабдомен (pdns/edit_subdomain). Требует права pdns/edit. |
| delete_dns_subdomainA | Удалить сабдомен из таблицы сабдоменов (pdns/delete_subdomain). ДЕСТРУКТИВНО. Требует права pdns/edit. |
| add_dns_zoneA | Создать DNS-зону на авторитетном сервере PowerDNS (pdns/add_zone). Требует права pdns/edit. |
| delete_dns_zoneA | Удалить DNS-зону по имени вместе со всеми записями и метаданными (pdns/delete_zone). ДЕСТРУКТИВНО. Требует права pdns/edit. |
| add_dns_recordA | Добавить или изменить DNS-запись в зоне (pdns/add_dns). Требует права pdns/edit. Для SRV-записей заполните proto/priority/weight/port/target. Поля mname/rname в документации отмечены как обязательные для SOA-проверок — при ошибке заполните их. |
| delete_dns_recordA | Удалить DNS-запись из зоны (pdns/delete_dns). ДЕСТРУКТИВНО. Требует права pdns/edit. |
| get_snapshotsA | Список снапшотов виртуальной машины (vm/get_snapshot): имя, snapshot_id, дата. |
| get_vm_engineB | Информация о движке виртуализации (vm/get_engine). |
| get_vm_statsB | Статистика виртуальной машины (vm/load_stats). |
| create_snapshotA | Создать снапшот виртуальной машины (vm/create_snapshot). Асинхронная операция — статус через check_task. |
| remove_snapshotA | Удалить снапшот (vm/remove_snapshot). ДЕСТРУКТИВНО: снапшот удаляется безвозвратно. Удаление возможно только на выключенной ВМ. |
| restore_snapshotA | Восстановить ВМ из снапшота (vm/restore_snapshot). ДЕСТРУКТИВНО: текущее состояние диска ВМ будет перезаписано состоянием снапшота. |
| get_vnc_consoleB | Доступ к VNC-консоли сервера (eq/console): возвращает конфиг console.vv в Base64 для virt-viewer. |
| start_novncB | Запустить NoVNC (HTML5) сессию консоли сервера (eq/novnc): возвращает ссылку для открытия в браузере. |
| list_post_install_tasksA | Доступные post-install Ansible-задачи (jenkins/get_tasks) с тегами применимости: gpu, bm, vm, vgpu, default. Без токена — общий список, с токеном — доступные конкретному пользователю. |
| run_post_install_taskA | Выполнить Jenkins/Ansible-задачу на сервере (jenkins/call): ID или имя задачи из list_post_install_tasks + доп. параметры. Например, установка GPU-драйверов после переустановки ОС. |
| add_static_natA | Создать статический DNAT до IPMI сервера (nat/add_static_nat): публичный IP для доступа к IPMI. Асинхронная операция — статус через check_task. |
| remove_static_natC | Удалить статический DNAT до IPMI сервера (nat/remove_static_nat). |
| clear_static_natA | Удалить застывшие правила статического NAT-проброса по внутреннему IP (nat/clear_static_nat). |
| drop_natB | Удалить запись о NAT из базы данных (nat/drop_nat). ДЕСТРУКТИВНО, служебная операция. |
| add_ipmi_userC | Создать временного IPMI-пользователя для веб-доступа к IPMI (eq/add_ipmi_user). |
| remove_ipmi_userA | Удалить временного IPMI-пользователя (eq/remove_ipmi_user). |
| reset_ipmiA | Перезагрузить IPMI-модуль сервера (eq/unit_reset). Применять, если IPMI не отвечает. |
| request_rh_power_onA | Заявка Remote Hands: включить сервер вручную (jira/request_pon). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_rh_power_offA | Заявка Remote Hands: выключить сервер вручную (jira/request_poff). ДЕСТРУКТИВНО для работающих сервисов. Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_rh_rebootA | Заявка Remote Hands: перезагрузить сервер вручную (jira/request_reboot). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_rh_pxe_bootA | Заявка Remote Hands: загрузить сервер по PXE (jira/request_PXEboot). Нужна при переустановке ОС на серверах без модуля удалённого управления. Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_rh_kvmA | Заявка Remote Hands: подключить IP KVM к серверу (jira/request_kvm). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_rh_checkA | Заявка Remote Hands: проверить сервер и загрузить его в ОС (jira/request_check). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email). |
| request_sales_assistanceB | Тикет в отдел продаж (jira/request_assistance): отмена или перенос услуги и подобные запросы. Опишите детали в message. |
| create_reinstall_taskA | Шаг 1 PXE-переустановки: создать мастер-ключ переустановки ОС (eq/reinstall). Возвращает reinstall_key, по которому check_task отслеживает стадии установки. ДЕСТРУКТИВНО: часть процесса, затирающего диски сервера. |
| create_pxe_configB | Шаг 2 PXE-переустановки: создать PXE-конфиг для установки ОС (eq/create_pxe). ДЕСТРУКТИВНО. |
| set_boot_deviceA | Установить порядок загрузки сервера (eq/boot_dev): pxe — сетевая загрузка (шаг 3 переустановки), disk — загрузка с диска (шаг 6), cd — смонтированный ISO. |
| clear_pxe_configA | Шаг 7 PXE-переустановки: удалить PXE-конфиг (eq/clear_pxe). ОБЯЗАТЕЛЬНО после завершения — иначе возможна внезапная переустановка при следующей перезагрузке. |
| list_iso_imagesA | Список доступных ISO-образов (iso/list_iso). Для клиентских ключей обязателен server_id — образы подбираются под конкретный сервер. |
| get_uploaded_isosB | Список ISO-образов, загруженных клиентом (iso/uploaded). |
| upload_isoC | Загрузить новый ISO-образ по URL (iso/upload). Доступно клиентам. |
| add_iso_imageB | Добавить новый ISO-образ или обновить существующий по имени (iso/add). Требует специального права 'add'. |
| mount_isoA | Смонтировать ISO-образ на сервер (iso/mount_iso). Асинхронная операция — вернётся callback-ключ для check_task. ID/имя образа возьмите из list_iso_images или get_uploaded_isos. |
| unmount_isoA | Размонтировать ISO-образ с сервера (iso/unmount_iso). Асинхронная операция — вернётся callback-ключ для check_task. |
| delete_iso_imageA | Удалить ISO-образ по ID (iso/delete). ДЕСТРУКТИВНО. По документации доступно только сотрудникам Hostkey — у клиентов, скорее всего, вернёт ошибку прав. |
| s3_list_plansB | Список доступных тарифных планов S3-хранилища (s3/list_plans). |
| s3_get_locationsA | Список доступных локаций для S3 (s3/get_available_locations). |
| s3_get_bucketsB | Список бакетов S3-аккаунта и статистика использования через AWS API (s3/get_buckets). |
| s3_get_buckets_via_queueA | Список бакетов, статистика и ключи доступа через очередь задач (s3/get_buckets_rmq). Может вернуть ключ задачи — тогда статус через check_task. |
| s3_get_filesB | Список файлов в бакете с пагинацией и поиском (s3/get_files). |
| s3_get_usersA | Список пользователей S3 с информацией о сервисе, трафике и использовании хранилища (s3/get_users). Полная фильтрация доступна администраторам. |
| s3_show_keyA | Получить расшифрованный ключ доступа S3 (s3/show_key). СЕКРЕТ: не логировать и не передавать третьим лицам. |
| s3_create_accountA | Создать S3-аккаунт: привязка тарифного плана и начального бакета (s3/create_account). Требует авторизации. |
| s3_create_bucketA | Создать новый бакет в существующем S3-аккаунте (s3/create_bucket). |
| s3_create_orderA | Создать платный заказ на S3-хранилище с привязкой к биллингу (s3/create_order). ДЕНЬГИ: создаёт реальный заказ/инвойс. |
| s3_delete_fileA | Удалить файл из бакета (s3/delete_file). ДЕСТРУКТИВНО: файл удаляется безвозвратно. |
| s3_delete_bucketA | Удалить бакет из S3-аккаунта (s3/delete_bucket). ДЕСТРУКТИВНО: все файлы бакета будут удалены. |
| s3_delete_accountA | Полностью удалить S3-аккаунт пользователя (s3/delete_account). ДЕСТРУКТИВНО: все бакеты и данные будут удалены. Требует HOSTKEY_ALLOW_DESTRUCTIVE=1. |
| s3_delete_payment_accountA | Инициировать удаление S3-аккаунта через отмену сервиса в биллинге (s3/delete_payment_account). ДЕСТРУКТИВНО: активному сервису будет установлена дата завершения. Требует HOSTKEY_ALLOW_DESTRUCTIVE=1. |
| s3_cancel_account_deletionA | Отменить процесс удаления S3-сервиса, инициированный через биллинг, и восстановить активный статус аккаунта (s3/cancel_payment_account_deletion). |
| s3_update_traffic_infoC | Обновить информацию о трафике S3-аккаунта (s3/update_traffic_info). Доступно только администраторам. |
| list_rhr_requestsA | Список заявок на удалённые работы с фильтрацией по локации и статусу (rhr/list). |
| create_rhr_requestA | Создать заявку на удалённые работы (rhr/add): работы дежурной смены в дата-центре, которые нельзя выполнить удалённо. Опишите работы максимально подробно в comment. Использовать, только если модуль удалённого управления сервером недоступен/не работает. |
| add_rhr_commentA | Добавить видимое клиенту сообщение в историю заявки (rhr/chat). |
| discard_rhr_requestA | Отменить/закрыть заявку на удалённые работы (rhr/discard). ДЕСТРУКТИВНО: заявка будет отменена. |
| get_billing_clientA | Данные клиента из биллинга (whmcs/get_client): контакты, валюта, статус аккаунта. |
| get_invoicesA | Полный список инвойсов аккаунта (whmcs/get_invoices). |
| get_invoiceB | Данные конкретного инвойса для оплаты (whmcs/get_invoice). |
| get_server_invoicesA | Инвойсы, относящиеся к конкретному серверу (whmcs/get_related_invoices). |
| get_server_billing_dataB | Платёжная информация по аренде сервера (whmcs/get_billing_data). |
| get_transactionsA | Список транзакций по аккаунту клиента (whmcs/transactions). |
| get_credit_historyB | Движение средств по лицевому счёту: начисления и списания кредитов (whmcs/getcredits). |
| get_payment_gatewayA | Способы оплаты конкретного инвойса (whmcs/getpaymentgw). |
| download_invoiceA | Скачать инвойс в PDF (whmcs/download_invoice). Ответ обычно содержит PDF в Base64 — сохраните и декодируйте при необходимости. |
| get_cancellation_requestsB | Список активных заявок на отмену услуг (whmcs/get_cancellation_requests). |
| get_contactsA | Список дополнительных контактов аккаунта (whmcs/get_contacts). |
| update_billing_clientB | Изменить данные клиента в биллинге (whmcs/update_client): ФИО, компания, адрес, email, телефон и т.д. |
| reset_billing_passwordA | Сбросить пароль аккаунта биллинга (whmcs/reset_password): на указанный email придёт ссылка для сброса. Email должен совпадать с email аккаунта. |
| add_contactA | Добавить дополнительный контакт в аккаунт (whmcs/add_contact). ВНИМАНИЕ: контакт создаётся со случайным email — его нужно поменять в Invapi. |
| update_contactA | Изменить дополнительный контакт (whmcs/update_contact): email, пароль, телефон. Указание телефона включает 2FA по SMS. |
| delete_contactA | Удалить дополнительный контакт аккаунта (whmcs/delete_contact). ДЕСТРУКТИВНО. |
| generate_due_invoiceC | Создать следующий инвойс для сервера (whmcs/generate_due_invoice). |
| create_addfunds_invoiceA | Создать инвойс на пополнение кредитного баланса (whmcs/create_addfunds). ДЕНЬГИ: создаёт реальный инвойс на указанную сумму. |
| apply_creditA | Оплатить инвойс полностью или частично с кредитного баланса (whmcs/apply_credit). ДЕНЬГИ: списывает средства со счёта. |
| mass_payB | Создать групповой инвойс для оплаты нескольких инвойсов разом (whmcs/mass_pay). ДЕНЬГИ. |
| request_cancellationA | Запросить отмену услуги (whmcs/request_cancellation). ДЕСТРУКТИВНО: cancellation_type=1 — немедленная отмена с частичным возвратом (если возможно), 0 — отмена в конце биллинг-периода. Требует HOSTKEY_ALLOW_DESTRUCTIVE=1. |
| delete_cancellation_requestB | Отозвать заявку на отмену услуги (whmcs/delete_cancellation_request). |
| check_taskA | Проверка статуса асинхронной операции по callback-ключу (eq_callback/check). Многие операции InvAPI (вкл/выкл питания, заказ, переустановка, снапшоты) возвращают {"result":"OK","callback":"<ключ>"}. Передайте этот ключ сюда, чтобы узнать статус: result="Not ready" — операция ещё идёт; result="OK" — завершена успешно (после этого ключ сгорает). Деплой сервера может занимать 10–30 минут. |
| power_onA | Включить сервер (eq/on). Асинхронная операция: в ответе будет callback-ключ для check_task. |
| power_offA | Выключить сервер (eq/off). ДЕСТРУКТИВНО: прерывает работу всех сервисов на сервере. Требует confirm=true. Асинхронная операция: в ответе будет callback-ключ для check_task. |
| reboot_serverA | Перезагрузить сервер (eq/reboot). Прерывает работу сервисов на время перезагрузки. Требует confirm=true. Асинхронная операция: в ответе будет callback-ключ для check_task. |
| order_serverA | Заказ instant- или stock-сервера (eq/order_instance). ВАЖНО: заказ списывает средства с кредитного баланса или выставляет инвойс. По умолчанию работает в режиме dry_run=true — только проверяет доступность пресета и ОС и возвращает сводку без создания заказа. Для реального заказа передайте dry_run=false и confirm=true после явного согласия пользователя на стоимость. Деплой занимает 10–30 минут, статус — через check_task. |
| reinstall_serverA | Переустановка ОС на существующем сервере (упрощённый путь через eq/order_instance с id). ДЕСТРУКТИВНО: все данные на дисках будут удалены. Требуется HOSTKEY_ALLOW_DESTRUCTIVE=1 в окружении сервера, confirm=true и повторный ввод текущего hostname сервера. Асинхронная операция: статус — через check_task. |
| call_api_rawA | Универсальный прямой вызов InvAPI по ресурсу и action, для ресурсов без типизированных инструментов (например: iso — библиотека ISO-образов, s3 — S3 Object Storage, rhr — Remote Hands новой версии; список действий смотрите в документации: https://hostkey.com/documentation/apidocs/). ВСЕГДА требует confirm=true; деструктивные/платные действия дополнительно требуют HOSTKEY_ALLOW_DESTRUCTIVE=1. Предпочитайте типизированные инструменты, если они есть для нужной операции. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| order_server_prompt | Мастер заказа сервера Hostkey: локация → пресет → ОС → ПО → трафик-план → подтверждение стоимости → заказ. |
| reinstall_server_prompt | Мастер переустановки ОС на сервере Hostkey с проверками и отслеживанием прогресса. |
| troubleshoot_server_prompt | Диагностика проблем с сервером Hostkey: питание, сенсоры, сеть — с рекомендациями. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 132 tools
Most tools have distinct verb_noun names and clear descriptions, but with 132 tools there are several closely related pairs (e.g., get_servers vs get_server, s3_get_buckets vs s3_get_buckets_via_queue, create_reinstall_task vs reinstall_server) that could cause misselection. The catch-all call_api_raw also overlaps with many typed tools, increasing ambiguity.
The naming follows a consistent verb_noun pattern (get_, list_, create_, delete_, etc.) with domain prefixes like s3_, request_rh_, and pdns_. While there are minor deviations (e.g., port_on vs set_main_ip, or occasional camelCase like add_iso_image), the overall schema is predictable and readable.
132 tools is an extreme count, far exceeding the 50+ threshold considered appropriate. Even for a comprehensive cloud provider API, this volume overwhelms an agent's tool-selection capability and significantly increases the chance of misselection. The server would benefit from consolidation or hierarchical grouping.
The tool surface covers CRUD and lifecycle operations across multiple domains: servers, network, DNS, S3, billing, and remote hands. Obvious gaps are rare (e.g., no direct server rename or tag edit tool, but these are edge cases). The presence of a raw API call tool also fills potential holes, so agents can accomplish most tasks.