Remnawave Tools MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Remnawave Tools MCPlist all nodes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Remnawave Tools MCP
Flat, safety-gated stdio MCP wrapper for remnawave-mcp@0.2.1.
The upstream Remnawave MCP exposes a generic remnawave_api tool. This wrapper
keeps that upstream behavior but exposes one MCP tool per Remnawave domain
operation.
Examples:
remnawave_system_get_healthremnawave_nodes_listremnawave_nodes_getremnawave_nodes_updateremnawave_users_getremnawave_users_updateremnawave_internal_squads_add_usersremnawave_external_squads_add_usersremnawave_subscription_settings_get
Meta tools:
remnawave_discoverremnawave_describe
Tool Map
The wrapper preserves every low-level Remnawave operation discovered from
remnawave-mcp@0.2.1. The current catalog has 152 low-level tools plus meta and
operator helpers.
Domain | Examples | Safety |
| health, metadata, stats, node metrics | read, mutation for key generation |
| list/get/create/update/disable/enable/restart/reset traffic | read + gated mutation |
| list/get/lookup/create/update/disable/enable/delete/bulk actions | sensitive read + gated mutation |
| list/get/create/update/add users/remove users | read + gated mutation |
| list/get/create/update/add users/remove users | read + gated mutation |
| config object management | read + gated mutation |
| subscription lookups and raw/subpage reads | sensitive read |
| devices, billing metadata, usage stats | read/sensitive read + gated mutation |
Priority operations for nodes, users, internal_squads, and
external_squads expose typed top-level fields in addition to the generic
payload escape hatch. Callers can pass fields like uuid, username,
address, userUuids, activeInternalSquads, or activeExternalSquads
directly.
Related MCP server: safe-oas2mcp
Operator Tools
These convenience tools sit on top of the low-level operations:
remnawave_node_get_configremnawave_node_update_configremnawave_squad_add_usersremnawave_user_suspendremnawave_user_set_squads
They forward to the same upstream remnawave_api calls and use the same safety
rules. The low-level tools remain available for complete API coverage.
Safety
Credentials are read only from environment variables:
REMNAWAVE_BASE_URLREMNAWAVE_API_TOKENREMNAWAVE_VERSION
Mutating operations are locally blocked unless both are true:
REMNAWAVE_TOOLS_ALLOW_MUTATIONS=truethe MCP call sets
mutationApproved=true
By default, mutating calls return LOCAL_MUTATION_BLOCKED and are not forwarded
upstream.
Hard-to-reverse operations such as deletes, bulk mutations, and restart_all
also require an operation-specific confirmation phrase:
{ "confirmPhrase": "confirm users.delete" }Sensitive read results are redacted before returning through this wrapper for user, subscription, connection-key, short-UUID, and device-oriented operations.
Examples
Read a node:
{
"tool": "remnawave_nodes_get",
"arguments": { "uuid": "node-uuid" }
}Update a node, assuming local mutation execution is enabled:
{
"tool": "remnawave_node_update_config",
"arguments": {
"uuid": "node-uuid",
"name": "edge-a",
"address": "203.0.113.10",
"mutationApproved": true
}
}Add users to an external squad:
{
"tool": "remnawave_squad_add_users",
"arguments": {
"squadType": "external",
"squadUuid": "squad-uuid",
"userUuids": ["user-uuid"],
"mutationApproved": true
}
}Advanced callers can still use the generic escape hatch:
{
"tool": "remnawave_users_update",
"arguments": {
"uuid": "user-uuid",
"data": { "description": "managed by automation" },
"payload": { "tag": "ops" },
"mutationApproved": true
}
}Install
npm ci --include=dev
npm run buildThen point your MCP runtime at:
node /path/to/remnawave-tools-mcp/dist/index.jsExample environment:
REMNAWAVE_BASE_URL=https://remnawave.example.com
REMNAWAVE_API_TOKEN=your-token
REMNAWAVE_VERSION=2.7.4
REMNAWAVE_TOOLS_ALLOW_MUTATIONS=falseDevelopment
npm ci --include=dev
npm test
npm run buildUnit tests use a fake upstream MCP server and do not require a real Remnawave token.
Notes
The operation catalog targets Remnawave
2.7.0through2.7.4and fails closed if upstream discovery does not match.responseMode=rawis only allowed for safe system reads.This wrapper intentionally shells out to
remnawave-mcp@0.2.1instead of reimplementing the Remnawave HTTP API.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
- remnawave_bandwidth_stats_get_node_users_usageC
- remnawave_bandwidth_stats_get_node_user_usage_legacyD
- remnawave_bandwidth_stats_get_user_usageD
- remnawave_bandwidth_stats_get_user_usage_legacyD
- remnawave_bandwidth_stats_list_nodes_usageD
- remnawave_describeC
- remnawave_discoverA
- remnawave_external_squads_add_usersD
Latest Blog Posts
- 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/eloktev/remnawave-tools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server