mcp-remnawave
mcp-remnawave
Remnawave VPN 패널용 MCP 서버 — Remnawave 3.x에 맞게 업데이트됨
English · Русский
MCP 클라이언트(Claude Code, Claude Desktop, Cursor 또는 다른 어떤 것이든)가 패널의 REST API를 통해 사용자, 노드, 호스트, 구성 프로파일, 스쿼드, 구독 템플릿, 청구 및 HWID 기기를 읽고 관리할 수 있게 해줍니다.
TrackLine/mcp-remnawave v1.2.0의 관리되는 포크이며, Remnawave 3.x에 맞추어(실제 구동 중인 3.3.x 패널에서 검증) 도구 스키마가 패널 API와 어긋날 수 없도록 재작업되었습니다.
✨ 주요 특징
🔢 숫자형 사용자 id | Remnawave 3.0부터 사용자 |
📜 컨트랙트 기반 스키마 | 쓰기 도구는 입력 스키마를 |
🧾 실제 오류 메시지 | 검증 오류는 단순한 |
🗂 한 번 설치, 여러 패널 | 패널 구성은 현재 프로젝트에서 먼저 찾습니다. 즉, 활성 패널은 현재 작업 중인 프로젝트를 기준으로 결정됩니다. |
🔒 기본 읽기 전용 |
|
Related MCP server: remnawave-mcp-server
🚀 빠른 시작
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"그게 전부입니다. 클라이언트에게 system_metadata를 요청해 보세요. 패널 버전으로 답해 줍니다.
{
"mcpServers": {
"remnawave": {
"command": "node",
"args": ["/absolute/path/to/mcp-remnawave/dist/index.js"]
}
}
}stdio MCP 클라이언트라면 무엇이든 동작합니다. node dist/index.js를 가리키고
아래 표의 환경 변수를 전달하면 됩니다(또는 설정 파일 탐색 기능을 사용해도 됩니다).
⚙️ 설정
변수 | 필수 여부 | 설명 |
| ✅ | 패널 URL(예: |
| ✅ | API 토큰(Bearer) — 패널 → API 토큰 |
| — |
|
| — | Caddy의 커스텀 경로 설정용 |
| — | 구성 파일의 명시적 경로 |
설정 파일 위치
서버는 REMNAWAVE_BASE_URL과 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 클라이언트는 stdio 서버를 실행할 때 cwd를 프로젝트 루트로 지정합니다. 그래서 전역에 한 번만
설치해 두면 활성 패널은 현재 작업 중인 프로젝트의 것입니다. 관련된 패널을 사용하려면
해당 프로젝트에 .remnawave.env만 넣으면 됩니다. 서버 쪽에서 바꿀 것은 없습니다.
이미 환경에 들어 있는 변수를 절대 덮어쓰지 않으므로, 클라이언트 등록으로 전달한 env 설정이
항상 우선합니다.
읽기 전용 모드
REMNAWAVE_READONLY=true로 시작하세요. 이 모드에서는 쓰기 도구(create / update / delete / enable /
disable / bulk)가 아예 등록되지 않으므로 클라이언트조차 시도할 수 없습니다.
실제 쓰기가 필요할 때만 false로 바꾸고 서버를 다시 시작하세요.
🧰 도구
약 150개의 도구이며 패널 API처럼 그룹으로 분류되어 있습니다. 읽기 도구는 항상 사용 가능하고, 쓰기 도구는 읽기 전용 모드가 꺼져 있을 때만 사용할 수 있습니다.
Read | Write |
|
|
telegramId / email / tag / status로 검색하려면
users_list를filters: [{"id": "telegramId", "value": 123456789}]와 함께 사용합니다. (filterModes,sorting는 선택). 이 방식은 3.x에서 제거된by-*라우트를 대체합니다.users_resolve는id,shortUuid,username중 정확히 하나 만 받습니다.일괄 도구는
userIds: number[](1–500)를 받습니다.users_bulk_update는 변경할 필드를fields아래에 넣습니다.users_create는vlessUuid/ssPassword/trojanPassword/shortUuid를 명시적으로 받을 수 있습니다. 서비스 계정에 유용합니다.
Group | Read | Write |
Nodes |
|
|
Hosts |
|
|
Config profiles |
|
|
config_profiles_update는config와 함께 사용하면 해당 프로파일의 xray 구성 전체를 교체합니다. 읽어서 수정하고 다시 저장하는 방식으로 사용하세요.hosts_create를 사용하려면inbound: { configProfileUuid, configProfileInboundUuid }가 필요합니다.
그룹 | Readable | Write |
Squads |
|
|
Subscriptions |
| — |
Templates & pages |
|
|
분류 | Readable | Writeable |
HWID |
|
|
System |
|
|
Billing |
|
|
Node plugins |
|
|
Misc |
|
|
api_tokens_list 및 settings_*는 해당 권한을 가진 API 토큰이 필요합니다. 그렇지 않으면 패널이 Forbidden으로 응답합니다.
🔧 업스트림 대비 변경 사항
숫자 사용자 ID를 모든 곳에서 사용.
users_get_by_telegram_id/_by_email/_by_tag/_by_subscription_uuid및subscriptions_get_by_uuid제거됨(해당 라우트는 더 이상 존재하지 않음).contractTool()— 쓰기 도구는 계약의RequestSchema.shape로 등록됩니다. 이전에는 23개 쓰기 도구 중 20개가 필드의 일부만 노출했고, MCP SDK는 나머지를 조용히 버렸습니다.users_*는 여전히 수동으로 작성됩니다. 설치된 계약은 사용자에 대해 여전히uuid를 선언합니다.새로 추가됨:
users_extend_expiration,users_accessible_nodes,subscriptions_get_by_user_id,subscription_templates_list/get/update;config_profiles_update는config를 받습니다.클라이언트: 전체 API 오류 본문, 대량 작업 시 빈
2xx본문 처리, 3.x 전용 라우트에 대한 후행 슬래시에 안전한 수동 경로.계약에서 가져온 열거형(
RESET_PERIODS는MONTH_ROLLING,USERS_STATUS포함).다중 패널 구성 조회; 기본값은 읽기 전용 권장; 버전을 2.0.0으로 상향 조정.
🛠 개발
npm run dev # tsup --watch
npm run build # tsup → dist/index.js
npx tsc --noEmit # typecheck🐳 Docker
docker compose up -ddocker-compose.yml을 참조하고 동일한 환경 변수를 전달하세요.
📄 라이선스
MIT. 업스트림 저자: 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