使用说明
SSH MCP服务器
SSH MCP(管理控制平面)服务器是网络设备的集中管理系统。它利用SSH API在网络交换机上执行命令,并为网络监控、配置验证和报告提供高级功能。
特性
设备管理
- 包含元数据(位置、角色、型号、操作系统版本)的网络设备清单
- 按功能、位置或自定义属性对设备进行分组
- 设备状态跟踪和可用性监控
命令执行
- 通过SSH API在设备上执行show命令
- 安排定期命令执行以进行监控
- 跨多个设备并发执行命令
- 带变量替换的命令模板
数据处理
- 将命令输出解析为结构化数据
- 将历史命令输出存储在数据库中
- 比较不同设备或时间的输出
- 检测设备配置和状态的变化
报告
- 生成有关设备清单、命令输出、配置更改的报告
- 具有不同输出格式(HTML、JSON、CSV)的自定义报告模板
- 计划报告生成和分发
需求
- Python 3.8+
- PostgreSQL 12+
- Redis(用于任务队列)
- SSH API服务(用于设备通信)
安装
- 克隆存储库:
git clone https://github.com/your-org/ssh-mcp-server.git
cd ssh-mcp-server
- 创建虚拟环境并安装依赖项:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- 设置环境变量:
cp .env.example .env
# Edit .env with your configuration settings
- 设置数据库:
# Create PostgreSQL database
createdb mcp_server
# Run Alembic migrations
alembic upgrade head
- 启动服务器:
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服务的URLSECRET_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用于所有通信
