一个用于Uptime Kuma 版本2 的Model Context Protocol (MCP)服务器。支持标准输入输出(stdio)和可流式传输的HTTP传输。
| 工具 | 目的 |
|---|---|
getMonitorSummary | 获取所有监控器及其当前状态的快速概览 |
getMonitor | 根据ID获取特定监控器的详细配置 |
listMonitors | 获取所有监控器及其配置的完整列表 |
getHeartbeats | 获取特定监控器的状态检查历史 |
listHeartbeats | 获取所有监控器的状态检查历史 |
getSettings | 获取Uptime Kuma服务器设置 |
在LibreChat中的对话,其中mcp-uptime-kuma服务器提供了来自Uptime Kuma的实时信息。
大多数用户会希望使用标准输入输出(stdio)来配置mcp-uptime-kuma,如下所示。
{
"mcpServers": {
"uptime-kuma": {
"command": "npx",
"args": ["-y", "@davidfuchs/mcp-uptime-kuma"],
"env": {
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
"UPTIME_KUMA_USERNAME": "your_username",
"UPTIME_KUMA_PASSWORD": "your_password",
}
}
}
}
如果您的Uptime Kuma实例禁用了身份验证,您可以移除用户名/密码环境变量。有关身份验证方法的更多细节,请参阅使用说明部分。
此MCP服务器支持三种连接到您的Uptime Kuma实例的身份验证方法。
关于双因素认证(2FA)的注意事项:如果您正在使用2FA,建议您直接采用JWT身份验证方法,避免使用用户名/密码身份验证,因为您的2FA令牌每次初始化MCP服务器时都需要刷新。
即使使用JWT方法,您也可能遇到令牌过期的问题,但截至本文撰写时,Uptime Kuma返回的JWT似乎不会过期。
如果您的Uptime Kuma实例禁用了身份验证,您可以无需提供任何凭证即可连接。只需UPTIME_KUMA_URL环境变量即可。
UPTIME_KUMA_URL:您的Uptime Kuma实例的URL使用您的Uptime Kuma凭证的标准身份验证。此方法使用UPTIME_KUMA_USERNAME和UPTIME_KUMA_PASSWORD环境变量。
必需变量:
UPTIME_KUMA_URL:您的Uptime Kuma实例的URLUPTIME_KUMA_USERNAME:您的Uptime Kuma用户名UPTIME_KUMA_PASSWORD:您的Uptime Kuma密码可选变量:
UPTIME_KUMA_2FA_TOKEN:您的2FA令牌(仅当您的账户启用了两步验证时才需要)基于从Uptime Kuma获取的JWT令牌的身份验证。此方法使用UPTIME_KUMA_JWT_TOKEN环境变量,并且如果同时提供了用户名/密码,则优先使用JWT令牌。
UPTIME_KUMA_URL:您的Uptime Kuma实例的URLUPTIME_KUMA_JWT_TOKEN:您的JWT令牌(请参阅下面的说明以了解如何获取它)token的键——其值就是您的JWT令牌(应以'ey...'开头)UPTIME_KUMA_JWT_TOKEN对于许多MCP客户端,您可以按照以下方式配置服务器:
选项1:用户名/密码身份验证
{
"mcpServers": {
"uptime-kuma": {
"command": "npx",
"args": ["-y", "@davidfuchs/mcp-uptime-kuma"],
"env": {
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
"UPTIME_KUMA_USERNAME": "your_username",
"UPTIME_KUMA_PASSWORD": "your_password",
}
}
}
}
选项2:JWT令牌身份验证
{
"mcpServers": {
"uptime-kuma": {
"command": "npx",
"args": ["-y", "@davidfuchs/mcp-uptime-kuma"],
"env": {
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
"UPTIME_KUMA_JWT_TOKEN": "your_jwt_token"
}
}
}
}
请参阅如何找到您的JWT令牌部分以获取说明。
如果您使用的是LibreChat(librechat.yaml),可以这样配置:
选项1:用户名/密码身份验证(LibreChat):
mcpServers:
uptime-kuma:
command: npx
args: ["-y", "@davidfuchs/mcp-uptime-kuma"]
customUserVars:
UPTIME_KUMA_URL:
title: "Uptime Kuma URL"
description: "登录Uptime Kuma的URL。"
UPTIME_KUMA_USERNAME:
title: "Uptime Kuma Username"
description: "登录Uptime Kuma的用户名。"
UPTIME_KUMA_PASSWORD:
title: "Uptime Kuma Password"
description: "登录Uptime Kuma的密码。"
env:
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
UPTIME_KUMA_USERNAME: "{{UPTIME_KUMA_USERNAME}}"
UPTIME_KUMA_PASSWORD: "{{UPTIME_KUMA_PASSWORD}}"
serverInstructions: true
startup: false
选项2:JWT令牌身份验证(LibreChat)
mcpServers:
uptime-kuma:
command: npx
args: ["-y", "@davidfuchs/mcp-uptime-kuma"]
customUserVars:
UPTIME_KUMA_URL:
title: "Uptime Kuma URL"
description: "登录Uptime Kuma的URL。"
UPTIME_KUMA_JWT_TOKEN:
title: "Uptime Kuma JWT Token"
description: "用于Uptime Kuma身份验证的JWT令牌。"
env:
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
UPTIME_KUMA_JWT_TOKEN: "{{UPTIME_KUMA_JWT_TOKEN}}"
serverInstructions: true
startup: false
请参阅如何找到您的JWT令牌部分以获取说明。
如果您是唯一使用LibreChat服务器的人,您可以移除customUserVars并在env部分直接设置环境变量。您也可以移除startup: false——这仅存在于那里是因为如果没有它,LibreChat会在启动时立即尝试启动mcp-uptime-kuma MCP服务器,但由于用户提供的凭据尚未可用,这会失败。
推荐使用可流式传输的HTTP运行MCP服务器的方式是作为Docker容器运行。
Github仓库中提供了一个docker-compose.yml文件。下载它并根据您的Uptime Kuma部署更新包含的环境变量,然后运行:
docker compose up -d
MCP端点将在您的Docker主机的3000端口上可用(可通过PORT环境变量进行配置)。如果您更喜欢直接在主机机器上运行,请参阅下面的开发使用部分。
检索所有监控器的总结列表,包括基本信息及其当前状态。
keywords(字符串,可选):按路径名称过滤监控器的空间分隔关键字(不区分大小写)。所有关键字都必须匹配才能包含监控器。根据ID检索特定监控器的详细信息。
monitorID(数字):要检索的监控器IDincludeAdditionalFields(布尔值,可选):是否包含Uptime Kuma的所有附加字段(默认:false)检索用户有权访问的所有监控器的完整列表。
includeAdditionalFields(布尔值,可选):是否包含Uptime Kuma的所有附加字段(默认:false)检索特定监控器的心跳(状态检查)。
monitorID(数字):要获取心跳的监控器IDmaxHeartbeats(数字,可选):要返回的最近心跳的最大数量(1-100)。默认:1monitorID:监控器IDheartbeats:心跳对象数组,包含状态、响应时间、时间戳等count:返回的心跳数量检索所有监控器的心跳。
maxHeartbeats(数字,可选):每个监控器的最近心跳最大数量(1-100)。默认:1heartbeats:映射到其心跳数组的监控器IDmonitorCount:监控器数量totalHeartbeatCount:所有监控器的总心跳数量检索当前Uptime Kuma服务器设置。
serverTimezone:服务器时区设置checkUpdate:是否检查更新searchEngineIndex:搜索引擎索引设置entryPage:入口页面配置dnsCache:DNS缓存设置keepDataPeriodDays:数据保留期限(天)tlsExpiryNotifyDays:TLS过期通知天数trustProxy:信任代理设置nscd:NSCD设置disableAuth:身份验证禁用状态primaryBaseURL:主基础URL(可选)要在本地运行,克隆仓库并执行以下步骤:
npm install
复制.env.example到.env并配置您的Uptime Kuma实例所需的环境变量(URL和身份验证方法)。
将TypeScript代码构建为JavaScript:
npm run build
为了开发时自动重建:
npm run watch
生产模式运行(需要先构建):
npm start
或者
npm run start:stdio
此模式设计为由MCP客户端(如Claude Desktop、VS Code等)通过标准输入/输出通信启动。
生产模式运行(需要先构建):
npm run start:http
默认情况下,HTTP服务器运行在3000端口。您可以通过PORT环境变量更改此端口:
PORT=8080 npm run start:http
MCP端点将在http://localhost:3000/mcp可用。
您可以使用MCP Inspector测试服务器:
npm run inspector
启动HTTP服务器:
npm run dev:http
然后使用MCP Inspector:
npx @modelcontextprotocol/inspector
连接到:http://localhost:3000/mcp
mcp-uptime-kuma/
├── src/
│ ├── index.ts # 主入口点,选择传输方式
│ ├── server.ts # 核心MCP服务器配置及工具
│ ├── uptime-kuma-client.ts # Uptime Kuma API的WebSocket客户端
│ ├── types.ts # TypeScript类型定义
│ └── version.ts # 运行时版本信息
├── .github/ # GitHub工作流程和配置
├── .vscode/ # VS Code工作区设置
├── docker-compose.yml # Docker Compose配置
├── Dockerfile # Docker镜像定义
├── .dockerignore # Docker忽略文件
├── .env.example # 环境配置示例
├── .gitignore # Git忽略文件
├── package.json # 项目依赖和脚本
├── package-lock.json # 锁定的依赖版本
├── tsconfig.json # TypeScript配置
├── LICENSE # 许可证文件
└── README.md # 此文件
要添加新工具或修改现有工具,请编辑src/server.ts。src/uptime-kuma-client.ts中的Uptime Kuma客户端处理WebSocket连接并检索监控器和心跳数据。