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.

🌐 Nornir MCP 服务器

FastMCP服务器提供由NornirNAPALM提供支持的网络自动化工具。

该服务器充当桥梁,将 Nornir/NAPALM 网络操作公开为 MCP(大规模并发处理)工具,使其可以从兼容的 MCP 客户端(如 FastMCP Web UI)轻松访问。

✨ 主要特点

  • 利用 Nornir 进行库存管理并针对网络设备执行并发任务。
  • 使用 NAPALM 进行多供应商设备交互(信息收集、命令执行)。
  • 使用 FastMCP 构建,以便使用各种传输(此配置中为 SSE)与 MCP 客户端无缝集成。
  • 使用 Docker 🐳 进行容器化,以便于设置和部署。
  • 使用uv在容器内进行快速 Python 依赖管理⚡。

🔧 先决条件

开始之前,请确保已安装以下软件:

⚙️ 配置

在运行服务器之前,您必须配置网络清单和设备凭据:

  1. 导航到项目中的conf/目录。
  2. 编辑hosts.yaml :定义您的网络设备。指定它们的管理 IP/主机名、平台(例如iosjunoseos )、凭据(如果不使用默认值),并根据需要将它们分配到组中。
  3. 编辑groups.yaml :定义具有共享属性(例如平台或连接选项)的设备组。此处的设置可以覆盖默认设置。
  4. 编辑defaults.yaml :设置默认凭据( usernamepassword )和连接选项(如启用密码或默认platform NAPALM secret )。
    • **⚠️ 重要安全提示:**默认配置在 YAML 文件中使用纯文本凭证。这适用于测试/实验室环境。对于生产环境,强烈建议使用 Nornir 内置的机密管理功能(例如环境变量、HashiCorp Vault 插件),以避免将敏感信息直接存储在配置文件中。如果您实现了机密提供程序,请修改nornir_ops.py和您的配置。
  5. 检查config.yaml :确保清单文件路径( host_filegroup_filedefaults_file )正确指向conf/目录中的文件(默认情况下应该如此)。如有需要,调整运行器选项( num_workers )。

▶️ 运行服务器

配置完成后,您可以使用 Docker Compose 轻松运行服务器:

  1. 确保您已按照上述说明配置了conf/目录。
  2. 在项目的根目录(与Dockerfiledocker-compose.yml文件相同的目录)中打开终端或命令提示符。
  3. 运行以下命令:
    docker-compose up --build -d
    • --build标志告诉 Docker Compose 第一次基于Dockerfile构建镜像,或者任何项目文件(如.py文件或pyproject.toml )是否发生了更改。
    • 此命令将在 Docker 容器中启动 Nornir MCP 服务器。
  4. 服务器日志将显示在您的终端中。默认情况下,它应该可以通过主机(localhost)的8000端口访问。
  5. 要停止服务器,请在运行docker-compose终端中按Ctrl+C 。之后要删除容器,请运行docker-compose down

🔌 添加到 MCP 客户端

要在 MCP 客户端(如官方FastMCP Web UI或其他兼容客户端)中使用此服务器提供的工具:

  1. 确保 Nornir MCP 服务器正在运行(使用docker-compose up )。
  2. 打开您的 MCP 客户端应用程序。
  3. 找到添加或管理 MCP 服务器连接的选项。
  4. 添加具有以下详细信息的新连接:
    • 服务器 URL :由于此服务器使用 SSE(服务器发送事件)传输并默认在端口 8000 上运行,因此 URL 将为:
      • sse://localhost:8000
      • (如果您的 Docker 主机具有客户端可访问的其他 IP 地址,请将localhost替换为该 IP,例如sse://192.168.1.100:8000
    • 连接名称:为其指定一个描述性名称,例如, Nornir Lab Server
  5. 保存并连接到新添加的服务器。
  6. MCP 客户端应该会发现Nornir_MCP服务并列出所有可用工具(例如get_factssend_command等)。现在,您可以通过客户端界面使用这些工具了!🎉

🛠️ 可用的工具和资源

通过 MCP 客户端连接后,通常可以使用以下工具(在“Nornir_MCP”服务名称下):

  • 存货:
    • list_all_hosts :列出 Nornir 库存中配置的设备( conf/hosts.yaml )。
  • **凝固汽油弹获取者:(**检索信息)
    • 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 :提供简单的心跳事件流。(支持 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 客户端
            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