TrackLine

mcp-remnawave

Community TrackLine
Updated

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)
Tool Description
users_list List all users with pagination
users_get Get user by UUID
users_get_by_username Get user by username
users_get_by_short_uuid Get user by short UUID
users_create Create a new user
users_update Update user settings
users_delete Delete a user
users_enable Enable a disabled user
users_disable Disable a user
users_revoke_subscription Revoke subscription (regenerate link)
users_reset_traffic Reset traffic counter
Nodes (11 tools)
Tool Description
nodes_list List all nodes
nodes_get Get node by UUID
nodes_create Create a new node
nodes_update Update node settings
nodes_delete Delete a node
nodes_enable Enable a node
nodes_disable Disable a node
nodes_restart Restart a specific node
nodes_restart_all Restart all nodes
nodes_reset_traffic Reset node traffic counter
nodes_reorder Reorder nodes
Hosts (5 tools)
Tool Description
hosts_list List all hosts
hosts_get Get host by UUID
hosts_create Create a new host
hosts_update Update host settings
hosts_delete Delete a host
System (8 tools)
Tool Description
system_stats Panel statistics (users, nodes, traffic, CPU, memory)
system_bandwidth_stats Bandwidth statistics
system_nodes_metrics Node metrics
system_nodes_statistics Node statistics
system_health Panel health check
system_metadata Panel version and metadata
system_generate_x25519 Generate X25519 key pair
auth_status Check authentication status
Subscriptions (5 tools)
Tool Description
subscriptions_list List all subscriptions
subscriptions_get_by_uuid Get subscription by UUID
subscriptions_get_by_username Get subscription by username
subscriptions_get_by_short_uuid Get subscription by short UUID
subscription_info Get subscription info
Config Profiles & Inbounds (2 tools)
Tool Description
config_profiles_list List config profiles
inbounds_list List all inbounds
Internal Squads (6 tools)
Tool Description
squads_list List all squads
squads_create Create a squad
squads_update Update a squad
squads_delete Delete a squad
squads_add_users Add users to a squad
squads_remove_users Remove users from a squad
HWID Devices (3 tools)
Tool Description
hwid_devices_list List user's HWID devices
hwid_device_delete Delete a specific device
hwid_devices_delete_all Delete all user's devices

Resources

URI Description
remnawave://stats Current panel statistics
remnawave://nodes All nodes status
remnawave://health Panel health status
remnawave://users/{uuid} Specific user details

Prompts

Prompt Description
create_user_wizard Step-by-step user creation guide
node_diagnostics Node troubleshooting
traffic_report Traffic usage report
user_audit Complete user audit
bulk_user_cleanup Find 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

MCP Server · Populars

MCP Server · New