Observium MCP服务器
A. 模型上下文协议(MCP) 暴露的服务器 遵守 CE 将网络监控数据传输到Claude等LLM,实现有关设备状态、网络流量、传感器读数、警报和历史趋势的自然语言查询。
特性
- 设备管理:列出并查询受监控设备的状态、正常运行时间和硬件信息
- 网络端口:查看接口状态、流量率和利用率
- 传感器:访问温度、电压、频率和其他传感器数据
- 警报:使用摘要查询活动警报和历史警报
- 趋势:从RRD数据中检索历史指标(负载、CPU、内存)
需求
- Python 3.10+(MCP SDK要求)
- 安装带有MySQL/MariaDB数据库访问的Observium CE
- 访问Observium的RRD数据目录(用于趋势数据)
rrdtool和librrd-dev包(用于RRD数据访问)
安装
1.克隆存储库
git clone https://github.com/kdesch5000/observium-mcp.git
cd observium-mcp2.创建虚拟环境
python3 -m venv venv
source venv/bin/activate3.安装依赖项
pip install -r requirements.txt4.配置环境
复制示例配置并使用您的Observium数据库凭据进行编辑:
cp config.example.env .env编辑 .env 使用您的设置:
# Database connection (use SSH tunnel if remote)
OBSERVIUM_DB_HOST=localhost
OBSERVIUM_DB_PORT=3306
OBSERVIUM_DB_NAME=observium
OBSERVIUM_DB_USER=observium
OBSERVIUM_DB_PASS=your_database_password
# RRD data path (on the Observium server)
OBSERVIUM_RRD_PATH=/opt/observium/rrd
# Optional: SSH configuration for remote RRD access
# If MCP server runs on a different machine than Observium,
# set these to enable SSH-based RRD file access for trend data
# OBSERVIUM_RRD_SSH_HOST=observium.example.com
# OBSERVIUM_RRD_SSH_USER=pi
# OBSERVIUM_RRD_SSH_PORT=22用法
使用克劳德代码
添加到您的Claude Code MCP配置中(~/.claude/claude_code_config.json):
{
"mcpServers": {
"observium": {
"command": "python",
"args": ["-m", "observium_mcp.server"],
"cwd": "/path/to/observium-mcp/src",
"env": {
"OBSERVIUM_DB_HOST": "localhost",
"OBSERVIUM_DB_NAME": "observium",
"OBSERVIUM_DB_USER": "observium",
"OBSERVIUM_DB_PASS": "your_password",
"OBSERVIUM_RRD_PATH": "/opt/observium/rrd"
}
}
}
}使用克劳德桌面
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"observium": {
"command": "python",
"args": ["-m", "observium_mcp.server"],
"cwd": "/path/to/observium-mcp/src",
"env": {
"OBSERVIUM_DB_HOST": "your_observium_host",
"OBSERVIUM_DB_NAME": "observium",
"OBSERVIUM_DB_USER": "observium",
"OBSERVIUM_DB_PASS": "your_password",
"OBSERVIUM_RRD_PATH": "/opt/observium/rrd"
}
}
}
}独立
cd src
python -m observium_mcp.server可用工具
| 工具 | 说明 |
|---|---|
list_devices | 列出所有受监控的设备及其状态 |
get_device | 获取特定设备的详细信息 |
list_ports | 列出设备的网络接口 |
get_port_traffic | 获取特定端口的流量统计数据 |
list_sensors | 列出传感器读数(温度、电压等) |
list_alerts | 列出活动或历史警报 |
get_alert_summary | 获取警报计数摘要 |
get_trends | 获取历史指标数据 |
list_available_metrics | 列出设备的可用RRD指标 |
查询示例
连接后,您可以向Claude提出以下问题:
- “目前哪些设备出现故障?”
- “显示主开关上的温度传感器”
- “过去一周防火墙的CPU负载趋势如何?”
- “是否有任何活动警报?”
- “核心交换机上的哪些端口有错误?”
- “我的所有Linux服务器的正常运行时间是多少?”
远程访问
如果您的Observium实例位于远程服务器上,您有几个选项:
选项1:SSH隧道
# Create SSH tunnel to forward MySQL port
ssh -L 3306:localhost:3306 user@observium-server
# Then configure .env with localhost
OBSERVIUM_DB_HOST=localhost选项2:在Observium服务器上安装
将MCP服务器直接安装在Observium主机上,并配置Claude通过SSH连接。
选项3:网络接入
如果MySQL可以在网络上访问(出于安全考虑不建议):
OBSERVIUM_DB_HOST=observium.example.com安全注意事项
- 数据库凭据存储在
.env这是不可忽视的 - 服务器仅执行SELECT查询(只读)
- 考虑使用只读MySQL用户以提高安全性
- RRD访问是只读的,通过
rrdtool fetch
创建只读数据库用户
为了提高安全性,请创建一个专用的只读MySQL用户:
CREATE USER 'observium_mcp'@'localhost' IDENTIFIED BY 'secure_password';
GRANT SELECT ON observium.* TO 'observium_mcp'@'localhost';
FLUSH PRIVILEGES;故障排除
连接被拒绝
- 验证MySQL是否正在运行且可访问
- 检查中的数据库凭据
.env - 确保MySQL用户具有SELECT权限
无RRD数据/趋势工具故障
- 验证
OBSERVIUM_RRD_PATH指向Observium服务器上的正确目录 - 如果在其他计算机上运行MCP,请配置SSH访问:
- 集 OBSERVIUM_RRD_SSH_HOST 到Observium服务器主机名 - 集 OBSERVIUM_RRD_SSH_USER 对于具有SSH访问权限的用户 - 确保配置了基于SSH密钥的身份验证
- 确保
rrdtool安装在Observium服务器上(用于远程)或本地 - 检查RRD目录上的文件权限
未找到模块
确保你正在逃离 src 目录或已安装程序包:
cd /path/to/observium-mcp/src
python -m observium_mcp.server贡献
欢迎投稿!请随时提交问题和拉取请求。
许可证
MIT许可证-请参阅 许可证 了解详情。

