Nornir MCP Server
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
uvpara la gestión rápida de dependencias de Python dentro del contenedor ⚡.
Related MCP server: nornir-mcp-server
🔧 Requisitos previos
Antes de comenzar, asegúrese de tener instalado lo siguiente:
Docker Compose (generalmente incluido con Docker Desktop)
⚙️ Configuración
Antes de ejecutar el servidor, debe configurar el inventario de red y las credenciales del dispositivo:
Navegue al directorio
conf/en el proyecto.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.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.Editar
defaults.yaml: establece las credenciales predeterminadas (username,password) y las opciones de conexión (comosecretNAPALM para habilitar contraseñas oplatformpredeterminada).⚠️ 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.pyy su configuración si implementa un proveedor de secretos.
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 directorioconf/(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:
Asegúrese de haber configurado el directorio
conf/como se describe arriba.Abra una terminal o un símbolo del sistema en el directorio raíz del proyecto (el mismo directorio que los archivos
Dockerfileydocker-compose.yml).Ejecute el siguiente comando:
docker-compose up --build -dEl indicador
--buildle indica a Docker Compose que construya la imagen basándose en elDockerfilela primera vez o si algún archivo del proyecto (como archivos.pyopyproject.toml) ha cambiado.Este comando iniciará el servidor Nornir MCP en un contenedor Docker.
Los registros del servidor se mostrarán en tu terminal. Por defecto, deberían estar accesibles en el puerto
8000de tu equipo host (localhost).Para detener el servidor, presione
Ctrl+Cen la terminal donde se ejecutadocker-compose. Para eliminar el contenedor posteriormente, ejecutedocker-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):
Asegúrese de que el servidor Nornir MCP esté ejecutándose (usando
docker-compose up).Abra su aplicación cliente MCP.
Encuentre la opción para agregar o administrar conexiones del servidor MCP.
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
localhostcon 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.
Guarde y conéctese al servidor recién agregado.
El cliente MCP debería descubrir el servicio
Nornir_MCPy listar todas las herramientas disponibles (comoget_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_factsget_interfacesget_interfaces_ipget_interfaces_countersget_config(con opciónretrieve: en ejecución, inicio, candidato)get_arp_tableget_mac_address_tableget_usersget_vlansget_snmp_informationget_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.
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
- Alicense-qualityDmaintenanceFastMCP 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.3MIT
- FlicenseAqualityFmaintenanceAn MCP server that integrates Nornir with NAPALM and Netmiko, enabling LLMs to orchestrate multi-vendor network infrastructure through natural language.52
- FlicenseBqualityDmaintenanceAsynchronous MCP server for unified multi-platform network infrastructure management, providing 97 tools across 10 connectors including SSH, MikroTik, Palo Alto, Aruba, Graylog, LibreNMS, Cisco APIC/NDFC, and Panorama.9722
- Alicense-qualityCmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
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/yhvh-chen/nornir_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server