remnawave-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REMNAWAVE_API_URL | Yes | Panel root URL, no /api suffix - the server prefixes /api/... on every request (e.g. https://panel.example.com) | |
| REMNAWAVE_API_PASSWORD | Yes | Admin password | |
| REMNAWAVE_API_USERNAME | Yes | Admin username |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| remnawave_list_usersA | List all VPN users with pagination. Returns username, status, traffic usage, expiration date, and squads. |
| remnawave_get_userA | Get a single user by UUID, shortUuid, username, telegram ID, or email. Specify exactly one identifier. |
| remnawave_create_userA | Create a new VPN user. Requires username and expiration date. Returns created user details including subscription URL. |
| remnawave_update_userA | Update an existing user. Identify by UUID (preferred) or username. Only provided fields will be changed. |
| remnawave_delete_userB | Permanently delete a user by UUID. This action cannot be undone. |
| remnawave_enable_userA | Enable a disabled user account, restoring VPN access. |
| remnawave_disable_userB | Disable a user account, suspending VPN access. Can be re-enabled later. |
| remnawave_revoke_userA | Revoke a user's subscription, regenerating their credentials. Old subscription links stop working. |
| remnawave_reset_user_trafficA | Reset a user's traffic counter to zero. |
| remnawave_list_nodesA | List all XRay nodes with connection status, traffic, version info, and hardware specs. |
| remnawave_get_nodeA | Get detailed info about a single node by UUID. |
| remnawave_enable_nodeB | Enable a disabled node, allowing it to accept connections. |
| remnawave_disable_nodeA | Disable a node, stopping it from accepting new connections. |
| remnawave_update_nodeA | Update node settings (MUTATES PROD). Changing the config profile / inbounds re-syncs what the node serves. Only provided fields change. |
| remnawave_restart_nodeA | Restart XRay on one node (MUTATES PROD: interrupts the node briefly). Default mode sends forceRestart (panel 2.8.0+ requires it in the body); force=true skips the config-hash check like the UI's restart-all. force_cycle=true disables and re-enables the node instead - heavier, also re-establishes the panel-node link. |
| remnawave_restart_all_nodesA | Restart XRay on ALL enabled nodes. By default sends forceRestart=true so the panel skips its config-hash check; pass force=false to use the panel's hash-based decision (which often skips the restart). |
| remnawave_list_hostsA | List all subscription hosts with addresses, SNI, security settings, and assigned nodes. |
| remnawave_get_hostA | Get detailed info about a single host by UUID. |
| remnawave_create_hostA | Create a subscription host (MUTATES PROD: enabled hosts appear in user subscriptions immediately). Requires the config profile + inbound pair the host points at (UUIDs via remnawave_list_config_profiles). |
| remnawave_update_hostA | Update a host (MUTATES PROD: changes flow into user subscriptions). Only provided fields change; tags/nodes replace their whole set. |
| remnawave_delete_hostA | Permanently delete a host (MUTATES PROD: it disappears from user subscriptions). Cannot be undone. |
| remnawave_get_system_statsA | Get system-wide statistics: user counts by status, online stats, node count, total traffic, server CPU/memory. |
| remnawave_get_system_healthA | Check panel health. Shows Node.js runtime metrics (RSS, heap, event loop lag, uptime) per panel process (api/scheduler/processor). |
| remnawave_get_bandwidth_statsA | Get historical bandwidth for all nodes over a date range: per-node totals, peak days, and the fleet-wide total. |
| remnawave_get_node_users_usageA | Historical per-user traffic on ONE node over a date range (daily totals + top users). Complements remnawave_get_bandwidth_stats (all nodes) and remnawave_get_node_metrics (realtime). |
| remnawave_get_keygenA | Get the panel's node provisioning key (SECRET_KEY env for remnanode). SENSITIVE: anyone holding this key can connect a node to the panel. Handles both field names: pubKey (<=2.8.x) and secretKey (2.9.0+). |
| remnawave_get_node_metricsA | Get real-time metrics for all nodes: users online, traffic per inbound (upload/download). |
| remnawave_list_internal_squadsA | List all internal squads (inbound groups). Shows name, user count, and inbound count. |
| remnawave_update_internal_squadA | Update an internal squad (MUTATES PROD: changes which inbounds its members
get). |
| remnawave_list_external_squadsA | List all external squads (tariff plans). Shows name and user count. |
| remnawave_get_subscription_settingsA | Get global subscription settings: profile title, update interval, support link, Happ routing, custom headers. |
| remnawave_list_config_profilesA | List all XRay config profiles with their inbounds (protocol, transport, port). |
| remnawave_get_config_profileA | Get one config profile with its FULL raw XRay config JSON (inbounds/outbounds/ routing), registered inbounds with UUIDs, and attached nodes. |
| remnawave_update_config_profileA | Update a config profile (MUTATES PROD: replaces the XRay config that nodes run;
a bad config can take user traffic down). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ssasuoirafen/remnawave-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server