Nightingale 官方 MCP Server 接入 Cursor:用自然语言操作监控与告警的配置骨架 1. 为什么要在 Cursor 里接 Nightingale MCP ServerNightingale夜莺是国内不少团队在用的开源监控告警系统v8.0.0 之后官方放出了 n9e-mcp-server把夜莺的 HTTP API 封装成了一套 MCP 工具。MCP 是 Model Context Protocol你可以把它理解成「给 AI 助手插的一根数据线」——插上之后Cursor 里的 AI 就能直接调用夜莺的接口而不是靠你复制粘贴告警列表再让它分析。这件事解决的真实痛点很具体值班的时候告警在夜莺里刷屏你想快速知道「过去 24 小时有哪些 P1 告警」「哪几台机器离线超过 5 分钟」传统做法是打开 Web 界面一层层点筛选。接上 MCP Server 之后你直接在 Cursor 对话框里用中文问AI 帮你调list_active_alerts、list_targets这些工具把结果整理好给你。适合谁适合已经在用夜莺做监控、同时日常在 Cursor 里写代码或做运维脚本的同学。它不替代夜莺 Web 界面而是给 AI 助手开了一个只读或可写的操作入口。我试过把这套配置跑通中间踩了几个坑下面把可复制的骨架和排障过程完整写出来。2. 前置准备夜莺侧要开 TokenAuthTaoToken 侧拿 Key2.1 夜莺开启 HTTP Token 认证MCP Server 走的是夜莺的 HTTP API所以第一步是确认夜莺的config.toml里启用了 Token 认证。找到这段配置[HTTP.TokenAuth] Enable true如果原来是false改成true后重启夜莺服务。这一步不做后面 MCP Server 拿 Token 请求会直接 401。2.2 在夜莺里创建 API Token登录夜莺 Web 界面路径是「个人设置 个人信息 Token 管理」新建一个 Token。权限按最小必要原则给如果你只想让 AI 查数据就别给写权限如果要让它创建屏蔽规则再放开对应权限。注意Token 等同于账号凭证别提交到 Git 仓库。用环境变量或者密钥管理工具存。2.3 用 TaoToken 统一管理模型侧 KeyCursor 里的 AI 助手要能对话本身需要一个模型服务的 Key。我这边习惯用 TaoToken 把模型调用统一管起来官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。在控制台里创建一个 API Key后面填到 Cursor 的模型配置里。这样夜莺的 Token 管夜莺模型的 Key 管模型两边职责分开排查问题时不会混。创建 Key 的入口在控制台的 API Keys 页面具体路径是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。拿到 Key 之后先放着下一节一起写进配置。3. 可复制配置mcp.json 与 Cursor settings.json 片段3.1 写 ~/.cursor/mcp.jsonCursor 的 MCP 配置放在用户目录下的.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 } } } }几个字段说明command用npx是为了免全局安装-y表示自动确认下载n9e/n9e-mcp-serverstdio是传输方式Cursor 通过标准输入输出和这个进程通信。N9E_BASE_URL填你夜莺的实际地址和端口默认是 17000。3.2 按需裁剪工具集省上下文默认会启用全部工具集工具数量多塞进 AI 的上下文窗口会占不少 token。如果你只关心告警和监控目标可以这样收窄{ 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 } } } }可用工具集有 alerts、targets、datasource、mutes、busi_groups、notify_rules、alert_subscribes、event_pipelines、users。逗号分隔写几个就只暴露几个。3.3 只读模式生产环境强烈建议如果你只是想让 AI 查不想让它误操作创建屏蔽规则加一个环境变量N9E_READ_ONLY: true开了之后所有写操作工具比如create_mute、update_mute会被禁用。生产环境我建议先只读跑一段时间确认 AI 的调用行为符合预期再考虑放开写。3.4 Cursor 模型侧配置片段Cursor 的模型配置在 settings 里把 TaoToken 的 API 地址和 Key 填进去。对应的 settings.json 片段大致是这样{ cursor.ai.apiKey: your-taotoken-api-key, cursor.ai.baseUrl: https://taotoken.net/api }不同 Cursor 版本字段名可能略有差异以你本地设置界面为准。填完之后 Cursor 的对话走 TaoTokenMCP 工具走夜莺两条链路独立。4. 验证连接从重启到自然语言指令生效4.1 重启 Cursor 并确认 MCP 进程改完mcp.json后完全退出 Cursor 再打开不是关窗口是退出进程。Cursor 启动时会去拉起 MCP Server。你可以在 Cursor 的 MCP 面板里看到nightingale这个 server 的状态正常应该是绿色或显示已连接。如果状态是红的先别急着改配置往下看第 5 节的排障。4.2 用一句自然语言验证连接成功后在 Cursor 对话框里输入显示过去 24 小时内所有紧急告警AI 应该会调用list_active_alerts或list_history_alerts把结果整理成列表返回。如果它回复「我没有相关工具」说明 MCP 没挂上如果回复「调用失败 401」说明 Token 或 TokenAuth 有问题。再试一条涉及监控目标的列出所有离线超过 5 分钟的监控目标这条会走list_targets带过滤条件。能正常返回主机列表就说明读链路通了。4.3 验证写操作只读模式下会失败属正常如果你没开只读可以试由于维护原因为 serviceapi 的告警创建一个 2 小时的屏蔽规则AI 会调create_mute。执行成功的话你去夜莺 Web 界面的屏蔽规则列表里能看到这条新记录。如果开了N9E_READ_ONLYtrue这里会返回写操作被禁用的提示这是预期行为。4.4 验证工具集裁剪是否生效如果你配了N9E_TOOLSETSalerts,targets然后问运维团队有哪些成员AI 应该会说没有list_users这个工具因为 users 工具集没启用。这反过来证明裁剪配置生效了。5. 本篇常见错排查5.1 npx 拉包失败或超时现象Cursor MCP 面板显示 server 启动失败日志里有npm ERR或超时。原因通常是网络到 npm registry 不通。可以先在终端手动跑一遍npx -y n9e/n9e-mcp-server stdio看能不能正常启动。如果卡在下载检查你的 npm 源配置。能手动跑通Cursor 里一般也能跑通。5.2 401 Unauthorized现象AI 调用工具返回 401。排查顺序先确认夜莺config.toml里[HTTP.TokenAuth] Enable true且已重启再确认N9E_TOKEN填的是夜莺里创建的那个 Token没有多余空格最后确认这个 Token 对应的账号有访问目标业务组的权限。5.3 连接被拒或超时现象N9E_BASE_URL填的地址连不上。先在你本机终端 curl 一下curl -H Authorization: Bearer your-api-token http://your-n9e-server:17000/api/n9e/alert-cur-events如果 curl 也不通说明是网络或地址问题跟 MCP 无关。注意N9E_BASE_URL不要带尾部斜杠也不要带/api路径MCP Server 会自己拼。5.4 AI 说没有工具可用现象对话正常但一问监控数据就说没有相关工具。原因通常是mcp.json改完没重启 Cursor或者 JSON 格式有语法错误比如多了个逗号。用 JSON 校验工具过一遍然后彻底退出 Cursor 重开。5.5 工具太多导致上下文被挤爆现象对话变慢或者 AI 开始「忘记」前面的内容。这是工具集全开、工具描述占满上下文导致的。解决办法就是第 3.2 节的N9E_TOOLSETS只留你真正要用的那几个。6. 后续怎么用把 MCP 接进日常运维流配置跑通只是起点。实际用起来我建议把常用查询固化成几个提示词模板比如「每日早会前拉一遍过去 12 小时 P1 告警」「发版前查一遍目标离线情况」。这些查询走 MCP 工具比手动点界面快。如果你后面想让 AI 在编码场景里长期挂着这套能力比如写告警处理脚本时随时查线上状态可以考虑用 Coding Plan 把模型调用和 MCP 工具串起来入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。模型对话的调试入口在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。夜莺侧的 MCP Server 源码和工具清单在官方仓库工具集和参数以仓库 README 为准版本升级后字段可能有变化升级前先看 changelog。最后提醒一句生产环境先开N9E_READ_ONLYtrue跑一周观察 AI 实际调了哪些工具、返回了什么确认没有误操作风险再决定要不要放开写权限。这一步别省。