Token导航 LogoToken导航TokenDH.com
AI Network Assistant logo
AI代理stdio官方级别未说明来源级核验

AI Network Assistant

MCP Server

一款基于AI和MCP的网络自动化助手,通过自然语言聊天实现对Arista cEOS设备的命令执行、配置推送和状态验证,支持本地或云环境部署。

工具数

0

提示词数

0

GitHub Stars

7

资源数

0
Python云部署AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

satyam-thakur

提供方

satyam-thakur

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

AI网络助手

🤖 一种基于人工智能的网络自动化助手,使用MCP在Containerlab设置中安全地调用pyATS工具来对抗Arista cEOS设备。自然聊天以运行show命令、推送配置、验证状态,并可选择使用Terraform配置实验室EC2主机。

______________________________________________________________________

演示

![AI Network Assistant Demo](https://www.youtube.com/watch?v=oq6hPuB20jI)

______________________________________________________________________

架构图

              ╔════════════════════════════════════╗
              ║  AI Network Assistant Flow         ║
              ╚════════════════════════════════════╝

                        ┌──────────┐
                        │   User   │  
                        └─────┬────┘
                              │ chat query
                              ▼
                   ┌──────────────────────┐
                   │   agent.py (Gemini)  │ ◄─ Gemini API
                   └──────────┬───────────┘
                              │ MCP stdio
                              │ (list_devices, run_show, configure)
                              ▼
                   ┌──────────────────────┐
                   │  server.py (FastMCP) │ ◄─ pyATS
                   └──────────┬───────────┘
                              │ SSH (testbed.yaml)
                              ▼
                  ┌────────────────────────┐
                  │  Containerlab Topology │
                  │  ┌────┐  ┌────┐ ┌────┐ │
                  │  │ceos│──│ceos│─│ceos│ │
                  │  │ 1  │  │ 2  │ │ 3  │ │
                  │  └────┘  └────┘ └────┘ │
                  └────────────────────────┘

  Optional: Terraform → EC2 → Containerlab → cEOS

______________________________________________________________________

工作原理(机制)

  • MCP首次设计:服务器通过MCP公开安全、明确的网络自动化工具(列出设备、运行显示、推送配置、ping等)。
  • 人工智能代理(Gemini): src/agent.py 使用Gemini,并在需要时调用MCP工具。该模型从不具有原始设备访问权限;它仅通过MCP工具起作用。
  • pyATS集成: src/server.py 加载pyATS试验台(PYATS_TESTBED_PATH)并使用稳健的发送/期望流在设备上执行命令。
  • Containerlab拓扑结构:Arista cEOS实验室样本如下 containerlab/ 带着一个 topology.clab.yaml 以及一个现成的pyATS测试台。
  • 可选的云配置: terraform/ 如果您喜欢云实验室环境,可以启动EC2主机来运行Containerlab。

主要特点:

  • 工具安全:AI只能做MCP工具允许的事情。破坏性命令被设计阻止。
  • 可重复实验室:Containerlab拓扑+测试平台YAML=快速、可重复的演示。
  • 云可选性:本地或EC2。使用适合您环境的东西。

______________________________________________________________________

设置

1) Python虚拟环境

使用venv来避免依赖冲突。

cd AI-Network-Assistant
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt

2) 环境变量(.env)

创建一个 .env 项目根目录中的文件(它已在 .gitignore 以避免秘密泄露)。

cat > .env << 'EOF'
GEMINI_API_KEY=your_gemini_api_key_here
PYATS_TESTBED_PATH=./containerlab/testbed_containerlab.yaml
EOF

笔记:

  • GEMINI_API_KEY 代理人要求。
  • PYATS_TESTBED_PATH 必须指向您的pyATS测试台YAML。现成的文件存在于 containerlab/testbed_containerlab.yaml.

3) Containerlab(本地实验室)

此仓库包括一个简单的3节点Arista cEOS拓扑。

使用辅助脚本安装Containerlab和依赖项:

./clab.sh

部署实验室:

sudo containerlab deploy -t containerlab/topology.clab.yaml

您有:

  • 3个cEOS节点(ceos1, ceos2, ceos3)启动配置如下 containerlab/backup_configs/
  • 链接定义见 containerlab/topology.clab.yaml
  • 一个现成的pyATS测试台 containerlab/testbed_containerlab.yaml 具有SSH访问权限和默认凭据(admin/admin 对于演示)

完成后拆卸:

sudo containerlab destroy -t containerlab/topology.clab.yaml

4) 可选:使用Terraform配置EC2主机

如果你想在AWS而不是本地运行实验室,你可以配置一个实例,然后在那里安装Containerlab。如果你没有使用云,你可以跳过这一节。

安装AWS CLI和Terraform:

./terraform.sh

配置AWS凭据(一次):

aws configure

审查/调整 terraform/terraform.tfvars 根据需要,然后提供:

cd terraform
terraform init
terraform plan
terraform apply -auto-approve

有用的输出将包括实例详细信息和SSH命令。配置后,通过SSH连接到实例,克隆此仓库,重复步骤1-3,并在云VM中部署Containerlab拓扑。

完成后销毁:

terraform destroy -auto-approve

______________________________________________________________________

运行AI网络助手

当你的静脉处于活动状态时 .env 已配置:

python3 src/agent.py

发生了什么:

  • 代理启动并连接到MCP服务器(src/server.py)超过stdio。
  • 服务器从以下位置加载pyATS测试平台 PYATS_TESTBED_PATH 并暴露工具。
  • 你和代理人聊天;必要时,它调用MCP工具对设备进行操作。

示例问题:

  • “列出设备”
  • “在clab-test_network-ceos1上运行显示ip路由”
  • “在clab-test_network-ceos2上配置Ethernet1的描述”
  • “从clab-test_network-ceos1 Ping 10.0.12.2”

______________________________________________________________________

建筑细部

  • 服务器(src/server.py)

- 用途 fastmcp 通过MCP(stdio传输)公开工具。 - 通过以下方式加载pyATS试验台 PYATS_TESTBED_PATH 并按需连接到设备。 - 实现安全助手来运行show命令、推送配置、获取日志和运行ping。 - 清理CLI输出(删除ANSI代码),阻止危险输入,并干净地断开连接。

  • 代理商(src/agent.py)

- 负载 .env 并初始化Gemini(google-generativeai). - 作为stdio客户端连接到MCP服务器,并将服务器工具作为功能反映到Gemini。 - 向Gemini发送用户提示,处理函数调用,执行MCP工具,返回结果。 - 提供一个简单的聊天循环,供交互式使用。

  • Containerlab和pyATS

- containerlab/topology.clab.yaml 定义cEOS节点和链接。 - 启动配置实时 containerlab/backup_configs/. - pyATS试验台位于 containerlab/testbed_containerlab.yaml 指向具有SSH凭据的实验室设备IP。

  • 地形(可选)

- terraform/ 定义EC2实例、安全组和实例状态控制。 - terraform.sh 在运行之前在计算机上安装AWS CLI和Terraform terraform 命令。

______________________________________________________________________

故障排除

  • 确保 .venv 已激活,并且 pip install -r requirements.txt 成功。
  • 验证 .env 存在有效 GEMINI_API_KEYPYATS_TESTBED_PATH.
  • 确认Containerlab设备可以使用测试台YAML中的IP通过SSH访问。
  • 如果在AWS中运行,请确认安全组允许从您的IP进行SSH。

______________________________________________________________________

安全和范围

  • MCP服务器将操作限制在定义的工具上;危险命令被拒绝。
  • 示例:擦除/删除/重定向在命令过滤器和配置应用程序中被阻止。您可以查看@mcp.tools了解实施情况。
  • 始终检查并调整启动配置、凭据和安全组以用于生产。

______________________________________________________________________

贡献

欢迎投稿!请按照以下步骤操作:

  • 分叉存储库
  • 创建要素分支
git checkout -b feature-branch-name
  • 提交您的更改
git commit -m "Add new feature"
  • 推你的叉子
git push origin feature-branch-name
  • 打开拉取请求

______________________________________________________________________

许可证

Apache 2.0

目录标签

目录标签

Python云部署AI代理网络自动化本地部署AI助手容器网络网络配置

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP