Nexus仪表板MCP服务器
 ](docker-compose.yml)  
思科Nexus Dashboard的综合模型上下文协议(MCP)服务器,使克劳德等人工智能代理能够与Nexus Dashboard API交互,实现智能网络自动化和管理。
特性
核心能力
- API全面覆盖:通过5个Nexus Dashboard API访问638+个操作
- 管理API(146个端点):结构、交换机、VLAN、VRF、网络、接口 - 分析API:遥测、洞察、异常、合规性 - 基础设施API:系统运行状况、许可、用户管理 - OneManage API:设备资源清册,拓扑 - 编排API:工作流和自动化
- 安全第一:
- 带有自签名证书的HTTPS(自动生成) - 基于角色的访问控制(RBAC)的多用户身份验证 - 默认情况下为只读模式,并启用显式编辑模式 - Fernet加密凭证存储 - 通过客户端IP跟踪完成审计日志记录 - 每个角色的精细操作白名单
- Web管理UI:
- 基于HTTPS的Next.js管理接口 - 用户和角色管理 - 实时系统健康监测 - CSV导出审计日志查看器 - 带连接测试的集群管理 - 安全配置仪表板 - API指南和工作流程管理
- 企业就绪:
- PostgreSQL数据库用于持久化 - 基于Docker的主机网络部署 - 完整的合规审计跟踪 - LDAP集成支持
快速开始
先决条件
- 码头工人 20.10+和Docker Compose 2.0+
- 思科Nexus仪表板 4.1+,NDFC 12.x
- Node.js 18+(用于通过MCP-remote进行远程MCP访问)
1.克隆和配置
git clone https://github.com/beye91/nexus-dashboard-mcp.git
cd nexus-dashboard-mcp
# Create environment file with your server's IP address
echo "CERT_SERVER_IP=YOUR_SERVER_IP" > .env替换 YOUR_SERVER_IP 使用服务器的实际IP地址(例如。, 192.168.1.213).
2.启动服务
docker compose up -d --build这将:
- 自动生成自签名SSL证书
- 启动PostgreSQL数据库(端口15432)
- 使用HTTPS启动Web API(端口8444)
- 使用HTTPS启动Web UI(端口7443)
- 启动MCP服务器以进行Claude集成
3.初始设置
- 打开浏览器并导航到:
https://YOUR_SERVER_IP:7443- 接受自签名证书警告
- 完成初始管理员设置:
- 用户名: admin - 电子邮件: admin@example.com - 密码: Admin123! (或您的首选密码)
- 配置您的第一个集群:
- 导航至 集群 页 - 点击“添加新集群” - 输入您的Nexus仪表板详细信息 - 点击“测试连接”进行验证 - 保存集群配置
4.配置克劳德桌面
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
远程部署(推荐)
{
"mcpServers": {
"nexus-dashboard": {
"command": "npx",
"args": [
"mcp-remote@latest",
"https://YOUR_SERVER_IP:8444/mcp/sse",
"--transport",
"sse-only"
]
}
}
}替换 YOUR_SERVER_IP 使用服务器的IP地址。
注: 由于我们使用自签名证书,您可能需要设置 NODE_TLS_REJECT_UNAUTHORIZED=0 在您的环境中,或者在系统的信任存储中接受证书。本地部署(与Docker相同的机器)
{
"mcpServers": {
"nexus-dashboard": {
"command": "docker",
"args": [
"exec",
"-i",
"nexus-mcp-server",
"python",
"src/main.py"
]
}
}
}重新启动Claude Desktop,您将看到Nexus Dashboard工具可用!
建筑
External Clients
(Browser, Claude Desktop)
|
[HTTPS/TLS]
|
+---------------+---------------+
| |
Port 7443 Port 8444
| |
+----------+----------+ +---------------+--------------+
| Web UI | | Web API |
| (Next.js) |--->| (FastAPI) |
| HTTPS Proxy | | +----------+ +---------+ |
+---------------------+ | | REST API | | MCP SSE | |
| +----------+ +---------+ |
+---------------+--------------+
|
+----------------------+----------------------+
| | |
+--------+--------+ +--------+--------+ +--------+--------+
| PostgreSQL | | MCP Server | | Nexus Dashboard |
| Port 15432 | | (stdio) | | Clusters |
+-----------------+ +-----------------+ +-----------------+
Certificate Volume: /app/certs/ (auto-generated on first startup)端口摘要
| 服务 | 端口 | 协议 | 描述 |
|---|---|---|---|
| Web UI | 7443 | HTTPS | 管理界面 |
| Web API | 8444 | HTTPS | REST API和MCP SSE端点 |
| PostgreSQL | 15432 | TCP | 数据库(从5432映射) |
| 内部HTTP | 8001 | HTTP | 内部代理通信 |
环境变量
生产所需
创建一个 .env 文件包含:
# Your server's IP address (for SSL certificate SAN)
CERT_SERVER_IP=192.168.1.213
# Security (generate unique keys for production)
ENCRYPTION_KEY=your-unique-fernet-key
SESSION_SECRET_KEY=your-random-secret-key
# Optional: Nexus Dashboard defaults (can be configured via Web UI)
NEXUS_CLUSTER_URL=https://nexus-dashboard.example.com
NEXUS_USERNAME=admin
NEXUS_PASSWORD=YourPassword生成加密密钥:
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"可选变量
# SSL Certificate Configuration
CERT_DAYS=365 # Certificate validity (default: 365)
CERT_CN=nexus-dashboard # Certificate common name
# Security
EDIT_MODE_ENABLED=false # Enable write operations
MCP_API_TOKEN=your-token # Optional: Require token for MCP access
# Logging
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR安全
HTTPS配置
首次启动时会自动生成自签名证书:
- 存储在Docker卷中
nexus-mcp-certs - 有效期为365天(可通过配置
CERT_DAYS) - 包括本地主机127.0.0.1和SAN中的服务器IP
要重新生成证书,请执行以下操作:
docker volume rm nexus-mcp-certs
docker compose up -d多用户RBAC
该平台通过基于角色的访问控制支持多个用户:
- 管理员角色:完全访问所有操作
- 操作员角色:读取访问+特定写入操作
- 查看器角色:只读访问
用户可以通过以下Web UI进行管理 安全>用户.
最佳实践
- 更改默认管理员密码 初始设置后
- 保持
EDIT_MODE_ENABLED=false除非需要写操作 - 使用强加密密钥 用于生产
- 查看审核日志 定期进行未经授权的活动
- 限制网络访问 到服务器
文档
- 快速入门指南 -5分钟后起床跑步
- 架构概述 -系统设计和组件
- 用户指南 -全面的使用文档
- Web UI指南 -通过web界面管理系统
- Claude桌面设置 -详细的Claude集成
- 部署指南 -生产部署建议
- 多用户RBAC -基于角色的访问控制
- API指南系统 -自定义API行为
故障排除
检查集装箱状态
docker compose ps
docker compose logs -f证书问题
# View certificate details
docker compose exec web-api openssl x509 -in /app/certs/server.crt -text -noout
# Regenerate certificates
docker volume rm nexus-mcp-certs
docker compose up -d数据库问题
# Connect to database
docker compose exec postgres psql -U mcp_user -d nexus_mcp
# Check tables
\dt
# View audit logs
SELECT * FROM audit_log ORDER BY timestamp DESC LIMIT 10;网络连接
# Test API endpoint
curl -k https://localhost:8444/api/health
# Test Web UI
curl -k https://localhost:7443发展
地方发展设置
# Clone repository
git clone https://github.com/beye91/nexus-dashboard-mcp.git
cd nexus-dashboard-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Start database only
docker compose up postgres -d
# Run API locally
python src/api/web_api.py
# Run Web UI in dev mode
cd web-ui
npm install
npm run dev许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- Anthropic -用于Claude AI平台和MCP协议
- 思科 -用于Nexus仪表板API
- FastMCP -对于优秀的MCP框架
______________________________________________________________________
精心打造网络自动化
