使用说明
思科Meraki MCP服务器
模型上下文协议(MCP)服务器,提供与CiscoMerakiDashboardneneneba API交互的工具,实现对Meraki网络的大规模编程管理和监控。
概述
该MCP服务器允许AI助手通过Meraki Dashboard API管理和监控Cisco Meraki云管理网络。它提供了以下工具:
- 组织管理:列出和访问Meraki组织
- 网络管理:列出并管理组织内的网络
- 设备管理:监控和管理网络设备(接入点、交换机、安全设备)
- 客户端监控:跟踪连接的客户端及其使用情况
- 上行链路监测:监控广域网连接和上行链路健康状况
特性
- ✅ 只读操作:无需修改配置即可进行安全监控和报告
- ✅ 多种响应格式:支持Markdown(人类可读)和JSON(机器可读)
- ✅ 全面的错误处理:用于故障排除的清晰、可操作的错误消息
- ✅ 过滤支持:按产品类型、网络、标签和状态过滤设备
- ✅ 分页就绪:通过截断和引导处理大型数据集
- ✅ 了解费率限制:包括Meraki API速率限制的处理(每个组织10请求/秒)
先决条件
- Python 3.10或更高版本
- 具有API访问权限的Cisco Meraki Dashboard帐户
- Meraki API 密钥
安装
- 安装MCP Python SDK:
pip install mcp httpx pydantic --break-system-packages
- 将Meraki API密钥设置为环境变量:
export MERAKI_API_KEY="your_api_key_here"
获取Meraki API密钥:
- 登录 Meraki仪表板
- 导航至 组织→ 配置→ API和Webhooks
- 点击 “生成API密钥” 在“API密钥和访问”选项卡下
- 复制生成的API密钥
⚠️ 安全说明:永远不要将API密钥提交给版本控制。始终使用环境变量。
用法
运行服务器
使用以下命令运行MCP服务器 mcp 命令:
mcp run meraki_mcp.py
或者直接执行:
python meraki_mcp.py
可用工具
1. meraki_list_组织
列出API密钥可访问的所有Meraki组织。
用例:
- 查找其他API调用的组织ID
- 列出您管理的所有组织
- 获取组织详细信息以进行报告
示例:
List all my Meraki organizations
2. meraki_list_网络
列出特定组织内的所有网络。
参数:
organization_id:要查询的组织IDresponse_format:输出格式(markdown或json)
用例:
- 查找用于设备管理的网络ID
- 列出组织中的所有网络
- 检查每个网络支持哪些产品类型
示例:
List all networks in organization 549236
3. meraki_get-network
获取特定网络的详细信息。
参数:
network_id:要检索的网络IDresponse_format:输出格式(markdown或json)
用例:
- 获取网络配置详细信息
- 检查启用的产品类型
- 验证网络设置
示例:
Get details for network N_24329156
4. meraki_list_devices
使用可选筛选列出组织中的所有设备。
参数:
organization_id:组织IDproduct_types:按设备类型(无线、开关、电器等)选择过滤器network_ids:可选的按网络ID筛选tags:可选的按设备标签筛选response_format:输出格式(markdown或json)
用例:
- 列出所有无线接入点
- 在特定网络中查找设备
- 获取设备清单以进行报告
- 查找带有特定标签的设备
示例:
List all wireless devices in organization 549236
Show me switches in network N_24329156
5. meraki_get-device_status
获取组织中设备的实时状态。
参数:
organization_id:组织IDstatuses:可选状态过滤器(在线、离线、警报、休眠)product_types:按产品类型选择过滤器network_ids:可选的按网络ID筛选response_format:输出格式(markdown或json)
用例:
- 监控哪些设备处于联机或脱机状态
- 检查需要注意的报警装置
- 获取实时网络健康状况概览
- 解决连接问题
示例:
Show me all offline devices in organization 549236
Which devices are alerting?
6. meraki_get_device
获取特定设备的详细信息。
参数:
serial:设备序列号response_format:输出格式(markdown或json)
用例:
- 获取设备配置详细信息
- 检查设备固件版本
- 验证设备网络分配
- 获取设备位置信息
示例:
Get details for device Q234-ABCD-5678
7. meraki_list_网络_客户端
列出指定时间范围内连接到网络的客户端。
参数:
network_id:网络IDtimespan:时间跨度(秒)(默认86400=1天,最大2592000=30天)response_format:输出格式(markdown或json)
用例:
- 监控连接的设备
- 跟踪客户端数据使用情况
- 识别未经授权的设备
- 分析网络利用率
示例:
Show me clients connected to network N_24329156 in the last 24 hours
List all clients from the past week
8. meraki_get-organization_uplinks_状态
获取组织中所有设备的上行链路状态。
参数:
organization_id:组织IDnetwork_ids:可选的按网络ID筛选response_format:输出格式(markdown或json)
用例:
- 监控整个组织的广域网连接
- 检查上行链路故障转移状态
- 识别连接问题
- 跟踪公共IP分配
示例:
Show me uplink status for all devices in organization 549236
Check WAN connectivity for organization
配置
环境变量
MERAKI_API_KEY(必需):您的Meraki Dashboard API密钥
API费率限制
Meraki Dashboard API的速率限制为 每个组织每秒10个请求服务器包括对速率限制错误的错误处理(HTTP 429),并在超过限制时提供指导。
响应格式
Markdown格式(默认)
人类可读格式,包括:
- 标题和部分便于扫描
- 关键信息要点
- 格式化时间戳
- 分组相关数据
JSON格式
机器可读格式,包括:
- 完整的结构化数据
- 所有可用字段
- 一致的字段名称
- 适用于程序化处理
错误处理
服务器为常见问题提供清晰、可操作的错误消息:
- 400错误请求:无效参数-检查您的输入
- 401未经授权:API密钥无效-请验证MERAKI_API_key环境变量
- 403禁止:无权限-检查API密钥组织访问权限
- 404未找到:资源不存在-验证ID是否正确
- 429速率限制:请求太多-请等待重试(10个请求/秒限制)
- 超时:请求时间过长-请重试或检查网络连接
建筑
工具组织
工具按资源类型组织:
- 组织工具:列出并管理组织
- 网络工具:管理网络和配置
- 设备工具:监控和管理设备
- 客户端工具:跟踪已连接的客户端
- 上传工具:监控广域网连接
设计原则
- 只读优先:所有工具都是只读的,以确保安全
- 一致性命名:工具如下
meraki_{action}_{resource}模式 - 灵活过滤:支持多个过滤器参数
- 响应格式选项:人类和机器可读格式
- 错误清晰度:带有补救指导的可操作错误消息
发展
项目结构
meraki_mcp/
├── meraki_mcp.py # Main server implementation
├── README.md # This file
└── requirements.txt # Python dependencies (optional)
添加新工具
要添加新工具,请执行以下操作:
- 定义带有验证的Pydantic输入模型
- 使用
@mcp.tool()带有适当注释的装饰器 - 使用全面的docstring实现工具功能
- 添加错误处理
_handle_api_error() - 支持两种响应格式(markdown和json)
- 包括对大响应的截断
测试
使用MCP检查器测试服务器:
npx @modelcontextprotocol/inspector python meraki_mcp.py
或测试单个工具:
# Set environment variable
export MERAKI_API_KEY="your_key"
# Run server
python meraki_mcp.py
梅拉基API资源
许可证
此MCP服务器按原样提供,以便与Cisco Meraki Dashboard API一起使用。请参阅Cisco的API服务条款和许可协议。
支持
关于以下问题:
- MCP服务器:检查错误消息和此README
- Meraki API:参观 Meraki开发者社区
- API密钥:请联系您的Meraki管理员或Cisco支持人员
更新日志
版本1.0.0
- 初始版本包含8个核心工具
- 组织、网络和设备管理
- 客户端监控和上行链路状态跟踪
- Markdown和JSON响应格式
- 全面的错误处理
