Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REMNAWAVE_API_KEYNoX-Api-Key for a reverse proxy in front of the panel
REMNAWAVE_BASE_URLYesPanel URL, e.g. https://panel.example.com (required)
REMNAWAVE_ENV_FILENoExplicit path to a config file
REMNAWAVE_READONLYNotrue = only tools that read are registered (recommended to start with)false
REMNAWAVE_TOOLSETSNoComma-separated toolsets to register, e.g. users,nodes,hosts (default is all)
REMNAWAVE_API_TOKENYesAPI token (Bearer) — Panel → API tokens (required)
REMNAWAVE_TIMEOUT_MSNoTimeout for one request to the panel30000
REMNAWAVE_TOOLS_EXCLUDENoComma-separated tool names to leave out; * is a wildcard (e.g. users_bulk_*)
REMNAWAVE_ALLOW_DESTRUCTIVENofalse = tools that delete data or act on every user/node are not registeredtrue

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

CapabilityDetails
tools
{}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
users_listB

List users with offset pagination and optional TanStack-style filters. To find users by telegramId, email, tag, status etc. pass filters, e.g. [{"id":"telegramId","value":123456789}]. Users are identified by numeric id.

users_streamB

Get all users using cursor-based (keyset) pagination with filtering options

users_getC

Get user by ID

users_get_by_usernameC

Get user by username

users_get_by_short_uuidC

Get user by Short UUID

users_resolveA

Resolve a user by EXACTLY ONE of: id, shortUuid, username

users_tags_listC

Get users tags

users_accessible_nodesA

Which nodes a user can actually reach: per node — config profile, active squads and their inbounds. Handy for debugging squad/inbound routing.

users_subscription_request_historyA

Get user subscription request history, recent 24 records

users_createA

Create a user. Credentials (vlessUuid/ssPassword/trojanPassword/shortUuid) are generated by the panel unless given — pass them explicitly for service users.

users_updateC

Update a user. Identify by id OR username.

users_deleteC

Delete user

users_enableC

Enable user

users_disableC

Disable user

users_revoke_subscriptionB

Revoke user subscription: rotates the subscription link (and credentials unless told otherwise)

users_reset_trafficC

Reset user traffic

users_extend_expirationA

Extend user expiration date. If user status is EXPIRED, the new expiration date is calculated from the current date and the user becomes ACTIVE. If user status is ACTIVE, the given number of days is added to the existing expiration date. DISABLED and LIMITED users will be extended, but their status will not change.

users_bulk_updateC

Bulk update users by User IDs

users_bulk_update_squadsC

Bulk update users internal squads by User IDs

users_bulk_extend_expirationC

Extend expiration date for specified users by days

users_bulk_reset_trafficC

Bulk reset traffic users by User IDs

users_bulk_revoke_subscriptionC

Revoke users subscription by User IDs

users_bulk_deleteC

Bulk delete users by User IDs

users_bulk_delete_by_statusB

Delete ALL users that have the given status

users_bulk_all_updateC

Update EVERY user at once

users_bulk_all_reset_trafficA

Reset used traffic for EVERY user

users_bulk_all_extend_expirationA

Extend expiration date for EVERY user by days

nodes_listA

List all nodes. Compact by default: inbounds as tags, provider as name, system info trimmed. Pass full=true for the raw panel response, or use nodes_get for one node.

nodes_getC

Get node by UUID

nodes_tags_listC

Get nodes tags

nodes_createD

Create a new node

nodes_updateD

Update node

nodes_deleteC

Delete a node

nodes_enableC

Enable a node

nodes_disableC

Disable a node

nodes_restartC

Restart node

nodes_restart_allB

Restart EVERY node

nodes_reset_trafficC

Reset Node Traffic

nodes_reorderD

Reorder nodes

nodes_bulk_actionsC

Perform actions for many nodes

nodes_bulk_updateD

Update many nodes

nodes_bulk_profile_modificationC

Modify Inbounds & Profile for many nodes

keygen_getB

Get SECRET_KEY for Remnawave Node

node_integrations_listB

Get all Node Integrations

node_integrations_getC

Get Node Integration by uuid

node_integrations_createD

Create Node Integration

node_integrations_updateD

Update Node Integration

node_integrations_deleteC

Delete Node Integration

hosts_listC

Get hosts

hosts_getC

Get a host by UUID

hosts_tags_listB

Get tags of hosts

hosts_createC

Create a new host

hosts_updateC

Update a host

hosts_cloneC

Clone host

hosts_deleteC

Delete a host by UUID

hosts_reorderD

Reorder hosts

hosts_bulk_enableC

Enable hosts by UUIDs

hosts_bulk_disableC

Disable hosts by UUIDs

hosts_bulk_updateB

Update many hosts at once: the given fields (same as hosts_update) are applied to every host in uuids

hosts_bulk_deleteC

Delete hosts by UUIDs

config_profiles_listA

List config profiles with their inbounds and nodes. The xray config itself is left out: use config_profiles_get for one profile, or full=true.

config_profiles_getB

Get config profile by uuid

config_profiles_get_computed_configB

Get computed config profile by uuid

config_profiles_get_inboundsC

Get inbounds by profile uuid

inbounds_listA

List inbounds of all config profiles (tag, type, port, squads). full=true adds the raw xray inbound objects.

config_profiles_tags_listB

Get tags of Config Profiles

config_profiles_createC

Create config profile

config_profiles_updateA

Update a config profile: name and/or the full xray config. Nodes that use the profile restart xray to apply it.

config_profiles_set_tagsC

Set tags of Config Profile

config_profiles_reorderC

Reorder config profiles

config_profiles_deleteC

Delete config profile

snippets_listC

Get snippets

snippets_createD

Create snippet

snippets_updateD

Update snippet

snippets_syncB

Sync snippet to affected config profiles. Trigger the sync of a snippet to all config profiles that reference it. Nodes which use affected config profiles will be restarted.

snippets_deleteC

Delete snippet

squads_listB

List internal squads with their inbounds. full=true adds the raw xray inbound objects.

squads_getB

Get internal squad by uuid

squads_accessible_nodesD

Get internal squad accessible nodes

squads_tags_listB

Get tags of Internal Squads

squads_createC

Create internal squad

squads_updateC

Update internal squad

squads_set_tagsC

Set tags of Internal Squad

squads_reorderC

Reorder internal squads

squads_add_many_usersC

Add many users to internal squad

squads_remove_many_usersC

Delete many users from internal squad

squads_add_all_usersA

Add EVERY user to an internal squad. For selected users use squads_add_many_users.

squads_remove_all_usersA

Remove EVERY user from an internal squad. For selected users use squads_remove_many_users.

squads_deleteC

Delete internal squad

external_squads_listB

Get all external squads

external_squads_getC

Get external squad by uuid

external_squads_tags_listB

Get tags of External Squads

external_squads_createC

Create external squad

external_squads_updateD

Update external squad

external_squads_set_tagsC

Set tags of External Squad

external_squads_reorderC

Reorder external squads

external_squads_add_all_usersB

Add EVERY user to an external squad

external_squads_remove_all_usersB

Remove EVERY user from an external squad

external_squads_deleteC

Delete external squad

hwid_devices_listC

Get user HWID devices

hwid_devices_list_allB

Get HWID devices. Please note that the filters here are primarily intended for use by the frontend and rely on expensive operators such as LIKE under the hood. Misusing these filters may negatively impact the performance of your database.

hwid_statsC

Get HWID devices stats

hwid_top_usersB

Get top users by HWID devices

hwid_device_createC

Create a user HWID device

hwid_device_deleteC

Delete a user HWID device

hwid_devices_delete_allB

Delete all user HWID devices

subscriptions_listC

Get all subscriptions

subscriptions_get_by_user_idC

Get subscription by User ID

subscriptions_get_by_usernameC

Get subscription by username

subscriptions_get_by_short_uuidB

Get subscription by short uuid (protected route)

subscriptions_get_raw_by_short_uuidD

Get Raw Subscription by Short UUID

subscriptions_get_connection_keysB

Get connection keys (base64 format) by user id

subscription_infoC

Get Subscription Info by Short UUID

subscription_request_history_listA

Get all subscription request history. Please note that the filters here are primarily intended for use by the frontend and rely on expensive operators such as LIKE under the hood. Misusing these filters may negatively impact the performance of your database.

subscription_request_history_statsC

Get subscription request history stats

subscription_settings_getC

Get subscription settings

subscription_settings_updateD

Update subscription settings

subscription_templates_listB

Get all subscription templates (wihout content)

subscription_templates_getC

Get subscription template by uuid

subscription_templates_tags_listB

Get tags of Subscription Templates

subscription_templates_createC

Create subscription template

subscription_templates_updateC

Update subscription template

subscription_templates_set_tagsC

Set tags of Subscription Template

subscription_templates_reorderC

Reorder subscription templates

subscription_templates_deleteC

Delete subscription template

sub_page_configs_listB

Get all subscription page configs

sub_page_configs_getC

Get subscription page config by uuid

sub_page_configs_tags_listB

Get tags of Subpage Configs

sub_page_configs_createC

Create subscription page config

sub_page_configs_updateC

Update subscription page config

sub_page_configs_cloneC

Clone subscription page config

sub_page_configs_set_tagsC

Set tags of Subpage Config

sub_page_configs_reorderC

Reorder subscription page configs

sub_page_configs_deleteC

Delete subscription page config

node_plugins_listB

Get all Node Plugins

node_plugins_getC

Get Node Plugin by uuid

node_plugins_tags_listB

Get tags of Node Plugins

node_plugins_createC

Create Node Plugin

node_plugins_updateD

Update Node Plugin

node_plugins_cloneD

Clone Node Plugin

node_plugins_set_tagsC

Set tags of Node Plugin

node_plugins_reorderC

Reorder Node Plugins

node_plugins_syncA

Sync Node Plugin to nodes. Push the current plugin config, including referenced shared lists, to every connected node this plugin is active on.

node_plugins_executeC

Execute command on node plugins

node_plugins_deleteC

Delete Node Plugin

node_plugins_torrent_reportsB

Get Torrent Blocker Reports. Please note that the filters here are primarily intended for use by the frontend and rely on expensive operators such as LIKE under the hood. Misusing these filters may negatively impact the performance of your database.

node_plugins_torrent_statsC

Get Torrent Blocker Reports Stats

node_plugins_torrent_truncateC

Truncate Torrent Blocker Reports

shared_lists_listA

Get Shared Lists (Preview). Returns only the name, type and item count of every shared list. Use "Get Shared List by name" to fetch the items themselves.

shared_lists_getC

Get Shared List by name

shared_lists_createC

Create Shared List

shared_lists_updateD

Update Shared List

shared_lists_syncB

Sync Shared List to nodes. Push every plugin referencing this shared list to the nodes it is active on.

shared_lists_deleteC

Delete Shared List by name

connections_by_user_requestA

Request the active connections (IPs) of a user. Starts a job on the node(s) and returns a jobId — fetch the outcome with connections_by_user_result.

connections_by_user_resultC

Get Connections for User by Job ID

connections_by_node_requestA

Request the active connections on a node. Starts a job on the node(s) and returns a jobId — fetch the outcome with connections_by_node_result.

connections_by_node_resultC

Get Connections for Node by Job ID

connections_geocheck_requestA

Check how a node's exit IP is geolocated. Starts a job on the node(s) and returns a jobId — fetch the outcome with connections_geocheck_result.

connections_geocheck_resultC

Get Geocheck for Node by Job ID

connections_dropC

Drop Connections for Users or IPs

system_statsD

Get Stats

system_stats_recapD

Get Recap

system_stats_digestA

Get Stats Digest. Aggregated statistics for a datetime range [start, end): created and expired users, total traffic, traffic spent by users created within the range and new HWID devices. Per-user traffic history is stored with daily granularity (UTC), so the "traffic by new users" metric snaps to whole days at the range edges.

system_http_statsC

Get HTTP Stats

system_bandwidth_statsC

Get Bandwidth Stats

system_nodes_statisticsC

Get Nodes Statistics

system_nodes_metricsC

Get Nodes Metrics

bandwidth_nodes_usageC

Get Nodes Usage by Range

bandwidth_node_usersC

Get Node Users Usage by Node UUID

bandwidth_nodes_usersC

Get Nodes Users Usage by Nodes UUIDs

bandwidth_nodes_usage_thresholdA

Get users exceeding a traffic threshold on the given nodes for a period. Returns users whose total usage over the period on the given nodes is >= minTotalBytes. Underlying usage data is flushed to the database roughly every 2 minutes.

bandwidth_user_usageC

Get User Usage by Range

bandwidth_squad_usageA

Get internal squad users traffic usage for a period. Returns users whose total usage over the period on the given nodes is >= minTotalBytes, scoped to the nodes reachable via the internal squad inbounds. Underlying usage data is flushed to the database roughly every 2 minutes.

bandwidth_squad_user_usageC

Get a single user daily traffic usage on the internal squad nodes for a period. Returns users whose total usage over the period on the given nodes is >= minTotalBytes, scoped to the nodes reachable via the Internal Squad inbounds. Every day in the range is present (zero-filled). Underlying usage data is flushed to the database roughly every 2 minutes.

system_healthC

Get Remnawave Health

system_metadataA

Get panel version and build information

system_configurationB

Get Remnawave Configuration. Returns some of the configuration values.

system_generate_x25519B

Generate 30 X25519 keypairs

system_srr_matcherB

Validate a subscription response rules (SRR) config against the panel matcher. The body is the full responseRules config object, not an input string.

auth_statusC

Get the status of the authentication

settings_getC

Get Remnawave settings

settings_updateC

Update Remnawave settings

api_tokens_listA

Get all API tokens. This endpoint is forbidden to use via "API-key". It can only be used with admin JWT-token.

api_tokens_scopesA

Get available API token scopes. Returns the catalog of scopes that can be granted to an API token, grouped by resource. Forbidden via "API-key", admin JWT only.

api_tokens_createA

Create a new API token. This endpoint is forbidden to use via "API-key". It can only be used with an admin JWT-token.

api_tokens_deleteA

Delete API token. This endpoint is forbidden to use via "API-key". It can be used only with an admin JWT-token.

metadata_node_getC

Get node metadata

metadata_node_upsertC

Update or create Node Metadata

metadata_user_getC

Get user metadata

metadata_user_upsertC

Update or create User Metadata

billing_providers_listB

Get all infra providers

billing_provider_getC

Get infra provider by uuid

billing_provider_createC

Create infra provider

billing_provider_updateD

Update infra provider

billing_provider_deleteC

Delete infra provider by uuid

billing_nodes_listC

Get infra billing nodes

billing_node_createC

Create infra billing node

billing_node_updateC

Update infra billing nodes

billing_node_deleteC

Delete infra billing node

billing_history_listC

Get infra billing history

billing_history_createC

Create infra billing history

billing_history_deleteC

Delete infra billing history

api_requestA

Send a raw request to the panel REST API with the configured token. Use it only for endpoints no dedicated tool covers. All methods are allowed.

Prompts

Interactive templates invoked by user choice

NameDescription
create_user_wizardStep-by-step guide to create a new VPN user
node_diagnosticsDiagnose issues with a specific node
traffic_reportGenerate a traffic usage report
user_auditComplete audit of a specific user
bulk_user_cleanupFind and manage expired or inactive users

Resources

Contextual data attached and managed by the client

NameDescription
panel-statsCurrent Remnawave panel statistics (users, nodes, traffic, system)
panel-nodesStatus of all Remnawave nodes (online/offline, traffic)
panel-healthRemnawave panel health check

TDQS

C2.5/5.0

Scored across 204 tools

Disambiguation3/5

Tools are generally named by resource and action, but several overlapping getters/resolvers exist (e.g., users_get, users_get_by_username, users_get_by_short_uuid, users_resolve; multiple subscription getters; generic nodes_bulk_actions vs specific bulk tools). The sheer number of closely related bulk and stats tools creates selection friction, though descriptions usually clarify intent.

Naming Consistency4/5

Names predominantly follow a snake_case resource_action pattern (users_list, nodes_create, hosts_update). Minor inconsistencies appear in singular/plural prefixes and special cases like api_request, auth_status, keygen_get, subscription_info, and metadata_node_get vs nodes_get.

Tool Count1/5

204 tools is an extreme mismatch for an MCP server; even a comprehensive panel API can be exposed more compactly. This volume makes tool selection impractical and exceeds any reasonable agent context.

Completeness5/5

The surface covers the full Remnawave domain: users, nodes, hosts, config profiles, squads, subscriptions, templates, plugins, shared lists, billing, stats, and more, with CRUD and bulk operations. A raw api_request fallback further covers any unlisted endpoints, so no obvious gaps remain.

Maintenance

ActivityMaintained
ResponsivenessNo issues