Skip to main content
Glama

🌐 Сервер MCP Nornir

Лицензия: Массачусетский технологический институт

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

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

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

  • Использует Nornir для управления запасами и параллельного выполнения задач на сетевых устройствах.

  • Использует NAPALM для взаимодействия устройств разных производителей (сбор информации, выполнение команд).

  • Создан с использованием FastMCP для бесшовной интеграции с клиентами MCP, использующими различные транспорты (SSE в этой конфигурации).

  • Контейнеризация с Docker 🐳 для легкой настройки и развертывания.

  • Использует uv для быстрого управления зависимостями Python внутри контейнера ⚡.

Related MCP server: nornir-mcp-server

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

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

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

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

  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.

🙌 Вклад

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

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    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.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP 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