SuperAPI AI 工具集

netbox-mcp

netbox-mcp 是一个基于 FastMCP 构建的小型 Model Context Protocol(MCP)服务器,为 NetBox 实例提供接口。它将 NetBox 资源(如站点、站点组、设备等)暴露为 MCP 工具,并通过流式 HTTP 传输运行,使客户端能够连接并逐步接收流式响应。需要设置 NETBOX_URL 和 NETBOX_TOKEN 环境变量,可选 MCP_PORT(默认 8000)控制端口。适合希望以 MCP 方式与 NetBox 交互的开发者,但项目以“按原样”提供,功能有限且未提供完整文档。

访问官网

工具介绍

用途

netbox-mcp 是一个小型 Model Context Protocol(MCP)服务器,使用 FastMCP 构建,为 NetBox 实例提供接口。该仓库将 NetBox 资源(站点、站点组、设备等)暴露为 MCP 工具,并运行流式 HTTP 传输,使客户端可以连接并接收从 MCP 服务器流式返回的响应。

主要能力

  • 通过 FastMCP 注册 MCP 工具,工具在 app.py 中使用 @mcp.tool 装饰器定义。
  • 内置 NetBoxClient 异步辅助类,包装 httpx.AsyncClient 以调用 NetBox API。
  • 使用流式 HTTP 传输(mcp.run(transport="http", ...)),支持流式/分块响应,适合希望逐步消费事件或长时间运行响应的客户端。
  • 仓库中已包含的示例工具:search_sites(搜索 dcim/sites/,支持部分/不区分大小写的名称查询)、get_site_details(站点查找)、search_site_groups(搜索 dcim/site-groups/,支持 name__ic)、get_site_group_details(按 id 查找单个站点组)。
  • 可按照仓库约定添加更多工具:每个 NetBox 资源对应一个 search_<resource> 和一个 get_<resource>_details 工具。

使用方式

  1. 在运行服务器前设置环境变量:
    • NETBOX_URL — NetBox 实例的基础 URL(默认:https://netbox.example.com)。
    • NETBOX_TOKEN — 具有读取权限的 NetBox API 令牌。
    • MCP_PORT — FastMCP HTTP 传输的端口,未设置时默认为 8000;如果值不是有效整数,服务器将报错退出。
  2. 示例(macOS / zsh):通过 Python 启动 MCP 服务器。
  3. 服务器将绑定到 0.0.0.0 上配置的端口,并提供 FastMCP HTTP 传输。
  4. 客户端连接后请求工具(例如 search_sites 或 get_site_group_details),FastMCP 调用 app.py 中关联的 Python 函数,该函数可能通过 NetBoxClient 调用 NetBox,结果在可用时通过 HTTP 传输流式返回。

适用场景

适用于需要以 MCP 方式与 NetBox 交互的场景,尤其是希望客户端逐步消费流式响应而非等待完整结果的集成。

限制

  • 项目的 HTTP 路径/形式由 FastMCP 运行时提供,客户端应使用兼容的 MCP 客户端或支持读取分块/流式响应的 HTTP 客户端。
  • 由于确切的 HTTP 请求形式(路径、标头和负载)由 FastMCP 运行时和客户端定义,建议优先使用现有的 MCP 客户端库;如果构建自定义客户端,需确保支持读取分块响应以逐步消费流式结果。
  • 如果添加工具,需遵循仓库约定(.github/copilot-instructions.md 中有文档):每个资源应有 search_ 和 get_ 工具,并带有描述性文档字符串和一致的参数映射。
  • 项目按“原样”提供。
  • 暂未提供收费、价格或平台信息。