Mender MCP 服务器是一个用于模型上下文协议(MCP)的服务器,它能让 Mender IoT 平台与 AI 助手实现无缝集成。借助该服务器,AI 助手可以直接与 Mender IoT 平台交互,实现设备管理、部署跟踪和系统监控等功能。
# 克隆仓库
git clone https://github.com/pasinskim/mender-mcp.git
cd mender-mcp
# 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate # 在 Windows 系统上使用:venv\\Scripts\\activate
# 安装软件包
pip install -e .
# 测试服务器安装情况
mcp-server-mender --help
登录托管 Mender:
导航至设置:
创建个人访问令牌:
mender-mcp-integration(或其他描述性名称)保存令牌:
选项 1:环境变量(推荐)
# 添加到 ~/.bashrc、~/.zshrc 或 shell 配置文件中
export MENDER_ACCESS_TOKEN="your_personal_access_token_here"
# 重新加载 shell 或运行以下命令
source ~/.bashrc # 或 source ~/.zshrc
选项 2:安全令牌文件
# 创建安全的令牌目录
mkdir -p ~/.mender
chmod 700 ~/.mender
# 将令牌保存到文件中(请替换为实际令牌)
echo "your_personal_access_token_here" > ~/.mender/token
chmod 600 ~/.mender/token
打开 Claude Code 设置:
添加 Mender MCP 服务器:
使用环境变量(推荐)
{
"mcpServers": {
"mender": {
"command": "mcp-server-mender",
"args": [
"--server-url", "https://hosted.mender.io"
],
"env": {
"MENDER_ACCESS_TOKEN": "your_token_here"
}
}
}
}
使用令牌文件
{
"mcpServers": {
"mender": {
"command": "mcp-server-mender",
"args": [
"--server-url", "https://hosted.mender.io",
"--token-file", "~/.mender/token"
]
}
}
}
对于本地部署的 Mender
{
"mcpServers": {
"mender": {
"command": "mcp-server-mender",
"args": [
"--server-url", "https://your-mender-server.company.com",
"--token-file", "~/.mender/token"
]
}
}
}
配置完成后,您可以在 Claude Code 中使用自然语言与 Mender 设备进行交互:
"列出我所有的 Mender 设备"
"显示状态为 '已接受' 的设备"
"检查设备 abc123 的状态"
"哪些设备处于离线状态?"
"显示树莓派设备"
"当前正在运行哪些部署?"
"显示最新的部署"
"检查 ID 为 def456 的部署状态"
"列出失败的部署"
"今天完成了哪些部署?"
"你有设备 abc123 的哪些清单信息?"
"显示所有设备的硬件规格"
"按设备类型列出设备"
"正在运行哪些 Mender 客户端版本?"
"有哪些可用的版本?"
"显示版本 mender-demo-artifact-3.8.2 的详细信息"
"列出名称中包含 'demo' 的版本"
"哪些工件与树莓派兼容?"
"获取最近一次失败部署的部署日志"
"显示设备 abc123 在部署 def456 中的部署日志"
"我上一次部署失败的原因是什么?"
"显示失败部署的错误日志"
"我总共有多少台设备?"
"我的设备群中设备类型的分布情况如何?"
"显示最近未连接的设备"
"哪些设备正在运行过时的软件版本?"
"我最近的部署成功率是多少?"
"按硬件平台对设备进行分组显示"
"列出待授权的设备"
"显示认证失败的设备"
"哪些设备被拒绝了,原因是什么?"
"检查哪些设备需要关注或人工干预"
"显示我的设备群的安全状态"
"比较不同设备类型的部署性能"
"树莓派设备的平均部署时间是多少?"
"显示过去一周的部署趋势"
"哪些版本的失败率最高?"
"查找具有异常清单属性的设备"
"我的设备的地理分布情况如何?"(如果有位置数据)
"显示过去 24 小时的审计日志"
"获取用户 admin@company.com 的审计日志"
"显示日志中所有的 device_accept 操作"
"昨天执行了哪些部署操作?"
"显示按部署对象类型过滤的审计日志"
"从审计日志中获取最近的登录尝试信息"
"创建本月所有失败部署的报告"
"监控部署 def456,如果有设备失败则提醒我"
"检查所有关键设备是否都收到了安全更新"
"生成设备群健康摘要供管理层审核"
"跟踪版本 v2.1.0 的推出进度"
启用调试日志
{
"mcpServers": {
"mender": {
"command": "mcp-server-mender",
"args": [
"--server-url", "https://hosted.mender.io",
"--token-file", "~/.mender/token"
],
"env": {
"MCP_LOG_LEVEL": "DEBUG"
}
}
}
}
您也可以直接运行服务器进行测试:
# 使用环境变量
export MENDER_ACCESS_TOKEN="your_token"
mcp-server-mender --server-url https://hosted.mender.io
# 使用令牌文件
mcp-server-mender --server-url https://hosted.mender.io --token-file ~/.mender/token
# 直接使用令牌(不推荐)
mcp-server-mender --server-url https://hosted.mender.io --access-token your_token
# 本地部署
mcp-server-mender --server-url https://mender.company.com --token-file ~/.mender/token
chmod 600 ~/.mender/token)错误:HTTP 401 - 认证失败
错误:HTTP 403 - 访问被拒绝
错误:请求失败 - 发生网络错误
错误:未找到命令 'mcp-server-mender'
source venv/bin/activatepip install -e .mcp-server-mender --help 进行测试MCP_LOG_LEVEL=DEBUG 以获取详细输出# 激活虚拟环境
source venv/bin/activate
# 安装测试依赖项
pip install pytest
# 运行所有测试
pytest tests/
# 仅运行安全测试
pytest tests/test_security.py -v
# 运行测试并生成覆盖率报告
pip install pytest-cov
pytest tests/ --cov=src/mcp_server_mender
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
欢迎贡献!请阅读我们的贡献指南,并提交拉取请求以进行任何改进。
--help)