Skip to main content
Glama

Nornir MCP Server

by yhvh-chen

🌐 Сервер 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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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

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

                    Related MCP Servers

                    • -
                      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
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A lightweight MCP server for managing DNS records, purging cache, and interacting with the Cloudflare API through natural language commands.
                      Last updated -
                      21
                      TypeScript
                      MIT License
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A Model Control Protocol server that provides access to nmap network scanning functionality, allowing users to run customizable scans, store results, and analyze network security using AI prompts.
                      Last updated -
                      3
                      8
                      Python
                      MIT License
                      • Linux
                    • -
                      security
                      F
                      license
                      -
                      quality
                      A FastMCP server that enables browser automation through natural language commands, allowing Language Models to browse the web, fill out forms, click buttons, and perform other web-based tasks via a simple API.
                      Last updated -
                      3
                      Python

                    View all related MCP servers

                    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