内容
# oxidized-mcp
Oxidized 网络设备配置备份工具的 MCP(模型上下文协议)服务器。
## 工具
| 工具 | 描述 |
|---|---|
| `list_nodes` | 列出所有节点的狀態、分组、型号和最后备份时间 |
| `get_node` | 获取特定节点的详细信息(IP、型号、分组、变量) |
| `get_node_config` | 检索节点的存储配置 |
| `run_backup` | 触发节点的立即备份(使用 '*' 表示所有节点) |
| `list_node_versions` | 列出节点的所有配置版本(git 提交) |
| `get_node_version` | 获取特定版本/提交的完整配置 |
| `diff_node_versions` | 比较两个配置版本并返回统一的差异 |
| `search_configs` | 在所有存储的节点配置中搜索文本 |
| `get_nodes_stats` | 获取所有节点的统计信息 |
| `reload_nodes` | 从配置的源重新加载节点列表 |
## 环境变量
| 变量 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|
| `OXIDIZED_URL` | 是 | — | Oxidized 网页 URL(例如 `https://oxidized.example.com`) |
| `MCP_API_TOKEN` | 是 | — | 客户端与 MCP 服务器身份验证所需的 Bearer Token |
| `MCP_HOST` | 否 | `0.0.0.0` | MCP 服务器的绑定主机 |
| `MCP_PORT` | 否 | `8000` | MCP 服务器的绑定端口 |
## 本地开发
```bash
cp .env.example .env
# 使用您的 Oxidized URL 和令牌编辑 .env
docker compose up --build
```
MCP 服务器将在 `http://localhost:8000/mcp` 上可用。
## Kubernetes 部署
```bash
# 使用 Oxidized URL 和 MCP API 令牌创建 Secret
kubectl create secret generic oxidized-mcp-secret \
--from-literal=oxidized-url=https://oxidized.example.com \
--from-literal=mcp-api-token=your-mcp-server-token-here
# 部署
kubectl apply -f k8s/
```
## GitHub 容器注册表
镜像通过 GitHub Actions 在推送到 `main` 和版本标签(`v*`)时自动构建和推送。
```bash
docker pull ghcr.io/marcusjfloyd/oxidized-mcp:latest
```
## MCP 客户端配置
使用可流式传输的 HTTP 传输协议将您的 MCP 客户端连接到 `http://<host>:8000/mcp`。
所有请求必须包含 `Authorization: Bearer <MCP_API_TOKEN>` 头部。