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 внутри контейнера ⚡.
🔧 Предварительные условия
Прежде чем начать, убедитесь, что у вас установлено следующее:
- Докер
- Docker Compose (обычно входит в состав Docker Desktop)
⚙️ Конфигурация
Перед запуском сервера необходимо настроить сетевой инвентарь и учетные данные устройства:
- Перейдите в каталог
conf/
в проекте. - Редактировать
hosts.yaml
: Определите свои сетевые устройства. Укажите их IP-адрес управления/имя хоста, платформу (например,ios
,junos
,eos
), учетные данные (если не используются значения по умолчанию) и при необходимости назначьте их группам. - Редактировать
groups.yaml
: Определить группы устройств с общими свойствами (например, платформа или параметры подключения). Настройки здесь могут переопределять значения по умолчанию. - Отредактируйте
defaults.yaml
: установите учетные данные по умолчанию (username
,password
) и параметры подключения (например,secret
NAPALM для включения паролей илиplatform
по умолчанию).- ⚠️ Важное примечание по безопасности: конфигурация по умолчанию использует учетные данные в виде открытого текста в файлах YAML. Это подходит для тестовых/лабораторных сред. Для производства настоятельно рекомендуется использовать встроенные функции управления секретами Nornir (например, переменные среды, плагин HashiCorp Vault), чтобы избежать хранения конфиденциальной информации непосредственно в файлах конфигурации. Измените
nornir_ops.py
и свою конфигурацию, если вы реализуете поставщика секретов.
- ⚠️ Важное примечание по безопасности: конфигурация по умолчанию использует учетные данные в виде открытого текста в файлах YAML. Это подходит для тестовых/лабораторных сред. Для производства настоятельно рекомендуется использовать встроенные функции управления секретами Nornir (например, переменные среды, плагин HashiCorp Vault), чтобы избежать хранения конфиденциальной информации непосредственно в файлах конфигурации. Измените
- Проверьте
config.yaml
: убедитесь, что пути к файлам инвентаризации (host_file
,group_file
,defaults_file
) правильно указывают на файлы в каталогеconf/
(они должны быть такими по умолчанию). При необходимости настройте параметры исполнителя (num_workers
).
▶️ Запуск сервера
После настройки вы сможете легко запустить сервер с помощью Docker Compose:
- Убедитесь, что вы настроили каталог
conf/
как описано выше. - Откройте терминал или командную строку в корневом каталоге проекта (том же каталоге, где находятся файлы
Dockerfile
иdocker-compose.yml
). - Выполните следующую команду:Copy
- Флаг
--build
сообщает Docker Compose о необходимости создания образа на основеDockerfile
в первый раз или в случае изменения каких-либо файлов проекта (например, файлов.py
илиpyproject.toml
). - Эта команда запустит сервер Nornir MCP в контейнере Docker.
- Флаг
- Журналы сервера будут отображаться в вашем терминале. По умолчанию он должен быть доступен на порту
8000
вашего хост-компьютера (localhost). - Чтобы остановить сервер, нажмите
Ctrl+C
в терминале, где запущенdocker-compose
. Чтобы удалить контейнер после этого, запуститеdocker-compose down
.
🔌 Добавление в MCP Client
Чтобы использовать инструменты, предоставляемые этим сервером, в клиенте MCP (например, официальном веб-интерфейсе FastMCP или других совместимых клиентах):
- Убедитесь, что сервер Nornir MCP запущен (с помощью
docker-compose up
). - Откройте клиентское приложение MCP.
- Найдите возможность добавлять или управлять подключениями к серверу MCP.
- Добавьте новое соединение со следующими данными:
- 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
.
- URL-адрес сервера : поскольку этот сервер использует транспорт SSE (Server-Sent Events) и по умолчанию работает на порту 8000, URL-адрес будет следующим:
- Сохраните и подключитесь к недавно добавленному серверу.
- Клиент MCP должен обнаружить службу
Nornir_MCP
и перечислить все доступные инструменты (например,get_facts
,send_command
и т. д.). Теперь вы можете использовать эти инструменты через интерфейс клиента! 🎉
Примеры DSL Dify
- Nornir MCP.yml — простой пример для общения с вашими устройствами.
- 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.
🙌 Вклад
Вклады, проблемы и запросы на функции приветствуются! Пожалуйста, не стесняйтесь отправлять их через репозиторий проекта.
This server cannot be installed
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.
Related MCP Servers
- -securityAlicense-qualityThis MCP server allows you to connect MCP clients with Toolhouse's tools.Last updated -8PythonMIT License
- -securityFlicense-qualityA 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,2614TypeScript
- -securityAlicense-qualityFastMCP 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 -3PythonMIT License
- AsecurityFlicenseAqualityAn 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 -101Python