SSH网络设备管理服务器

SSH MCP服务器是一个集中式网络设备管理系统,通过SSH API执行命令,提供网络监控、配置验证和报告功能。

  • by RobertBergman
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 robertbergman/ssh-mcp-server

使用说明

SSH MCP服务器

SSH MCP(管理控制平面)服务器是网络设备的集中管理系统。它利用SSH API在网络交换机上执行命令,并为网络监控、配置验证和报告提供高级功能。

特性

设备管理

  • 包含元数据(位置、角色、型号、操作系统版本)的网络设备清单
  • 按功能、位置或自定义属性对设备进行分组
  • 设备状态跟踪和可用性监控

命令执行

  • 通过SSH API在设备上执行show命令
  • 安排定期命令执行以进行监控
  • 跨多个设备并发执行命令
  • 带变量替换的命令模板

数据处理

  • 将命令输出解析为结构化数据
  • 将历史命令输出存储在数据库中
  • 比较不同设备或时间的输出
  • 检测设备配置和状态的变化

报告

  • 生成有关设备清单、命令输出、配置更改的报告
  • 具有不同输出格式(HTML、JSON、CSV)的自定义报告模板
  • 计划报告生成和分发

需求

  • Python 3.8+
  • PostgreSQL 12+
  • Redis(用于任务队列)
  • SSH API服务(用于设备通信)

安装

  1. 克隆存储库:
git clone https://github.com/your-org/ssh-mcp-server.git
cd ssh-mcp-server
  1. 创建虚拟环境并安装依赖项:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your configuration settings
  1. 设置数据库:
# Create PostgreSQL database
createdb mcp_server

# Run Alembic migrations
alembic upgrade head
  1. 启动服务器:
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

配置

应用程序可以通过环境变量或 .env 文件:

  • DATABASE_URL:PostgreSQL连接字符串
  • REDIS_HOST 和 REDIS_PORT:Redis连接详细信息
  • SSH_API_URL:SSH API服务的URL
  • SECRET_KEY:JWT身份验证的密钥
  • 看 .env.example 对于所有可用的配置选项

API文档

当服务器正在运行时,API文档可在以下位置获得:

  • Swagger用户界面:http://localhost:8000/api/v1/docs
  • 重新记录:http://localhost:8000/api/v1/redoc

发展

运行测试

pytest

创建新的迁移

对模型进行更改后:

alembic revision --autogenerate -m "Description of changes"
alembic upgrade head

建筑

该应用程序采用模块化架构,包含以下组件:

  • API层:HTTP端点的FastAPI路由
  • 服务层:业务逻辑和操作
  • 数据模型:使用SQLAlchemy的数据库模型
  • 模式:用于请求/响应验证的Pydantic模型
  • 后台任务:用于异步处理的Celery workers

安全

  • 基于JWT令牌的身份验证
  • 基于角色的访问控制
  • 设备凭据的加密存储
  • HTTPS用于所有通信

许可证

MIT许可证