MCP协议AI Agent对接服务器监控告警平台实操指南
为什么需要MCP协议对接监控告警
MCP(Model Context Protocol)是一种让AI Agent与外部工具交互的开放协议。
当你需要AI Agent自动查看服务器告警、分析原因并执行恢复操作时,直接写死接口不方便扩展,而MCP提供标准化调用方式。
本文以对接常见的Prometheus Alertmanager为例,演示完整实操过程。
环境准备与工具安装
你需要一台Linux服务器(本文以Ubuntu 22.04为例),已安装Python 3.10+和pip。
同时确保监控告警平台(如Prometheus + Alertmanager)API可访问。
- 安装MCP服务端库:
pip install fastmcp
- 确认AI Agent客户端支持MCP(例如Claude Desktop、LangChain等)。本文使用Claude Desktop的MCP功能测试。
动手搭建MCP Server
新建文件 mcp_alert_server.py,内容如下:
from fastmcp import FastMCP
import requests
mcp = FastMCP("AlertManager")
@mcp.tool
def get_alerts(status: str = "firing") -> str:
"""获取当前告警列表"""
url = "http://your-alertmanager:9093/api/v2/alerts"
params = {"status": status}
resp = requests.get(url, params=params, timeout=10)
return resp.text
@mcp.tool
def silence_alert(alert_id: str) -> str:
"""屏蔽指定告警"""
url = f"http://your-alertmanager:9093/api/v2/silences"
payload = {"matchers": [{"name": "alertname", "value": alert_id, "isRegex": False}], "startsAt": "now", "endsAt": "2026-01-01T00:00:00Z"}
resp = requests.post(url, json=payload, timeout=10)
return resp.text
if __name__ == "__main__":
mcp.run()
启动服务:
python mcp_alert_server.py
默认监听本地8000端口,可通过--port参数修改。
配置AI Agent连接MCP Server
以Claude Desktop为例,编辑配置文件 claude_desktop_config.json,添加MCP服务器:
{
"mcpServers": {
"alertmanager": {
"command": "python",
"args": ["/path/to/mcp_alert_server.py"],
"env": {}
}
}
}
重启Claude Desktop,在对话中输入“查看当前告警”,AI Agent会自动调用get_alerts工具并返回结果。
避坑指南与常见问题
- 防火墙与端口:确保AI Agent所在机器能访问MCP Server的8000端口,且Alertmanager API可达。
- 认证问题:如果监控平台需要Token,在工具函数中添加
headers参数。 - 超时设置:
requests的timeout建议设置,避免AI Agent长时间等待。 - 路径错误:Claude配置文件中
args里的路径一定要用绝对路径,否则启动失败。 - JSON解析:
get_alerts返回原始JSON,可增加解析逻辑让Agent更容易理解。
验证效果
在监控平台触发一条测试告警(例如内存使用率超过阈值)。
然后在Claude对话框输入:“帮我看看当前哪些告警在触发”。
如果返回了告警列表,说明MCP协议对接成功。
继续输入:“屏蔽名为‘HighMemoryUsage’的告警”,看是否返回成功响应。
如果AI Agent无法调用工具,先检查MCP Server控制台是否有请求日志。
无日志则排查网络或配置。
完成基础对接后,可以扩展更多工具,例如执行远程脚本、重启服务等,让AI Agent真正成为你的运维助手。