内容
# F5-MCP
F5 BIG-IP iControl REST(v17)的MCP服务器,限定在**系统(/mgmt/tm/sys)**、**网络(/mgmt/tm/net)**、**本地流量管理器(/mgmt/tm/ltm)**和**应用安全管理器(/mgmt/tm/asm)**的端点范围内。其他模块(gtm、afm、apm等)目前不在范围内,直到添加到允许列表中 - 请参阅[src/f5_mcp/scope.py](src/f5_mcp/scope.py)。
LTM/ASM的写操作(`f5_create`/`f5_modify`/`f5_delete`)可能会影响实时流量和安全策略执行(虚拟服务器、池、节点、ASM策略/签名)。除了允许列表外,没有额外的确认步骤 - 请谨慎操作,以免对生产设备造成影响。
设计为运行为本地stdio MCP服务器,例如与LM Studio一起使用。
## 设置
```bash
uv sync
cp .env.example .env
# 编辑.env文件,填写您的BIG-IP主机和凭证
```
## 独立运行(MCP检查器)
```bash
uv run mcp dev src/f5_mcp/server.py
```
## 工具
- `f5_list_endpoints()` — 常用sys/net/ltm/asm端点的精选列表,作为起点。
- `f5_get(path, params=None)` — 获取资源或集合。
- `f5_create(path, body)` — 创建新的资源。
- `f5_modify(path, body, method="PATCH")` — 修改或更新现有的资源。
- `f5_delete(path)` — 删除资源。
- `f5_set_virtual_state(path, enabled)` — 启用或禁用LTM虚拟服务器,无需了解底层`disabled`/`enabled`字段名称(模型否则会发送空的PATCH正文,并从F5收到400错误)。
- `f5_get_asm_event(support_id, include_raw=False)` — 通过支持ID(/mgmt/tm/asm/events/requests/<support_id>)查找单个ASM请求事件。默认返回精简摘要(客户端IP、URL、违规、执行状态等);设置`include_raw=True`以获取完整的事件,包括`rawRequest`/`rawResponse`。
所有工具在发出请求前都会验证`path`是否在sys/net/ltm/asm允许列表中。
## LM Studio 配置
在LM Studio的MCP服务器设置(`mcp.json`或应用内MCP配置)中,添加:
```json
{
"mcpServers": {
"f5-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/f5-ltm-asm-mcp", "run", "f5-mcp"],
"env": {
"F5_HOST": "https://your-bigip-host",
"F5_USERNAME": "admin",
"F5_PASSWORD": "changeme",
"F5_VERIFY_SSL": "false"
}
}
}
}
```
添加此配置后,请重启LM Studio,以便其拾取新的服务器。