Nightingale(夜莺)官方 MCP Server:Cursor/AI 助手用自然语言操作监控与告警

0 阅读4分钟

Nightingale 的 MCP Server 正式发布: github.com/n9e/n9e-mcp… 。此 MCP Server 允许 AI 助手通过自然语言与夜莺 API 交互,实现告警管理、监控和可观测性任务。

兼容性

  • Nightingale:v8.0.0+

主要用途

  • 告警管理:查询活跃告警和历史告警,查看告警规则和订阅
  • 目标监控:浏览和搜索被监控的主机,分析目标状态
  • 事件响应:创建和管理告警屏蔽规则、通知规则和事件流水线
  • 团队协作:查询用户、团队和业务组

快速开始

1.获取 API Token

  1. 确保在 config.toml 中,启用了 HTTP.TokenAuth
  [HTTP.TokenAuth]
  Enable = true
  1. 登录夜莺 Web 界面
  2. 进入 个人设置 > 个人信息 > Token 管理
  3. 创建一个具有适当权限的新 Token

image.png

安全提示:请妥善保管 API Token。切勿将 Token 提交到版本控制系统。请使用环境变量或安全的密钥管理系统。

2.与 MCP 客户端配合使用

Cursor

~/.cursor/mcp.json 中添加:

{
  "mcpServers": {
    "nightingale": {
      "command": "npx",
      "args": ["-y", "@n9e/n9e-mcp-server", "stdio"],
      "env": {
        "N9E_TOKEN": "your-api-token",
        "N9E_BASE_URL": "http://your-n9e-server:17000"
      }
    }
  }
}

3.重启 OpenCode 等进程,即可使用

可用工具

工具集工具说明
alertslist_active_alerts列出当前活跃告警,支持过滤条件
alertsget_active_alert根据事件 ID 获取活跃告警详情
alertslist_history_alerts列出历史告警,支持过滤条件
alertsget_history_alert获取历史告警详情
alertslist_alert_rules列出业务组的告警规则
alertsget_alert_rule获取告警规则详情
targetslist_targets列出被监控主机/目标,支持过滤条件
datasourcelist_datasources列出所有可用数据源
muteslist_mutes列出业务组的告警屏蔽规则
mutesget_mute获取告警屏蔽规则详情
mutescreate_mute创建告警屏蔽规则
mutesupdate_mute更新告警屏蔽规则
notify_ruleslist_notify_rules列出所有通知规则
notify_rulesget_notify_rule获取通知规则详情
alert_subscribeslist_alert_subscribes列出业务组的告警订阅
alert_subscribeslist_alert_subscribes_by_gids列出多个业务组的订阅
alert_subscribesget_alert_subscribe获取订阅详情
event_pipelineslist_event_pipelines列出所有事件流水线
event_pipelinesget_event_pipeline获取事件流水线详情
event_pipelineslist_event_pipeline_executions列出指定流水线的执行记录
event_pipelineslist_all_event_pipeline_executions列出所有流水线的执行记录
event_pipelinesget_event_pipeline_execution获取执行记录详情
userslist_users列出用户,支持过滤条件
usersget_user获取用户详情
userslist_user_groups列出用户组/团队
usersget_user_group获取用户组详情(包含成员)
busi_groupslist_busi_groups列出当前用户可访问的业务组

示例提示词

配置完成后,您可以使用自然语言与夜莺交互:

  • "显示过去 24 小时内所有紧急告警"
  • "当前有哪些告警正在触发?"
  • "列出所有离线超过 5 分钟的监控目标"
  • "业务组 1 配置了哪些告警规则?"
  • "由于维护原因,为 service=api 的告警创建一个 2 小时的屏蔽规则"
  • "查看事件流水线的执行历史"
  • "运维团队有哪些成员?"

配置

环境变量

变量命令行参数说明默认值
N9E_TOKEN--token夜莺 API Token(必需)-
N9E_BASE_URL--base-url夜莺 API 地址http://localhost:17000
N9E_READ_ONLY--read-only禁用写操作false
N9E_TOOLSETS--toolsets启用的工具集(逗号分隔)all

工具集选择

默认启用所有工具集。可以通过 --toolsets 参数或 N9E_TOOLSETS 环境变量只启用需要的工具集,减少暴露给 AI 助手的工具数量,节省上下文窗口的 token 消耗。

可用工具集:alertstargetsdatasourcemutesbusi_groupsnotify_rulesalert_subscribesevent_pipelinesusers

例如,只启用告警和监控目标相关工具:

{
  "mcpServers": {
    "nightingale": {
      "command": "npx",
      "args": ["-y", "@n9e/n9e-mcp-server", "stdio"],
      "env": {
        "N9E_TOKEN": "your-api-token",
        "N9E_BASE_URL": "http://your-n9e-server:17000",
        "N9E_TOOLSETS": "alerts,targets"
      }
    }
  }
}

开源协议

Apache License 2.0

相关项目