mcp-remnawave
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., "@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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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 gradedqualityDmaintenanceMCP server for the Wasabi WACM Connect API, enabling management of account hierarchy, storage, and billing data through Claude with 18 read-only and 12 opt-in write tools.1Apache 2.0
- AlicenseBqualityAmaintenanceMCP server that enables Claude Code to access, monitor, and manage MikroTik RouterOS devices via its REST API, with 92 tools for read-only and optional write operations.92Apache 2.0
Related MCP Connectors
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
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/Maaagiic/mcp-remnawave'
If you have feedback or need assistance with the MCP directory API, please join our Discord server