プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

wg-easy

作者:ni-cバージョン 0.6.0i★ –iパソコンで動く
レジストリ名io.github.ni-c/wg-easy-mcp

インストール

概要

作者による説明(英語の原文)

Administer wg-easy (WireGuard Easy) v15: manage VPN clients, configs, QR codes and server status

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:WG_EASY_URL, WG_EASY_USERNAME, WG_EASY_PASSWORD

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: WG_EASY_URL, WG_EASY_USERNAME, WG_EASY_PASSWORD, WG_EASY_INSECURE_TLS, WG_EASY_READ_ONLY, WG_EASY_ALLOW_TOOLS, WG_EASY_DENY_TOOLS

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "wg-easy": {
      "command": "npx",
      "args": [
        "-y",
        "wg-easy-mcp"
      ],
      "env": {
        "WG_EASY_URL": "your-value",
        "WG_EASY_USERNAME": "your-value",
        "WG_EASY_PASSWORD": "your-value",
        "WG_EASY_INSECURE_TLS": "your-value",
        "WG_EASY_READ_ONLY": "your-value",
        "WG_EASY_ALLOW_TOOLS": "your-value",
        "WG_EASY_DENY_TOOLS": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add wg-easy --env WG_EASY_URL=your-value --env WG_EASY_USERNAME=your-value --env WG_EASY_PASSWORD=your-value --env WG_EASY_INSECURE_TLS=your-value --env WG_EASY_READ_ONLY=your-value --env WG_EASY_ALLOW_TOOLS=your-value --env WG_EASY_DENY_TOOLS=your-value -- npx -y wg-easy-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "wg-easy": {
      "command": "npx",
      "args": [
        "-y",
        "wg-easy-mcp"
      ],
      "env": {
        "WG_EASY_URL": "your-value",
        "WG_EASY_USERNAME": "your-value",
        "WG_EASY_PASSWORD": "your-value",
        "WG_EASY_INSECURE_TLS": "your-value",
        "WG_EASY_READ_ONLY": "your-value",
        "WG_EASY_ALLOW_TOOLS": "your-value",
        "WG_EASY_DENY_TOOLS": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "wg-easy": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "wg-easy-mcp"
      ],
      "env": {
        "WG_EASY_URL": "your-value",
        "WG_EASY_USERNAME": "your-value",
        "WG_EASY_PASSWORD": "your-value",
        "WG_EASY_INSECURE_TLS": "your-value",
        "WG_EASY_READ_ONLY": "your-value",
        "WG_EASY_ALLOW_TOOLS": "your-value",
        "WG_EASY_DENY_TOOLS": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • WG_EASY_URL 必須 env
    Base URL of the wg-easy web UI, e.g. https://vpn.example.com:51821
  • WG_EASY_USERNAME 必須 env
    Username of a wg-easy admin account (2FA must be disabled)
  • WG_EASY_PASSWORD 秘密 必須 env
    Password of the wg-easy admin account
  • WG_EASY_INSECURE_TLS env
    Set to true to accept self-signed TLS certificates (scoped to the wg-easy connection)
  • WG_EASY_READ_ONLY env
    Set to true to register only the read tools (default: false)
  • WG_EASY_ALLOW_TOOLS env
    Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)
  • WG_EASY_DENY_TOOLS env
    Comma-separated tool names or list_* prefixes to remove from whatever WG_EASY_ALLOW_TOOLS left

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント ni-c で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの19023件のうち0%よりスターが多い
  • このカテゴリのほかの19023件のうち32%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの19023件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

wg-easyは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:WG_EASY_URL, WG_EASY_USERNAME, WG_EASY_PASSWORD

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.6.0)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, KEVAREMESH Agent Discovery MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

作者:formulahendry初期↓ 66/週★ 44014 か月前更新

パソコンで動く

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

作者:desktop-commander成長中★ 211今日更新

クラウドで動く✓ desktopcommander.app

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

wg-easy-mcp

A Model Context Protocol (MCP) server for administering wg-easy (WireGuard Easy) instances.

Lets MCP clients like Claude Code, Claude Desktop or Codex manage your WireGuard VPN: list, create, update, enable/disable and delete clients, fetch configuration files and QR codes, and inspect the server status — all through the wg-easy v15 REST API.

Eleven tools is the ceiling, not the floor: WG_EASY_ALLOW_TOOLS=essential registers a curated six instead, and a model picks the right tool far more reliably from six than from eleven — see choosing which tools load.

What makes it different

The full client lifecycle over the wg-easy v15 REST API, including .conf files, QR codes and one-time download links.

Partial updates merge. An update reads the current client state and changes only the fields you named, instead of overwriting the rest with defaults.

`disable_client` stays ungated on purpose. Every other write asks a person first through MCP elicitation; that one only ever withdraws access, and making it harder would be making the safe move the slow one.

Requirements

  • Node.js ≥ 24
  • A running wg-easy v15+ instance
  • 2FA (TOTP) must be disabled for the account used by this server — the wg-easy API only supports Basic Authentication and does not work with 2FA enabled

Note: The wg-easy REST API is not yet declared stable and may change between releases. This server targets wg-easy v15.

Configuration

Configuration is provided via environment variables:

VariableRequiredDescription
WG_EASY_URLyesBase URL of the wg-easy web UI, e.g. https://vpn.example.com:51821
WG_EASY_USERNAMEyesUsername of a wg-easy admin account
WG_EASY_PASSWORDyesPassword of that account
WG_EASY_INSECURE_TLSnoSet to true to accept self-signed TLS certificates (scoped to the wg-easy connection)
WG_EASY_ALLOW_TOOLSnoComma-separated tool names, list_* prefixes, or essential for a curated preset
WG_EASY_DENY_TOOLSnoSame syntax; removed from whatever WG_EASY_ALLOW_TOOLS left
ELICITATIONnofalse replaces the approval dialog with the two-call token. Not prefixed

Use `https://`. With a plain-http URL the Basic Auth credentials and all

WireGuard private keys travel unencrypted; the server prints a warning unless

the host is local. For self-signed certificates prefer a proper internal CA

over WG_EASY_INSECURE_TLS.

Without credentials the server still starts and lists its tools (so registries and inspectors can introspect it), but every tool call fails with setup instructions instead of reaching the wg-easy API.

Choosing which tools load

WG_EASY_ALLOW_TOOLS and WG_EASY_DENY_TOOLS take comma-separated tool names; a trailing * matches a whole family. essential is a curated preset of six: get_server_info, list_clients, get_client, create_client, enable_client, disable_client.

get_client_config, get_client_qrcode and generate_one_time_link are not in it, and neither is delete_client: all four either destroy something irreversibly or hand out a peer's private key. Name them where you want them.

WG_EASY_ALLOW_TOOLS=essential

WG_EASY_ALLOW_TOOLS=essential,get_client_config WG_EASY_ALLOW_TOOLS=list_clients,get_client_config WG_EASY_DENY_TOOLS=delete_client,create_client

An entry that matches no tool aborts startup and names it, so a typo cannot silently hide a tool — an absent tool is not something anyone traces back to an environment variable. A filtered tool is never registered, so it is absent from tools/list and unknown to tools/call alike, exactly like a write tool under WG_EASY_READ_ONLY.

If you run several of these servers at once, mcp-hub is the other answer — its /hub endpoint replaces every server's tools with six meta-tools.

Installation

Claude Code
claude mcp add wg-easy -s user \

-e WG_EASY_URL=https://vpn.example.com:51821 \ -e WG_EASY_USERNAME=admin \ -e WG_EASY_PASSWORD=your-password \ -- npx -y wg-easy-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{

"mcpServers": { "wg-easy": { "command": "npx", "args": ["-y", "wg-easy-mcp"], "env": { "WG_EASY_URL": "https://vpn.example.com:51821", "WG_EASY_USERNAME": "admin", "WG_EASY_PASSWORD": "your-password" } } } }

Codex

Add to your ~/.codex/config.toml:

[mcp_servers.wg-easy]

command = "npx" args = ["-y", "wg-easy-mcp"] env = { WG_EASY_URL = "https://vpn.example.com:51821", WG_EASY_USERNAME = "admin", WG_EASY_PASSWORD = "your-password" }

From source
git clone https://github.com/ni-c/wg-easy-mcp.git

cd wg-easy-mcp npm install npm run build

then use node /path/to/wg-easy-mcp/dist/index.js as the command

Docker

A multi-arch image (linux/amd64, linux/arm64) with an SBOM and build provenance is published to GitHub Container Registry:

docker run -i --rm \

-e WG_EASY_URL=https://vpn.example.com:51821 \ -e WG_EASY_USERNAME=admin \ -e WG_EASY_PASSWORD=your-password \ ghcr.io/ni-c/wg-easy-mcp:latest

The image talks MCP over stdio, so clients need docker run -i (no port is exposed):

{

"mcpServers": { "wg-easy": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "WG_EASY_URL", "-e", "WG_EASY_USERNAME", "-e", "WG_EASY_PASSWORD", "ghcr.io/ni-c/wg-easy-mcp:latest" ], "env": { "WG_EASY_URL": "https://vpn.example.com:51821", "WG_EASY_USERNAME": "admin", "WG_EASY_PASSWORD": "your-password" } } } }

Through mcp-hub

A client that cannot spawn a local process — ChatGPT connectors, Claude on the web, Cursor, LibreChat — reaches wg-easy-mcp through mcp-hub: one container serves many stdio MCP servers over Streamable HTTP, with an OAuth 2.1 login behind a single password and long-lived tokens for the clients that cannot do OAuth. Its /hub endpoint puts every server behind six meta-tools, so one connector reaches all of them without N×tool schemas in the model's context, and it speaks both protocol revisions — a question this server asks travels through it to the person at the far end.

Its /config/mcp.json uses Claude Code's format, so the entry is the one you already have:

{

"mcpServers": { "wg-easy": { "command": "npx", "args": ["-y", "wg-easy-mcp"], "env": { "WG_EASY_ALLOW_TOOLS": "essential" }, "denyTools": ["delete_client"] } } }

allowTools and denyTools there are the hub's own per-server filter, which is not the same thing as *_ALLOW_TOOLS in env — the difference, and the mistake it invites, are in the client guide.

Tools

ToolDescription
list_clientsList all WireGuard clients with status and traffic statistics
get_clientGet the full details of a single client
create_client 👤Create a new client (name, optional expiresAt)
update_client 👤Update a client; only the provided fields are changed
enable_client 👤Let a client connect again — re-arms a key pair already installed on the peer
disable_clientBlock a client; it keeps its configuration and keys
delete_client 👤Permanently delete a client
get_client_configGet the client's WireGuard .conf file
get_client_qrcodeGet the client configuration as a QR code (SVG)
generate_one_time_link 👤Generate a one-time config download link, valid five minutes
get_server_infoRelease/update status, general settings and interface configuration (secrets redacted)

👤 asks a person through MCP elicitation · falls back to a two-call confirm_token where the client cannot show a dialog.

Structured output

Every tool declares an outputSchema and answers with structuredContent alongside the text block, so a client can use the result without parsing prose:

{

"untrusted": true, "source": "wg-easy", "count": 2, "clients": [{ "id": 1, "name": "laptop", "enabled": true }], }

The untrusted marker is a field and not only a sentence in the text, because a client that reads th

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く