mcp-remnawave
Click on "Deploy 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., "@mcp-remnawaveShow me the list of active users and their traffic limits."
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.
mcp-remnawave
MCP server for the Remnawave VPN panel — updated for Remnawave 3.x
English · Русский
Lets an MCP client — Claude Code, Claude Desktop, Cursor or any other — read and manage users, nodes, hosts, config profiles, squads, subscription templates, billing and HWID devices through the panel's REST API.
Maintained fork of TrackLine/mcp-remnawave v1.2.0, brought in line with Remnawave 3.x (verified against a live 3.3.x panel) and reworked so that tool schemas can no longer drift away from the panel API.
✨ Highlights
🔢 Numeric user ids | Remnawave 3.0 dropped the user |
📜 Schemas from the contract | Write tools take their input schema straight from |
🧾 Real error messages | Validation errors come back with field-level details instead of a bare |
🗂 One install, many panels | Panel config is looked up in the current project first — the active panel is whichever project you are working in |
🔒 Readonly by default | With |
Related MCP server: remnawave-mcp-server
🚀 Quick start
git clone https://github.com/Maaagiic/mcp-remnawave.git
cd mcp-remnawave
npm install && npm run build
cp .env.example .env # set REMNAWAVE_BASE_URL and REMNAWAVE_API_TOKEN
# Claude Code — available in every project:
claude mcp add --scope user remnawave -- node "$PWD/dist/index.js"That's it. Ask your client to system_metadata — it should answer with the panel version.
{
"mcpServers": {
"remnawave": {
"command": "node",
"args": ["/absolute/path/to/mcp-remnawave/dist/index.js"]
}
}
}Any stdio MCP client works — point it at node dist/index.js and pass the environment
variables from the table below (or rely on the config file lookup).
⚙️ Configuration
Variable | Required | Description |
| ✅ | Panel URL, e.g. |
| ✅ | API token (Bearer) — Panel → API tokens |
| — |
|
| — |
|
| — | Explicit path to a config file |
Where the config comes from
The server stops at the first file that provides REMNAWAVE_BASE_URL and REMNAWAVE_API_TOKEN:
1. $REMNAWAVE_ENV_FILE explicit path
2. <cwd>/.remnawave.env per-project — add it to .gitignore
3. <cwd>/.env
4. <package>/.env fallbackMCP clients launch stdio servers with cwd set to the project root, so with a single
global install the active panel is whichever project you are working in. To add a
panel, drop a .remnawave.env into its project — nothing to change on the server side.
Variables already present in the environment are never overridden, so env passed by the
client registration always wins.
Readonly mode
Start with REMNAWAVE_READONLY=true. Write tools (create / update / delete / enable /
disable / bulk) are not registered at all in this mode, so the client cannot even
attempt them. Set it to false and restart the server when you actually need to write.
🧰 Tools
About 150 tools, grouped like the panel API. Read tools are always available; write tools only when readonly is off.
Read | Write |
|
|
Search by telegramId / email / tag / status:
users_listwithfilters: [{"id": "telegramId", "value": 123456789}](+ optionalfilterModes,sorting). This replaces theby-*routes removed in 3.x.users_resolvetakes exactly one ofid,shortUuid,username.Bulk tools take
userIds: number[](1–500);users_bulk_updatenests changed fields underfields.users_createaccepts explicitvlessUuid/ssPassword/trojanPassword/shortUuid— handy for service accounts.
Group | Read | Write |
Nodes |
|
|
Hosts |
|
|
Config profiles |
|
|
config_profiles_updatewithconfigreplaces the whole xray config of the profile — read, patch, write back.hosts_createrequiresinbound: { configProfileUuid, configProfileInboundUuid }.
Group | Read | Write |
Squads |
|
|
Subscriptions |
| — |
Templates & pages |
|
|
Group | Read | Write |
HWID |
|
|
System |
|
|
Billing |
|
|
Node plugins |
|
|
Misc |
|
|
api_tokens_list and settings_* need an API token with the matching rights — otherwise the panel answers Forbidden.
🔧 What changed vs. upstream
Numeric user ids everywhere;
users_get_by_telegram_id/_by_email/_by_tag/_by_subscription_uuidandsubscriptions_get_by_uuidremoved (the routes no longer exist).contractTool()— write tools register withRequestSchema.shapefrom the contract. Before: 20 of 23 write tools exposed a subset of fields and the MCP SDK dropped the rest silently.users_*remain hand-written: the installed contract still declaresuuidfor users.New:
users_extend_expiration,users_accessible_nodes,subscriptions_get_by_user_id,subscription_templates_list/get/update;config_profiles_updatetakesconfig.Client: full API error bodies, empty
2xxbodies on bulk operations handled, trailing-slash-safe hand-built paths for 3.x-only routes.Enums from the contract (
RESET_PERIODSincl.MONTH_ROLLING,USERS_STATUS).Multi-panel config lookup; readonly recommended by default; version bumped to 2.0.0.
🛠 Development
npm run dev # tsup --watch
npm run build # tsup → dist/index.js
npx tsc --noEmit # typecheck🐳 Docker
docker compose up -dSee docker-compose.yml and pass the same environment variables.
📄 License
MIT. Upstream authorship: TrackLine/mcp-remnawave.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceProvides AI agents with 220+ tools for building websites, sending email, managing contacts, invoicing, databases, automation, and more through a single secure connection. Features hardware-bound authentication and works with Claude Desktop, Claude Code, Cursor, and other MCP-compatible clients.-
- AlicenseAqualityBmaintenanceMCP server for Remnawave panel API. Manage VPN users, nodes, hosts, and system stats from Claude Code or any MCP-compatible client.34MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to manage a Remnawave panel through its full API, covering users, nodes, hosts, subscriptions, and more with configurable tool profiles and read/write token access.24 npmMIT
- AlicenseCqualityBmaintenanceEnables managing a Remnawave VPN panel from MCP clients, providing tools for users, nodes, subscriptions, statistics, billing, and system operations, plus resources and prompts for common admin tasks.1904 npmMIT