内容
# NetBox MCP 服务器
一个连接 NetBox 并为 Claude 及其他 MCP 兼容的 LLM 提供网络基础设施数据的模型上下文协议(MCP)服务器。
## 概述
该服务器在 NetBox 和 MCP 兼容的 LLM(如 Claude)之间提供了一个桥梁,使您能够:
- 查询和分析您的网络基础设施数据
- 检查设备配置和连接
- 检查虚拟化集群和虚拟机
- 分析 VLAN、IP地址分配等
- 生成网络拓扑信息
- 检测集群中的 NVMe 存储
服务器暴露:
- **工具**:执行操作的函数
## 要求
- Python 3.10 或更高版本
- 具有 API 访问权限的 NetBox 实例
- 具有读取权限的 NetBox API 令牌
- 用于 HTTP 请求的 `httpx` 库
- 用于模型上下文协议的 `mcp` Python SDK
## 安装
### 使用 uv(推荐)
```bash
# 创建虚拟环境
uv venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
# 安装所需包
uv add mcp httpx
```
### 使用 pip
```bash
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 安装所需包
pip install mcp httpx
```
## 使用
### 直接运行服务器
```bash
python netbox_server.py --url https://your-netbox-instance.example.com --token your-api-token
```
您也可以设置环境变量而不是使用命令行参数:
```bash
export NETBOX_URL="https://your-netbox-instance.example.com"
export NETBOX_TOKEN="your-api-token"
python netbox_server.py
```
### 与 Claude Desktop 集成
要与 Claude Desktop 集成:
1. 从 [https://claude.ai/download](https://claude.ai/download) 安装 Claude Desktop
2. 打开 Claude 菜单并选择“设置...”
3. 点击左侧边栏中的“开发者”
4. 点击“编辑配置”
5. 将 NetBox 服务器配置添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"netbox": {
"command": "python",
"args": [
"/path/to/netbox_server.py",
"--url",
"https://your-netbox-instance.example.com",
"--token",
"your-api-token"
]
}
}
}
```
6. 保存文件并重启 Claude Desktop
## 可用功能
### 工具
服务器提供以下工具:
- `get_all_clusters` - 获取所有集群的关键信息列表
- `get_cluster_virtual_machines` - 获取特定集群中的所有虚拟机
- `get_cluster_interfaces` - 获取集群中所有虚拟机的所有接口
## Claude 示例查询
一旦服务器连接到 Claude Desktop,您就可以询问以下问题:
- “显示我 NetBox 实例中的所有集群列表”
- “显示我们主要集群中的所有虚拟机”
## 许可证
该项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
## 致谢
- [NetBox](https://github.com/netbox-community/netbox) - 网络基础设施建模
- [模型上下文协议](https://modelcontextprotocol.io) - 为 LLM 提供上下文的协议
- [Claude](https://claude.ai) - Anthropic 的 AI 助手