Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Inicia sesión con Google para escribir reseñas.Prototipo · se actualiza cada 30 min
PopNx MCPServidores MCP para quienes usan IA · en palabras sencillas

rust-panosmcp

de mechubsecversión 0.17.1i★ 1iSe ejecuta en tu computadora
Nombre en el registroio.github.mechubsec/rustpanosmcp

Cómo instalar

What it does

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

  • Connects Se ejecuta en tu computadora
  • Account or key No key needed
  • Category Herramientas para desarrolladores

Instalación

Elige la app de IA que usas y copia la configuración.

Pasó 3/3 revisiones · Funciona en tu computadora · ✓ Comandos revisados el 13 nov 2026

Primero: ¿qué IA usas?

Elige tu app y los pasos aparecen abajo.

Funciona con Claude, pero hay que preparar algo antes

Instala Docker en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil

Que la IA lo instale

Copia este mensaje en un chat de Claude. La IA revisa tu equipo, te dice qué archivo va a cambiar y espera tu visto bueno cada vez.

Instala el MCP server rust-panosmcp para Claude en este equipo, en este orden: 1) Comprueba Docker con docker --version. Si falta, dime que lo instale desde https://www.docker.com/products/docker-desktop/; no lo instales tú. 2) Usa solo esta configuración (ya revisada por PopNx MCP): { "mcpServers": { "rustpanosmcp": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/mechubsec/rustpanosmcp:0.17.1", "--transport", "stdio" ] } } } 3) Dime la ruta completa del archivo que vas a cambiar o el comando que vas a ejecutar y espera mi visto bueno. 4) No hace falta clave. 5) Haz lo acordado y comprueba que las herramientas de rust-panosmcp aparecen de verdad.

Este mensaje no lleva tu clave. Si hace falta una, la IA te pedirá que la pegues tú en el archivo o en el campo de la app.

  1. Instala Docker (si no lo tienes)

    ¿Ya está instalado? Compruébalo primero · Abre la Terminal, escribe este comando y pulsa Enter

    docker --version
    • Aparece un número de versión, p. ej. Docker version … = ya está instalado, sáltate este paso
    • Aparece "command not found" (en Windows, "is not recognized") = aún no está instalado, o acabas de instalarlo y debes cerrar y volver a abrir la Terminal
    Cómo abrir la Terminal

    Mac: pulsa ⌘ + Espacio, escribe Terminal y pulsa Enter

    Windows: abre Inicio, escribe Windows PowerShell y elige Abrir

    Si no está instalado: Instala Docker Desktop: en Mac abre Docker.dmg y arrastra el icono a Aplicaciones (elige Apple silicon o Intel según tu Mac) · en Windows haz doble clic en Docker Desktop Installer.exe · luego abre la app Docker Desktop y déjala abierta. No necesitas ningún comando curl

    Abrir la página de descarga de Docker ↗

    Al terminar, cierra la Terminal, ábrela de nuevo y ejecuta el mismo comando. Debe aparecer un número de versión: docker --version

    Se instala una vez y sirve para todo lo que usa Docker

  2. Abre el archivo de configuración de la app de Claude de escritorio

    SettingsDeveloperEdit Config

  3. Pega esta configuración y guarda el archivo

    {
      "mcpServers": {
        "rustpanosmcp": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "ghcr.io/mechubsec/rustpanosmcp:0.17.1",
            "--transport",
            "stdio"
          ]
        }
      }
    }
  4. Cierra Claude y vuelve a abrirlo

  5. Pruébalo

    Usa rust-panosmcp y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude dice que está usando rust-panosmcp o muestra una herramienta de rust-panosmcp en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

ChatGPT todavía no puede conectar rust-panosmcp

rust-panosmcp se instala en tu computadora, pero ChatGPT solo conecta servidores que funcionan en la web

Lo que puedes hacer en su lugar

A · Usa una app que pueda conectar rust-panosmcp

  • Instala Docker en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil
  • Instala Docker en tu computadora primero (una sola vez)
  • Instala Docker en tu computadora primero (una sola vez)
  • Instala Docker en tu computadora primero (una sola vez)

B · Otros en Herramientas para desarrolladores que funcionan con ChatGPT

Elegidos entre los más usados de la misma categoría, solo los que se conectan con una dirección y sin clave

Funciona con Claude Code, pero hay que preparar algo antes

Instala Docker en tu computadora primero (una sola vez)

Que la IA lo instale

Copia este mensaje en un chat de Claude Code. La IA revisa tu equipo, te dice qué archivo va a cambiar y espera tu visto bueno cada vez.

Instala el MCP server rust-panosmcp para Claude Code en este equipo, en este orden: 1) Comprueba Docker con docker --version. Si falta, dime que lo instale desde https://www.docker.com/products/docker-desktop/; no lo instales tú. 2) Usa solo esta configuración (ya revisada por PopNx MCP): claude mcp add --scope user rustpanosmcp -- docker run -i --rm ghcr.io/mechubsec/rustpanosmcp:0.17.1 --transport stdio 3) Dime la ruta completa del archivo que vas a cambiar o el comando que vas a ejecutar y espera mi visto bueno. 4) No hace falta clave. 5) Haz lo acordado y comprueba que las herramientas de rust-panosmcp aparecen de verdad.

Este mensaje no lleva tu clave. Si hace falta una, la IA te pedirá que la pegues tú en el archivo o en el campo de la app.

  1. Instala Docker (si no lo tienes)

    ¿Ya está instalado? Compruébalo primero · Abre la Terminal, escribe este comando y pulsa Enter

    docker --version
    • Aparece un número de versión, p. ej. Docker version … = ya está instalado, sáltate este paso
    • Aparece "command not found" (en Windows, "is not recognized") = aún no está instalado, o acabas de instalarlo y debes cerrar y volver a abrir la Terminal
    Cómo abrir la Terminal

    Mac: pulsa ⌘ + Espacio, escribe Terminal y pulsa Enter

    Windows: abre Inicio, escribe Windows PowerShell y elige Abrir

    Si no está instalado: Instala Docker Desktop: en Mac abre Docker.dmg y arrastra el icono a Aplicaciones (elige Apple silicon o Intel según tu Mac) · en Windows haz doble clic en Docker Desktop Installer.exe · luego abre la app Docker Desktop y déjala abierta. No necesitas ningún comando curl

    Abrir la página de descarga de Docker ↗

    Al terminar, cierra la Terminal, ábrela de nuevo y ejecuta el mismo comando. Debe aparecer un número de versión: docker --version

    Se instala una vez y sirve para todo lo que usa Docker

  2. Abre la Terminal

    Mac: pulsa Command+Espacio y escribe Terminal · Windows: abre PowerShell

  3. Pega este comando y pulsa Enter

    claude mcp add --scope user rustpanosmcp -- docker run -i --rm ghcr.io/mechubsec/rustpanosmcp:0.17.1 --transport stdio
  4. Escribe /mcp en Claude Code

    Deberías ver rust-panosmcp en la lista como conectado

  5. Pruébalo

    Usa rust-panosmcp y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude Code dice que está usando rust-panosmcp o muestra una herramienta de rust-panosmcp en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con Cursor, pero hay que preparar algo antes

Instala Docker en tu computadora primero (una sola vez)

Que la IA lo instale

Copia este mensaje en un chat de Cursor. La IA revisa tu equipo, te dice qué archivo va a cambiar y espera tu visto bueno cada vez.

Instala el MCP server rust-panosmcp para Cursor en este equipo, en este orden: 1) Comprueba Docker con docker --version. Si falta, dime que lo instale desde https://www.docker.com/products/docker-desktop/; no lo instales tú. 2) Usa solo esta configuración (ya revisada por PopNx MCP): { "mcpServers": { "rustpanosmcp": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/mechubsec/rustpanosmcp:0.17.1", "--transport", "stdio" ] } } } 3) Dime la ruta completa del archivo que vas a cambiar o el comando que vas a ejecutar y espera mi visto bueno. 4) No hace falta clave. 5) Haz lo acordado y comprueba que las herramientas de rust-panosmcp aparecen de verdad.

Este mensaje no lleva tu clave. Si hace falta una, la IA te pedirá que la pegues tú en el archivo o en el campo de la app.

  1. Instala Docker (si no lo tienes)

    ¿Ya está instalado? Compruébalo primero · Abre la Terminal, escribe este comando y pulsa Enter

    docker --version
    • Aparece un número de versión, p. ej. Docker version … = ya está instalado, sáltate este paso
    • Aparece "command not found" (en Windows, "is not recognized") = aún no está instalado, o acabas de instalarlo y debes cerrar y volver a abrir la Terminal
    Cómo abrir la Terminal

    Mac: pulsa ⌘ + Espacio, escribe Terminal y pulsa Enter

    Windows: abre Inicio, escribe Windows PowerShell y elige Abrir

    Si no está instalado: Instala Docker Desktop: en Mac abre Docker.dmg y arrastra el icono a Aplicaciones (elige Apple silicon o Intel según tu Mac) · en Windows haz doble clic en Docker Desktop Installer.exe · luego abre la app Docker Desktop y déjala abierta. No necesitas ningún comando curl

    Abrir la página de descarga de Docker ↗

    Al terminar, cierra la Terminal, ábrela de nuevo y ejecuta el mismo comando. Debe aparecer un número de versión: docker --version

    Se instala una vez y sirve para todo lo que usa Docker

  2. Pulsa este botón para abrir Cursor

    Abrir en Cursor

    Cursor te pedirá confirmar; pulsa Install

  3. Abre el chat de IA de Cursor en modo Agent

  4. Pruébalo

    Usa rust-panosmcp y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Cursor dice que está usando rust-panosmcp o muestra una herramienta de rust-panosmcp en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Cursor el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con VS Code, pero hay que preparar algo antes

Instala Docker en tu computadora primero (una sola vez)

Que la IA lo instale

Copia este mensaje en un chat de VS Code. La IA revisa tu equipo, te dice qué archivo va a cambiar y espera tu visto bueno cada vez.

Instala el MCP server rust-panosmcp para VS Code en este equipo, en este orden: 1) Comprueba Docker con docker --version. Si falta, dime que lo instale desde https://www.docker.com/products/docker-desktop/; no lo instales tú. 2) Usa solo esta configuración (ya revisada por PopNx MCP): { "servers": { "rustpanosmcp": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/mechubsec/rustpanosmcp:0.17.1", "--transport", "stdio" ] } } } 3) Dime la ruta completa del archivo que vas a cambiar o el comando que vas a ejecutar y espera mi visto bueno. 4) No hace falta clave. 5) Haz lo acordado y comprueba que las herramientas de rust-panosmcp aparecen de verdad.

Este mensaje no lleva tu clave. Si hace falta una, la IA te pedirá que la pegues tú en el archivo o en el campo de la app.

  1. Instala Docker (si no lo tienes)

    ¿Ya está instalado? Compruébalo primero · Abre la Terminal, escribe este comando y pulsa Enter

    docker --version
    • Aparece un número de versión, p. ej. Docker version … = ya está instalado, sáltate este paso
    • Aparece "command not found" (en Windows, "is not recognized") = aún no está instalado, o acabas de instalarlo y debes cerrar y volver a abrir la Terminal
    Cómo abrir la Terminal

    Mac: pulsa ⌘ + Espacio, escribe Terminal y pulsa Enter

    Windows: abre Inicio, escribe Windows PowerShell y elige Abrir

    Si no está instalado: Instala Docker Desktop: en Mac abre Docker.dmg y arrastra el icono a Aplicaciones (elige Apple silicon o Intel según tu Mac) · en Windows haz doble clic en Docker Desktop Installer.exe · luego abre la app Docker Desktop y déjala abierta. No necesitas ningún comando curl

    Abrir la página de descarga de Docker ↗

    Al terminar, cierra la Terminal, ábrela de nuevo y ejecuta el mismo comando. Debe aparecer un número de versión: docker --version

    Se instala una vez y sirve para todo lo que usa Docker

  2. Pulsa este botón para abrir VS Code

    Abrir en VS Code

    VS Code te pedirá confirmar; pulsa Install

  3. Abre el chat de IA de VS Code en modo Agent

  4. Pruébalo

    Usa rust-panosmcp y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si VS Code dice que está usando rust-panosmcp o muestra una herramienta de rust-panosmcp en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de VS Code el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Otras apps que usan MCP, como Windsurf, Zed o Gemini CLI, añaden servidores de forma distinta. Míralo en la lista de apps

Ver todas las apps que usan MCP →

La configuración JSON está en “Para desarrolladores”, abajo

¿Te atascaste? Pregunta a quien usa rust-panosmcp💬 Conversación →
Para desarrolladores: comandos de Terminal y configuración JSON

Instalado en tu computadora

Claude Code

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

Claude Desktop (claude_desktop_config.json)

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

Cursor (~/.cursor/mcp.json)

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

VS Code (mcp.json)

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

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

De un vistazo

Descargas por semanai
No está en npm/PyPI
Conexión
Se ejecuta en tu computadora
Última versióni
0.17.1
Publicado en el registroi
10 nov 2026
Último cambio de códigoi
14 nov 2026
Creador
mechubsec
Paquetes
oci: ghcr.io/mechubsec/rustpanosmcp:0.17.1
Sitio web
mechub.org
Estado en el registro
Activo

Qué apps pueden usarlo

Según cómo se conecta este servidor y la documentación de cada app, comprobado el 10 nov 2026.

Se ejecutan en tu computadora en

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Todas las apps, con ventajas y desventajas →

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 16 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub mechubsec, dueña del repo

  • ✓ Superada

    Sigue en mantenimiento

    Último cambio de código: anteayer

  • ✓ Superada

    Tiene licencia

    Usa MIT

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Vulnerabilidades publicadas (OSV.dev)

No revisado: solo se pueden revisar paquetes npm y PyPI con versión

Qué revisamos → · JSON

Creadores: pedir otra revisión o avisar de un dato erróneo

Conversación

Pregunta, comparte un consejo o avisa de que no funciona. Ordenado por lo que la gente marcó como útil.

Aún no hay publicaciones. Sé la primera persona en preguntar o compartir.

Lo publicado aquí lo escriben usuarios, no el equipo de PopNx.

Inicia sesión para publicar

Reseñas de usuarios

Aún no hay reseñas

Inicia sesión para escribir una reseña

Comparado con otros en Herramientas para desarrolladoresi

  • Más estrellas que el 69% de los otros 5937 servidores de esta categoría
  • Publicado en el registro más recientemente que el 88% de los otros 5937 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 5937 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro rust-panosmcp?

Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez anteayer, y la última versión (0.17.1) llegó al registro hace 6 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Docker en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: GitDiagram, Appllama, Cloudflare MCP, Omnara, Repowise

Alternativas parecidas

Misma categoría, otros creadores, comandos ya revisados. Primero los oficiales, luego por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

GitDiagram

Architecture diagrams, explanations and Mermaid source for public GitHub repositories.

de ahmedkhaleel2004Muy usado★ 18,9 milActualizado hace 2 meses

Se ejecuta en la nube✓ del servicio · gitdiagram.comProbado por el equipo de PopNx

Appllama

Study screens, flows and paywalls from top-earning iOS apps, then build from what wins.

de AppllamaMuy usado★ 5,2 milActualizado hace 3 meses

Se ejecuta en la nube✓ del servicio · appllama.io

Cloudflare MCP

Cloudflare MCP servers

de cloudflareMuy usado★ 4,5 milActualizado hace 14 meses

Se ejecuta en la nube✓ del servicio · mcp.cloudflare.comProbado por el equipo de PopNx

Omnara

Deploy durable AI agents with Omnara, an open-source managed-agent platform.

de omnara-aiMuy usado★ 3,4 milActualizado hace 2 meses

Se ejecuta en la nube✓ del servicio · omnara.com

Repowise

Codebase intelligence for AI coding agents: graph, git history, docs, decisions, code health.

de repowise-devMuy usado↓ 6,5 mil/sem★ 8,1 mil Estrellas de todo el repositorioActualizado hace 3 días

Computadora o nube✓ del servicio · repowise.dev
  • GitDiagram — Funciona en la nube, sin instalar nada · Sin clave
  • Appllama — Funciona en la nube, sin instalar nada · Sin clave
  • Cloudflare MCP — Funciona en la nube, sin instalar nada · Sin clave · En el directorio de Claude
  • Omnara — Funciona en la nube, sin instalar nada · Sin clave
  • Repowise — En la nube o instalado en tu equipo · Sin clave

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

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, `

Solo se muestra el principio; lee el resto en el repo