Observium MCP Server
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个可运行的 MCP 服务器,专门将 Observium CE 的网络设备状态、端口信息、传感器数据、告警信息和历史趋势等暴露给 LLM 客户端(如 Claude 等),通过 MCP 协议进行 JSON-RPC 通信,支持资源、工具、提示模板的注册、调用与呈现。
-
主要功能点
- 资源(Resources):提供可读取的观测数据集合,如全部设备、处于 Down 状态的设备、活动告警、告警摘要、温度传感器等。
- 工具(Tools):一组可被 LLM 调用的工具函数,涵盖设备信息、端口信息、端口流量、传感器、告警、趋势、可用指标等,例如 list_devices、get_device、list_ports、get_port_traffic、list_sensors、list_alerts、get_trends、list_available_metrics、get_observium_capabilities 等。
- 提示模板(Prompts):提供网络健康检查、设备故障排除、容量分析、温度审计、告警调查等预设 Prompts,通过渲染给客户端以指导对话流程。
- MCP 服务器运行在标准输入/输出传输(stdio)上,支持多种传输;实现了对 MCP 调用、请求、响应的处理逻辑,并通过初始化选项注入服务器指令。
- Observium 数据源接入:通过本仓库中的数据库工具模块访问 Observium 的 MySQL/MariaDB 数据库以及 Observium 的 RRD 文件,提供只读数据访问,以便 LLM 进行自然语言查询。
-
安装步骤
- 克隆仓库并进入目录
- 创建并激活虚拟环境
- 安装依赖:pip install -r requirements.txt
- 配置环境变量:复制 config 示例(.env)并按实际 Observium 实例进行配置,包含数据库连接信息和 RRD 路径
- standalone 运行:在 src 目录下执行 python -m observium_mcp.server,启动 MCP 服务器
- 如需与 Claude/Claude Code/Claude Desktop 集成,请按 README 中的配置将服务器启动命令加入对应的 MCP 客户端配置中
-
服务器配置(客户端需要的最小信息) 说明:MCP 客户端至少需要知道服务器的启动命令及参数,才能与 MCP 服务器建立连接。以下为一个典型的配置示例,描述了 server 名称、启动命令、工作目录以及环境变量等信息(请将路径与凭据替换为实际值):
{ "server_name": "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_database_password", "OBSERVIUM_RRD_PATH": "/opt/observium/rrd" } // 注意:此处为示例配置,实际使用时请替换路径和凭据 }
配置字段说明:
- server_name:MCP 服务器的唯一标识名,便于在客户端配置中引用。
- command:服务器启动命令,一般为 python。
- args:启动参数,通常为 -m observium_mcp.server,告知 Python 以模块方式运行。
- cwd:服务器源码在本地的工作目录(src 目录的上层路径或实际安装路径)。
- env:运行时所需的环境变量,将数据库连接信息和 Observium 的 RRD 路径等注入到进程环境中。
-
基本使用方法
- 启动方式:在终端进入 src 目录,执行 python -m observium_mcp.server 启动服务器(如果使用 Claude/Claude Code/Claude Desktop 集成,请使用客户端配置中的命令启动方式)。
- 客户端交互:LLM 客户端通过 MCP 的 JSON-RPC 调用“Tools”来完成对 Observium 数据的查询,或通过“Prompts”模板触发统一的对话流程;服务器返回标准的 JSON-RPC 响应或通知。
- 常用场景:查询设备列表、获取某设备详情、查看端口及流量、检索传感器数据、获得告警摘要、检索历史趋势等。
- 安全性与只读性:数据库操作为只读,RRD 读取也限定在只读权限,确保对 Observium 数据的最小化影响。
-
注意事项
- 运行环境需安装 Python 3.10+,并确保 Observium 数据库账号具备只读权限。
- 本 MCP 服务器支持通过本地或远程的 RRD 路径访问趋势数据,若 Observium 服务器在不同主机上,请参照 README 的远程访问方案(SSH 隧道等)。
- 如遇连接或权限问题,请先检查 .env 配置与数据库权限,以及 rrdtool 的可用性。
-
可能的扩展
- 增加更多 Observium 数据源的只读接口、扩展 Prompts、扩展工具集等,以支持更多自然语言查询场景。