让 AI 一句话管监控与事件:OneUptime MCP 服务器接入、查询与排障实战
让 AI 一句话管监控与事件OneUptime MCP 服务器接入、查询与排障实战【免费下载链接】oneuptimeComplete open-source monitoring and observability platform.项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime开源监控平台 OneUptime 内置的 MCP 服务器一种让 AI 调用外部工具的开放协议让 Claude 等助手直接操作你的监控与事件。接好客户端、抄会指令、看懂排障清单本文一次讲清。AI 能替你干的活从查状态到处置事件接好之后最直观的好处是一句自然语言AI 就能在你的 OneUptime 实例里查状态、建监控、走完整个事件处置闭环。先看三个典型场景。场景一AI 事件响应。凌晨告警响起你只需要问昨晚哪个监控挂了。AI 会用list_incidents找到活跃事件调list_logs拉取故障时段日志排查再用add_incident_note把处理进展发布到状态页最后resolve_incident关闭事件。整套流程不需要你打开控制台。场景二日常监控管理。给 https://example.com 建一个每 5 分钟检查一次的网站监控把 staging.example.com 的监控暂时停掉我们维护中——创建、调参、停用全部一句话搞定。场景三状态页与值班。更新状态页公告、创建周末计划维护、列出团队与 on-call 策略也都可以交给它。工具面有多大MCP 服务器基于 OneUptime 的数据模型自动生成目前提供约 155 个工具覆盖22 类资源。按用途分四块类别内容工具形态数据库资源事件、告警、监控器、状态页、团队、值班等 22 类完整 CRUDcreate / get / list / update / delete / count遥测资源日志、指标、链路、异常、监控器日志只读 list_ 与 count_工作流工具受理/解决事件与告警、加备注、whoami面向事件的快捷操作辅助与公共工具帮助、资源清单、公共状态页查询多数免认证遥测指经 OpenTelemetry 采集进来的日志、指标、链路这类观测数据所以它只有查询入口、没有创建入口——数据本来就不是靠 AI 写进去的。三分钟接上API Key 与客户端配置前置条件只有三样一个 OneUptime 实例云版或自托管、一个支持 MCP 的客户端、一张 API Key。下面按操作顺序走。第 1 步创建项目级 API Key。登录实例进入项目设置Project Settings→ API Keys → 创建 API Key起个名字比如 MCP Server按用途勾选权限复制下来。这张密钥就像给 AI 开的门卡它决定了 AI 能进哪扇门而且服务端会从它推断出所属项目——因此所有创建类工具永远不需要你传projectId参数。⚠️ 不要把主master密钥交给 AI 代理。主密钥同样会被该请求头接受但它授予的是整个实例的管理员权限。给代理只发满足最小权限需求的项目密钥——只读密钥就能跑通全部get_/list_/count_工具。第 2 步配置 Claude Desktop。找到配置文件macOS 在~/Library/Application Support/Claude/claude_desktop_config.jsonWindows 在%APPDATA%\Claude\claude_desktop_config.jsonLinux 在~/.config/Claude/claude_desktop_config.json加入下面的 OneUptime MCP 配置。云版直接填官方域名自托管则把oneuptime.com换成你的域名{ mcpServers: { oneuptime: { transport: streamable-http, url: https://oneuptime.com/mcp, headers: { x-api-key: your-api-key-here } } } }这里的 Streamable HTTP 是 MCP 的一种 HTTP 传输方式客户端像调 REST 接口一样 POST JSON-RPC 请求服务端用普通 JSON 或 SSE 流回应。第 3 步配置 VS Code GitHub Copilot。VS Code 1.99 起原生支持 MCP。按CtrlShiftPmacOS 为CmdShiftP执行 MCP: Open User Configuration打开mcp.json也可建.vscode/mcp.json做项目级配置{ servers: { oneuptime: { type: http, url: https://oneuptime.com/mcp, headers: { x-api-key: ${input:oneuptime-api-key} } } }, inputs: [ { type: promptString, id: oneuptime-api-key, description: OneUptime API Key, password: true } ] }password: true让 VS Code 在首次启动时弹窗索取密钥而不是明文写死。之后 MCP: List Servers 里点 oneuptime 启动在 Copilot Chat 中直接问 What monitors do I have in OneUptime? 即可。第 4 步可选免密钥公共访问。只用状态页公开信息和帮助的话配置里去掉headers就行{ mcpServers: { oneuptime: { transport: streamable-http, url: https://oneuptime.com/mcp } } }这样能用的就是公共工具oneuptime_help、oneuptime_list_resources以及四个get_public_status_page_*工具overview / incidents / scheduled_maintenance / announcements状态页 IDUUID或域名两种标识都能接受。状态页所有者还可在Status Page → Advanced Settings → MCP Server单独关闭某个状态页的 MCP 访问默认开启。关闭后四个get_public_status_page_*工具对该页返回错误但状态页网站、RSS 和公共 JSON API 照常工作该页所属项目的认证工具get_status_page、list_status_pages等也不受影响。场景菜单可直接照抄的自然语言指令这一节就是指令清单按分组收藏即可接上客户端后原样粘贴就能用。监控器帮我看看现在所有监控器的状态给 https://example.com 建一个每 5 分钟探测一次的新网站监控把 https://api.example.com/health 配成 API 监控超时设 30 秒维护期间先停掉 staging.example.com 的监控改完频率再说事件建一个高优先级事件数据库故障影响用户登录给事件 #123 加条备注数据库连接已恢复继续观察把事件 #456 标记为已解决把当前支付网关的事件指派给基础设施团队告警列出最近 24 小时未解决的告警受理这条告警并把严重级别调高一档给这条告警加内部备注已联系供应商状态页把状态页更新为支付服务正在调查中发一条公告说明本周六凌晨的计划维护值班与团队列出这个项目里的所有团队我们现在的 on-call 策略是怎么配的遥测只读查一下最近一小时 error 级别的日志统计过去 24 小时的异常实例数量按时间倒序拉 50 条最近的 span组合式高级指令为周六凌晨 2-4 点建一个计划维护窗口期间停掉 api.example.com 的全部监控并同步更新状态页找出最近一小时宕机但还没有关联事件的监控器逐个补建事件进阶玩法工作流工具、最小权限与工具裁剪想省事的话不用逐个 CRUD——服务器内置了一批为事件响应专门封装的工作流工具实现在 Tools/WorkflowTools.ts代理不需要知道 OneUptime 数据模型的内幕比如解决事件其实是在背后创建一条指向项目 Resolved 状态的IncidentStateTimeline记录。acknowledge_incident/resolve_incident把事件推到项目的已受理 / 已解决状态效果等同于在控制台点按钮acknowledge_alert/resolve_alert对告警做同样的事add_incident_note给事件加备注visibility: internal仅团队可见默认visibility: public则发布到状态页支持 Markdownadd_alert_note给告警加内部备注。一个完整的事件处置循环长这样list_incidents→acknowledge_incident→ 用list_logs排查 →add_incident_note公开→resolve_incident。oneuptime_whoami是代理定位自身的利器返回当前 API Key 所属项目的 ID 与名称。既然创建工具都能从密钥推断projectId代理全程就不必显式传项目 ID。权限怎么给只查询就配只读权限够跑所有get_/list_/count_工具需要完整增删改就赋予该密钥**项目管理员Project Admin**权限。日常建议最小权限起步、定期轮换密钥、跟踪密钥使用记录、不同环境发不同的密钥。服务端还能硬裁剪工具面。readOnlyHint/destructiveHint只是给客户端的建议不少客户端会无差别自动批准所有非只读调用。为此 Tools/ToolGenerator.ts 提供了两个环境变量在生成阶段直接砍掉工具环境变量接受的值效果MCP_READ_ONLYtrue/1/yes不区分大小写只暴露 read / list / count 工具MCP_ALLOW_DESTRUCTIVEfalse同上取值规则保留 create / update移除全部 delete 工具两者不设时保持默认全部工具照常暴露。被裁剪的数量会写进启动日志。查询语言时间过滤、分页与字段选择查遥测的第一原则永远带上时间范围过滤。遥测表非常大工具描述里也反复叮嘱limit 控制在 10–50。查询字段的值可以直接给也可以套一个操作符给字段加比较条件的对象{ query: { time: { _type: GreaterThan, value: 2026-07-04T00:00:00.000Z } }, sort: { time: DESC }, limit: 50 }共 12 个操作符这些提示也会在工具生成时自动写进 query 参数的描述里AI 自己看得到操作符含义操作符含义EqualTo等于GreaterThanOrEqual大于等于NotEqual不等于LessThanOrEqual小于等于IsNull为空InBetween区间内数字/日期NotNull非空Search部分文本匹配EqualToOrNull等于或为空Includes包含数组中的值GreaterThan大于LessThan小于排序值只有ASC与DESC两种。字段选择方面get_和list_工具接受可选的select字段数组。默认返回全部可读字段但重字段JSON 列、超长文本、HTML 列被默认排除需要显式点名才会返回——工具 Schema 的描述里会列出这些默认排除的字段。分页用limit默认 10上限 100常量见 Config/ServerConfig.ts加skip。每次列表响应都会如实报告拿回了什么{ returnedCount: 10, totalCount: 42, skip: 0, limit: 10, hasMore: true, data: [...] }当hasMore为 true 时Handlers/ToolHandler.ts 的formatListResponse()会附带提示Repeat the call with skipN to get the next page.AI 照着翻页即可。还有一个容易忽略的细节最小权限密钥有时读不到默认全字段select 里的某一列API 会拒绝整个请求。Services/OneUptimeApiService.ts 会解析这类报错自动把被拒的列从 select 里剔除并重试最多 10 次保证受限密钥也能拿到结果而不是直接报错。无状态设计为什么更安全幕后揭秘MCP 无状态stateless的含义是服务器不在内存里保留任何会话每个请求自包含。这不是偷懒而是一次真实事故的教训。早期实现用进程内内存 Map 保存会话。多副本部署下initialize握手落在 1 号 worker 上建了会话后续请求却被负载均衡打到 2 号 worker——那里根本不认识这个会话整个 MCP 握手以 404 MCP session not found 告终。现在的做法是每个 POST 请求新建一个McpServer实例和 StreamableHTTPServerTransport处理完立刻销毁就像每来一单就开一个新窗口、办完即关、不留底。这样做安全前提是工具本身不依赖会话tools/list来自路由初始化时绑定的工具列表每次tools/call都用同一请求头里的密钥认证。Handlers/ToolHandler.ts 里registerToolHandlers()用闭包把本次请求的apiKey绑进处理器并发请求各用各的密钥不存在进程级全局密钥的竞态。服务名oneuptime-mcp、路由前缀/mcpApp 服务持有根路由定义在 Config/ServerConfig.ts。请求进入 SDK 之前Utils/TransportNegotiation.ts 先做两层协商协议版本比内置 SDK 新的客户端不会被拒——服务器协商到双方都支持的最新版本并重写请求头initialize请求直接放行让握手自己谈版本确实谈不拢的版本返回 400并附上支持的版本清单。响应格式按客户端Accept头决定给application/json单响应体enableJsonResponse: true还是 SSE 流两者都不可接受时返回 406列出[application/json, text/event-stream]。对外端点一览实现见 Handlers/RouteHandler.ts端点方法行为/mcpPOSTJSON-RPC 入口工具调用都在这里发生/mcpGET不带 SSEAccept头时返回发现负载name、status、message、protocolVersions、latestProtocolVersion带 SSE 头返回 405——无状态模式不提供独立 SSE 流合规客户端会忽略它继续工作/mcpDELETE空操作没有会话可终止/mcp/healthGET健康检查返回status: healthy、mode: stateless、工具数量、activeSessions: 0及协议版本信息/mcp/toolsGET列出全部工具的 REST 接口认证支持两种写法允许的头固定为x-api-key与authorizationx-api-key: 直接放 API KeyAuthorization: Bearer 令牌如Bearer your-api-key-here。Bearer前缀匹配不区分大小写/^Bearer\s(.)$/i解析。工具执行出错时错误以带内结果返回isError: true而不是抛协议错误——这样 AI 能读到失败原因并自我纠正。错误体带statusCode、details和suggestion常见状态码的建议如下状态码内置建议400参数校验失败对照 input schema 检查必填项与格式401密钥被拒核对x-api-key是否正确、未过期403权限不足请项目管理员为密钥授权404资源不存在建议改用对应 list 工具找 ID429触发限流稍后重试自助体检健康检查与故障排查清单接好之后先跑两条命令验证服务器活着云版与自托管只是域名不同# 健康检查 curl https://oneuptime.com/mcp/health # 列出可用工具 curl https://oneuptime.com/mcp/tools自托管实例把oneuptime.com换成你的域名。健康端点还会告诉你这个构建支持的协议版本握手失败时不用翻容器日志。四类常见问题按清单自查权限错误403列资源需要读取权限增改需要写入权限删除需要删除权限——确认密钥权限与操作匹配若管理员设了MCP_READ_ONLY或MCP_ALLOW_DESTRUCTIVEfalse部分工具在服务端已被裁剪调用会找不到工具。连接问题核对 URL 拼写确认实例本身可达先打/mcp/health若连健康检查都不通问题在实例或网关层不在 MCP。密钥无效401回设置页核对密钥原文排查多余空格与字符确认密钥没有过期以及它确实是项目级而非你拿错了别的密钥。会话错误记住服务器无状态不签发、不跟踪会话 ID每个请求打到任意副本都没问题旧客户端若回发mcp-session-id头直接忽略即可依赖会话 ID 才能工作的老版本 MCP 客户端更新客户端配置。附录22 类资源与约 155 个工具全景数据库资源22 类各配六种 snake_case 工具——以 incident 为例即create_incident、get_incident、list_incidents、update_incident、delete_incident、count_incidents监控Monitor、Monitor Status、Monitor Status Event事件Incident、Incident State、Incident Severity、Incident State Timeline、Incident Public Note、Incident Internal Note告警Alert、Alert State、Alert Severity、Alert State Timeline、Alert Internal Note状态页Status Page、Status Page Announcement计划维护Scheduled Maintenance Event、Scheduled Maintenance State、Scheduled Maintenance State Timeline团队与值班Team、On-Call Policy标签Label遥测资源只读仅list_与count_Log、Metric、Span、Exception Instance、Monitor Log——例如list_logs、count_spans、list_exception_instances。没有创建类工具遥测数据统一经 OpenTelemetry 摄取。此外还有工作流工具acknowledge / resolve / note / whoami、辅助工具oneuptime_help、oneuptime_list_resources与四个免认证的公共状态页工具合计约 155 个。工具输入 Schema 由ModelSchema/AnalyticsModelSchema生成 JSON Schema带完整输入校验只读工具标readOnlyHint、删除类标destructiveHint客户端可据此自动批准安全调用、对破坏性调用要求确认。自托管实例无需额外部署MCP 端点随 App 容器由 Nginx 对外提供。进一步阅读官方英文文档mcp-server.mdMCP 模块 README 与源码入口packages/App/FeatureSet/MCP服务端实例创建Server/MCPServer.ts无状态路由与端点实现Handlers/RouteHandler.ts工具执行与错误处理Handlers/ToolHandler.ts工具生成与写入策略Tools/ToolGenerator.ts工作流工具定义Tools/WorkflowTools.ts辅助与公共工具Tools/HelperTools.ts、Tools/PublicStatusPageTools.ts传输协商逻辑Utils/TransportNegotiation.ts底层 API 调用与受限密钥重试Services/OneUptimeApiService.ts服务配置常量Config/ServerConfig.ts【免费下载链接】oneuptimeComplete open-source monitoring and observability platform.项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

CAD自定义线型全攻略:从LIN文件到linetype命令

CAD自定义线型全攻略:从LIN文件到linetype命令

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 3:03:20 阅读更多 →
【dtoj begin#4211】「TDog 2021 S Day5 」单词:用 TaoToken 统一 Key 跑通本地评测配置

【dtoj begin#4211】「TDog 2021 S Day5 」单词:用 TaoToken 统一 Key 跑通本地评测配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 3:03:20 阅读更多 →
GPT-Image-2.5协议解析:Flare与Sunburst选型指南

GPT-Image-2.5协议解析:Flare与Sunburst选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 3:03:20 阅读更多 →

最新新闻

OpenClaw安全实践:API密钥从明文裸奔到托管与轮换

OpenClaw安全实践:API密钥从明文裸奔到托管与轮换

如果你在一个项目里同时接了大模型服务商、内部工具、CI 机器人好几套 API 密钥,肯定会遇到这样一个场景:密钥一旦铺开,就再也收不回来。尤其是 OpenClaw 这类常驻在终端里的 AI 编程助手,它会在对话、日志、配置、插件、消息通道…

2026/9/26 3:46:45 阅读更多 →
Navicat导入SQL文件全攻略:从基础操作到常见报错排查

Navicat导入SQL文件全攻略:从基础操作到常见报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 3:46:45 阅读更多 →
C#中部署YOLOv8:OpenVINO与TensorRT完整实战

C#中部署YOLOv8:OpenVINO与TensorRT完整实战

简介:面向需要在C#环境中部署YOLOv8的开发者,资源围绕OpenVINO与TensorRT两大推理平台展开,解决目标检测模型从训练到实际业务系统集成时的跨语言调用与性能优化问题。压缩包共63个文件,约3.01MB,以C#工程文件为主&…

2026/9/26 3:46:45 阅读更多 →
2026年最新干货分享:11个AI客服工具的技术接入方式总结

2026年最新干货分享:11个AI客服工具的技术接入方式总结

把 AI 客服接进现有系统,难点通常不在"要不要用",而在"入口怎么接、数据怎么走"。下面 11 个工具按接入方式收成三类,接入成本可能差出好几倍,而这一层在功能列表上看不出来。 3Chat.ai 开放接口型&#xff0…

2026/9/26 3:46:45 阅读更多 →
GPT-6推理强度怎么选?Low/High/Ultra三档行为差异与选型指南

GPT-6推理强度怎么选?Low/High/Ultra三档行为差异与选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 3:46:45 阅读更多 →
华为鸿蒙免费提升背诵能力APP—小羊背诵

华为鸿蒙免费提升背诵能力APP—小羊背诵

先说结果:老师微信里点开的那条,标题写着课文名,一听就知道是今天要交的;不是系统录音机里那串“录音 01、录音 03”,也不用再翻聊天记录对口令。这就是我做成 小羊背诵 时最想先兑现的一步——声音跟课文绑在一起&…

2026/9/26 3:45:44 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →