Remnawave Tools MCP
Wraps the Remnawave API to provide per-operation MCP tools with mutation safety and data redaction, enabling secure interaction with Remnawave panel.
README
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 |
|---|---|---|
system |
health, metadata, stats, node metrics | read, mutation for key generation |
nodes |
list/get/create/update/disable/enable/restart/reset traffic | read + gated mutation |
users |
list/get/lookup/create/update/disable/enable/delete/bulk actions | sensitive read + gated mutation |
internal_squads |
list/get/create/update/add users/remove users | read + gated mutation |
external_squads |
list/get/create/update/add users/remove users | read + gated mutation |
hosts, profiles, templates, snippets |
config object management | read + gated mutation |
subscriptions, public_subscriptions |
subscription lookups and raw/subpage reads | sensitive read |
hwid, infra_billing, bandwidth_stats |
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.
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=true- the 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 build
Then point your MCP runtime at:
node /path/to/remnawave-tools-mcp/dist/index.js
Example environment:
REMNAWAVE_BASE_URL=https://remnawave.example.com
REMNAWAVE_API_TOKEN=your-token
REMNAWAVE_VERSION=2.7.4
REMNAWAVE_TOOLS_ALLOW_MUTATIONS=false
Development
npm ci --include=dev
npm test
npm run build
Unit 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.