AP

automateyournetwork/pyats_mcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

90 stars 34 forks 品質 88 トレンド 29MIT

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 のようなエージェントは、モデルコンテキストプロトコルの現在のストリーム可能な HTTP トランスポートの上に、実際のテストベッドに対して呼び出しることができる MCP ツールをガードしました。

エージェントをポイントし、デバイスを探し、ショーコマンドを実行して解析したり、ロールバックポイントの設定を適用したり、変更前後の機能の状態を学習したり、変更後に、フリート全体でコマンドアウトしたり、ワンスレッドプールまたはデバイスごとの1つのプロセスをファンにしたり、宣言的なBlitzまたはRobo Frameworkテストを実行したり、デバイスのREST/RESTCONFを直接呼び出します。 デバイスに到達する前に、すべての危険なパスがガードされ、インメモリー監査ログ内のすべてのコールランドは、エージェントがミッドセッションを確認することができます。

お問い合わせ

一見で

-Transport — ストリーム可能なHTTP([mcp>=2.3.0])、ステートフルまたはステートレス、環境変数1つで選択した。 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" } } }