sheridan-lab-jack
sheridan-lab-jack — 네트워크 MCP 서버
ContainerLab에서 실행 중인 Nokia SR Linux 장치를 위한 6가지 네트워크 관리 도구를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. Claude Code를 AI 에이전트로 사용하도록 설계되었습니다.
아키텍처
┌──────────────┐ MCP (stdio) ┌──────────────────┐ SSH ┌──────────────┐
│ Claude Code │ ◄──────────────────► │ sheridan-lab-jack │ ◄──────────► │ Nokia SR │
│ (AI Agent) │ │ (MCP Server) │ │ Linux │
└──────────────┘ └──────────────────┘ │ (ContainerLab)│
└──────────────┘도구 (총 6개)
읽기 도구 (5개)
도구 | 설명 |
| 호스트 이름, 소프트웨어 버전, 섀시 유형, 가동 시간 반환 |
| 관리/운영 상태 및 IP 주소를 포함한 모든 인터페이스 나열 |
| 전체 라우팅 테이블 표시 |
| 실행 중인 구성 검색 (전체 또는 섹션별) |
| 모든 VRF/네트워크 인스턴스 및 해당 인터페이스 나열 |
쓰기 도구 (1개)
도구 | 설명 |
| 인터페이스의 IP 주소, 관리 상태 및 설명 설정 |
사전 요구 사항
Linux (Ubuntu 20.04+ 권장)
Docker (20.10+)
ContainerLab (0.44+)
Python 3.10+
Claude Code CLI (Anthropic Pro 구독 필요)
sshpass (
sudo apt install sshpass)
빠른 시작
1. ContainerLab 설치
sudo bash -c "$(curl -sL https://get.containerlab.dev)"2. 랩 시작
cd sheridan-lab-jack
sudo containerlab deploy --topo topology.ymlSR Linux가 완전히 부팅될 때까지 약 60초 정도 기다립니다. 다음 명령으로 확인하세요:
sudo docker ps # should show clab-sheridan-lab-jack-srl running3. Python 종속성 설치
pip install -r requirements.txt
sudo apt install sshpass -y4. SSH 연결 테스트
sshpass -p 'NokiaSrl1!' ssh -o StrictHostKeyChecking=no admin@clab-sheridan-lab-jack-srl -- "info from state /system information"5. Claude Code 연결
cd sheridan-lab-jack
claudeClaude Code는 프로젝트 디렉토리에서 .mcp.json을 자동으로 읽습니다. Claude Code 내에서 다음 명령으로 확인하세요:
> use get_device_info to check the device환경 변수
변수 | 기본값 | 설명 |
|
| SR Linux 컨테이너의 호스트 이름 또는 IP |
|
| SSH 사용자 이름 |
|
| SSH 비밀번호 |
자격 증명은 서버 코드에 하드코딩되지 않습니다. 런타임 시 환경 변수에서 읽어오며 .mcp.json을 통해 전달됩니다.
입력 유효성 검사
모든 쓰기 도구는 실행 전에 입력을 검증합니다:
IP 주소: 점-십진수 정규식 검증
접두사 길이: 범위 확인 (0-32)
인터페이스 이름: SR Linux 형식에 대한 패턴 매칭 (
ethernet-X/Y,lo0,mgmt0,system0)호스트 이름: RFC 준수 영숫자 + 하이픈, 1-63자
설명: 기본 문장 부호가 포함된 영숫자, 최대 80자
구성 섹션 이름: 영숫자 및 하이픈만 허용
정리
sudo containerlab destroy --topo topology.ymlClaude Code 세션 예시
You: get device info
Claude: [calls get_device_info] The device is a Nokia SR Linux running version...
You: show me all interfaces
Claude: [calls get_interfaces] Here are the interfaces...
You: configure ethernet-1/1 with IP 192.168.50.1/24 and description "uplink"
Claude: [calls configure_interface] Successfully configured ethernet-1/1...
You: verify the change by showing interfaces again
Claude: [calls get_interfaces] Confirmed — ethernet-1/1 now has IP 192.168.50.1/24...라이선스
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/JackG27/sheridan-lab-jack'
If you have feedback or need assistance with the MCP directory API, please join our Discord server