关于 Uptime.com Mcp
面向 AI 助手的 Uptime.com MCP 服务,可管理网站、服务器和基础设施监控,涵盖检查项、告警、状态页及账户用量,并支持 stdio 与可流式 HTTP 传输。
主要功能
- 01创建和管理监控检查项
- 02查看告警与服务中断
- 03管理状态页和事件
- 04管理联系人、标签和仪表板
- 05查看账户用量与限额
- 06支持 stdio 和 HTTP 传输
适用场景
- 01为网站或服务器配置运行状况检查
- 02查看服务中断及相关告警
- 03更新公开状态页
- 04检查账户用量和套餐限额
MCP 相关
将 Uptime.com 的监控和账户操作作为工具提供给 MCP 客户端。支持 stdio 和可流式 HTTP,并使用 Bearer 令牌或 OAuth2 认证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.uptime.com/mcpclaude mcp add --transport http uptime https://mcp.uptime.com/mcp{"mcpServers":{"uptime":{"type":"http","url":"https://mcp.uptime.com/mcp"}}}在 Cursor 中打开{"servers":{"uptime":{"type":"http","url":"https://mcp.uptime.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"uptime":{"type":"http","url":"https://mcp.uptime.com/mcp"}}}{"mcpServers":{"uptime":{"serverUrl":"https://mcp.uptime.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
uptime-mcp
适用于 Uptime.com 的 Model Context Protocol (MCP) 服务。它将 Uptime.com 的网站、服务器和基础设施监控功能作为 MCP 工具提供,让 Claude 等 AI 助手可以代表你创建和管理监测项、读取告警和服务中断信息、管理状态页,并查看账户用量。
该服务支持两种传输方式:stdio(适用于 Claude Desktop、Claude Code 和 Cursor 等本地 MCP 客户端)和 streamable HTTP(适用于托管部署)。身份验证方式包括静态 API bearer token 或基于浏览器的 OAuth2 PKCE 流程。
Claude Code 插件
如果你使用 Claude Code,最简单的入门方式是使用 uptime-skills 插件。它将此 MCP 服务与面向任务的 skills(为 Uptime.com 精心整理的上下文和工作流,例如选择探测位置、调整服务中断敏感度、为目标选择合适的监测类型)打包在一起,并附带一套合理的默认权限。单独使用这些工具,Claude 就能调用 API;而 skills 则让 Claude 掌握如何善用这些工具,从而做出稳妥的监控决策,而不是只会调用原始 API。
/plugin marketplace add uptime-com/uptime-skills
/plugin install uptime@uptime-com
然后进行身份验证(通过浏览器 OAuth,令牌会为你保存并自动刷新):
/mcp
团队和项目级设置请参阅 uptime-com/uptime-skills。
托管服务
Uptime.com 运行着官方托管实例,因此你无需自行运行任何服务。将任何支持 streamable-HTTP 的 MCP 客户端指向:
https://mcp.uptime.com/mcp
使用你的 Uptime.com API token 进行身份验证(在 Settings → API & Integrations 下生成)。MCP 客户端配置示例:
{
"mcpServers": {
"uptime": {
"type": "http",
"url": "https://mcp.uptime.com/mcp",
"headers": {
"Authorization": "Bearer <your-api-token>"
}
}
}
}
该端点还提供 RFC 9728 受保护资源元数据,因此支持 OAuth2 的 MCP 客户端可以发现授权服务器(https://uptime.com)并自行获取令牌,而无需提供静态令牌。
想自行运行?请继续阅读下文。
快速开始
最快的试用方式是使用 go run(Go 1.26+)和个人 Uptime.com API token。在 Uptime.com UI 的 Settings → API &
Integrations 下生成 token,然后:
export UPTIME_BEARER_TOKEN=<your-api-token>
go run github.com/uptime-com/uptime-mcp@latest -transport=stdio
Claude Desktop / Claude Code / Cursor(bearer token)
将服务添加到 MCP 客户端配置中(例如 claude_desktop_config.json、Cursor mcp.json,或 claude mcp add-json):
{
"mcpServers": {
"uptime": {
"command": "uptime-mcp",
"args": ["-transport=stdio"],
"env": {
"UPTIME_BEARER_TOKEN": "<your-api-token>"
}
}
}
}
将 "command": "uptime-mcp" 替换为已下载二进制文件的绝对路径,或运行容器镜像:
{
"mcpServers": {
"uptime": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "UPTIME_BEARER_TOKEN",
"ghcr.io/uptime-com/uptime-mcp:latest",
"-transport=stdio"
],
"env": {
"UPTIME_BEARER_TOKEN": "<your-api-token>"
}
}
}
}
Claude Desktop(OAuth2,无静态令牌)
你可以不使用静态令牌,而是在首次调用工具时让服务运行基于浏览器的 OAuth2 登录流程。这需要在你的 Uptime.com 账户中注册 OAuth 应用(client ID)。配置中不会存储令牌:
{
"mcpServers": {
"uptime": {
"command": "uptime-mcp",
"args": [
"-transport=stdio",
"-uptime-url=https://uptime.com",
"-client-id=<your-client-id>"
]
}
}
}
首次调用工具时,服务会打开浏览器以完成授权,然后在后台刷新令牌。请参阅身份验证。
安装
预构建二进制文件
从 Releases 页面下载适用于你平台的压缩包(Linux、macOS 和 Windows,支持 amd64 和 arm64),解压后将 uptime-mcp 放入你的 PATH:
tar xzf uptime-mcp_<version>_<os>_<arch>.tar.gz
sudo mv uptime-mcp /usr/local/bin/
uptime-mcp -version
容器映像
发布于 GitHub Container Registry。标签::<version>(不可变,例如 :0.16.0)、:latest(最新稳定版本)、:main(滚动更新的 main HEAD)。
docker pull ghcr.io/uptime-com/uptime-mcp:latest
docker run -i --rm -e UPTIME_BEARER_TOKEN ghcr.io/uptime-com/uptime-mcp:latest -transport=stdio
Helm chart(Kubernetes 上的 HTTP 模式)
以 OCI chart 的形式发布。不会预先写入各环境的 URL;请在安装时设置。
helm install uptime-mcp oci://ghcr.io/uptime-com/uptime-mcp/charts/uptime-mcp \
--set config.uptimeUrl=https://uptime.com
go install
go install github.com/uptime-com/uptime-mcp@latest
二进制文件会以 uptime-mcp 的名称安装到 $(go env GOPATH)/bin。
从源代码构建
git clone https://github.com/uptime-com/uptime-mcp.git
cd uptime-mcp
go build -o uptime-mcp .
配置
通过 CLI 标志进行配置,敏感值可回退至环境变量。
| 标志 | 环境变量回退 | 默认值 | 描述 |
|---|---|---|---|
-transport | — | stdio | 传输模式:stdio 或 http。 |
-listen | — | :8080 | HTTP 监听地址(仅限 HTTP 模式)。 |
-uptime-url | UPTIME_URL | (必填) | Uptime.com 实例 URL,例如 https://uptime.com。API 基础 URL 为 <uptime-url>/api/v1/。 |
-api-url | UPTIME_API_URL | (来自 -uptime-url) | 完整 API 基础 URL 覆盖值,将按原样使用(例如 http://uptime.svc.cluster.local/api/v1/)。 |
-oauth-url | UPTIME_OAUTH_URL | (来自 -uptime-url) | 完整 OAuth2 授权服务器 URL 覆盖值,将按原样用作颁发者。 |
-resource-url | UPTIME_RESOURCE_URL | http://localhost:<port> | 此服务的公开 URL,用于 OAuth2 受保护资源元数据。 |
-client-id | UPTIME_OAUTH_CLIENT_ID | (空) | OAuth2 客户端 ID。 |
-client-secret | UPTIME_OAUTH_CLIENT_SECRET | (空) | OAuth2 客户端密钥(机密客户端)。 |
-log-level | — | error | 日志级别:debug、info、warn、error。 |
-version | — | — | 打印版本和提交信息,然后退出。 |
令牌环境变量:
| 变量 | 描述 |
|---|---|
UPTIME_BEARER_TOKEN | 静态 Uptime.com API 令牌。按原样转发,不进行验证或刷新。 |
身份验证
Bearer 令牌(最简单)
将 UPTIME_BEARER_TOKEN 设置为预先获取的 Uptime.com API 令牌。stdio 和 HTTP 模式均适用;令牌会按原样转发给 Uptime.com API,不需要 OAuth 配置、验证或刷新。
UPTIME_BEARER_TOKEN=<your-api-token> uptime-mcp -transport=stdio
OAuth2(stdio,浏览器 PKCE)
在 stdio 模式下,如果未设置 UPTIME_BEARER_TOKEN,服务会在首次调用工具时按需执行基于浏览器的 OAuth2 PKCE 流程,而不是在启动时执行。这样可以加快 MCP 握手(initialize、tools/list)。此流程需要 -uptime-url 和 -client-id;请求的作用域为 api/v1,授权和令牌端点分别为 <uptime-url>/o/authorize/ 和 <uptime-url>/o/token/,令牌会在后台刷新。
uptime-mcp -transport=stdio \
-uptime-url=https://uptime.com \
-client-id=<your-client-id>
HTTP(每个请求携带 Bearer 令牌 + RFC 9728 发现)
在 HTTP 模式下,服务会透传令牌。对于每个请求,它会按以下顺序解析令牌,并将其转发到 Uptime.com API:
| 优先级 | 来源 |
|---|---|
| 1 | Authorization: Bearer <token> |
| 2 | ?token=<token> 查询参数 |
| 3 | UPTIME_BEARER_TOKEN 环境变量 |
OAuth2 访问令牌和账户 API 密钥都可以放在上述任一位置。Uptime.com API 使用 Authorization: Bearer 对前者进行身份验证,使用 Authorization: Token 对后者进行身份验证,并会拒绝使用另一种方案传入的凭据,因此服务会根据来源采用相应方案;如果 API 拒绝,则切换一次。仅凭外观无法区分这两种凭据,因此无需进行任何配置,猜错只会多一次往返。
设置 -uptime-url 后,服务还会在
/.well-known/oauth-protected-resource 提供
RFC 9728 受保护资源元数据,公布 Uptime.com 授权服务器和作用域(api/v1、api/v1:read),以便支持 OAuth2 的 MCP 客户端自行获取令牌。
uptime-mcp -transport=http -listen=:8080 \
-uptime-url=https://uptime.com \
-client-id=<your-client-id>
计划支持动态客户端注册(RFC 7591), 因此 OAuth2 客户端无需预先注册客户端 ID。
HTTP 模式和健康检查端点
在 HTTP 模式下,服务会监听 -listen(默认值为 :8080)并提供:
POST /— 可流式传输的 HTTP MCP 端点。GET /healthz— 存活/就绪探针,返回204 No Content。GET /.well-known/oauth-protected-resource— RFC 9728 元数据(仅在设置-uptime-url时提供)。
uptime-mcp -transport=http -listen=:8080 -uptime-url=https://uptime.com
curl -i http://localhost:8080/healthz # -> HTTP/1.1 204 No Content
功能
该服务会在以下 Uptime.com 域中注册工具。工具名称稳定;使用 MCP 客户端中的 tools/list 查看完整输入架构。
检查项 — 列出、查看和管理监控检查项
| 工具 | 说明 |
|---|---|
list_checks | 列出监控检查项,可选筛选。 |
get_check | 获取特定检查项的详细信息。 |
get_check_stats | 获取检查项的正常运行时间统计数据。 |
delete_check | 删除检查项。 |
create_<type>_check | 创建指定类型的检查项(见下文)。 |
update_<type>_check | 更新指定类型的检查项(见下文)。 |
支持的检查项类型(create_* 和 update_*):
http、dns、ssl、icmp、tcp、udp、smtp、imap、pop、ssh、
ntp、whois、rdap、blacklist、malware、heartbeat、webhook、
group、pagespeed、rum、rum2、cloudstatus、api、transaction。
位置
list_locations、get_location — 查找探测服务器的位置及其 IP 地址。
联系人
list_contacts、get_contact、create_contact、update_contact、
delete_contact — 管理用于告警通知的联系人组。
标签
list_tags、get_tag、create_tag、update_tag、delete_tag。
仪表板
list_dashboards、get_dashboard、create_dashboard、update_dashboard、
delete_dashboard。
状态页、组件和事件
- 页面:
list_status_pages、get_status_page、create_status_page、update_status_page、delete_status_page。 - 组件:
list_status_page_components、get_status_page_component、create_status_page_component、update_status_page_component、delete_status_page_component。 - 事件:
list_status_page_incidents、get_status_page_incident、create_status_page_incident、update_status_page_incident、delete_status_page_incident。
告警和服务中断
list_alerts、get_alert、ignore_alert、list_outages、get_outage。
云状态
list_cloudstatus_providers、search_cloudstatus_services — 查找用于 cloudstatus 检查项的云服务提供商和服务。
账户
get_account_usage — 查看账户用量和套餐限制。
开发
要求:Go 1.26+。
make test # run unit tests
make e2e # run e2e tests (requires UPTIME_BEARER_TOKEN)
make run/http # run the HTTP server locally on :8080
go build -o uptime-mcp .
端到端测试套件会连接到实际的 Uptime.com 账户,并通过构建标签 e2e 标记;只有提供有效的 UPTIME_BEARER_TOKEN 时才会运行:
UPTIME_BEARER_TOKEN=<your-api-token> make e2e
Mock 使用 mockery v3+(.mockery.yaml)生成。
贡献
欢迎贡献。在提交拉取请求之前,请先创建 issue 讨论重大变更;请保持变更聚焦,并在提交前运行 make test。贡献即表示你同意根据项目的 MIT 许可证授权你的贡献。
许可证
根据 MIT 许可证授权。SPDX-License-Identifier: MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。