一个独立的、容器化的演示,它暴露了一个用于Nautobot开源平台的FastMCP服务器,并提供了一个轻量级的聊天UI,可以列出可用的MCP工具,调用它们并导出聊天记录。

版本2.0引入了先进的并发工具执行和递归工具链功能,能够自动从多个来源收集全面的数据,进行复杂的网络分析查询。
# 1. 启动所有服务
docker-compose up -d
# 2. 复制环境文件并配置
cp .env.example .env
# 3. 获取OpenAI API密钥(聊天功能所需):
# - 访问 https://platform.openai.com/api-keys
# - 创建一个新的API密钥
# - 将其添加到你的.env文件中:OPENAI_API_KEY=your_openai_api_key_here
# 4. 创建管理员用户
docker exec -it nautobot_mcp-1-nautobot-1 nautobot-server createsuperuser --username admin --email admin@example.com
# 5. 获取你的Nautobot API令牌:
# - 访问 http://localhost:8080 并使用用户名和密码登录
# - 导航到您的用户资料 → API令牌 → 添加令牌
# - 复制令牌键并更新你的.env文件:NAUTOBOT_TOKEN=your_api_token_here
# - 重启服务:docker-compose restart
# 6. 打开聊天UI
# http://localhost:8501
docker-compose up -d
cp .env.example .env
.env文件中:
OPENAI_API_KEY=your_openai_api_key_here
注意:这需要正确设置以使聊天功能正常工作。docker exec -it nautobot_mcp-nautobot-1 nautobot-server createsuperuser --username admin --email admin@example.com
.env文件:
NAUTOBOT_TOKEN=your_api_token_here
docker-compose restart
在浏览器中打开 http://localhost:8501
get_prefixes_by_location_enhanced - 根据位置查询前缀,带格式选项get_devices_by_location - 获取特定位置的设备get_devices_by_location_and_role - 根据位置和角色获取设备get_interfaces_by_device - 获取设备的接口、IP地址和电路信息get_circuits_by_location - 获取特定位置的电路get_circuits_by_provider - 获取特定提供商的电路get_locations - 获取所有可用位置及其层级信息get_providers - 获取所有可用电路提供商系统包括一个全面的网络拓扑:
在聊天UI中尝试这些查询:
聊天UI可以导出对话:
+-------------------+ +-------------------+ +------------------+
| 聊天UI | <-----> | MCP客户端SDK | <--> | FastMCP服务器 |
| (Flask/HTML) | | (工具目录) | | (Nautobot工具)|
+-------------------+ +-------------------+ +--------+---------+
|
v
+---------------+
| Nautobot |
| (GraphQL API) |
+---------------+
要向服务器添加新的MCP工具:
在services/mcp-nautobot/mcp_server/tools/目录下创建你的工具函数。
在services/mcp-nautobot/mcp_server/server.py中添加工具:
# 创建工具实例
my_tool = Tool.from_function(
fn=my_tool_function,
name="my_tool_name",
description="""详细的工具描述。
参数:
param1: 参数1的描述
param2: 参数2的描述
返回值:
描述工具返回的内容
"""
)
# 添加到服务器
server.add_tool(my_tool)
description字段至关重要 - 这是LLM阅读以了解:
LLM使用此描述来决定何时以及如何调用你的工具。具体说明并包含示例!
docker-compose logs中的错误docker-compose psNAUTOBOT_TOKEN是否在.env中正确设置如果你的查询中没有看到数据,可能是种子容器失败了:
检查种子容器日志:
docker-compose logs seed-data
查找常见的种子错误:
如有必要,重新运行种子容器:
# 停止并删除种子容器
docker-compose rm -f seed-data
# 重新启动以重新运行播种过程
docker-compose up -d seed-data
# 再次检查日志
docker-compose logs -f seed-data
验证数据已创建:
常见的种子容器问题:
Apache-2.0