使用说明
netbox mcp
A. 模型上下文协议 (MCP)服务器,将Claude和其他兼容MCP的AI客户端连接到实时 NetBox 例子
问以下问题 “纽约网站上的哪些设备目前正在维护中?” 或 “显示分配给web01的所有IP及其VRF” -服务器将它们转换为实时NetBox API查询并返回结构化结果。
- 只读 --所有169个工具都查询NetBox,但未进行任何更改
- 标准输入输出传输 --作为MCP客户端管理的本地子流程运行
- 代币高效 --在交付之前,响应被精简,将典型的NetBox有效负载减少了50-70%
目录
需求
- 具有有效API令牌的正在运行的NetBox实例
- 从源代码构建:Rust-stable工具链(
rustup install stable) - 要使用预构建的二进制文件:nothing——从 发布页面
安装
预构建二进制文件(推荐)
从以下网址下载适用于您平台的二进制文件 发布页面 把它放在你的某个地方 $PATH.
来源
git clone https://github.com/3kirt/netbox-mcp
cd netbox-mcp
make install
安装 netbox-mcp 二进制到 $CARGO_HOME/bin (通常 ~/.cargo/bin).
配置
netbox mcp从以下位置读取凭据 ~/.netbox_mcp.json:
{
"url": "https://netbox.example.com",
"token": "your-api-token"
}
环境变量优先于配置文件:
| 变量 | 描述 |
|---|---|
NETBOX_URL |
NetBox基本URL |
NETBOX_TOKEN |
NetBox API令牌 |
可以使用指定自定义配置文件路径 --config:
netbox-mcp --config /path/to/config.json
获取API令牌
令牌可以在NetBox中创建 管理员→ API令牌或通过API提供:
curl -s -X POST https://netbox.example.com/api/users/tokens/provision/ \
-H "Content-Type: application/json" \
-d '{"username": "you", "password": "yourpassword"}' \
| jq '.key'
因为netbox mcp是只读的,所以创建一个 只读令牌 (在令牌设置中取消选择“已启用写入”)。如果服务器开始返回403错误,请检查令牌是否已过期。
客户端设置
克劳德桌面版
将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"netbox": {
"command": "netbox-mcp",
"env": {
"NETBOX_URL": "https://netbox.example.com",
"NETBOX_TOKEN": "your-api-token"
}
}
}
}
配置文件位置:
| 操作系统 | 路径 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
| 窗户 | %APPDATA%\Claude\claude_desktop_config.json |
克劳德代码
通过CLI注册:
claude mcp add --transport stdio \
--env NETBOX_URL=https://netbox.example.com \
--env NETBOX_TOKEN=your-api-token \
netbox -- netbox-mcp
与您的团队共享配置(写信至 .mcp.json):
claude mcp add --transport stdio --scope project \
--env NETBOX_URL=https://netbox.example.com \
netbox -- netbox-mcp
可用工具
169个只读工具,涵盖10个NetBox API区域:
| 区域 | 覆盖范围 |
|---|---|
| 数字内容图像管理 | 站点、机架、设备、接口、电缆、电源、模块、库存 |
| ipad | IP地址、前缀、VRF、VLAN、聚合、范围、ASN、FHRP |
| 虚拟化 | VM、集群、VM接口、虚拟磁盘 |
| 电路 | 电路、供应商、电路类型、端子 |
| 虚拟专用网络 | 隧道、L2VPN、IKE/IPSec策略 |
| 无线 | 无线局域网、局域网组、无线链路 |
| 租赁 | 租户、租户组、联系人、联系人角色 |
| 额外内容 | 标签、配置上下文、日记条目、自定义字段、Webhook |
| 核心 | 数据源、后台作业、对象更改日志 |
| 用户 | 用户、组、API令牌 |
每个区域提供 list (带过滤器)和 get (按ID)工具。元工具 netbox_lookup_host 在单个调用中按名称搜索物理设备和VM。
发展
make build # cargo build
make test # cargo test --all (unit tests, offline)
make test-live # live integration tests against a seeded NetBox
make lint # cargo clippy -- -D warnings && cargo fmt --check
make clean # remove build artifacts
make docker-build # build Docker image
测试
两层验证不同的风险——快速离线单元测试和功能门控
检查真实NetBox API逼真度的实时套件。一个自给自足的,
实时套件所在的NetBox堆栈的自动种子设置
test/netbox-docker/ (macOS上的Podman):
cd test/netbox-docker && ./up.sh # boot + seed a local NetBox
NETBOX_URL=http://localhost:8000 \
NETBOX_TOKEN=0123456789abcdef0123456789abcdef01234567 make test-live
看 docs/testing.md 了解完整的基本原理以及如何添加
新闻报道。