🚀 GNS3网络模拟器MCP服务器v2.0
    
基于人工智能的GNS3网络仿真平台\ 通过模型上下文协议(MCP),使用40多种用于AI驱动的拓扑创建、设备配置和仿真管理的综合工具来转换网络工程。
______________________________________________________________________
🎯 v2.0中的新增功能
✨ 大规模功能扩展
- 40+工具 (12个以上):完成GNS3 API覆盖范围
- 模块化架构:明确区分关注点
- 配置模板:15+预构建网络配置(OSPF、BGP、VLAN、NAT等)
- 高级控制台控制:通过自动检测和配置管理增强Telnet
- 批量操作:同时配置多个设备
- 拓扑验证:自动网络健康检查
- 快照管理:完成项目的版本控制
- 绘图工具:用文本和形状注释拓扑
🤖 AI优先网络工程
- 自然语言到网络:描述你的网络,人工智能构建它
- 智能配置:使用简单模板应用复杂配置
- 智能故障排除:具有验证功能的AI驱动诊断
- 自动化工作流程:企业级部署的批量操作
🔥 生产就绪功能
- 40+综合工具:涵盖所有GNS3操作
- 实时操作:与强大的错误处理异步
- 多平台支持:Windows、macOS、Linux
- 企业安全:身份验证和SSL支持
- 高性能:具有连接管理功能的优化API客户端
______________________________________________________________________
📋 完整的功能矩阵
| 类别 | 工具 | 能力 | 用例 |
|---|---|---|---|
| 服务器和计算 | 2个工具 | 服务器信息、计算管理 | 基础设施监控 |
| 项目管理 | 8个工具 | 全生命周期管理 | 组织、备份 |
| 节点管理 | 13个工具 | 完整的设备控制 | 设备部署、管理 |
| 链路管理 | 3个工具 | 连接管理 | 拓扑构建 |
| 配置 | 3个工具 | 控制台访问、模板 | 设备设置、自动化 |
| 模板 | 2个工具 | 模板和设备管理 | 快速部署 |
| 快照 | 4个工具 | 版本控制 | 备份、还原 |
| 包捕获 | 2个工具 | 流量分析 | 故障排除、监控 |
| 绘图 | 2个工具 | 拓扑注释 | 文档 |
| 高级 | 3个工具 | 批量操作、验证 | 企业操作 |
______________________________________________________________________
🛠️ 安装和设置(闪电般快速)
先决条件
- GNS3服务器 运行于
http://localhost:3080(默认) - Python 3.10+ 安装
- Gemini CLI 或任何MCP兼容客户端
快速启动(30秒)
# 1. Clone the repository
git clone https://github.com/wael-rd/gns3-mcp-server.git
cd gns3-mcp-server
# 2. Install dependencies (automatic on first run)
python -m pip install -e .
# 3. Add to Gemini CLI
gemini mcp add gns3 "path/to/gns3-mcp-server/run.bat" # Windows
gemini mcp add gns3 "path/to/gns3-mcp-server/run.sh" # Linux/Mac
# 4. Test the connection
gemini "List all GNS3 projects"🎉 就是这样!现在,您已经为AI驱动的网络工程做好了准备!
______________________________________________________________________
🎮 可用MCP工具(40+)
📚 快速参考
看 docs/TOOL_REFERENCE.md 获取所有42个工具的完整文档。
🔧 关键工具类别
服务器和计算管理(2个工具)
gns3_get_server_info-获取GNS3服务器版本和信息gns3_list_computes-列出所有可用的计算服务器
项目管理(8个工具)
gns3_list_projects-列出所有具有状态的项目gns3_create_project-创建新项目gns3_get_project-获取项目详细信息gns3_update_project-更新项目设置gns3_open_project-打开现有项目gns3_close_project-关闭项目(停止节点)gns3_delete_project-永久删除项目gns3_duplicate_project-用新名称复制项目
节点管理(13个工具)
gns3_list_nodes-列出项目中的所有设备gns3_add_node-从模板添加设备gns3_get_node-获取设备详细信息gns3_update_node-更新设备设置gns3_delete_node-删除设备gns3_start_node/gns3_stop_node-控制装置状态gns3_suspend_node/gns3_reload_node-高级控制gns3_duplicate_node-克隆设备gns3_start_all_nodes/gns3_stop_all_nodes-批量操作
链接管理(3个工具)
gns3_list_links-列出所有连接gns3_add_link-连接两个设备gns3_delete_link-断开连接
拓扑工具(1个工具)
gns3_get_topology-完整的网络概述
控制台和配置(3个工具)
gns3_send_console_commands-向设备发送CLI命令gns3_get_node_config-获取设备配置gns3_apply_config_template-应用预构建配置
模板和设备(2个工具)
gns3_list_templates-列出可用的设备模板gns3_list_appliances-列出可用电器
快照管理(4个工具)
gns3_list_snapshots-列出项目快照gns3_create_snapshot-创建备份gns3_restore_snapshot-从备份还原gns3_delete_snapshot-删除快照
数据包捕获(2个工具)
gns3_start_capture-在链路上开始数据包捕获gns3_stop_capture-停止数据包捕获
绘图和注释(2个工具)
gns3_add_text_annotation-添加文本标签gns3_add_shape-添加形状(矩形、椭圆形)
高级工具(3个工具)
gns3_get_idle_pc_values-优化Dynamips路由器gns3_bulk_configure_nodes-一次配置多个设备gns3_validate_topology-检查常见问题
gns3_save_project
使用可选快照保存项目
gemini "Save the current project with a checkpoint"gns3_export_project
导出项目以供共享或备份
gemini "Export the project to 'network_lab_backup.zip'"______________________________________________________________________
🧪 实际使用示例
示例1:完成企业网络设置
# AI Conversation - Building a multi-site network
User: "Create a new project called 'Enterprise_WAN' with 3 sites connected via routers"
AI: "I'll create that network for you..."
# Creates project
# Lists available templates
# Adds 3 routers (HQ, Branch1, Branch2), switches, and PCs
# Connects them with proper WAN and LAN links
# Configures IP addressing and OSPF routing
# Starts all devices
User: "Configure OSPF on all routers with area 0"
AI: "Applying OSPF configuration..."
# Uses gns3_apply_config_template for each router
# Configures network statements
# Saves configurations
User: "Add DHCP on the branch routers for local PCs"
AI: "Setting up DHCP pools..."
# Applies DHCP template to branch routers
# Configures appropriate IP ranges示例2:3层交换机上的VLAN配置
User: "Set up VLANs 10, 20, 30 on my switch for Sales, Engineering, and Management"
AI: "Creating VLANs and configuring ports..."
# Creates VLANs with names
# Configures trunk port to router
# Sets access ports for each department
# Configures inter-VLAN routing on router
User: "Show me the running configuration"
AI: "Here's the current configuration..."
# Uses gns3_get_node_config to retrieve and display config示例3:网络故障排除
User: "My network between HQ and Branch1 has connectivity issues"
AI: "Let me diagnose the problem..."
# Runs gns3_validate_topology
# Checks node status
# Starts packet capture on WAN link
# Sends diagnostic commands to routers
# Analyzes routing tables
AI: "Issue found: Interface GigabitEthernet0/1 on HQ router is administratively down"
User: "Fix it please"
AI: "Enabling the interface..."
# Sends console commands: no shutdown
# Verifies connectivity with ping tests示例4:从模板创建测试实验室
User: "Create a CCNA practice lab with 2 routers, 2 switches, and 4 PCs"
AI: "Building your CCNA lab..."
# Creates project with descriptive name
# Adds devices with proper positioning
# Connects according to typical CCNA topology
# Applies basic configuration (hostnames, interfaces)
# Creates snapshot "Clean_State" for resetting
User: "Configure Router1 as DHCP server for the 192.168.1.0/24 network"
AI: "Configuring DHCP..."
# Applies dhcp_pool template
# Sets up excluded addresses for gateway
# Configures DNS servers示例5:批量配置部署
User: "Configure all routers with SSH access, username 'admin', password 'cisco123'"
AI: "Applying SSH configuration to all routers..."
# Uses gns3_list_nodes to find all routers
# Uses gns3_bulk_configure_nodes with SSH template
# Configures domain, crypto keys, VTY lines on each
# Returns status for each device
AI: "SSH configured successfully on 5 routers. 1 failed (Router3 not started)."______________________________________________________________________
🎨 配置模板库
该服务器包括15+预构建、经过测试的配置模板:
路由协议
- 开放式最短路径优先:单/多区域、路由器id、网络声明
- EIGRP:AS配置,自动摘要控制
- 边界网关协议:eBGP/iBGP、邻居配置、路由反射器
- 静态路由:标准和默认路线
切换
- 虚拟局域网:创建和命名
- 中继端口:802.1Q封装,允许VLAN
- 访问端口:VLAN分配、PortFast、BPDU保护
服务
- 动态主机配置协议:池配置、DNS、排除的地址
- NAT/PAT:过载配置、ACL
- 安全外壳协议:使用加密密钥进行安全访问
安全
- 标准ACL:简单的允许/拒绝规则
- 扩展的ACL:协议,基于端口的过滤
- 基础硬化:服务禁用,密码加密
管理
- 基本路由器设置:主机名、域、控制台设置
- 接口配置:IP地址、描述
- 日志记录:系统日志配置
- 简单网络管理协议:社区字符串和访问控制
- 网络时间协议:时间同步
- 横幅:MOTD和登录消息
服务质量
- QoS标记:DSCP标记、类图、策略图
使用示例:
# Apply OSPF routing
gns3_apply_config_template(
node_id="router-id",
template_name="ospf",
template_params={
"process_id": 1,
"router_id": "1.1.1.1",
"networks": [
{"network": "192.168.1.0", "wildcard": "0.0.0.255", "area": 0},
{"network": "10.0.0.0", "wildcard": "0.0.0.3", "area": 0}
]
},
save_config=True
)______________________________________________________________________
🔧 高级配置
环境变量
# Set custom GNS3 server
export GNS3_SERVER_URL="http://192.168.1.100:3080"
# Configure authentication
export GNS3_USERNAME="admin"
export GNS3_PASSWORD="secure_password"
# SSL/TLS settings
export GNS3_VERIFY_SSL="false"自定义模板
创建用于快速部署的设备模板:
{
"name": "Enterprise_Router",
"device_type": "cisco_ios",
"default_config": {
"interfaces": [
{"name": "Gi0/0", "ip": "10.0.0.1/24"},
{"name": "Gi0/1", "ip": "192.168.1.1/24"}
],
"routing": {
"protocol": "ospf",
"area": "0"
}
}
}性能调优
# Async configuration for high-performance operations
config = {
"connection_pool_size": 20,
"request_timeout": 30,
"retry_attempts": 3,
"concurrent_operations": 10
}______________________________________________________________________
📊 系统要求
最低要求
- 中央处理器:2核,2.0 GHz
- 随机存取存储器:4 GB
- 存储:500 MB可用
- 网络:1 Mbps互联网连接
推荐用于生产
- 中央处理器:4核以上,3.0 GHz+
- 随机存取存储器:8+GB
- 存储:2+GB固态硬盘
- 网络:10+Mbps互联网连接
支持的平台
- ✅ Windows 10/11 (x64)
- ✅ macOS 10.15+ (英特尔/苹果硅)
- ✅ Ubuntu 18.04+ (x64/ARM64)
- ✅ CentOS 7/8 (x64)
- ✅ 码头工人 (Linux容器)
______________________________________________________________________
🚨 故障排除指南
常见问题及解决方案
问题:“连接失败”
# Solution 1: Check GNS3 server is running
# Solution 2: Verify server URL
# Solution 3: Check firewall settings
gemini "Ping the GNS3 server to check connectivity"问题:“找不到设备模板”
# Solution: Verify device templates are installed in GNS3
# Use GNS3 GUI to import templates问题:“身份验证失败”
# Solution: Check username/password in environment variables
export GNS3_USERNAME="your_username"
export GNS3_PASSWORD="your_password"问题:“超出费率限制”
# Solution: Wait for quota reset or upgrade API plan
# Current rate limit: 1000 requests/hour调试模式
启用调试日志记录:
export GNS3_MCP_DEBUG=1
gemini "Debug information: Show current GNS3 server status"______________________________________________________________________
🎓 按行业划分的用例
🏫 教育
- 网络实验室:为学生自动设置实验室
- 课程:交互式网络工程演习
- 评估:网络配置的自动分级
🏢 企业
- 网络测试:部署前测试环境
- 训练:工作人员网络认证培训
- 概念验证:快速网络解决方案验证
🛡️ 安全
- 渗透测试:安全的测试环境
- 安全培训:红队演习
- 脆弱性研究:受控测试环境
🏭 电信
- 协议测试:多供应商互操作性
- 服务部署:预生产测试
- 绩效基准测试:网络优化
______________________________________________________________________
🔬 技术架构
系统组件
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Gemini CLI │◄──►│ GNS3 MCP Server │◄──►│ GNS3 Server │
│ │ │ │ │ │
│ • AI Interface │ │ • 12 MCP Tools │ │ • REST API │
│ • Tool Discovery│ │ • Async Client │ │ • WebSocket │
│ • JSON-RPC │ │ • Error Handling │ │ • Real-time │
└─────────────────┘ └──────────────────┘ └─────────────────┘协议流
- 工具发现:Gemini CLI发现所有可用的MCP工具
- 请求处理:用户请求映射到特定的MCP工具
- API翻译:MCP工具转换为GNS3 REST API调用
- 响应处理:GNS3响应转换为用户友好格式
- 实时更新:用于实时状态更新的WebSocket连接
安全架构
🔐 Authentication Flow
├── Username/Password
├── Token-based Authentication
├── SSL/TLS Encryption
└── Rate Limiting______________________________________________________________________
📈 性能指标
操作时间(典型)
- 列出项目:约200毫秒
- 创建项目:~500ms
- 添加网络设备:约300毫秒
- 创建链接:约250毫秒
- 开始模拟:约1-2秒
- 流量捕获:实时
吞吐量
- 并发操作:10个同时请求
- 日常运营:10000+个请求
- 运行时间:99.9%的可用性
资源使用
- 中央处理器:正常运行时\<2%
- 随机存取存储器:~100MB基线
- 网络:API调用<1Mbps
______________________________________________________________________
🤝 社区与支持
文档
社区
- 💬 Discord 的中文翻译是“不和谐”或“纷争”。: 加入我们的社区
- 📧 电子邮件: support@gns3-mcp.dev
- 🐛 问题:
- 📝 博客: gns3-mcp.dev/blog
贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
______________________________________________________________________
📜 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
🙏 致谢
- GNS3团队:用于令人惊叹的网络仿真平台
- FastMCP:卓越的MCP框架
- Gemini CLI:用于提供AI接口
- 社区:用于持续反馈和改进
______________________________________________________________________
🚀 接下来是什么?
即将推出的功能
- \[ \] 多区域支持:全球GNS3服务器管理
- \[ \] AI优化:基于机器学习的拓扑建议
- \[ \] 高级分析:网络性能分析
- \[ \] 模板市场:社区驱动的设备模板
- \[ \] 云集成:支持基于云的GNS3服务器
路线图
Q1 2025: Multi-region support
Q2 2025: AI optimization engine
Q3 2025: Advanced analytics dashboard
Q4 2025: Template marketplace launch______________________________________________________________________
🎯 准备好转变你的网络工程了吗?
  
⭐ 如果这个存储库能帮助你建立令人惊叹的网络,请为其加星! ⭐
______________________________________________________________________
建于❤️ 网络工程社区
