MCP Hub
Back to servers

remnawave-mcp

An MCP server that enables LLM clients to manage Remnawave VPN panels through 51 specialized tools for user, node, and subscription administration. It provides real-time access to panel statistics, health checks, and guided workflows for system diagnostics.

Stars
12
Forks
1
Updated
Mar 2, 2026
Validated
Mar 4, 2026

mcp-remnawave

English | Русский


MCP Server for Remnawave Panel

MCP server (Model Context Protocol) providing LLM clients (Claude Desktop, Cursor, Windsurf, etc.) with tools to manage a Remnawave VPN panel.

Features

  • 51 tools — full management of users, nodes, hosts, subscriptions, squads, HWID devices, and system
  • 3 resources — real-time panel stats, node status, health checks
  • 5 prompts — guided workflows for common tasks
  • Type-safe — built on @remnawave/backend-contract for API route validation
  • stdio transport — works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client

Requirements

  • Node.js >= 22
  • Remnawave panel with API token (Settings > API Tokens)

Installation

git clone https://github.com/TrackLine/mcp-remnawave.git
cd mcp-remnawave 
npm install
npm run build

Configuration

Create a .env file or pass environment variables:

REMNAWAVE_BASE_URL=https://vpn.example.com
REMNAWAVE_API_TOKEN=your-api-token-here

Usage with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "remnawave": {
      "command": "node",
      "args": ["/absolute/path/to/remnawave-mcp/dist/index.js"],
      "env": {
        "REMNAWAVE_BASE_URL": "https://vpn.example.com",
        "REMNAWAVE_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Usage with Cursor / Windsurf

Add to .cursor/mcp.json or .windsurf/mcp.json in your project:

{
  "mcpServers": {
    "remnawave": {
      "command": "node",
      "args": ["/absolute/path/to/remnawave-mcp/dist/index.js"],
      "env": {
        "REMNAWAVE_BASE_URL": "https://vpn.example.com",
        "REMNAWAVE_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Docker

npm run build
docker compose up -d

Environment variables are passed via .env file or docker-compose.yml.

Available Tools

Users (11 tools)

ToolDescription
users_listList all users with pagination
users_getGet user by UUID
users_get_by_usernameGet user by username
users_get_by_short_uuidGet user by short UUID
users_createCreate a new user
users_updateUpdate user settings
users_deleteDelete a user
users_enableEnable a disabled user
users_disableDisable a user
users_revoke_subscriptionRevoke subscription (regenerate link)
users_reset_trafficReset traffic counter

Nodes (11 tools)

ToolDescription
nodes_listList all nodes
nodes_getGet node by UUID
nodes_createCreate a new node
nodes_updateUpdate node settings
nodes_deleteDelete a node
nodes_enableEnable a node
nodes_disableDisable a node
nodes_restartRestart a specific node
nodes_restart_allRestart all nodes
nodes_reset_trafficReset node traffic counter
nodes_reorderReorder nodes

Hosts (5 tools)

ToolDescription
hosts_listList all hosts
hosts_getGet host by UUID
hosts_createCreate a new host
hosts_updateUpdate host settings
hosts_deleteDelete a host

System (8 tools)

ToolDescription
system_statsPanel statistics (users, nodes, traffic, CPU, memory)
system_bandwidth_statsBandwidth statistics
system_nodes_metricsNode metrics
system_nodes_statisticsNode statistics
system_healthPanel health check
system_metadataPanel version and metadata
system_generate_x25519Generate X25519 key pair
auth_statusCheck authentication status

Subscriptions (5 tools)

ToolDescription
subscriptions_listList all subscriptions
subscriptions_get_by_uuidGet subscription by UUID
subscriptions_get_by_usernameGet subscription by username
subscriptions_get_by_short_uuidGet subscription by short UUID
subscription_infoGet subscription info

Config Profiles & Inbounds (2 tools)

ToolDescription
config_profiles_listList config profiles
inbounds_listList all inbounds

Internal Squads (6 tools)

ToolDescription
squads_listList all squads
squads_createCreate a squad
squads_updateUpdate a squad
squads_deleteDelete a squad
squads_add_usersAdd users to a squad
squads_remove_usersRemove users from a squad

HWID Devices (3 tools)

ToolDescription
hwid_devices_listList user's HWID devices
hwid_device_deleteDelete a specific device
hwid_devices_delete_allDelete all user's devices

Resources

URIDescription
remnawave://statsCurrent panel statistics
remnawave://nodesAll nodes status
remnawave://healthPanel health status
remnawave://users/{uuid}Specific user details

Prompts

PromptDescription
create_user_wizardStep-by-step user creation guide
node_diagnosticsNode troubleshooting
traffic_reportTraffic usage report
user_auditComplete user audit
bulk_user_cleanupFind and manage expired users

Example Queries

"Show me all users with expired subscriptions"
"Create user vasya with 50 GB limit for one month"
"Restart node amsterdam-01"
"Give me a traffic report for the last week"
"Disable users who exceeded their traffic limit"
"Which nodes are offline right now?"

Project Structure

src/
├── index.ts              # Entry point (stdio transport)
├── server.ts             # McpServer setup
├── config.ts             # Environment config
├── client/
│   └── index.ts          # Remnawave HTTP client
├── tools/
│   ├── helpers.ts        # Result formatting helpers
│   ├── index.ts          # Tool registration
│   ├── users.ts          # User management
│   ├── nodes.ts          # Node management
│   ├── hosts.ts          # Host management
│   ├── system.ts         # System & auth
│   ├── subscriptions.ts  # Subscriptions
│   ├── inbounds.ts       # Config profiles & inbounds
│   ├── squads.ts         # Internal squads
│   └── hwid.ts           # HWID devices
├── resources/
│   └── index.ts          # MCP resources
└── prompts/
    └── index.ts          # MCP prompts

License

MIT


MCP-сервер для Remnawave Panel

MCP-сервер (Model Context Protocol), предоставляющий LLM-клиентам (Claude Desktop, Cursor, Windsurf и др.) инструменты для управления VPN-панелью Remnawave.

Возможности

  • 51 инструмент — полное управление пользователями, нодами, хостами, подписками, группами, HWID-устройствами и системой
  • 3 ресурса — статистика панели, статус нод, проверка здоровья в реальном времени
  • 5 промптов — пошаговые сценарии для типичных задач
  • Type-safe — построен на @remnawave/backend-contract для валидации API-маршрутов
  • stdio транспорт — работает с Claude Desktop, Cursor, Windsurf и любым MCP-совместимым клиентом

Требования

  • Node.js >= 22
  • Remnawave панель с API-токеном (Настройки > API Tokens)

Установка

git clone https://github.com/TrackLine/mcp-remnawave.git
cd mcp-remnawave 
npm install
npm run build

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

Создайте файл .env или передайте переменные окружения:

REMNAWAVE_BASE_URL=https://vpn.example.com
REMNAWAVE_API_TOKEN=ваш-api-токен

Использование с Claude Desktop

Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):

{
  "mcpServers": {
    "remnawave": {
      "command": "node",
      "args": ["/абсолютный/путь/к/remnawave-mcp/dist/index.js"],
      "env": {
        "REMNAWAVE_BASE_URL": "https://vpn.example.com",
        "REMNAWAVE_API_TOKEN": "ваш-api-токен"
      }
    }
  }
}

Использование с Cursor / Windsurf

Добавьте в .cursor/mcp.json или .windsurf/mcp.json вашего проекта:

{
  "mcpServers": {
    "remnawave": {
      "command": "node",
      "args": ["/абсолютный/путь/к/remnawave-mcp/dist/index.js"],
      "env": {
        "REMNAWAVE_BASE_URL": "https://vpn.example.com",
        "REMNAWAVE_API_TOKEN": "ваш-api-токен"
      }
    }
  }
}

Docker

npm run build
docker compose up -d

Переменные окружения передаются через .env файл или docker-compose.yml.

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

Пользователи (11 инструментов)

ИнструментОписание
users_listСписок пользователей с пагинацией
users_getПолучить пользователя по UUID
users_get_by_usernameПолучить пользователя по username
users_get_by_short_uuidПолучить пользователя по short UUID
users_createСоздать нового пользователя
users_updateОбновить настройки пользователя
users_deleteУдалить пользователя
users_enableВключить пользователя
users_disableОтключить пользователя
users_revoke_subscriptionОтозвать подписку (перегенерировать ссылку)
users_reset_trafficСбросить счётчик трафика

Ноды (11 инструментов)

ИнструментОписание
nodes_listСписок всех нод
nodes_getПолучить ноду по UUID
nodes_createСоздать новую ноду
nodes_updateОбновить настройки ноды
nodes_deleteУдалить ноду
nodes_enableВключить ноду
nodes_disableОтключить ноду
nodes_restartПерезапустить ноду
nodes_restart_allПерезапустить все ноды
nodes_reset_trafficСбросить трафик ноды
nodes_reorderПереупорядочить ноды

Хосты (5 инструментов)

ИнструментОписание
hosts_listСписок всех хостов
hosts_getПолучить хост по UUID
hosts_createСоздать новый хост
hosts_updateОбновить настройки хоста
hosts_deleteУдалить хост

Система (8 инструментов)

ИнструментОписание
system_statsСтатистика панели (пользователи, ноды, трафик, CPU, память)
system_bandwidth_statsСтатистика пропускной способности
system_nodes_metricsМетрики нод
system_nodes_statisticsСтатистика нод
system_healthПроверка здоровья панели
system_metadataВерсия и метаданные панели
system_generate_x25519Генерация пары ключей X25519
auth_statusПроверка статуса аутентификации

Подписки (5 инструментов)

ИнструментОписание
subscriptions_listСписок всех подписок
subscriptions_get_by_uuidПодписка по UUID
subscriptions_get_by_usernameПодписка по username
subscriptions_get_by_short_uuidПодписка по short UUID
subscription_infoИнформация о подписке

Конфиг-профили и Inbounds (2 инструмента)

ИнструментОписание
config_profiles_listСписок конфиг-профилей
inbounds_listСписок всех inbounds

Внутренние группы (6 инструментов)

ИнструментОписание
squads_listСписок групп
squads_createСоздать группу
squads_updateОбновить группу
squads_deleteУдалить группу
squads_add_usersДобавить пользователей в группу
squads_remove_usersУбрать пользователей из группы

HWID-устройства (3 инструмента)

ИнструментОписание
hwid_devices_listСписок устройств пользователя
hwid_device_deleteУдалить конкретное устройство
hwid_devices_delete_allУдалить все устройства пользователя

Ресурсы

URIОписание
remnawave://statsТекущая статистика панели
remnawave://nodesСтатус всех нод
remnawave://healthСостояние здоровья панели
remnawave://users/{uuid}Данные конкретного пользователя

Промпты

ПромптОписание
create_user_wizardПошаговое создание пользователя
node_diagnosticsДиагностика ноды
traffic_reportОтчёт по трафику
user_auditПолный аудит пользователя
bulk_user_cleanupПоиск и управление просроченными пользователями

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

«Покажи мне всех пользователей с истёкшей подпиской»
«Создай пользователя vasya с лимитом 50 ГБ на месяц»
«Перезапусти ноду amsterdam-01»
«Дай отчёт по трафику за последнюю неделю»
«Отключи пользователей, которые превысили лимит трафика»
«Какие ноды сейчас офлайн?»

Структура проекта

src/
├── index.ts              # Точка входа (stdio транспорт)
├── server.ts             # Настройка McpServer
├── config.ts             # Конфигурация окружения
├── client/
│   └── index.ts          # HTTP-клиент Remnawave
├── tools/
│   ├── helpers.ts        # Хелперы форматирования
│   ├── index.ts          # Регистрация инструментов
│   ├── users.ts          # Управление пользователями
│   ├── nodes.ts          # Управление нодами
│   ├── hosts.ts          # Управление хостами
│   ├── system.ts         # Система и авторизация
│   ├── subscriptions.ts  # Подписки
│   ├── inbounds.ts       # Конфиг-профили и inbounds
│   ├── squads.ts         # Внутренние группы
│   └── hwid.ts           # HWID-устройства
├── resources/
│   └── index.ts          # MCP-ресурсы
└── prompts/
    └── index.ts          # MCP-промпты

Лицензия

MIT

Reviews

No reviews yet

Sign in to write a review