NetBox查询服务

一个连接Claude和其他MCP兼容AI客户端到实时NetBox实例的模型上下文协议服务器,用于执行实时查询并返回结构化结果。

  • by 3kirt
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 3kirt/netbox-mcp

使用说明

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 了解完整的基本原理以及如何添加 新闻报道。


许可证

GPL-3.0