Skip to main content
Glama

Nornir MCP Server

by yhvh-chen

🌐 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

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 客户端
            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