Nornir MCP Server

Integrations

  • Provides containerization for the server, enabling easy setup and deployment with Docker and Docker Compose.

  • Mentions integration with HashiCorp Vault for secrets management as an alternative to plaintext credentials in configuration files.

  • Uses Python-based frameworks like Nornir and NAPALM to provide network automation tools that can interact with multi-vendor network devices.

Servidor MCP de Nornir

Un servidor FastMCP que proporciona herramientas de automatización de red impulsadas por Nornir y NAPALM .

Este servidor actúa como un puente, exponiendo las operaciones de red Nornir/NAPALM como herramientas MCP (procesamiento masivo concurrente), haciéndolas fácilmente accesibles desde clientes MCP compatibles (como la interfaz web FastMCP).

✨ Características principales

  • Aprovecha Nornir para la gestión de inventario y la ejecución de tareas simultáneas en dispositivos de red.
  • Utiliza NAPALM para la interacción de dispositivos de múltiples proveedores (recopilación de información, ejecución de comandos).
  • Creado con FastMCP para una integración perfecta con clientes MCP que utilizan varios transportes (SSE en esta configuración).
  • En contenedores con Docker 🐳 para una fácil configuración e implementación.
  • Utiliza uv para la gestión rápida de dependencias de Python dentro del contenedor ⚡.

🔧 Requisitos previos

Antes de comenzar, asegúrese de tener instalado lo siguiente:

⚙️ Configuración

Antes de ejecutar el servidor, debe configurar el inventario de red y las credenciales del dispositivo:

  1. Navegue al directorio conf/ en el proyecto.
  2. Editar hosts.yaml : Defina sus dispositivos de red. Especifique su IP/nombre de host de administración, plataforma (p. ej., ios , junos , eos ), credenciales (si no se usan las predeterminadas) y asígnelos a grupos si lo desea.
  3. Editar groups.yaml : Define grupos de dispositivos con propiedades compartidas (como plataforma u opciones de conexión). La configuración aquí puede anular los valores predeterminados.
  4. Editar defaults.yaml : establece las credenciales predeterminadas ( username , password ) y las opciones de conexión (como secret NAPALM para habilitar contraseñas o platform predeterminada).
    • ⚠️ Nota de seguridad importante: La configuración predeterminada utiliza credenciales de texto plano en archivos YAML. Esto es adecuado para entornos de prueba y laboratorio. Para producción, considere usar las funciones integradas de gestión de secretos de Nornir (p. ej., variables de entorno, el complemento HashiCorp Vault) para evitar almacenar información confidencial directamente en los archivos de configuración. Modifique nornir_ops.py y su configuración si implementa un proveedor de secretos.
  5. Revisar config.yaml : Asegurarse de que las rutas de los archivos de inventario ( host_file , group_file , defaults_file ) apunten correctamente a los archivos dentro del directorio conf/ (deberían hacerlo por defecto). Ajustar las opciones del ejecutor ( num_workers ) si es necesario.

▶️ Ejecución del servidor

Una vez configurado, puedes ejecutar fácilmente el servidor usando Docker Compose:

  1. Asegúrese de haber configurado el directorio conf/ como se describe arriba.
  2. Abra una terminal o un símbolo del sistema en el directorio raíz del proyecto (el mismo directorio que los archivos Dockerfile y docker-compose.yml ).
  3. Ejecute el siguiente comando:
    docker-compose up --build -d
    • El indicador --build le indica a Docker Compose que construya la imagen basándose en el Dockerfile la primera vez o si algún archivo del proyecto (como archivos .py o pyproject.toml ) ha cambiado.
    • Este comando iniciará el servidor Nornir MCP en un contenedor Docker.
  4. Los registros del servidor se mostrarán en tu terminal. Por defecto, deberían estar accesibles en el puerto 8000 de tu equipo host (localhost).
  5. Para detener el servidor, presione Ctrl+C en la terminal donde se ejecuta docker-compose . Para eliminar el contenedor posteriormente, ejecute docker-compose down .

🔌 Agregar al cliente MCP

Para utilizar las herramientas proporcionadas por este servidor en un cliente MCP (como la interfaz web oficial de FastMCP u otros clientes compatibles):

  1. Asegúrese de que el servidor Nornir MCP esté ejecutándose (usando docker-compose up ).
  2. Abra su aplicación cliente MCP.
  3. Encuentre la opción para agregar o administrar conexiones del servidor MCP.
  4. Agregue una nueva conexión con los siguientes detalles:
    • URL del servidor : dado que este servidor utiliza el transporte SSE (eventos enviados por el servidor) y se ejecuta en el puerto 8000 de manera predeterminada, la URL será:
      • sse://localhost:8000
      • (Si su host Docker tiene una dirección IP diferente a la que puede acceder el cliente, reemplace localhost con esa IP, por ejemplo, sse://192.168.1.100:8000 )
    • Nombre de la conexión : Asígnele un nombre descriptivo, por ejemplo, Nornir Lab Server .
  5. Guarde y conéctese al servidor recién agregado.
  6. El cliente MCP debería descubrir el servicio Nornir_MCP y listar todas las herramientas disponibles (como get_facts , send_command , etc.). ¡Ahora puedes usar estas herramientas a través de la interfaz del cliente! 🎉

🛠️ Herramientas y recursos disponibles

Una vez conectado a través de un cliente MCP, las siguientes herramientas (bajo el nombre de servicio "Nornir_MCP") normalmente deberían estar disponibles:

  • Inventario:
    • list_all_hosts : enumera los dispositivos configurados en su inventario de Nornir ( conf/hosts.yaml ).
  • Recuperadores de NAPALM: (Recuperar información)
    • get_facts
    • get_interfaces
    • get_interfaces_ip
    • get_interfaces_counters
    • get_config (con opción retrieve : en ejecución, inicio, candidato)
    • get_arp_table
    • get_mac_address_table
    • get_users
    • get_vlans
    • get_snmp_information
    • get_bgp_neighbors
    • (La disponibilidad depende de la plataforma del dispositivo y de la compatibilidad del controlador NAPALM)
  • Ejecución:
    • send_command : envía un único comando de solo lectura a un dispositivo y obtiene el resultado.
  • Recurso de transmisión:
    • sse://updates : Proporciona un flujo de eventos de latido simple. (Los clientes que admiten recursos SSE pueden suscribirse).

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT.

🙌 Contribuyendo

¡Agradecemos sus contribuciones, problemas y solicitudes de funcionalidad! No dude en enviarlas a través del repositorio del proyecto.

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Un servidor FastMCP que proporciona herramientas de automatización de red al exponer las operaciones de Nornir y NAPALM como herramientas MCP, lo que permite a los usuarios administrar e interactuar con dispositivos de red a través de clientes MCP compatibles.

  1. ✨ Características principales
    1. 🔧 Requisitos previos
      1. ⚙️ Configuración
        1. ▶️ Ejecución del servidor
          1. 🔌 Agregar al cliente MCP
            1. 🛠️ Herramientas y recursos disponibles
              1. 📄 Licencia
                1. 🙌 Contribuyendo

                  Related MCP Servers

                  • -
                    security
                    F
                    license
                    -
                    quality
                    A configurable MCP server that dynamically loads capabilities from a remote configuration to bridge MCP clients with remote APIs for executing actions, accessing resources, and utilizing prompt templates.
                    Last updated -
                    1,261
                    4
                    TypeScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    FastMCP is a comprehensive MCP server allowing secure and standardized data and functionality exposure to LLM applications, offering resources, tools, and prompt management for efficient LLM interactions.
                    Last updated -
                    3
                    Python
                    MIT License
                  • A
                    security
                    F
                    license
                    A
                    quality
                    An MCP server that allows users to interact with YNAB data, enabling access to account balances, transactions, and the creation of new transactions through the Model Context Protocol.
                    Last updated -
                    10
                    1
                    Python

                  View all related MCP servers

                  ID: jwzob45l35