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.

🌐 Сервер MCP Nornir

Сервер FastMCP , предоставляющий инструменты сетевой автоматизации на базе Nornir и NAPALM .

Этот сервер действует как мост, предоставляя сетевые операции Nornir/NAPALM в качестве инструментов MCP (Massively Concurrent Processing), что делает их легкодоступными из совместимых клиентов MCP (например, FastMCP Web UI).

✨ Основные характеристики

  • Использует Nornir для управления запасами и параллельного выполнения задач на сетевых устройствах.
  • Использует NAPALM для взаимодействия устройств разных производителей (сбор информации, выполнение команд).
  • Создан с использованием FastMCP для бесшовной интеграции с клиентами MCP, использующими различные транспорты (SSE в этой конфигурации).
  • Контейнеризация с Docker 🐳 для легкой настройки и развертывания.
  • Использует uv для быстрого управления зависимостями Python внутри контейнера ⚡.

🔧 Предварительные условия

Прежде чем начать, убедитесь, что у вас установлено следующее:

⚙️ Конфигурация

Перед запуском сервера необходимо настроить сетевой инвентарь и учетные данные устройства:

  1. Перейдите в каталог conf/ в проекте.
  2. Редактировать hosts.yaml : Определите свои сетевые устройства. Укажите их IP-адрес управления/имя хоста, платформу (например, ios , junos , eos ), учетные данные (если не используются значения по умолчанию) и при необходимости назначьте их группам.
  3. Редактировать groups.yaml : Определить группы устройств с общими свойствами (например, платформа или параметры подключения). Настройки здесь могут переопределять значения по умолчанию.
  4. Отредактируйте defaults.yaml : установите учетные данные по умолчанию ( username , password ) и параметры подключения (например, secret NAPALM для включения паролей или platform по умолчанию).
    • ⚠️ Важное примечание по безопасности: конфигурация по умолчанию использует учетные данные в виде открытого текста в файлах YAML. Это подходит для тестовых/лабораторных сред. Для производства настоятельно рекомендуется использовать встроенные функции управления секретами Nornir (например, переменные среды, плагин HashiCorp Vault), чтобы избежать хранения конфиденциальной информации непосредственно в файлах конфигурации. Измените nornir_ops.py и свою конфигурацию, если вы реализуете поставщика секретов.
  5. Проверьте config.yaml : убедитесь, что пути к файлам инвентаризации ( host_file , group_file , defaults_file ) правильно указывают на файлы в каталоге conf/ (они должны быть такими по умолчанию). При необходимости настройте параметры исполнителя ( num_workers ).

▶️ Запуск сервера

После настройки вы сможете легко запустить сервер с помощью Docker Compose:

  1. Убедитесь, что вы настроили каталог conf/ как описано выше.
  2. Откройте терминал или командную строку в корневом каталоге проекта (том же каталоге, где находятся файлы Dockerfile и docker-compose.yml ).
  3. Выполните следующую команду:
    docker-compose up --build -d
    • Флаг --build сообщает Docker Compose о необходимости создания образа на основе Dockerfile в первый раз или в случае изменения каких-либо файлов проекта (например, файлов .py или pyproject.toml ).
    • Эта команда запустит сервер Nornir MCP в контейнере Docker.
  4. Журналы сервера будут отображаться в вашем терминале. По умолчанию он должен быть доступен на порту 8000 вашего хост-компьютера (localhost).
  5. Чтобы остановить сервер, нажмите Ctrl+C в терминале, где запущен docker-compose . Чтобы удалить контейнер после этого, запустите docker-compose down .

🔌 Добавление в MCP Client

Чтобы использовать инструменты, предоставляемые этим сервером, в клиенте MCP (например, официальном веб-интерфейсе FastMCP или других совместимых клиентах):

  1. Убедитесь, что сервер Nornir MCP запущен (с помощью docker-compose up ).
  2. Откройте клиентское приложение MCP.
  3. Найдите возможность добавлять или управлять подключениями к серверу MCP.
  4. Добавьте новое соединение со следующими данными:
    • URL-адрес сервера : поскольку этот сервер использует транспорт SSE (Server-Sent Events) и по умолчанию работает на порту 8000, URL-адрес будет следующим:
      • http://localhost:8000/sse
      • (Если у вашего хоста Docker другой IP-адрес, доступный клиенту, замените localhost на этот IP-адрес, например, http://192.168.1.100:8000/sse )
    • Имя подключения : дайте ему описательное имя, например, Nornir Lab Server .
  5. Сохраните и подключитесь к недавно добавленному серверу.
  6. Клиент MCP должен обнаружить службу Nornir_MCP и перечислить все доступные инструменты (например, get_facts , send_command и т. д.). Теперь вы можете использовать эти инструменты через интерфейс клиента! 🎉

Примеры DSL Dify

  1. Nornir MCP.yml — простой пример для общения с вашими устройствами.
  2. Device Check.yml — пример запуска отчета об оценке устройства.

🛠️ Доступные инструменты и ресурсы

После подключения через клиент MCP обычно должны быть доступны следующие инструменты (под именем службы «Nornir_MCP»):

  • Инвентарь:
    • list_all_hosts : выводит список устройств, настроенных в вашем инвентаре Nornir ( conf/hosts.yaml ).
  • Получатели NAPALM: (Получить информацию)
    • get_facts
    • get_interfaces
    • get_interfaces_ip
    • get_interfaces_counters
    • get_config (с опцией retrieve : запущено, запущено, кандидат)
    • get_arp_table
    • get_mac_address_table
    • get_users
    • get_vlans
    • get_snmp_information
    • get_bgp_neighbors
    • (Доступность зависит от платформы устройства и поддержки драйвера NAPALM)
  • Исполнение:
    • send_command : отправить на устройство одну команду, доступную только для чтения, и получить вывод.
  • Ресурс потоковой передачи:
    • sse://updates : предоставляет простой поток событий heartbeat. (На него могут подписываться клиенты, поддерживающие ресурсы SSE).

📄 Лицензия

Данный проект лицензирован по лицензии MIT.

🙌 Вклад

Вклады, проблемы и запросы на функции приветствуются! Пожалуйста, не стесняйтесь отправлять их через репозиторий проекта.

-
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.

Сервер FastMCP, предоставляющий инструменты автоматизации сети, представляющий операции Nornir и NAPALM как инструменты MCP, что позволяет пользователям управлять сетевыми устройствами и взаимодействовать с ними через совместимые клиенты MCP.

  1. ✨ Основные характеристики
    1. 🔧 Предварительные условия
      1. ⚙️ Конфигурация
        1. ▶️ Запуск сервера
          1. 🔌 Добавление в MCP Client
            1. Примеры DSL Dify
              1. 🛠️ Доступные инструменты и ресурсы
                1. 📄 Лицензия
                  1. 🙌 Вклад

                    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