关于 Exit1 Uptime Monitoring
Exit1 Uptime Monitoring 的 MCP 服务让编码 Agent 和其他 MCP 客户端创建、管理运行时间监控并查询状态。它支持托管 OAuth 连接或本地 stdio,也可在无账户时发起注册。
主要功能
- 01创建网站、API、Ping 等监控
- 02配置邮件和 Webhook 告警
- 03查看状态、历史与运行时间统计
- 04发送测试告警
- 05支持托管与本地连接
适用场景
- 01为刚部署的项目配置监控
- 02检查监控项当前是否故障
- 03比较 API 的近期响应时间
- 04向 Slack 或邮件接收者发送告警
MCP 相关
通过托管 HTTP/OAuth 或本地 stdio 向 MCP 客户端提供 Exit1 监控工具。工具覆盖监控项、告警设置和状态查询,并提供 setup_monitoring 提示词。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://app.exit1.dev/mcp/v1claude mcp add --transport http dev-exit1-exit1 https://app.exit1.dev/mcp/v1{"mcpServers":{"dev-exit1-exit1":{"type":"http","url":"https://app.exit1.dev/mcp/v1"}}}在 Cursor 中打开{"servers":{"dev-exit1-exit1":{"type":"http","url":"https://app.exit1.dev/mcp/v1"}}}在 VS Code 中打开{"mcpServers":{"dev-exit1-exit1":{"type":"http","url":"https://app.exit1.dev/mcp/v1"}}}{"mcpServers":{"dev-exit1-exit1":{"serverUrl":"https://app.exit1.dev/mcp/v1"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
exit1-mcp
用于 Exit1 正常运行时间监控的 MCP 服务。让 AI 助手为你刚发布的项目设置监控——读取你的代码仓库、创建检查、配置告警,并发送真实测试告警以验证一切正常——之后还可以用日常语言询问正常运行时间。
两种连接方式
托管版(推荐)。 无需 API 密钥、无需安装 npm,也不要求特定套餐即可开始使用。在启动会话前,在终端中运行以下命令:登录会打开浏览器,你使用 Clerk 登录(或注册)、授权后即可连接。
claude mcp add --transport http exit1 https://app.exit1.dev/mcp/v1 && claude mcp login exit1
特意写成一行:在某些终端中,将这两条命令分成两行粘贴并不可靠(cmd.exe 会丢弃第二行)。在不支持解析 && 的旧版 Windows PowerShell(5.1)中,请分两次运行这两部分。请在启动会话前连接:MCP 客户端会在启动时加载服务,因此在对话过程中添加的服务需要重启后才能使用。在不支持 claude mcp login 的 Claude Code 版本中,请启动 claude,然后通过 /mcp 进行身份验证。
本地 stdio。 这是一个 npm 包。使用你在控制面板中生成的 Public API 密钥。若你的客户端不支持通过 OAuth 连接远程 MCP 服务,请使用此方式。
claude mcp add exit1 -- npx -y exit1-mcp
export EXIT1_API_KEY="ek_live_your_key_here"
两种方式提供相同的工具。托管服务更简单;stdio 方式无需打开浏览器,某些类似 CI 的环境更偏好这种方式。
还没有账户?让 Agent 为你创建一个
未设置 EXIT1_API_KEY 时,stdio 服务不会退出。它会进入设置模式,并提供一个额外的 create_account 工具。Agent 使用你的电子邮件地址调用该工具后,exit1 会创建一个免费账户,并立即将服务连接到该账户。其他所有工具都可以马上使用,监控也会开始运行。
claude mcp add exit1 -- npx -y exit1-mcp
# then, in the session: "Set up uptime monitoring for this project with exit1. My email is [email protected]."
或者,在启动会话前从终端运行:
npx exit1-mcp signup --email [email protected]
无论哪种方式,exit1 都会向你发送一封邮件,其中包含用于认领账户的链接。只有认领账户后才会发送告警,这样就没有人能将 exit1 的告警发送到自己不拥有的地址。你可以在认领页面决定是否让 Agent 保留访问权限。未认领的账户会在 7 天后暂停,并在 30 天后删除。
令牌会保存到 ~/.exit1/credentials.json,并自动刷新,因此后续会话无需任何设置即可连接。若设置了 EXIT1_API_KEY,则始终优先使用它。不使用 MCP 的 Agent 也可以通过一次 HTTP 调用完成相同操作:请参阅 Agent 注册。
从零开始启用监控
连接服务(见上文),然后在项目中将以下内容粘贴到 Claude Code、Cursor、Codex 或任何支持 MCP 的助手中:
Set up uptime monitoring for this project with Exit1.
1. Call get_account to see my plan limits. If you have a create_account tool
instead, I have no account yet: ask for my email and call it. If the Exit1
tools aren't available to you at all, don't try to connect from inside this
session; tell me to add the HTTP MCP server https://app.exit1.dev/mcp/v1 in
my tool, restart it, and paste this prompt again.
2. Read this repo to find what should be monitored: deployed URLs in vercel.json /
next.config / wrangler.toml / .env.production / README, and any /health or
/api/status route handlers.
3. Show me the checks you plan to create before creating them.
4. Configure email alerts, then send a test alert so I can confirm delivery works.
连接后,服务还会提供一个包含完整操作指南的 setup_monitoring 提示词——在 Claude Code 中使用 /exit1:setup_monitoring。
要求
- 托管版: Exit1 账户。可在 OAuth 流程中直接注册。
- 本地 stdio: Node.js 18+,以及从控制面板获取的 API 密钥(所有套餐均可生成,包括 Free),或者完全不需要账户:请参阅还没有账户?。
支持的客户端
| 客户端 | 托管版(OAuth) | 本地 stdio |
|---|---|---|
| Claude Code | ✅ | ✅ |
| Claude Desktop | ✅ | ✅ |
| Cursor | ✅ | ✅ |
| VS Code (Copilot) | ✅ | ✅ |
| Windsurf | ⚠️ 请检查版本 | ✅ |
| Codex CLI | ⚠️ 请检查版本 | ✅ |
| Gemini CLI | ⚠️ 请检查版本 | ✅ |
| Goose | ⚠️ 请检查版本 | ✅ |
| ChatGPT | 通过 connector | 通过 mcp-remote bridge |
通过 OAuth 连接远程 MCP 的功能仍在逐步推广到各客户端。尚不支持此功能的客户端均可使用下方的 stdio 方式。
本地 stdio 设置
Claude Code
claude mcp add exit1 -- npx -y exit1-mcp
export EXIT1_API_KEY="ek_live_your_key_here"
claude
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"exit1": {
"command": "npx",
"args": ["-y", "exit1-mcp"],
"env": {
"EXIT1_API_KEY": "ek_live_your_key_here"
}
}
}
}
Cursor
添加到项目中的 .cursor/mcp.json(或全局配置文件 ~/.cursor/mcp.json)。格式与上方的 Claude Desktop 相同。
使用 Copilot 的 VS Code
在命令面板中运行 MCP: Add Server,选择 Command (stdio),输入 npx -y exit1-mcp。VS Code 使用 servers 键,而不是 mcpServers:
{
"servers": {
"exit1": {
"command": "npx",
"args": ["-y", "exit1-mcp"],
"env": {
"EXIT1_API_KEY": "ek_live_your_key_here"
}
}
}
}
Windsurf / Gemini CLI / Goose
在 mcp_config.json(Windsurf 设置 › MCP)、~/.gemini/settings.json 中,或通过 goose mcp add exit1 -- npx -y exit1-mcp,使用与 Claude Desktop 相同的 mcpServers 配置块。之后重启 IDE 或 CLI。
Codex CLI
codex mcp add exit1 -- npx -y exit1-mcp
export EXIT1_API_KEY="ek_live_your_key_here"
codex
ChatGPT
使用 mcp-remote 将 stdio 服务桥接起来,然后在 设置 › 连接器 中添加。
工具
| 工具 | 范围 | 描述 |
|---|---|---|
get_account | checks:read | 套餐、限额和当前用量。设置时请先调用此工具。 |
list_checks | checks:read | 列出检查项及其当前状态。 |
get_check | checks:read | 单个检查项的详情,包括 SSL 状态。 |
get_check_history | checks:read | 随时间变化的单次结果。 |
get_check_stats | checks:read | 不同时间范围内的正常运行时间百分比和响应时间。 |
get_status_page | checks:read | 公共状态页的快照。 |
create_check | checks:write | 创建监控项(网站、API、ping、TCP、DNS、域名、心跳)。 |
update_check | checks:write | 更改现有检查项的设置。 |
toggle_check | checks:write | 暂停或恢复检查项。 |
delete_check | checks:delete | 永久删除检查项。 |
get_alert_settings | alerts:read | 查看当前告警的发送目标。 |
set_email_alerts | alerts:write | 设置电子邮件收件人和事件。 |
add_webhook_alert | alerts:write | 连接 Slack、Discord、Teams 或通用 webhook。 |
send_test_alert | alerts:write | 发送真实的测试告警。 |
默认情况下,托管服务会请求 checks:read、checks:write、alerts:read 和 alerts:write,不会请求必须明确申请的 checks:delete。使用 stdio 方式时,创建 API 密钥时请勾选所需的权限范围。
示例提示词
- “为这个项目设置监控。”
- “我现在有监控项宕机了吗?”
- “过去 30 天内,我的 API 检查项正常运行时间是多少?”
- “显示 production 最近 10 次故障。”
- “为 staging.example.com 添加检查项,并将告警发送到 Slack 中的 #ops。”
- “比较本周和上周的响应时间。”
配置
| 环境变量 | 必填 | 描述 |
|---|---|---|
EXIT1_API_KEY | 否 | 你的 Exit1 API 密钥(ek_live_…)。如果未设置,服务会使用已保存的注册凭据,或以设置模式启动 |
EXIT1_CREDENTIALS_PATH | 否 | 注册凭据的保存位置(默认值为 ~/.exit1/credentials.json) |
EXIT1_API_URL | 否 | 覆盖 API 基础 URL(用于开发) |
管理连接
托管连接会列在 app.exit1.dev/mcp,你可以随时在此撤销连接。撤销后,会立即使发放给该客户端的所有令牌失效。
开发
npm install
npm run build # tsc -> dist/
npm test # build, then drive a real MCP handshake over stdio
npm run check:catalog # compare the tool catalog against the hosted server
npm test 会启动构建后的服务,并断言客户端实际看到的界面:工具数量、readOnlyHint / destructiveHint 注释、setup_monitoring 提示词,以及未知工具返回的是 isError 而非协议错误。第二次运行时,会在没有密钥且没有已保存凭据的情况下启动服务,并检查设置模式(列出 create_account,其他工具则说明如何获取账户)。此测试不需要 API 密钥,也不会发起网络请求。
check:catalog 存在的原因
工具目录在此软件包和托管 OAuth 服务之间刻意维护了两份;后者位于 Mopra/exit1.dev 的
functions/src/mcp-tools.ts。它们分别构建,没有共享软件包,也没有任何机制在编译时将两者关联起来。如果工具名称或输入架构不一致,npm run check:catalog 就会失败;如果措辞不同,则会发出警告。CI 会在每次推送时以及每天运行一次。
在这里修改工具,也要在那边修改——并在发布前运行检查。
若要针对本地检出版本而不是 GitHub 运行:
CATALOG_REMOTE_PATH=../exit1.dev/functions/src/mcp-tools.ts npm run check:catalog
发布
npm version patch # or minor
npm publish # prepublishOnly runs the build + smoke test
git push --follow-tags
将 server.json 中的 version 更新为一致的版本,然后重新发布注册表条目(见下文)。src/index.ts 中的 version 字符串是客户端在 serverInfo 中看到的版本——确保它与 package.json 保持一致。
MCP 注册表
server.json 描述了面向 官方 MCP 注册表 的两种分发方式(npm 软件包和托管端点)。注册表名称为
dev.exit1/exit1-mcp,需要证明对 exit1.dev 的控制权:
mcp-publisher login dns --domain=exit1.dev --private-key=HEX_KEY
mcp-publisher publish
npm 所有权通过 package.json 中的 mcpName 字段证明,该字段必须与 server.json 中的 name 保持一致。
快速链接
| 网站 | exit1.dev — 了解该平台 | 仓库 |
| 监控应用 | app.exit1.dev — 登录并管理你的检查项 | 仓库 |
| 文档 | docs.exit1.dev — 指南、API 参考和设置说明 | 仓库 |
| MCP 服务 | exit1-mcp — 本仓库 | 仓库 |
也可在官方 MCP 注册表中找到,名称为 dev.exit1/exit1-mcp。
许可证
MIT — 详见 LICENSE。
exit1 的其余部分可查看源代码,但并非开源;此软件包是个例外,因此 MCP 客户端可以自由地将其纳入自身项目并检查其内容。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。