Token导航 LogoToken导航TokenDH.com
nautobot MCP logo
运维云端未说明官方级别未说明来源级核验

nautobot MCP

MCP Server

Nautobot MCP Chat Interface是一个基于Docker的演示项目,提供FastMCP服务器和轻量级聊天界面,支持多工具并发执行和递归工具链式调用,用于复杂网络数据分析。

工具数

9

提示词数

0

GitHub Stars

3

资源数

0
Python聊天界面云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ColtMercer

提供方

ColtMercer

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Nautobot MCP聊天界面

一个自包含的、码头化的演示,它公开了一个 FastMCP Nautobot OSS平台的服务器,加上轻量级 聊天用户界面 它可以列出可用的MCP工具,调用它们,并导出聊天记录。

Chat Interface Screenshot

🚀 版本2.0:多工具和递归工具调用

2.0版本引入了并发工具执行和递归工具链的高级功能,实现了从多个来源自动收集全面数据的复杂网络分析查询。

多工具执行

  • 同时执行多个工具以进行全面的数据收集
  • 不同数据源之间的自动协调
  • 智能查询规划和执行排序

递归工具链

  • 一个工具的结果会自动通知后续的工具调用
  • 基于先前结果的动态数据驱动工具选择
  • 无缝链接相关查询以进行深入分析

增强的数据展示

  • 具有表格和结构化数据的丰富标记格式
  • 自动突出显示关键信息(广域网接口、电路等)
  • 具有网络拓扑理解的综合分析

实时状态更新

  • 工具执行过程中的详细进度跟踪
  • 性能指标和时间信息
  • 明确表示加工阶段和完成情况

智能上下文管理

  • 缓存数据重复用于后续问题
  • 无冗余工具调用的上下文感知响应
  • 对以前收集的信息进行智能分析

📋 目录

- 步骤1:启动服务 - 步骤2:配置环境 - 步骤3:获取OpenAI API密钥 - 步骤4:创建管理员用户 - 步骤5:获取Nautobot API代币 - 步骤6:访问聊天界面

🚀 快速开始

# 1. Start all services
docker-compose up -d

# 2. Copy environment file and configure
cp .env.example .env

# 3. Get OpenAI API key (required for chat functionality):
#    - Go to https://platform.openai.com/api-keys
#    - Create a new API key
#    - Add it to your .env file: OPENAI_API_KEY=your_openai_api_key_here

# 4. Create admin user
docker exec -it nautobot_mcp-1-nautobot-1 nautobot-server createsuperuser --username admin --email admin@example.com

# 5. Get your Nautobot API token:
#    - Go to http://localhost:8080 and log in with your username and password
#    - Navigate to your User Profile → API Tokens → Add token
#    - Copy the token key and update your .env file: NAUTOBOT_TOKEN=your_api_token_here
#    - Restart the services: docker-compose restart

# 6. Open the chat UI
#    http://localhost:8501

🎯 包含什么

  • 瑙托波特 使用种子演示数据并启用GraphQL
  • FastMCP服务器 将Nautobot实用程序作为MCP工具公开
  • 聊天界面 用于测试MCP工具和导出对话
  • 演示数据 包括位置、设备、接口和IPAM

🔧 设置步骤

步骤1:启动服务

docker-compose up -d

步骤2:配置环境

cp .env.example .env

步骤3:获取OpenAI API密钥

  1. 首选https://platform.openai.com/api-keys
  2. 创建新的API密钥
  3. 将其添加到您的 .env 文件:
   OPENAI_API_KEY=your_openai_api_key_here

备注:这是聊天功能正常工作所必需的。

步骤4:创建管理员用户

docker exec -it nautobot_mcp-nautobot-1 nautobot-server createsuperuser --username admin --email admin@example.com

步骤5:获取Nautobot API代币

  1. 首选http://localhost:8080并登录
  2. 引导到 用户档案API令牌添加令牌
  3. 复制令牌并更新您的 .env 文件:
   NAUTOBOT_TOKEN=your_api_token_here
  1. 重新启动服务:
   docker-compose restart

步骤6:访问聊天界面

打开http://localhost:8501在您的浏览器中

🛠️ MCP工具可用

  1. get_prefixes_by_location_enhanced -使用格式选项按位置查询前缀
  2. get_devices_by_location -在特定位置获取设备
  3. get_devices_by_location_and_role -按位置和角色获取设备
  4. get_interfaces_by_device -获取设备的接口、IP地址和电路信息
  5. get_circuits_by_location -获取特定位置的电路
  6. get_circuits_by_provider -获取特定供应商的电路
  7. get_locations -获取所有具有层次结构信息的可用位置
  8. get_providers -获取所有可用的电路提供商
  9. 动态工具发现 -聊天UI自动发现并显示可用工具

📊 演示数据结构

该系统包括一个全面的网络拓扑:

  • 位置:地区→ 国家→ 校园/分支机构/数据中心
  • 设备:广域网路由器、核心路由器、接入交换机、骨干/叶子交换机
  • 接口:正确配置VLAN和IP地址
  • ipad:与位置和接口关联的前缀

💬 查询示例

在聊天界面中尝试以下操作:

基本位置查询(仅使用精确的位置代码):

  • “NYDC有哪些前缀?”
  • “显示BRCN上的所有设备”
  • “列出USBN1上的设备”
  • “LODC是什么?”

发现查询:

  • “系统中有哪些可用位置?”
  • “显示所有电路提供程序”
  • “列出所有可用的地点及其所在的国家和地区”

电路查询:

  • “给我一份BRCN位置的电路清单”
  • “显示NYDC和DACN的所有电路”
  • “LODC提供哪些电路?”
  • “列出USBN1和USBN2的所有电路”
  • “显示供应商Zayo的所有电路”
  • “AT&T提供哪些电路?”
  • “列出3级的所有电路”

设备角色查询:

  • “显示NYDC的所有广域网路由器”
  • “列出LODC的所有Spine交换机”
  • “BRCN有哪些Leaf开关?”
  • “显示USBN1上的所有分支接入交换机”
  • “列出DACN的核心路由器”
  • “MXCN有哪些校园接入交换机?”

界面查询:

  • “BRCN-WAN01上有哪些接口?”
  • “显示NYDC-CORE-01上的所有接口”
  • “列出DACN-ACC01上的接口”
  • “LODC-SPINE-01上的广域网接口是什么?”

复杂分析查询(2.0版-多工具和递归):

并行工具执行:

  • “你能提供BRCN位置的前缀和设备,并告诉我这些设备上有什么接口吗?”
  • “显示NYDC的所有设备及其接口配置”
  • “LODC的广域网接口及其电路信息是什么?”
  • “获取USBN1上的所有设备,并向我展示它们的IP地址接口”

递归工具链:

  • “显示BRCN上的所有WAN路由器,然后获取每个路由器的接口”
  • “列出NYDC的所有核心设备,并向我展示它们的接口详细信息”
  • “在DACN获取所有设备,然后向我显示每个设备的接口”
  • “在LODC找到所有WAN路由器并显示其接口配置”

交叉位置分析:

  • “比较BRCN和NYDC的广域网路由器-向我展示它们的接口和电路”
  • “在DACN和LODC获取所有核心设备,并显示其接口配置”
  • “显示BRCN、NYDC和DACN的所有电路”
  • “比较USBN1和USBN2之间的网络拓扑-设备、接口和电路”

高级网络分析:

  • 分析BRCN的网络:显示前缀、设备、接口和电路
  • “给我一个完整的NYDC网络概述,包括所有设备、接口和任何电路”
  • “显示DACN的完整网络拓扑,包括设备、接口、IP地址和电路”
  • “对LODC网络进行全面分析,包括所有网络组件”

基于发现的分析:

  • “首先显示所有可用位置,然后分析最大校园的网络”
  • “列出所有提供商,然后向我显示最常见提供商的电路”
  • “哪些位置可用,哪些位置的设备最多?”
  • “显示所有供应商,然后从每个供应商那里获取电路”
  • “首先发现可用位置,然后为每个数据中心获取设备和电路”

查询疑难解答:

  • “哪些电路连接到BRCN的WAN接口?”
  • “显示NYDC上所有具有IP地址的接口”
  • “列出DACN上具有电路连接的所有设备”
  • “在LODC找到所有WAN路由器并显示其电路信息”

📤 导出聊天记录

聊天UI可以将对话导出到:

  • JSON格式 -使用工具调用元数据完成对话
  • Markdown格式 -带有工具调用详细信息的可读日志

🏗️ 建筑

+-------------------+         +-------------------+       +------------------+
|  Chat UI         |  |  MCP Client SDK   |   |  FastMCP Server  |
|  (Flask/HTML)    |         |  (tool catalog)   |       |  (Nautobot tools)|
+-------------------+         +-------------------+       +--------+---------+
                                                                     |
                                                                     v
                                                             +---------------+
                                                             |   Nautobot    |
                                                             | (GraphQL API) |
                                                             +---------------+

🤝 贡献新工具

要向服务器添加新的MCP工具,请执行以下操作:

1.添加工具功能

在中创建工具功能 services/mcp-nautobot/mcp_server/tools/ 目录。

2.在服务器中注册工具

将工具添加到 services/mcp-nautobot/mcp_server/server.py:

# Create Tool instance
my_tool = Tool.from_function(
    fn=my_tool_function,
    name="my_tool_name",
    description="""Detailed description of what the tool does.

        Args:
            param1: Description of parameter 1
            param2: Description of parameter 2

        Returns:
            Description of what the tool returns
        """
)

# Add to server
server.add_tool(my_tool)

3.工具说明和LLM沟通

description 字段是至关重要的-这是LLM阅读理解的内容:

  • 该工具的功能是什么
  • 它接受哪些参数
  • 它返回什么
  • 示例值和格式

LLM使用此描述来决定何时以及如何调用您的工具。具体点,并举例说明!

🔍 故障排除

一般问题

  • 服务未启动:检查 docker-compose logs 对于错误
  • 聊天UI未加载:确保所有服务都健康 docker-compose ps
  • API错误:验证您的 NAUTOBOT_TOKEN 在中设置正确 .env

种子数据问题

如果您在查询中没有看到数据,则种子容器可能已失败:

  1. 检查种子容器日志:
   docker-compose logs seed-data
  1. 查找常见的种子错误:

- 与Nautobot的连接超时 - 身份验证失败 - 违反数据库约束 - 缺少的依赖

  1. 如果需要,重新运行种子容器:
   # Stop and remove the seed container
   docker-compose rm -f seed-data

   # Restart it to rerun the seeding process
   docker-compose up -d seed-data

   # Check logs again
   docker-compose logs -f seed-data
  1. 验证数据是否已创建:

- 首选http://localhost:8080登录Nautobot - 检查位置、设备和前缀是否存在 - 如果不存在数据,则种子进程失败

  1. 常见的种子容器问题:

- Nautobot尚未准备就绪:种子容器在Nautobot完全初始化之前启动 - 网络连接:容器无法访问Nautobot API - 权限问题:API令牌没有足够的权限 - 数据库锁:并发操作导致冲突

📝 许可证

阿帕奇-2.0

目录标签

目录标签

Python聊天界面云端部署网络分析本地部署多工具执行递归工具链Nautobot

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP