Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REMNAWAVE_API_KEYNoValue for the X-Api-Key header when the panel is behind Caddy with a secret path.
REMNAWAVE_PRIVACYNoPrivacy mode: strict (default), basic, or off.strict
REMNAWAVE_BASE_URLYesRemnawave panel address, e.g. https://panel.example.com (without /api)
REMNAWAVE_READONLYNotrue by default. Set to false to enable write commands (also requires a token with write permissions).true
CF_ACCESS_CLIENT_IDNoCloudflare Access client ID when the panel is behind Cloudflare Access.
REMNAWAVE_API_TOKENYesRemnawave API token
REMNAWAVE_TIMEOUT_MSNoRequest timeout in milliseconds.30000
REMNAWAVE_PRIVACY_SALTNoAny long string used as a salt so pseudonyms do not change after restart.
CF_ACCESS_CLIENT_SECRETNoCloudflare Access client secret when the panel is behind Cloudflare Access.
REMNAWAVE_TOOLS_EXCLUDENoComma-separated list of tools to hide.
REMNAWAVE_TOOLS_INCLUDENoComma-separated list of tools to keep; only these tools will be available.
REMNAWAVE_MAX_RESPONSE_CHARSNoMaximum number of characters for long responses before truncation.60000

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
find_userB

Find users by any identifier: id, username, shortUuid, telegramId, email or tag. Returns full user objects. Use this instead of guessing which endpoint to call.

panel_overviewA

One-call panel summary: users by status and online, node list with online/offline state, users online and traffic per node, bandwidth (2 days / 7 days / month) and subscriptions expiring soon. Start here for "how is the panel doing" questions.

user_reportA

Everything about one client in one call: subscription and status, devices (HWID), traffic per day and per node for the last N days, recent subscription requests (apps, IP pseudonyms). Identify the user by id, username, telegramId, email, shortUuid or a pseudonym.

sharing_suspectsA

Find clients who probably share their subscription: many different IPs / apps in recent subscription requests, and top users by number of HWID devices. Only counts and pseudonyms are returned. Cheap: reads panel history, does not touch the nodes.

geocheck_nodeA

Run GeoCheck on a node and wait for the result (how services see the node IP: country, blocks). The base64 SVG image is dropped, only the raw report is returned. Uses node traffic: repeated calls for the same node within the cooldown return the previous result.

node_connectionsA

Get users currently connected to a node with their IPs and last-seen time (starts a job and waits).

user_connectionsA

Get a user's current connections (IPs per node) — starts a job and waits for the result.

generate_x25519B

Generate 30 X25519 keypairs [READ] GET /api/system/tools/x25519/generate

get_all_inboundsA

Get all inbounds from all config profiles [READ] GET /api/config-profiles/inbounds

get_api_token_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. [READ] GET /api/tokens/scopes

get_bandwidth_statsC

Get Bandwidth Stats [READ] GET /api/system/stats/bandwidth

get_computed_config_profile_by_uuidB

Get computed config profile by uuid [READ] GET /api/config-profiles/:uuid/computed-config

get_config_profile_by_uuidB

Get config profile by uuid [READ] GET /api/config-profiles/:uuid

get_config_profilesC

Get config profiles [READ] GET /api/config-profiles/

get_configurationB

Get Remnawave Configuration Returns some of the configuration values. [READ] GET /api/system/configuration

get_external_squad_by_uuidB

Get external squad by uuid [READ] GET /api/external-squads/:uuid

get_external_squadsB

Get all external squads [READ] GET /api/external-squads/

get_hostB

Get a host by UUID [READ] GET /api/hosts/:uuid

get_hostsB

Get hosts [READ] GET /api/hosts/

get_hosts_tagsB

Get tags of hosts [READ] GET /api/hosts/tags

get_http_statsC

Get HTTP Stats [READ] GET /api/system/stats/http

get_hwid_devicesB

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. [READ] GET /api/hwid/devices

get_hwid_devices_statsC

Get HWID devices stats [READ] GET /api/hwid/devices/stats

get_inbounds_by_profile_uuidA

Get inbounds by profile uuid [READ] GET /api/config-profiles/:uuid/inbounds

get_infra_billing_nodesC

Get infra billing nodes [READ] GET /api/infra-billing/nodes

get_infra_billing_recordsB

Get infra billing history [READ] GET /api/infra-billing/history

get_infra_providerC

Get infra provider by uuid [READ] GET /api/infra-billing/providers/:uuid

get_infra_providersB

Get all infra providers [READ] GET /api/infra-billing/providers

get_internal_squadB

Get internal squad by uuid [READ] GET /api/internal-squads/:uuid

get_internal_squad_accessible_nodesC

Get internal squad accessible nodes [READ] GET /api/internal-squads/:uuid/accessible-nodes

get_internal_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. [READ] GET /api/bandwidth-stats/internal-squads/:uuid/usage

get_internal_squad_user_usageA

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. [READ] GET /api/bandwidth-stats/internal-squads/:squadUuid/users/:userId/usage

get_internal_squadsB

Get all internal squads [READ] GET /api/internal-squads/

get_metadataB

Get Remnawave Information [READ] GET /api/system/metadata

get_nodeB

Get node by UUID [READ] GET /api/nodes/:uuid Returns a compact view; pass full: true for the raw panel response.

get_node_integrationB

Get Node Integration by uuid [READ] GET /api/node-integrations/:uuid

get_node_integrationsB

Get all Node Integrations [READ] GET /api/node-integrations/

get_node_metadataC

Get node metadata [READ] GET /api/metadata/node/:uuid

get_node_pluginB

Get Node Plugin by uuid [READ] GET /api/node-plugins/:uuid

get_node_pluginsB

Get all Node Plugins [READ] GET /api/node-plugins/

get_node_usageB

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. [READ] POST /api/bandwidth-stats/nodes/usage

get_nodesC

Get nodes [READ] GET /api/nodes/ Returns a compact view; pass full: true for the raw panel response.

get_nodes_metricsC

Get Nodes Metrics [READ] GET /api/system/nodes/metrics

get_nodes_statisticsC

Get Nodes Statistics [READ] GET /api/system/stats/nodes

get_nodes_tagsC

Get nodes tags [READ] GET /api/nodes/tags

get_recapC

Get Recap [READ] GET /api/system/stats/recap

get_remnawave_healthB

Get Remnawave Health [READ] GET /api/system/health

get_remnawave_settingsB

Get Remnawave settings [READ] GET /api/remnawave-settings/

get_shared_listB

Get Shared List by name [READ] GET /api/node-plugins/shared-lists/:name

get_shared_listsA

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. [READ] GET /api/node-plugins/shared-lists

get_snippetsC

Get snippets [READ] GET /api/snippets/

get_statsD

Get Stats [READ] GET /api/system/stats

get_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. [READ] GET /api/system/stats/digest

get_stats_node_users_usageC

Get Node Users Usage by Node UUID [READ] GET /api/bandwidth-stats/nodes/:uuid/users

get_stats_nodes_usageC

Get Nodes Usage by Range [READ] GET /api/bandwidth-stats/nodes/

get_stats_nodes_users_usageC

Get Nodes Users Usage by Nodes UUIDs [READ] POST /api/bandwidth-stats/nodes/users

get_stats_user_usageC

Get User Usage by Range [READ] GET /api/bandwidth-stats/users/:userId

get_statusB

Get the status of the authentication [READ] GET /api/auth/status

get_subpage_configB

Get subscription page config by uuid [READ] GET /api/subscription-page-configs/:uuid

get_subpage_config_by_short_uuidC

Get Subpage Config by Short UUID [READ] GET /api/subscriptions/subpage-config/:shortUuid

get_subpage_configsA

Get all subscription page configs [READ] GET /api/subscription-page-configs/

get_subscription_by_idB

Get subscription by User ID [READ] GET /api/subscriptions/by-id/:userId

get_subscription_by_short_uuid_protectedC

Get subscription by short uuid (protected route) [READ] GET /api/subscriptions/by-short-uuid/:shortUuid

get_subscription_by_usernameB

Get subscription by username [READ] GET /api/subscriptions/by-username/:username

get_subscription_info_by_short_uuidD

Get Subscription Info by Short UUID [READ] GET /api/sub/:shortUuid/info

get_subscription_request_historyA

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. [READ] GET /api/subscription-request-history/

get_subscription_request_history_statsC

Get subscription request history stats [READ] GET /api/subscription-request-history/stats

get_subscription_settingsB

Get subscription settings [READ] GET /api/subscription-settings/

get_subscription_templateB

Get subscription template by uuid [READ] GET /api/subscription-templates/:uuid

get_subscription_templatesB

Get all subscription templates (wihout content) [READ] GET /api/subscription-templates/

get_subscriptionsC

Get all subscriptions [READ] GET /api/subscriptions/

get_top_users_by_hwid_devicesC

Get top users by HWID devices [READ] GET /api/hwid/devices/top-users

get_torrent_blocker_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. [READ] GET /api/node-plugins/torrent-blocker

get_torrent_blocker_reports_statsB

Get Torrent Blocker Reports Stats [READ] GET /api/node-plugins/torrent-blocker/stats

get_user_accessible_nodesC

Get user accessible nodes [READ] GET /api/users/:userId/accessible-nodes

get_user_by_idB

Get user by ID [READ] GET /api/users/:userId

get_user_by_short_uuidB

Get user by Short UUID [READ] GET /api/users/by-short-uuid/:shortUuid

get_user_by_usernameC

Get user by username [READ] GET /api/users/by-username/:username

get_user_hwid_devicesC

Get user HWID devices [READ] GET /api/hwid/devices/:userId

get_user_metadataC

Get user metadata [READ] GET /api/metadata/user/:userId

get_user_subscription_request_historyB

Get user subscription request history, recent 24 records [READ] GET /api/users/:userId/subscription-request-history

get_usersB

Get all users using offset-based pagination 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. [READ] GET /api/users/

get_users_streamA

Get all users using cursor-based (keyset) pagination with filtering options [READ] GET /api/users/stream

get_users_tagsC

Get users tags [READ] GET /api/users/tags

resolve_userB

Resolve a user Resolve a user by ID, Short UUID or username. Exactly one of the fields must be provided. [READ] POST /api/users/resolve

test_srr_matcherC

Test SRR Matcher [READ] POST /api/system/testers/srr-matcher

Prompts

Interactive templates invoked by user choice

NameDescription
daily_summaryUsers, online, offline nodes, traffic, subscriptions expiring soon
client_reviewSubscription, devices, traffic and recent requests of one client
sharing_auditClients with many IPs or devices
node_checkOffline nodes, load balance, optional GeoCheck of one node

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.6/5.0

Scored across 86 tools

Disambiguation3/5

The tool set contains many closely related read endpoints, such as multiple subscription lookups by different identifiers and numerous stats/usage tools (e.g., get_stats, get_bandwidth_stats, get_stats_digest, get_node_usage). Descriptions are detailed and help distinguish some tools, but an agent still faces ambiguity in selecting the right one for a given query.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with a get_ prefix for read operations. A few custom tools (user_report, panel_overview, find_user, geocheck_node) deviate slightly, but the overall naming is predictable and readable.

Tool Count1/5

With 86 tools, the server is far beyond a well-scoped size (typically 3–15). Many are thin wrappers around individual API endpoints, which creates an overwhelming and hard-to-navigate surface.

Completeness2/5

The tool set is almost entirely read-only (GET endpoints), with no create, update, or delete operations for users, nodes, subscriptions, or other core resources. For a panel management server, this is a significant gap that will prevent agents from performing lifecycle tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues