内容
# VyMCP
[](https://github.com/Community-VyProjects/VyMCP/actions/workflows/ci.yml)
> 为 VyOS 路由器提供的 MCP 服务器,由 [VyManager](https://github.com/Community-VyProjects/VyManager) 驱动。
VyMCP 允许 AI 代理通过 VyManager API 读取和管理 VyOS 路由器,继承 VyManager 的身份验证、RBAC、审计和提交确认安全性。它不会直接与路由器通信。
> **状态:alpha。** 运行在本地(stdio)或作为共享托管服务器(http);接口可能会更改。
## 安装
```bash
pipx install git+https://github.com/Community-VyProjects/VyMCP # 提供 `vymcp`
```
或从克隆仓库运行 `pip install .`,或运行 Docker 镜像 `ghcr.io/community-vyprojects/vymcp`(附加,带 `-i`)。
## 配置
设置环境变量(参见 `.env.example`):
| 变量 | 必需 | 目的 |
|---|---|---|
| `VYMANAGER_BASE_URL` | 是 | VyManager API URL |
| `VYMANAGER_API_TOKEN` | 是 | 一个 `vym_` token(Sites → API Tokens;推荐只读) |
| `VYMANAGER_ENABLE_WRITES` | 否 | 启用写入工具(默认关闭) |
`VYMANAGER_VERIFY_SSL`(默认 `true`)和 `VYMANAGER_TIMEOUT`(默认 `30`)是可选的。
## 连接 MCP 客户端
```json
{
"mcpServers": {
"vymcp": {
"command": "vymcp",
"env": {
"VYMANAGER_BASE_URL": "https://vymanager.example.com",
"VYMANAGER_API_TOKEN": "vym_…"
}
}
}
}
```
## 托管部署(共享服务器)
运行一个 VyMCP,许多工程师通过 HTTP 连接,每个工程师使用自己的 VyManager token 进行身份验证:
```bash
docker compose up -d # 参见 docker-compose.yml
```
在 compose 文件中设置 `VYMANAGER_BASE_URL` 和 `VYMCP_PUBLIC_URL`。工程师将他们的 MCP 客户端指向 `https://<vymcp>/mcp`,并使用 `Authorization: Bearer vym_…` 进行身份验证。
在反向代理处终止 TLS,并运行单个副本(待变更存储在内存中)。
## 工具
- **读取**(始终):`list_instances`、`list_features`、`get_capabilities`、`get_config`。
- **写入**(仅当 `VYMANAGER_ENABLE_WRITES=true` 时):`describe_feature_operations` + `propose_operations` 涵盖约 86 个功能;`apply_change` / `confirm_change` / `discard_changes` / `get_pending_changes` 驱动变更的发布。
写入是安全的:默认关闭,根据 token 范围限制,并由 **propose → apply** 流控制。`apply_change` 需要显式确认,并依赖 VyManager 的提交确认自动回滚(锁定安全网)——它不会自动确认。
## 开发
```bash
pip install -e ".[dev]"
pytest && ruff check . && mypy
```
## 许可证
GPLv3 — 参见 [`LICENSE`](LICENSE)。