pyATS MCP Server
用于 pyATS 的 MCP 服务器(实验性)
automateyournetwork
README
pyATS MCP 服务器
本项目实现了一个模型上下文协议 (MCP) 服务器,它封装了 Cisco pyATS 和 Genie 的功能。它支持使用 JSON-RPC 2.0 协议通过 STDIO 与网络设备进行结构化的、模型驱动的交互。
🚨 此服务器不使用 HTTP 或 SSE。所有通信都通过 STDIN/STDOUT(标准输入/输出)完成,使其非常适合安全、嵌入式、容器化或基于 LangGraph 的工具集成。
🔧 功能
连接到 pyATS 测试平台中定义的 Cisco IOS/NX-OS 设备
支持安全执行经过验证的 CLI 命令(show、ping)
允许受控的配置更改
返回结构化(已解析)或原始输出
通过 tools/discover 和 tools/call 公开一组定义良好的工具
完全通过 STDIO 运行,以实现最小的表面积和最大的可移植性
🚀 用法
- 设置您的测试平台路径
export PYATS_TESTBED_PATH=/absolute/path/to/testbed.yaml
- 运行服务器
连续 STDIO 模式(默认)
python3 pyats_mcp_server.py
启动一个长时间运行的进程,该进程从 stdin 读取 JSON-RPC 请求并将响应写入 stdout。
单次模式
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/discover"}' | python3 pyats_mcp_server.py --oneshot
处理单个 JSON-RPC 请求并退出。
📦 Docker 支持
构建容器
docker build -t pyats-mcp-server .
运行容器(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"], "tools/discover", "tools/call")
名称: pyats-mcp
命令: python3 pyats_mcp_server.py --oneshot
发现方法: tools/discover
调用方法: tools/call
基于 STDIO 的通信确保与 LangGraph 的工具调用模型紧密集成,而无需打开 HTTP 端口或公开 REST 端点。
📜 示例请求
发现工具
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/discover"
}
运行 Show 命令
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "run_show_command",
"arguments": {
"device_name": "router1",
"command": "show ip interface brief"
}
}
}
🔒 安全特性
使用 Pydantic 进行输入验证
阻止不安全的命令,如 erase、reload、write
防止管道/重定向滥用(例如,| include、>、copy 等)
优雅地处理解析回退和错误
📁 项目结构
.
├── pyats_mcp_server.py # 具有 JSON-RPC 和 pyATS 集成的 MCP 服务器
├── Dockerfile # Docker 容器定义
├── testbed.yaml # pyATS 测试平台(用户提供)
└── README.md # 此文件
✍️ 作者
John Capobianco
Selector AI 产品营销布道者
Automate Your Network 作者
如果您想添加以下内容,请告诉我:
示例 LangGraph 图配置
配套客户端脚本
CI/CD 集成(例如,GitHub Actions)
很乐意帮忙!
testbed.yaml 文件适用于 Cisco DevNet Cisco Modeling Labs (CML) 沙箱!
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。
Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。
Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。