Mist MCP自动化服务器

Mist MCP服务器是一个用于Juniper Mist自动化的工具,提供设备搜索、站点查询和端口配置功能。

  • by ejstover
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ejstover/MistMCP

使用说明

薄雾MCP

用于Juniper Mist自动化的模型上下文协议(MCP)服务器。服务器公开了用于搜索设备、回答站点问题以及使用Mist API将特定端口配置文件应用于交换端口的工具。环境变量从 .env 文件,因此凭据不会存储在代码中。

快速开始

  1. 复制 .env.example 到 .env 并填写您的Mist API值:
    • MIST_API_TOKEN –个人访问令牌
    • MIST_ORG_ID –要查询的组织ID
    • MIST_API_BASE_URL –Mist API基础URL(默认为公共云)
    • MIST_DEFAULT_SITE_ID –可选备用站点
  2. 安装依赖项: pip install .
  3. 运行MCP服务器模块(Python的 -m 旗帜奔跑 src/mist_mcp/server.py): python -m mist_mcp.server

与克劳德一起使用

要将此MCP服务器连接到Claude Desktop,请执行以下操作:

  1. 完成快速启动步骤并确保 .env 包含您的Mist凭据。
  2. 打开Claude Desktop设置,添加指向此项目的新MCP服务器条目。JSON示例 claude_desktop_config.json:
    {
      "mcpServers": {
        "mist-mcp": {
          "command": "python",
          "args": ["-m", "mist_mcp.server"],
          "cwd": "/path/to/MistMCP",
          "envFile": "/path/to/MistMCP/.env"
        }
      }
    }
    
  3. 保存配置并重新启动Claude Desktop以便加载 mist-mcp 使用您的环境文件。

如何使用MCP服务器

连接后(例如通过Claude Desktop),您可以用自然语言提示MCP服务器。以下是网络工程师可能会使用的实用提示:

  • 库存查询
    • “查找具有IP的设备 10.10.5.12 并告诉我它的主机名和站点。"
    • “搜索MAC b8:27:eb:12:34:56 并包括序列号。"
    • “查找主机名 core-switch-3 在组织中显示模型。"
    • “使用IP查找客户端 10.0.0.150 告诉我它在哪个AP上。”
    • “谁在使用MAC aa:bb:cc:dd:ee:ff 他们现在在哪个网站?"
    • “查找名为的无线客户端 lab-laptop-01 并包括VLAN和AP细节。"
    • “今天有多少AP连接,有多少AP离线,还有多少AP有库存(从未连接)?按型号统计。”
  • 网站洞察
    • “列出德国和荷兰的所有网站。”
    • “现场有多少交换机和AP HQ-Berlin?"
    • “在过去30分钟内,哪些网站出现了警报或错误?”
  • 变更管理(编写操作)
    • “打开开关 00:11:22:33:44:55,应用端口配置文件 AP-Uplink 到端口 ge-0/0/5."
    • “对主机运行交换机电缆测试 192.0.2.10 设备上有4次ping 00000000-0000-0000-1000-5c5b350e0060."
    • “创建一个名为 Remote-Branch-42 国内代码 US 因为时区 America/New_York 和地址 123 Main St, Springfield."
    • “停止定位设备 ap-1 一旦现场技术人员发现了它。”
  • 订阅
    • 总结我们的订阅——总计、已使用、可用和下一次续订日期
    • “列出每个订阅SKU的计数和使用情况。”

提示:要确定结果范围时,请包含站点ID或名称。除非明确指出(端口配置文件更新和站点创建),否则这些工具是只读的。

工具

  • find_device –按IP、MAC或主机名搜索设备清单,并返回匹配的记录(可选范围为站点)。
  • find_client –通过IP、MAC或主机名在有线和无线端点(可选范围为站点)上查找连接的或历史的客户端。
  • list_网站 –列出带有ID的可用网站,可选择按国家代码过滤以缩小结果范围。
  • 网站_按国家/地区 –按国家代码对站点进行分组,并返回后续呼叫的站点ID/名称。
  • site_device_counts –总结特定站点的交换机、AP和其他设备类型的计数。
  • 网站_有_最近_错误 –检索过去N分钟内一个或多个站点的警报,可用于最近的事件摘要。
  • configure_switch_port_profile –将Mist端口使用配置文件应用于特定交换机端口(写入操作)。
  • 开关电缆测试 –在交换机上运行电缆测试(TDR ping),并返回命令会话和websocket通道以获取流式结果。
  • 创建_站点 –创建新的Mist站点(需要 name, country_code, timezone,以及 address).
  • 订阅_摘要 –报告订阅总数、使用情况、下次续订日期和原始订阅详细信息。
  • 库存_数据_摘要 –按型号报告总、连接、断开连接和库存设备计数,可选择按以下方式过滤 site_id 和 device_types (例如。, ap, switch).
  • 组织_设备_摘要 –使用Mist的设备摘要端点按类型返回组织范围内的设备计数。
  • list_guest_authorities –列出客人授权记录,包括代码、到期时间和元数据。
  • 列表_站点_网络 –列出为站点配置的派生网络(子网/VLAN)。
  • ping_from_device –从设备运行ping,并为流式输出提供命令websocket通道。
  • site_port_usages –从站点设置中获取导出的端口使用定义,以选择正确的交换机配置文件。
  • 确认_所有警报 –确认(清除)现场的每个警报。
  • 确认警报 –通过报警ID列表确认现场的特定报警。
  • 确认警报 –通过报警ID确认现场的单个报警。
  • 停止_站点_类别_设备 –关闭LED/端口闪烁指示灯,停止定位接入点或交换机。

提示

prompts/list 将显示您可以直接调用的已注册助手,而不是制作自定义请求:

  • 库存_概述_赠品 –通话 inventory_status_summary.输入:可选 site_id 和 device_types (列表如 ["ap", "switch"]).
  • device_lookup_prompt –通话 find_device.输入: identifier (IP、MAC或主机名)和可选 site_id.
  • 客户端_lookup_prompt –通话 find_client.输入: identifier (IP、MAC或主机名)和可选 site_id.
  • list_sites_prompt –通话 list_sites.输入:可选 country_codes 阵列(例如。, ["DE", "NL"]).
  • 站点_按国家_提示 –通话 sites_by_country.输入:可选 country_codes 阵列(例如。, ["US", "CA"]).
  • bounce_device_port_prompt –通话 bounce_device_port.输入:可选 site_id,必填 device_id以及端口列表(例如。, ["ge-0/0/0"]).
  • 站点错误提示 –通话 sites_with_recent_errors.输入: minutes 窗口加可选 site_ids 阵列或 country_codes.
  • locate_device_prompt –通话 locate_device.输入:可选 site_id 并且是必需的 device_id.

资源

resources/list 将显示您可以直接读取的已注册静态引用:

  • resource://mist-glossary –Juniper Mist MCP规范实体、标识符、字段、端点提示和最佳实践术语表。

设计注意事项

  • 请求通过一个处理身份验证和可选站点默认值的小型Mist客户端包装器进行路由。
  • 写操作(如应用端口配置文件或创建站点)依赖于Mist REST API PUT/POST端点。
  • 其他工具可以叠加到同一个工具上 FastMCP 未来的服务器。