MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

MCP server by TrackLine

Created 3/2/2026
Updated about 8 hours ago
Repository documentation and setup instructions

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

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-mcp-remnawave

Cursor configuration (mcp.json)

{ "mcpServers": { "trackline-mcp-remnawave": { "command": "npx", "args": [ "trackline-mcp-remnawave" ] } } }