内容
# fortinac-mcp
用于诊断 FortiNAC 7.6 中流氓主机的 MCP 服务器。
通过查询 FortiNAC REST API,交叉引用每个设备与配置文件规则,并运行 nmap 扫描,以精确识别阻止分类的条件。
## 前提条件
- Python 3.10+
- nmap (`brew install nmap`)
- 具有对主机和配置文件规则的读取权限的 FortiNAC API 令牌
## 安装
```sh
cd fortinac-mcp
python3 -m venv .venv
.venv/bin/pip install -e .
```
## 配置
在 `~/.mcp.json` 中添加:
```json
{
"fortinac": {
"type": "stdio",
"command": "/chemin/vers/fortinac-mcp/.venv/bin/python",
"args": ["-m", "fortinac_mcp"],
"env": {
"FORTINAC_URL": "https://fortinac.example.com",
"FORTINAC_TOKEN": "您的 API 令牌",
"FORTINAC_VERIFY_SSL": "false"
}
}
}
```
重启 Claude Code 以加载服务器。
## 工具
- `check_status` -- 检查 API 连接和 nmap 可用性
- `list_rogues` -- 列出流氓主机(MAC、IP、供应商、VLAN)
- `diagnose_rogues` -- 批量诊断:针对所有配置文件规则测试每个流氓主机
- `diagnose_host` -- 通过 MAC 地址诊断单个主机
- `scan_host` -- 对 IP 进行 nmap 扫描(端口、服务、操作系统)
- `lookup_vendor` -- 从 MAC 地址查找供应商
- `get_profiling_rules` -- 从 FortiNAC 导出配置文件规则
- `get_host_details` -- 主机的完整详细信息
- `reprofile_all_rogues` -- 在 FortiNAC 端重新评估流氓主机
## 诊断
对于每个流氓主机,`diagnose_rogues` 检查:
- 供应商 OUI(MAC / 预期供应商匹配)
- 通过 nmap 打开的端口(与配置文件规则所需的端口相比)
- DHCP 指纹(存在和匹配)
- SNMP OID(响应和预期值)
- IP 范围(正确的子网)
- 位置(网络位置)
报告指示通过的条件、失败的条件,并提出纠正措施。