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 令牌用于知识库索引更新。

服务器信息