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.

🌐 노르니르 MCP 서버

NornirNAPALM 기반의 네트워크 자동화 도구를 제공하는 FastMCP 서버입니다.

이 서버는 브리지 역할을 하며 Nornir/NAPALM 네트워크 작업을 MCP(대규모 동시 처리) 도구로 공개하여 호환 가능한 MCP 클라이언트(예: FastMCP 웹 UI)에서 쉽게 액세스할 수 있도록 합니다.

✨ 주요 특징

  • Nornir를 활용하여 네트워크 장치에 대한 재고 관리 및 동시 작업 실행을 수행합니다.
  • 여러 공급업체의 장치 상호 작용(정보 수집, 명령 실행)에 NAPALM을 사용합니다.
  • 다양한 전송(이 구성에서는 SSE)을 사용하여 MCP 클라이언트와 원활하게 통합하기 위해 FastMCP로 구축되었습니다.
  • Docker🐳로 컨테이너화되어 쉽게 설정하고 배포할 수 있습니다.
  • 컨테이너 내에서 빠른 Python 종속성 관리를 위해 uv 사용합니다 ⚡.

🔧 필수 조건

시작하기 전에 다음 사항이 설치되어 있는지 확인하세요.

⚙️ 구성

서버를 실행하기 전에 네트워크 인벤토리와 장치 자격 증명을 구성 해야 합니다 .

  1. 프로젝트의 conf/ 디렉토리로 이동합니다.
  2. hosts.yaml 편집 : 네트워크 장치를 정의합니다. 관리 IP/호스트 이름, 플랫폼(예: ios , junos , eos ), 자격 증명(기본값을 사용하지 않는 경우)을 지정하고, 필요한 경우 그룹에 할당합니다.
  3. groups.yaml 편집 : 플랫폼이나 연결 옵션 등 공유 속성을 사용하여 장치 그룹을 정의합니다. 여기에서 설정한 내용은 기본값을 재정의할 수 있습니다.
  4. defaults.yaml 편집 : 기본 자격 증명( username , password ) 및 연결 옵션(비밀번호를 활성화하기 위한 NAPALM secret 또는 기본 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. 프로젝트의 루트 디렉토리( Dockerfiledocker-compose.yml 파일과 같은 디렉토리)에서 터미널이나 명령 프롬프트를 엽니다.
  3. 다음 명령을 실행하세요.지엑스피1
    • --build 플래그는 Docker Compose에 Dockerfile 기반으로 처음으로 이미지를 빌드하거나 프로젝트 파일(예: .py 파일 또는 pyproject.toml )이 변경된 경우 이미지를 빌드하도록 지시합니다.
    • 이 명령은 Docker 컨테이너에서 Nornir MCP 서버를 시작합니다.
  4. 서버 로그는 터미널에 표시됩니다. 기본적으로 호스트 머신(localhost)의 8000 포트를 통해 접근할 수 있습니다.
  5. 서버를 중지하려면 docker-compose 실행 중인 터미널에서 Ctrl+C 누르세요. 그 후 컨테이너를 제거하려면 docker-compose down 실행하세요.

🔌 MCP 클라이언트에 추가

MCP 클라이언트(공식 FastMCP 웹 UI 또는 기타 호환 클라이언트 등)에서 이 서버가 제공하는 도구를 사용하려면:

  1. Nornir MCP 서버가 실행 중인지 확인합니다( docker-compose up 사용).
  2. MCP 클라이언트 애플리케이션을 엽니다.
  3. MCP 서버 연결을 추가하거나 관리하는 옵션을 찾으세요.
  4. 다음 세부 정보를 사용하여 새 연결을 추가하세요.
    • 서버 URL : 이 서버는 SSE(Server-Sent Events) 전송을 사용하고 기본적으로 포트 8000에서 실행되므로 URL은 다음과 같습니다.
      • sse://localhost:8000
      • (Docker 호스트에 클라이언트가 액세스할 수 있는 다른 IP 주소가 있는 경우 localhost 해당 IP로 바꾸세요. 예: sse://192.168.1.100:8000 )
    • 연결 이름 : 설명적인 이름을 지정합니다(예: Nornir Lab Server .
  5. 새로 추가된 서버를 저장하고 연결합니다.
  6. MCP 클라이언트가 Nornir_MCP 서비스를 검색하고 사용 가능한 모든 도구(예: get_facts , send_command 등)를 나열합니다. 이제 클라이언트 인터페이스를 통해 이러한 도구를 사용할 수 있습니다! 🎉

🛠️ 사용 가능한 도구 및 리소스

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 : 간단한 하트비트 이벤트 스트림을 제공합니다. (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.

Nornir 및 NAPALM 작업을 MCP 도구로 공개하여 네트워크 자동화 도구를 제공하는 FastMCP 서버로, 사용자는 호환되는 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