mcpField
U
Uptime.com Mcp

Uptime.com Mcp

远程服务
github.com/uptime-com云与基础设施33 周前更新
代码仓库

关于 Uptime.com Mcp

面向 AI 助手的 Uptime.com MCP 服务,可管理网站、服务器和基础设施监控,涵盖检查项、告警、状态页及账户用量,并支持 stdio 与可流式 HTTP 传输。

主要功能

  1. 01创建和管理监控检查项
  2. 02查看告警与服务中断
  3. 03管理状态页和事件
  4. 04管理联系人、标签和仪表板
  5. 05查看账户用量与限额
  6. 06支持 stdio 和 HTTP 传输

适用场景

  1. 01为网站或服务器配置运行状况检查
  2. 02查看服务中断及相关告警
  3. 03更新公开状态页
  4. 04检查账户用量和套餐限额

MCP 相关

将 Uptime.com 的监控和账户操作作为工具提供给 MCP 客户端。支持 stdio 和可流式 HTTP,并使用 Bearer 令牌或 OAuth2 认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.uptime.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

uptime-mcp

CI Go Report Card Go Reference GitHub License GitHub Release Go Version GitHub Stars

适用于 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—:8080HTTP 监听地址(仅限 HTTP 模式)。
-uptime-urlUPTIME_URL(必填)Uptime.com 实例 URL,例如 https://uptime.com。API 基础 URL 为 <uptime-url>/api/v1/。
-api-urlUPTIME_API_URL(来自 -uptime-url)完整 API 基础 URL 覆盖值,将按原样使用(例如 http://uptime.svc.cluster.local/api/v1/)。
-oauth-urlUPTIME_OAUTH_URL(来自 -uptime-url)完整 OAuth2 授权服务器 URL 覆盖值,将按原样用作颁发者。
-resource-urlUPTIME_RESOURCE_URLhttp://localhost:<port>此服务的公开 URL,用于 OAuth2 受保护资源元数据。
-client-idUPTIME_OAUTH_CLIENT_ID(空)OAuth2 客户端 ID。
-client-secretUPTIME_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:

优先级来源
1Authorization: Bearer <token>
2?token=<token> 查询参数
3UPTIME_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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。