Nornir MCP Server
🌐 Nornir MCP-Server
Ein FastMCP -Server, der Netzwerkautomatisierungstools bereitstellt, die von Nornir und NAPALM unterstützt werden.
Dieser Server fungiert als Brücke und stellt Nornir/NAPALM-Netzwerkoperationen als MCP-Tools (Massively Concurrent Processing) bereit, sodass sie von kompatiblen MCP-Clients (wie der FastMCP-Web-Benutzeroberfläche) aus leicht zugänglich sind.
✨ Hauptmerkmale
Nutzt Nornir für die Bestandsverwaltung und gleichzeitige Aufgabenausführung auf Netzwerkgeräten.
Verwendet NAPALM für die Interaktion von Geräten mehrerer Anbieter (Informationserfassung, Befehlsausführung).
Erstellt mit FastMCP für die nahtlose Integration mit MCP-Clients unter Verwendung verschiedener Transportmittel (SSE in dieser Konfiguration).
Containerisiert mit Docker 🐳 für einfache Einrichtung und Bereitstellung.
Verwendet
uvfür schnelles Python-Abhängigkeitsmanagement innerhalb des Containers ⚡.
Related MCP server: nornir-mcp-server
🔧 Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes installiert ist:
Docker Compose (normalerweise in Docker Desktop enthalten)
⚙️ Konfiguration
Bevor Sie den Server ausführen, müssen Sie Ihr Netzwerkinventar und Ihre Geräteanmeldeinformationen konfigurieren:
Navigieren Sie zum Verzeichnis
conf/im Projekt.Bearbeiten Sie
hosts.yaml: Definieren Sie Ihre Netzwerkgeräte. Geben Sie deren Verwaltungs-IP/Hostnamen, Plattform (z. B.ios,junos,eos), Anmeldeinformationen (falls keine Standardeinstellungen verwendet werden) an und weisen Sie sie bei Bedarf Gruppen zu.Bearbeiten Sie
groups.yaml: Definieren Sie Gerätegruppen mit gemeinsamen Eigenschaften (wie Plattform- oder Verbindungsoptionen). Die hier vorgenommenen Einstellungen können die Standardeinstellungen überschreiben.Bearbeiten Sie
defaults.yaml: Legen Sie die Standardanmeldeinformationen (username,password) und Verbindungsoptionen fest (z. B. NAPALMsecretzum Aktivieren von Passwörtern oderplatform).⚠️ Wichtiger Sicherheitshinweis: Die Standardkonfiguration verwendet Klartext-Anmeldeinformationen in YAML-Dateien. Dies eignet sich für Test- und Laborumgebungen. Für die Produktion sollten Sie unbedingt die integrierten Funktionen zur Geheimnisverwaltung von Nornir (z. B. Umgebungsvariablen, HashiCorp Vault-Plugin) nutzen, um die Speicherung vertraulicher Informationen direkt in Konfigurationsdateien zu vermeiden. Passen Sie
nornir_ops.pyund Ihre Konfiguration an, wenn Sie einen Geheimnisanbieter implementieren.
Überprüfen Sie
config.yaml: Stellen Sie sicher, dass die Inventardateipfade (host_file,group_file,defaults_file) korrekt auf die Dateien im Verzeichnisconf/verweisen (dies sollte standardmäßig der Fall sein). Passen Sie die Runner-Optionen (num_workers) bei Bedarf an.
▶️ Ausführen des Servers
Nach der Konfiguration können Sie den Server ganz einfach mit Docker Compose ausführen:
Stellen Sie sicher, dass Sie das Verzeichnis
conf/wie oben beschrieben konfiguriert haben.Öffnen Sie ein Terminal oder eine Eingabeaufforderung im Stammverzeichnis des Projekts (dasselbe Verzeichnis wie die Dateien
Dockerfileunddocker-compose.yml).Führen Sie den folgenden Befehl aus:
docker-compose up --build -dDas Flag
--buildweist Docker Compose an, das Image beim ersten Mal oder wenn sich Projektdateien (wie.pyDateien oderpyproject.toml) geändert haben, basierend auf derDockerfilezu erstellen.Dieser Befehl startet den Nornir MCP-Server in einem Docker-Container.
Die Serverprotokolle werden in Ihrem Terminal angezeigt. Standardmäßig sollten sie über Port
8000Ihres Hostcomputers (localhost) zugänglich sein.Um den Server zu stoppen, drücken Sie
Ctrl+Cim Terminal, in demdocker-composeausgeführt wird. Um den Container anschließend zu entfernen, führen Siedocker-compose downaus.
🔌 Zum MCP-Client hinzufügen
So verwenden Sie die von diesem Server bereitgestellten Tools in einem MCP-Client (wie der offiziellen FastMCP-Web-Benutzeroberfläche oder anderen kompatiblen Clients):
Stellen Sie sicher, dass der Nornir MCP-Server ausgeführt wird (mit
docker-compose up).Öffnen Sie Ihre MCP-Clientanwendung.
Suchen Sie nach der Option zum Hinzufügen oder Verwalten von MCP-Serververbindungen.
Fügen Sie eine neue Verbindung mit den folgenden Details hinzu:
Server-URL : Da dieser Server den SSE-Transport (Server-Sent Events) verwendet und standardmäßig auf Port 8000 läuft, lautet die URL:
http://localhost:8000/sse(Wenn Ihr Docker-Host eine andere IP-Adresse hat, auf die der Client zugreifen kann, ersetzen Sie
localhostdurch diese IP, z. B.http://192.168.1.100:8000/sse.)
Verbindungsname : Geben Sie ihm einen beschreibenden Namen, zum Beispiel
Nornir Lab Server.
Speichern Sie und stellen Sie eine Verbindung zum neu hinzugefügten Server her.
Der MCP-Client sollte den
Nornir_MCP-Dienst erkennen und alle verfügbaren Tools (wieget_facts,send_commandusw.) auflisten. Sie können diese Tools nun über die Client-Oberfläche verwenden! 🎉
Dify DSL-Beispiele
Nornir MCP.yml – Ein einfaches Beispiel zum Chatten mit Ihren Geräten.
Device Check.yml – Ein Beispiel zum Ausführen eines Gerätebewertungsberichts.
🛠️ Verfügbare Tools und Ressourcen
Sobald eine Verbindung über einen MCP-Client hergestellt ist, sollten normalerweise die folgenden Tools (unter dem Dienstnamen „Nornir_MCP“) verfügbar sein:
Inventar:
list_all_hosts: Listet die in Ihrem Nornir-Inventar konfigurierten Geräte auf (conf/hosts.yaml).
NAPALM Getters: (Informationen abrufen)
get_factsget_interfacesget_interfaces_ipget_interfaces_countersget_config(mitretrieve: running, startup, candidate)get_arp_tableget_mac_address_tableget_usersget_vlansget_snmp_informationget_bgp_neighbors(Verfügbarkeit hängt von der Geräteplattform und der NAPALM-Treiberunterstützung ab)
Ausführung:
send_command: Senden Sie einen einzelnen schreibgeschützten Befehl an ein Gerät und erhalten Sie die Ausgabe.
Streaming-Ressource:
sse://updates: Stellt einen einfachen Heartbeat-Ereignisstrom bereit. (Kann von Clients abonniert werden, die SSE-Ressourcen unterstützen.)
📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
🙌 Beitragen
Beiträge, Probleme und Funktionswünsche sind willkommen! Bitte reichen Sie diese über das Repository des Projekts ein.
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