PyATS_MCP

PyATS_MCP

🚀 pyATS MCP 服务器

本项目构建了一个基于模型上下文协议(MCP)的服务器,它集成了 Cisco pyATS 和 Genie 的强大功能。借助 STDIO 通道,服务器运用 JSON - RPC 2.0 协议,实现了对网络设备结构化、基于模型的交互。

🚨 值得注意的是,该服务器不依赖 HTTP 或 SSE 进行通信,所有数据交互均通过标准输入输出(STDIN/STDOUT)完成。这一特性使其非常适合安全嵌入式、容器化或 LangGraph 工具集成场景。

✨ 主要特性

  • 设备连接:能够连接到 Cisco IOS/NX - OS 设备,设备信息来源于 pyATS 测试床。
  • 安全命令执行:支持安全地执行经过验证的 CLI 命令,如 showping 等。
  • 配置更改控制:允许进行受控的配置更改。
  • 输出多样化:可返回结构化(解析)或原始输出。
  • 工具暴露:通过 tools/discovertools/call 暴露一组定义良好的工具。
  • 安全可移植:完全通过 STDIO 运行,具备最小的攻击面和最大的可移植性。

🚀 快速开始

设置测试床路径

export PYATS_TESTBED_PATH=/absolute/path/to/testbed.yaml

启动服务器

连续 STDIO 模式(默认)

python3 pyats_mcp_server.py

此模式会启动一个长期运行的进程,该进程从标准输入读取 JSON - RPC 请求,并将响应写入标准输出。

一次性模式

echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/discover"}' | python3 pyats_mcp_server.py --oneshot

该模式用于处理单个 JSON - RPC 请求,处理完成后即退出。

📦 安装指南

构建 Docker 容器

docker build -t pyats-mcp-server .

运行 Docker 容器(STDIO 模式)

docker run -i --rm \
-e PYATS_TESTBED_PATH=/app/testbed.yaml \
-v /your/testbed/folder:/app \
pyats-mcp-server

🧠 可用 MCP 工具

工具 描述
run_show_command 安全执行 show 命令,可选择解析输出
run_ping_command 执行 ping 测试,返回解析或原始结果
apply_configuration 应用受控的配置命令(支持多行)
learn_config 获取运行配置(show run brief
learn_logging 获取系统日志(show logging last 250

所有输入均通过 Pydantic 模式进行验证,以确保安全性和一致性。

🤖 LangGraph 集成

可将 MCP 服务器作为工具节点添加到您的 LangGraph 管道中,示例如下:

("pyats-mcp", ["python3", "pyats_mcp_server.py", "--oneshot"],)

✍️ 作者

John Capobianco,Selector AI 的产品营销传教士,《自动化你的网络》的作者。

如果您有任何需求,欢迎提出,作者乐于添加以下内容:

  • 一个样本 LangGraph 图配置
  • 配套客户端脚本
  • CI/CD 集成(例如 GitHub Actions)

注意事项

testbed.yaml 文件与 Cisco DevNet 的 Cisco Modeling Labs (CML) 砂箱兼容!

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-10-06 08:48

相似服务问题

相关AI产品