AP

automateyournetwork/pyats_mcp

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

90 stars 34 forks 품질 88 트렌드 35MIT

automateyournetwork/pyats mcp는 https://github.com/automateyournetwork/pyats_mcp.에서 수입된 MCP 서버 후보입니다

개요

automateyournetwork/pyats mcp는 https://github.com/automateyournetwork/pyats_mcp.에서 수입된 MCP 서버 후보입니다

개요(AI 번역)

Cisco pyATS 및 Genie는 이미 네트워크에 대해 이야기하는 방법을 알고 있습니다. - 파싱 쇼 명령, 푸시 구성, 학습 기능 상태, 실행 선언 테스트. AI 에이전트가 직접 운전하는 방법이 없었습니다. 이 서버는 그 간격을 닫습니다: 그것은 구조상의 세트로 pyATS/Genie를 감싸고, Claude 같이 대리인이 진짜 testbed, 모형 Context 의정서의 현재 Streamable HTTP 수송에 대하여 호출할 수 있는 MCP 공구를 감시했습니다.

디바이스를 볼 수 있고, 실행하고 표시 명령을 파싱할 수 있고, 롤백 포인트와 구성을 적용하고, 이전의 기능 상태를 디퓨핑하고, 변경 후, 함대를 통해 명령을 팬 - 하나의 스레드 풀 또는 장치 당 하나의 프로세스 - 선언 Blitz 또는 Robot Framework 테스트를 실행하거나, 장치의 REST/RESTCONF API를 직접 호출합니다. 모든 위험 경로는 장치에 도달하기 전에 감시되고, in-memory 감사에 있는 각 외침 땅은 대리인이 중간 소유를 검토할 수 있다는 것을 기록합니다.


한 눈에

  • Transport — Streamable HTTP (mcp>=2.3.0]), stateful 또는 stateless, 하나의 환경 변수로 선택. STDIO가 사라집니다.

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

pyATS MCP Server

Cisco pyATS and Genie already know how to talk to a network — parsing show commands, pushing configuration, learning feature state, running declarative tests. What they didn’t have was a way for an AI agent to drive any of it directly. This server closes that gap: it wraps pyATS/Genie as a set of structured, guarded MCP tools that an agent like Claude can call against a real testbed, over the Model Context Protocol’s current Streamable HTTP transport.

Point an agent at it and it can look up a device, run and parse a show command, apply configuration with a rollback point, learn and diff a feature’s state before and after a change, fan a command out across a fleet — one thread pool or one process per device — run a declarative Blitz or Robot Framework test, or call a device’s REST/RESTCONF API directly. Every risky path is guarded before it reaches a device, and every call lands in an in-memory audit log the agent can review mid-session.


[!TIP]

Testbed-free: build testbeds dynamically, in memory

You don’t need a testbed.yaml. The pyats_testbed_* tools build a pyATS testbed on the fly from Itential Inventory Manager (the default source), NetBox, Nautobot, Catalyst Center, any JSON REST API, or inline/file CSV, JSON, YAML and XML, using a declarative field mapping. The testbed lives in server memory, is activated with one call, and every existing tool (pyats_run_show_command, pyats_configure_device, …) uses it immediately. Start the server with PYATS_MCP_DYNAMIC_ONLY=1 and no YAML at all. Credentials stay on the server as %ENV{} references and never pass through the model. See Dynamic Testbeds and the technical write-up.


At a glance

  • Transport — Streamable HTTP (mcp>=2.3.0), stateful or stateless, chosen with one environment variable. STDIO is gone.
  • 34 tools across discovery, show commands, configuration, Genie learn/diff, Genie Clean, declarative testing (Blitz, Robot Framework, AEtest), generic REST/RESTCONF, and Cisco XPresso.
  • Two ways to fan out a command across many devices — a shared thread pool for everyday use, or one OS process per device (pyats.async_.pcall) when you want real isolation at scale.
  • Guardrails, not honor systems — dangerous commands are blocked before they reach a device, Genie Clean can never run a stage that reboots or reimages one, and destructive actions require an exact confirmation phrase.
  • Nothing hard-coded — every credential and device detail lives in .env, pulled into testbed.yaml at runtime via %ENV{} substitution.

Prerequisites

  • Python 3.10+
GitHub에서 전체 README 보기

설치

npx -y mcp-remote http://localhost:8080/mcp --transport http-only
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "pyats": { "type": "http", "url": "http://localhost:8080/mcp" } } }