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

Nightingale 官方 MCP Server 使用指南:通过 Cursor、OpenCode 等 AI 助手调用夜莺 API,查询告警、目标、数据源、屏蔽、通知、订阅、事件流水线和业务组。

作者 夜莺研发团队

Go License MCP

Nightingale 的 MCP Server 正式发布:https://github.com/n9e/n9e-mcp-server。此 MCP Server 允许 AI 助手通过自然语言与夜莺 API 交互,用于告警管理、目标查询和可观测性运维任务。

一句话理解:它把夜莺 API 封装成 MCP 工具,让 Cursor、OpenCode 等 AI 助手可以在授权范围内查询夜莺里的告警、规则、目标、数据源、屏蔽、通知、订阅、事件流水线、用户和业务组。

适合的使用场景包括:

  • 值班人员用自然语言查询当前活跃告警和历史告警。
  • SRE 快速查看某个业务组的告警规则、订阅和通知规则。
  • 运维人员搜索目标主机,分析目标状态。
  • 在受控权限下创建或更新告警屏蔽规则。
  • 通过只读模式把夜莺查询能力开放给 AI 助手,降低误操作风险。

兼容性

  • Nightingale:v8.0.0+

主要用途

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

快速开始

1. 获取 API Token

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

安全提示:请妥善保管 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 等进程,即可使用

可用工具

工具集 工具 说明
alerts list_active_alerts 列出当前活跃告警,支持过滤条件
alerts get_active_alert 根据事件 ID 获取活跃告警详情
alerts list_history_alerts 列出历史告警,支持过滤条件
alerts get_history_alert 获取历史告警详情
alerts list_alert_rules 列出业务组的告警规则
alerts get_alert_rule 获取告警规则详情
targets list_targets 列出被监控主机/目标,支持过滤条件
datasource list_datasources 列出所有可用数据源
mutes list_mutes 列出业务组的告警屏蔽规则
mutes get_mute 获取告警屏蔽规则详情
mutes create_mute 创建告警屏蔽规则
mutes update_mute 更新告警屏蔽规则
notify_rules list_notify_rules 列出所有通知规则
notify_rules get_notify_rule 获取通知规则详情
alert_subscribes list_alert_subscribes 列出业务组的告警订阅
alert_subscribes list_alert_subscribes_by_gids 列出多个业务组的订阅
alert_subscribes get_alert_subscribe 获取订阅详情
event_pipelines list_event_pipelines 列出所有事件流水线
event_pipelines get_event_pipeline 获取事件流水线详情
event_pipelines list_event_pipeline_executions 列出指定流水线的执行记录
event_pipelines list_all_event_pipeline_executions 列出所有流水线的执行记录
event_pipelines get_event_pipeline_execution 获取执行记录详情
users list_users 列出用户,支持过滤条件
users get_user 获取用户详情
users list_user_groups 列出用户组/团队
users get_user_group 获取用户组详情(包含成员)
busi_groups list_busi_groups 列出当前用户可访问的业务组

示例提示词

配置完成后,可以使用自然语言与夜莺交互。下面这些提示词都对应上面的工具能力:

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

配置

MCP Server 支持通过环境变量或命令行参数配置。生产环境建议优先使用环境变量,避免把 Token 明文写入可共享的配置文件。

环境变量

变量 命令行参数 说明 默认值
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"
      }
    }
  }
}

安全建议

MCP Server 会把夜莺 API 能力暴露给 AI 助手,因此建议按最小权限原则配置:

  • 为 MCP 单独创建 API Token,不要复用个人高权限 Token。
  • 如果只需要查询,设置 N9E_READ_ONLY=true,禁用写操作。
  • 只启用必要工具集,例如只查告警和目标时使用 N9E_TOOLSETS=alerts,targets
  • 不要把 N9E_TOKEN 提交到 Git、截图或聊天记录中。
  • 定期轮换 Token,离职或权限变更时及时吊销。

FAQ

Q1:MCP Server 会替代夜莺 Web UI 吗?

A:不会。MCP Server 适合让 AI 助手用自然语言调用夜莺 API,Web UI 仍然是配置、查看和人工确认的重要入口。

Q2:如何降低 AI 助手误操作风险?

A:优先启用只读模式,并通过 N9E_TOOLSETS 只暴露需要的工具集。需要写操作时,也建议使用权限受限的 Token。

Q3:为什么要限制工具集?

A:工具集越多,暴露给 AI 助手的能力越多,上下文也越长。按场景只启用必要工具,既降低风险,也减少 token 消耗。

开源协议

Apache License 2.0

相关项目

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云