Token导航 LogoToken导航

MCP Server · 开发工具

pyATS MCP

An MCP Server for pyATS (experimental)

stdio官方级别未说明来源级核验工具 15
PythonClaudeAI代理集成

快速开始

作者 / 组织
automateyournetwork
提供方
automateyournetwork

工具数量

15

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

72

仓库热度

收录来源

4 个

MCP.so

选型结论

pyATS MCP 属于开发工具类 MCP Server,公开资料标注 15 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 15 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

pyATS MCP服务器

MCP服务器,封装了Cisco pyATS和Genie,让AI代理(Claude、LangGraph等)使用JSON-RPC 2.0通过STDIO运行show命令、应用配置和查询网络状态。

所有通信都是通过STDIN/STDOUT进行的——没有HTTP端口,也没有REST端点。

______________________________________________________________________

快速开始

# 1. Clone and install
git clone https://github.com/automateyournetwork/pyATS_MCP
cd pyATS_MCP
pip install -r requirements.txt

# 2. Configure your environment
cp .env.example .env
# Edit .env — see Configuration below

# 3. Run
python3 pyats_mcp_server.py

______________________________________________________________________

配置

所有设备详细信息和凭据都存在于 .env file——仓库中没有硬编码。

1.复制模板

cp .env.example .env

2.设置服务器变量

PYATS_TESTBED_PATH=/absolute/path/to/your/testbed.yaml
PYATS_MCP_ARTIFACTS_DIR=          # default: ~/.pyats-mcp/artifacts
PYATS_MCP_KEEP_ARTIFACTS=1        # 1 = keep, 0 = delete after each run
PYATS_MCP_TESTBED_CACHE_TTL=30    # seconds before testbed reloads from disk
PYATS_MCP_CONN_CACHE_TTL=0        # seconds to keep connections alive (0 = off)
PYATS_MCP_OP_LOG_MAX=500          # max entries in the in-memory operation log

3.为每个设备添加一个块

您的每个设备 testbed.yaml 用途 %ENV{VAR} 替换,因此从中读取凭据和连接详细信息 .env 在运行时。

使用 {DEVICENAME}_{FIELD} 命名约定:

# Supported os values: iosxe | iosxr | nxos | ios | eos | junos | panos | linux | windows
# Set os=generic and platform="" to let Unicon autodetect on first connect.

CORE1_IP=10.1.1.1
CORE1_PORT=22
CORE1_OS=iosxe
CORE1_PLATFORM=cat9k
CORE1_USERNAME=admin
CORE1_PASSWORD=s3cr3t
CORE1_ENABLE_PASSWORD=s3cr3t

FW1_IP=10.1.1.2
FW1_PORT=22
FW1_OS=panos
FW1_PLATFORM=
FW1_USERNAME=admin
FW1_PASSWORD=s3cr3t
# (no enable password for Palo Alto)

LINUX1_IP=10.1.1.3
LINUX1_PORT=22
LINUX1_OS=linux
LINUX1_PLATFORM=ubuntu
LINUX1_USERNAME=admin
LINUX1_PASSWORD=s3cr3t
# (no enable password for Linux)

如果一组设备共享凭据,您可以定义组级变量并在设备之间引用它们:

SITE_A_USERNAME=netops
SITE_A_PASSWORD=s3cr3t
SITE_A_ENABLE_PASSWORD=s3cr3t

4.引用testbed.yaml中的变量

devices:
  CORE1:
    alias: "Core Switch 1"
    type: "switch"
    os: "%ENV{CORE1_OS}"
    platform: "%ENV{CORE1_PLATFORM}"
    credentials:
      default:
        username: "%ENV{CORE1_USERNAME}"
        password: "%ENV{CORE1_PASSWORD}"
      enable:
        password: "%ENV{CORE1_ENABLE_PASSWORD}"
    connections:
      cli:
        protocol: ssh
        ip: "%ENV{CORE1_IP}"
        port: "%ENV{CORE1_PORT}"
        arguments:
          connection_timeout: 360
对于操作系统未知的设备,设置 os: "%ENV{DEVICE_OS}" 和 DEVICE_OS=generic 在 .env 并可选择添加 learn_os: true 在...之下 arguments: --Unicon将检测并缓存操作系统 在第一次连接之后。

______________________________________________________________________

码头工人

构建

docker build -t pyats-mcp-server .

运行(直接传递.env)

docker run -i --rm \
  --env-file /absolute/path/to/.env \
  -v /absolute/path/to/testbed.yaml:/app/testbed.yaml \
  pyats-mcp-server

MCP客户端配置(Docker)

{
  "mcpServers": {
    "pyats": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--env-file", "/absolute/path/to/.env",
        "-v", "/absolute/path/to/testbed.yaml:/app/testbed.yaml",
        "pyats-mcp-server"
      ]
    }
  }
}

MCP客户端配置(本地Python)

{
  "mcpServers": {
    "pyats": {
      "command": "python3",
      "args": ["-u", "/path/to/pyats_mcp_server.py"],
      "env": {
        "PYATS_TESTBED_PATH": "/absolute/path/to/testbed.yaml"
      }
    }
  }
}

______________________________________________________________________

可用工具

工具说明
pyats_list_devices列出试验台上的所有设备
pyats_search_devices按名称或别名进行模糊搜索的设备
pyats_run_show_command运行一个经过验证的show命令;返回解析的JSON或原始输出
pyats_run_show_command_on_multiple_devices在多个设备上同时运行show命令
pyats_ping_from_network_device从网络设备执行ping
pyats_run_linux_command在Linux主机上运行命令
pyats_configure_device使用安全护栏应用配置命令
pyats_configure_devices_multi同时在多个设备上应用配置
pyats_configure_with_diff应用config并返回一个before/after diff
pyats_rollback_config回滚到上次保存的配置快照
pyats_device_health快照CPU、内存、接口和路由状态
pyats_get_neighbors检索CDP/LDP邻居
pyats_find_interface_by_ip查找哪个接口拥有给定的IP地址
pyats_run_dynamic_test执行沙盒pyATS测试脚本
pyats_get_operation_log检索内存中的操作日志

______________________________________________________________________

安全

  • 显示命令已验证——管道、重定向和危险关键字已被阻止
  • 检查配置更改 reload, erase, write erase, delete, format
  • 动态测试脚本在受限沙盒中运行(禁止导入: os, sys, subprocess等等)
  • 所有凭证均来自 .env --从未存储在testbed文件或源代码中

______________________________________________________________________

项目结构

.
├── pyats_mcp_server.py      # MCP server
├── test_pyats_mcp_server.py # Unit tests (85 tests)
├── Dockerfile               # Container definition
├── requirements.txt         # Pinned runtime dependencies
├── requirements-dev.txt     # Dev/test dependencies
├── pyproject.toml           # Tool config (black, isort, pytest, mypy)
├── .env.example             # Configuration template — copy to .env
├── .gitignore
├── LICENSE
└── CONTRIBUTING.md

______________________________________________________________________

发展

# Install dev dependencies with uv
uv venv .venv && uv pip install -r requirements-dev.txt

# Run tests
.venv/bin/python -m pytest

# Lint and format
.venv/bin/black .
.venv/bin/isort .
.venv/bin/flake8 . --max-line-length=100

工具与能力

工具数量

15

资源数量

0

提示词数量

0

能力标签

developer-tools网络自动化Python本地部署AI代理集成JSON-RPCCiscopyATS网络配置管理

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 15 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 4 个目录同时收录,信息可以交叉核对。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
pyATS MCP

MCP.so · 本页

15stdio有4 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

pyATS MCP 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

pyATS MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

pyATS MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

pyATS MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

pyATS MCP 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP