ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

rust-panosmcp

โดย mechubsecรุ่น 0.17.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.mechubsec/rustpanosmcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

PAN-OS firewall MCP server: scoped, audited, two-person change control. Rust.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • Dockerติดตั้ง Docker ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "rustpanosmcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mechubsec/rustpanosmcp:0.17.0",
        "--transport",
        "stdio"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add rustpanosmcp -- docker run -i --rm ghcr.io/mechubsec/rustpanosmcp:0.17.0 --transport stdio

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "rustpanosmcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mechubsec/rustpanosmcp:0.17.0",
        "--transport",
        "stdio"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "rustpanosmcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mechubsec/rustpanosmcp:0.17.0",
        "--transport",
        "stdio"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub mechubsec ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32505 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 78% ของอีก 32505 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32505 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

rust-panosmcp ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.17.0) เข้า registry 10 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, topo^alpin

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

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

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

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

รันบนคลาวด์★ 211อัปเดต เมื่อวาน
ติดตั้ง

topo^alpin

โดย topoalpin.app

Avalanche bulletins and mountain weather forecasts for any place in the Alps.

รันบนคลาวด์อัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

rust-panosmcp

Async Rust Model Context Protocol server for Palo Alto Networks PAN-OS firewalls

a mechub project — sovereign network-security automation

Unofficial / community project. This is an independent community project and does not claim affiliation with or endorsement by Palo Alto Networks. Product names and trademarks are used only to identify the systems with which the software interoperates.

The repository contains the v0.17.0 release: a bearer-protected server with structured audit logging, guarded PAN-OS candidate configuration lifecycle, and hardened release packaging, with authentication and auditing provided by the shared mecmcp-auth and mecmcp-audit crates.

The project goal is a small, fast, production-oriented server with the same security posture as rust-junosmcp: bearer-token authentication, per-token device and tool scopes, TLS, strict remote-bind refusal rules, bounded input and output, auditable change operations, and efficient connection reuse.

The architecture and delivery plan are in PLAN.md. Security boundaries and release-blocking controls are tracked in THREAT_MODEL.md.

Workspace

rust-panosmcp/          # MCP binary and stdio adapter

rust-panosmcp-auth/ # bearer and secret-handling foundations rust-panosmcp-core/ # inventory, PAN-OS client, validation, tool logic config/ # secret-free inventory examples docs/ # operator guidance and phase notes fuzz/ # isolated cargo-fuzz workspace packaging/ # distroless/container and systemd assets scripts/ # release, matrix, fuzz, and benchmark gates

Quick start

Installation

Choose one of three install paths:

Release tarball (Linux x86_64)

Download the latest release from GitHub releases. Assets follow the pattern rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz with a corresponding .sha256 file.

# Download and verify

curl -LO https://github.com/mechubsec/rustpanosmcp/releases/download/v0.17.0/rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz curl -LO https://github.com/mechubsec/rustpanosmcp/releases/download/v0.17.0/rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz.sha256 sha256sum -c rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz.sha256

Extract

tar xzf rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz cd rust-panosmcp-v0.17.0

Install the binary and systemd assets

sudo install -m 0755 bin/rust-panosmcp /usr/local/bin/rust-panosmcp sudo install -m 0644 packaging/systemd/rust-panosmcp.sysusers /usr/lib/sysusers.d/rust-panosmcp.conf sudo install -m 0644 packaging/systemd/rust-panosmcp.tmpfiles /usr/lib/tmpfiles.d/rust-panosmcp.conf sudo install -m 0644 packaging/systemd/rust-panosmcp.service /etc/systemd/system/rust-panosmcp.service

Create the service user and directories

sudo systemd-sysusers sudo systemd-tmpfiles --create

Generate the HMAC key for audit redaction (required).

Guarded: NEVER overwrite an existing key. The key is what makes an HMAC-redacted

device identifier comparable across audit history, so replacing it silently

breaks correlation with every record already written. These steps are safe to

re-run during an upgrade only because of this guard.

sudo sh -c '[ -f /etc/rust-panosmcp/audit-hmac.key ] || head -c 32 /dev/urandom | base64 > /etc/rust-panosmcp/audit-hmac.key' sudo chmod 0600 /etc/rust-panosmcp/audit-hmac.key sudo chown rust-panosmcp:rust-panosmcp /etc/rust-panosmcp/audit-hmac.key

Start the service

sudo systemctl daemon-reload sudo systemctl enable --now rust-panosmcp

This creates a dedicated rust-panosmcp system user and provisions /etc/rust-panosmcp (config, root-owned) and /var/lib/rust-panosmcp (state). The HMAC key at /etc/rust-panosmcp/audit-hmac.key is required for device-redaction in audit logs — the service will not start without it. The extracted archive includes configuration examples in config/ — use devices.example.json and tokens.example.json as starting templates under /etc/rust-panosmcp before starting. See packaging/systemd/ for unit details.

LXC (Debian 13)

For a dedicated unprivileged LXC container on Proxmox or standalone systemd-nspawn, the release tarball includes an idempotent installer that automates the manual sequence above. For a complete setup guide including container creation, see HOW-TO-SETUP-LXC.md.

# Download and verify

curl -LO https://github.com/mechubsec/rustpanosmcp/releases/download/v0.17.0/rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz curl -LO https://github.com/mechubsec/rustpanosmcp/releases/download/v0.17.0/rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz.sha256 sha256sum -c rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz.sha256

Extract and run the installer

tar xzf rust-panosmcp-v0.17.0-x86_64-unknown-linux-gnu.tar.gz cd rust-panosmcp-v0.17.0 sudo packaging/lxc/install.sh

Configure the inventory and mint the first token

sudo vi /etc/rust-panosmcp/devices.json sudo rust-panosmcp token add \ --tokens-file /var/lib/rust-panosmcp/tokens.json \ --name initial-token \ --devices fw-example \ --tools list_devices,gather_device_facts,execute_panos_op,get_panos_config

Start the service

sudo systemctl enable --now rust-panosmcp.service

The installer creates the rust-panosmcp user and directories via systemd-sysusers and systemd-tmpfiles, installs the binary and unit, creates an empty tokens.json with mode 0600, and never overwrites /var/lib/rust-panosmcp/mutation-state.json if it exists (change-set audit trail). The endpoint listens on http://127.0.0.1:30031/mcp by default. See packaging/lxc/install.sh for environment-variable overrides and upgrade behavior.

Docker / GHCR

Prebuilt images are published to ghcr.io/mechubsec/rustpanosmcp on every release tag. See .github/workflows/release-image.yml for the build pipeline. For a complete setup guide including both two-person and lab modes, see HOW-TO-SETUP-DOCKER.md.

# Pull the image

docker pull ghcr.io/mechubsec/rustpanosmcp:latest

The default CMD binds 127.0.0.1:30031 *inside* the container, so a bare docker run with no -p and no --host/--allowed-host/--allowed-origin starts cleanly but is not reachable from outside the container. Follow HOW-TO-SETUP-DOCKER.md for a working two-person or lab-mode docker run invocation (including the port publish and the flags the baked-in ENTRYPOINT already supplies) or use the included compose.example.yaml.

Run with Docker (stdio)

For MCP clients that launch a server over stdin/stdout, prepare an inventory with the same shape as config/devices.example.json:

{

"version": 1, "policy": { "mode": "allowlist", "allow": ["show system info", "show interface all"] }, "devices": [ { "name": "panos-demo", "endpoint": "https://panos-demo.example.net", "vsys": "vsys1", "api_key": { "type": "env", "name": "PANOS_DEMO_API_KEY" }, "tags": ["lab", "read-only"] } ] }

Export the API-key variable before launching the container. This passthrough form keeps the key out of the command line, but Docker daemon access can still expose environment values through inspection. For stricter handling, use the file-based API-key form ({"type":"file","path":"/protected/path"}) documented in the configuration section below and mount that file read-only with mode 0600.

export PANOS_DEMO_API_KEY=replace-with-runtime-secret

Make the mounted inventory and state files readable and writable only by the container user (uid:gid 65532:65532); secret-bearing files must have mode 0600. Stdio is unauthenticated at the process boundary: the launcher can use every device in the mounted inventory and every tool, so scope access by limiting that inventory and using a read-only PAN-OS API role. The state directory must be writable because the server creates its audit state there.

mkdir -p state

chmod 0600 devices.json sudo chown 65532:65532 devices.json state

docker run --rm -i \ --user 65532:65532 \ -e PANOS_DEMO_API_KEY \ -v "$PWD/devices.json:/etc/rust-panosmcp/devices.json:ro" \ -v "$PWD/state:/var/lib/rust-panosmcp" \ ghcr.io/mechubsec/rustpanosmcp:0.15.0 \ --transport stdio

The image ENTRYPOINT already supplies the config, token, state, and audit-key paths, so do not repeat those flags after the image name. The token path is only used by HTTP. This invocation leaves HTTP and listener TLS off: supplying --transport stdio replaces the image CMD, including its HTTP bind and port flags. Connections to the firewall still use HTTPS according to the inventory's TLS trust settings.

Build from source

Requires Rust 1.89 or newer (MSRV).

git clone https://github.com/mechubsec/rustpanosmcp.git

cd rustpanosmcp cargo build --release --locked ./target/release/rust-panosmcp --version

Run (stdio)

Start from config/devices.example.json, keep the real inventory out of Git, and provide the referenced environment secret:

export PANOS_LAB_API_KEY='runtime-secret'

cargo run --locked --release -- --device-mapping /absolute/path/devices.json

Run (streamable-http with auth)

First mint a least-privilege token, then start the TLS Streamable HTTP transport:

cargo run --locked --release -- \

--device-mapping /etc/rust-panosmcp/devices.json \ token add \ --tokens-file /etc/rust-panosmcp/tokens.json \ --name read-only-client \ --devices fw-example \ --tools list_devices,gather_device_facts,execute_panos_op,get_panos_config

cargo run --locked --release -- \ --device-mapping /etc/rust-panosmcp/devices.json \ --transport streamable-http \ --host 0.0.0.0 --port 30031 \ --tokens-file /etc/rust-panosmcp/tokens.json \ --tls-cert /etc/rust-panosmcp/server.crt \ --tls-key /etc/rust-panosmcp/server.key \ --allowed-host mcp.example.net \ --allowed-origin https://client.example.net

Capture the first command's stdout securely: that is the only display of the new bearer secret. See docs/PHASE2_OPERATIONS.md for token rotation, reload, refusal rules, reverse-proxy deployment, and all security defaults. Phase 1 inventory and firewall TLS details remain in docs/PHASE1_OPERATIONS.md.

Next: [Learn the reader, writer, and reviewer MCP role

workflow](docs/MCP_ROLE_WORKFLOW.md).

Status

Phase 1 implemented validated inventory and secret providers, strict HTTPS with system roots/custom CA/exact leaf pinning, pooled async PAN-OS XML API calls, typed errors, timeouts, cancellation, output caps, and a per-device semaphore. Phase 2 added digest-only bearer tokens, exact device/tool scopes, atomic inventory/token reload, TLS Streamable HTTP, Host/Origin validation, bounded request bodies, IP/token rate limits, and audit-safe request tracing. Both transports share the same 28 tools described in MCP tools reference below; wildcard * token scopes reach only the 17 read-only ones (list_devices, gather_device_facts, execute_panos_op, get_panos_config, list_panos_entries, get_panos_entry_digest, list_panorama_device_groups, list_panorama_templates, get_panorama_push_status, list_panos_rulebase_entries, `

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx