Nautobot MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个基于 Model Context Protocol(MCP)的后端服务,面向大型语言模型(LLM)应用,提供对 Nautobot API 的标准化访问、知识库索引与查询、以及工具注册与执行等能力,帮助 LLM 客户端以统一的上下文与能力集进行交互。
-
主要功能点
- 资源管理与数据访问:对 Nautobot API 的端点进行语义发现和动态访问,支持 CRUD 操作与参数化查询。
- 工具注册与执行:注册多种可调用工具,如动态 API 请求、端点搜索、知识库检索、仓库管理等,LLM 可调用并得到结构化响应。
- Prompt 模板渲染与上下文渲染:支持可定制的提示模板和上下文渲染,提升与 LLM 的交互效果。
- 知识库与端点索引的向量化检索:基于 ChromaDB/嵌入模型实现对 Nautobot 文档与示例代码的语义检索。
- 多传输协议支持:标准的标准输入/输出(stdio)实现,以及基于 HTTP 的实时传输(HTTP/WS)实现,便于不同环境集成。
- 会话与权限管理:包含会话与设备能力声明,确保以安全、可扩展的方式向客户端提供资源与工具。
-
安装步骤
- 依赖环境:Python 3.11 及以上。
- 获取源码:将仓库克隆到本地或服务器。
- 安装修复与依赖:
- 使用本地化安装方式(开发模式)安装包依赖。
- 需要配置环境变量(例如 Nautobot 的 API 访问凭据、GitHub 令牌、API 基础地址等)。
- 启动服务(两种入口方式任选其一):
- 标准 I/O 传输(stdio):在项目根目录执行服务器入口,支持与 MCP 客户端以标准输入/输出通信。
- HTTP 传输:通过 server_http.py 启动 HTTP 传输的 MCP 服务,适合浏览器或 http 客户端接入。
- 运行后,服务会初始化向量存储、刷新端点索引、更新知识库仓库,并开始对外提供 MCP 请求。
-
服务器配置(给 MCP 客户端使用的启动信息,JSON 格式) 说明:MCP 客户端需要知道服务器的名称、启动命令和参数,以便正确连接并发送请求。以下信息基于仓库默认设置与常见实践给出示例,请按实际部署路径替换其中的目录与参数。 { "server_name": "nautobot_mcp_server", "command": "uv", "args": [ "run", "--directory", "/path/to/nautobot_mcp", "python3", "-m", "server" ], "note": "上述命令是以 stdio 传输为例的传统启动方式;若选择 HTTP 传输,请使用 server_http 入口,例如把最后的模块改为 "-m","server_http",并确保端口及路由正确暴露。" }
-
基本使用方法
- 启动服务后,确保环境变量和依赖就绪,客户端即可通过 MCP 协议向服务器请求资源、调用工具、获取 Prompts 等能力。
- 客户端常见操作包含:1) 通过端点搜索获取 Nautobot API 的端点路径与参数;2) 通过动态 API 请求向 Nautobot 发起具体请求;3) 使用知识库工具检索 Nautobot 的示话文档与示例代码;4) 管理知识库中的仓库(列出、添加、移除、更新、初始化、查看状态)。
- 如需调试,可查看健康接口、工具列表、以及具体工具的输入输出样式,确保请求/响应符合 MCP 的 JSON-RPC 形式。
-
备注
- 服务器提供多种工具与功能,详细的参数与返回结构请参考相应的帮助文档与工具描述。
- 部署前请确保 Nautobot 实例可访问且具备必要 token/URL 配置,以及 GitHub 令牌用于知识库索引更新。