Token导航 LogoToken导航TokenDH.com
Outage Monitor MCP logo
运维云端未说明官方级别未说明来源级核验

Outage Monitor MCP

MCP Server

一款基于StatusGator API的MCP服务器,用于监控AT&T、Verizon、T-Mobile、AWS、Google Cloud和Azure等服务的实时中断状态。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

flinntech

提供方

flinntech

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

停机监控MCP服务器

MCP(模型上下文协议)服务器,使用StatusGator API监控AT&T、Verizon、T-Mobile、AWS、Google Cloud和Azure的服务中断。

特性

  • 检查特定电信和云提供商的中断情况
  • 获取详细的服务状态信息
  • 查看所有受监控服务中的当前事件
  • 在StatusGator数据库中搜索服务
  • 实时状态监控
  • 适用于n8n和web集成的流式HTTP传输
  • Docker支持,易于部署
  • Claude Desktop的标准传输

先决条件

  • Docker和Docker Compose(用于容器化部署)
  • 或Node.js 18+(用于本地开发)
  • StatusGator API密钥(在 statusgator.com)

Docker快速入门

1.克隆和设置

git clone 
cd outage-monitor-mcp

2.选择身份验证方法

提供StatusGator API密钥有两个选项:

选项A:环境变量(用于测试/开发)

cp .env.example .env
# Edit .env and uncomment/set STATUSGATOR_API_KEY

选项B:承载令牌(建议用于n8n)

  • 跳过 .env 配置
  • 将API密钥作为承载令牌与每个请求一起传递到授权头中
  • n8n配置 在......下面

3.使用Docker Compose运行

docker-compose up -d

服务器将在以下时间可用 http://localhost:3002

4.验证它是否正在运行

curl http://localhost:3002/health

您应该看到:

{
  "status": "ok",
  "server": "outage-monitor-mcp",
  "version": "1.0.0",
  "timestamp": "2025-10-23T14:30:00.000Z"
}

Docker命令

# Start the server
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the server
docker-compose down

# Rebuild after code changes
docker-compose up -d --build

# Run on a different port
PORT=8080 docker-compose up -d

与n8n一起使用

MCP服务器支持 承载令牌身份验证,非常适合n8n的MCP客户端配置。

身份验证设置

服务器通过两种方式接受StatusGator API密钥:

  1. 承载令牌(建议用于n8n) -通过 Authorization 头球
  2. 环境变量 -设置 STATUSGATOR_API_KEY 在服务器环境中

优先级:承载令牌优先于环境变量。

n8n MCP客户端配置

如果n8n具有本机MCP客户端支持:

  1. 添加一个 MCP客户端 n8n中的节点
  2. 配置身份验证:

- 认证类型:承载令牌 - 代币:您的StatusGator API密钥 - 运输:HTTP - 统一资源定位符: http://outage-monitor-mcp:3002/mcp (或 http://localhost:3002/mcp)

MCP客户端将在每次请求时自动发送承载令牌,服务器将使用它与StatusGator进行身份验证。

HTTP请求节点(备选)

如果使用标准HTTP请求节点:

  1. 在n8n中,添加一个 HTTP 请求 节点
  2. 配置节点:

- 方法:POST - 统一资源定位符: http://outage-monitor-mcp:3002/mcp (或 http://localhost:3002/mcp 如果在本地运行) - 认证:通用凭据类型 - 通用身份验证类型:标头身份验证 - 名字:授权 - 价值: Bearer YOUR_STATUSGATOR_API_KEY - 正文内容类型:JSON - 身体:

     {
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "check_outage",
         "arguments": {
           "service": "aws"
         }
       }
     }

服务器使用流式HTTP传输,这意味着所有请求都发送到一个 /mcp 使用JSON-RPC 2.0协议的端点。

示例n8n工作流

检查单一服务

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "check_outage",
    "arguments": {
      "service": "aws"
    }
  }
}

检查所有服务

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "check_all_outages",
    "arguments": {}
  }
}

获取服务状态

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_service_status",
    "arguments": {
      "service": "azure"
    }
  }
}

API终点

GET /

服务器信息和可用工具

GET /health

健康检查端点

答复:

{
  "status": "ok",
  "server": "outage-monitor-mcp",
  "version": "1.0.0",
  "timestamp": "2025-10-23T14:30:00.000Z"
}

POST /mcp

所有MCP请求的流式HTTP端点(JSON-RPC 2.0)

这是工具调用和MCP协议通信的主要端点。

可用工具

1. check_outage

检查特定服务是否出现中断。

参数:

  • service (必填):服务名称(att、verizon、t-mobile、aws、谷歌云、azure)

请求示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "check_outage",
    "arguments": {
      "service": "aws"
    }
  }
}

答复:

{
  "service": "Amazon Web Services",
  "hasOutage": false,
  "status": "operational",
  "incidents": []
}

2. check_all_outages

检查所有受监控的服务是否中断。

参数:

答复:

{
  "total_services": 6,
  "services_with_outages": 1,
  "outages": [
    {
      "service": "AT&T",
      "hasOutage": true,
      "status": "degraded",
      "incidents": [...]
    }
  ],
  "all_statuses": [...]
}

3. get_service_status

获取特定服务的详细状态信息。

参数:

  • service (必填):服务名称

例子:

{
  "service": "azure"
}

答复:

{
  "service_id": "microsoft-azure",
  "service_name": "Microsoft Azure",
  "status": "operational",
  "current_incidents": [],
  "last_checked": "2025-10-23T14:30:00.000Z"
}

4. get_all_incidents

获取所有受监控服务中的所有当前事件。

参数:

答复:

{
  "total_incidents": 2,
  "incidents": [
    {
      "id": "incident-123",
      "service_name": "Verizon",
      "title": "Network connectivity issues",
      "description": "Some users may experience...",
      "status": "investigating",
      "severity": "major",
      "created_at": "2025-10-23T13:00:00.000Z",
      "updated_at": "2025-10-23T14:00:00.000Z"
    }
  ]
}

5. search_service

在StatusGator数据库中按名称搜索服务。

参数:

  • service_name (必填):要搜索的服务的名称

例子:

{
  "service_name": "cloudflare"
}

6. get_historical_incidents

获取特定日期范围内服务的历史事件。非常适合分析过去的中断和事件模式。

参数:

  • service (必填):服务名称
  • start_date (可选):ISO格式的开始日期(例如,“2025-01-01T00:00:00Z”)
  • end_date (可选):ISO格式的结束日期(例如,“2025-01-31T23:59:59Z”)
  • status (可选):按状态筛选(例如,“已解决”、“正在调查”)

例子:

{
  "service": "aws",
  "start_date": "2025-01-01T00:00:00Z",
  "end_date": "2025-01-31T23:59:59Z"
}

答复:

{
  "service": "aws",
  "start_date": "2025-01-01T00:00:00Z",
  "end_date": "2025-01-31T23:59:59Z",
  "total_incidents": 3,
  "incidents": [
    {
      "id": "incident-456",
      "service_name": "Amazon Web Services",
      "title": "EC2 connectivity issues",
      "created_at": "2025-01-15T10:30:00Z",
      "resolved_at": "2025-01-15T12:45:00Z",
      "status": "resolved"
    }
  ]
}

7. get_service_uptime

计算特定时间段内服务的正常运行时间统计数据。返回正常运行时间百分比和总停机时间。

参数:

  • service (必填):服务名称
  • start_date (必填):ISO格式的开始日期
  • end_date (必填):ISO格式的结束日期

例子:

{
  "service": "verizon",
  "start_date": "2025-01-01T00:00:00Z",
  "end_date": "2025-01-31T23:59:59Z"
}

答复:

{
  "service_id": "verizon",
  "service_name": "Verizon",
  "period_start": "2025-01-01T00:00:00Z",
  "period_end": "2025-01-31T23:59:59Z",
  "total_incidents": 2,
  "total_downtime_minutes": 180,
  "uptime_percentage": 99.75,
  "incidents": [...]
}

8. get_multi_service_history

一次获取多个服务的事件历史记录。可用于比较运营商或云提供商之间的中断情况。

参数:

  • services (必填):服务名称数组
  • start_date (可选):ISO格式的开始日期
  • end_date (可选):ISO格式的结束日期

例子:

{
  "services": ["att", "verizon", "t-mobile"],
  "start_date": "2025-01-01T00:00:00Z",
  "end_date": "2025-01-31T23:59:59Z"
}

答复:

{
  "services": ["att", "verizon", "t-mobile"],
  "start_date": "2025-01-01T00:00:00Z",
  "end_date": "2025-01-31T23:59:59Z",
  "total_incidents": 5,
  "history": {
    "att": [...incidents...],
    "verizon": [...incidents...],
    "t-mobile": [...incidents...]
  }
}

支持服务列表

服务器监视这些服务:

  • 美国电话电报公司 (att)
  • 威瑞森 (verizon)
  • 德国 (t-mobiletmobile)
  • 亚马逊网络服务 (awsamazon-web-services)
  • 谷歌云 (google-cloudgcp)
  • 微软 Azure (azuremicrosoft-azure)

本地开发(无Docker)

安装

  1. 克隆此存储库:
git clone 
cd outage-monitor-mcp
  1. 安装依赖项:
npm install
  1. 创建一个 .env 文件:
cp .env.example .env
  1. 编辑 .env 并添加您的API密钥:
STATUSGATOR_API_KEY=your_actual_api_key_here
  1. 构建项目:
npm run build

本地运行

HTTP模式(适用于n8n):

npm start
# or
MCP_TRANSPORT=http npm start

标准模式(适用于克劳德桌面):

MCP_TRANSPORT=stdio npm start:stdio

发展模式

npm run watch

Claude桌面配置

要将此服务器与Claude Desktop(stdio模式)一起使用,请将其添加到MCP设置配置中:

适用于macOS (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "outage-monitor": {
      "command": "node",
      "args": ["/absolute/path/to/outage-monitor-mcp/dist/stdio.js"],
      "env": {
        "STATUSGATOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

对于Windows (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "outage-monitor": {
      "command": "node",
      "args": ["C:\\path\\to\\outage-monitor-mcp\\dist\\stdio.js"],
      "env": {
        "STATUSGATOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

认证

MCP服务器支持两种身份验证方法:

1.承载令牌(建议用于n8n)

在中传递StatusGator API密钥 Authorization 头球

Authorization: Bearer YOUR_STATUSGATOR_API_KEY

这是n8n的推荐方法,因为它可以保证凭据的安全,并允许每个工作流进行动态配置。

卷曲示例:

curl -X POST http://localhost:3002/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_STATUSGATOR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'

2.环境变量

设置 STATUSGATOR_API_KEY 环境变量:

export STATUSGATOR_API_KEY=your_api_key_here

或者在你的 .env 文件:

STATUSGATOR_API_KEY=your_api_key_here

这对于测试、开发或当服务器专用于单个API密钥时非常有用。

身份验证优先级

如果提供了这两种方法:

  1. 来自授权标头的承载令牌(优先)
  2. 环境变量 STATUSGATOR_API_KEY (回退)

如果两者都没有提供,请求将失败并出现身份验证错误。

环境变量

变量描述默认值必填
STATUSGATOR_API_KEY您的StatusGator API密钥-否\*
PORTHTTP服务器端口3002没有
HOSTHTTP服务器主机0.0.0.0没有
MCP_TRANSPORT运输方式(httpstdio)http没有
NODE_ENV节点环境production没有

\*如果使用承载令牌身份验证,则不需要

获取StatusGator API密钥

  1. 在以下网址注册StatusGator帐户 statusgator.com
  2. 转到设置(单击电路板名称旁边的3个点)
  3. 选择API菜单选项卡
  4. 复制您的API令牌
  5. 将其添加到您的 .env 文件

建筑

outage-monitor-mcp/
├── src/
│   ├── index.ts          # Main entry point (transport router)
│   ├── server.ts         # Shared MCP server logic
│   ├── stdio.ts          # Stdio transport (Claude Desktop)
│   ├── http-server.ts    # Streamable HTTP transport (n8n, web)
│   └── statusgator.ts    # StatusGator API client
├── dist/                 # Compiled JavaScript (generated)
├── Dockerfile            # Docker image definition
├── docker-compose.yml    # Docker Compose configuration
├── package.json
├── tsconfig.json
├── .env.example
├── troubleshoot.sh       # Automated troubleshooting script
├── TROUBLESHOOTING.md    # Detailed troubleshooting guide
└── README.md

发展

建筑

npm run build

脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm start -运行服务器(默认为HTTP模式)
  • npm run start:stdio -使用stdio传输运行
  • npm run start:http -使用HTTP传输运行
  • npm run dev -构建并运行
  • npm run watch -开发观看模式

故障排除

快速诊断

如果您在将n8n连接到MCP服务器时遇到问题,请运行自动故障排除脚本:

./troubleshoot.sh

这将检查:

  • 容器状态和健康状况
  • n8n和MCP服务器之间的网络连接
  • 端口配置
  • 身份验证设置
  • 端点可访问性

有关详细的故障排除步骤,请参阅 故障排除.md

常见问题

n8n无法连接到MCP服务器

快速检查:

  1. 验证两个容器是否在同一个Docker网络上:
   # Check MCP server networks
   docker inspect outage-monitor-mcp --format='{{range $k, $v := .NetworkSettings.Networks}}{{$k}} {{end}}'

   # Check n8n networks
   docker inspect n8n --format='{{range $k, $v := .NetworkSettings.Networks}}{{$k}} {{end}}'
  1. 测试n8n到MCP服务器的连接:
   docker exec n8n wget -q -O - http://outage-monitor-mcp:3002/health
  1. 如果容器名称无法解析,请使用IP地址:
   # Get MCP server IP
   docker inspect outage-monitor-mcp --format='{{range $k, $v := .NetworkSettings.Networks}}{{$v.IPAddress}}{{end}}'

   # Use in n8n: http://172.x.x.x:3002/mcp
  1. 验证n8n的URL是否正确:

- ✓ 对的: http://outage-monitor-mcp:3002/mcp - ✗ 错误: http://outage-monitor-mcp:3000/mcp (旧港口) - ✗ 错误: http://outage-monitor-mcp:3002/message (旧端点)

  1. 检查n8n MCP客户端中是否设置了承载令牌

故障排除.md 获取完整指南

Docker容器无法启动

  1. 检查日志:
   docker-compose logs
  1. 验证是否设置了API密钥:
   docker-compose exec outage-monitor env | grep STATUSGATOR
  1. 检查端口3002是否已在使用中:
   lsof -i :3002

身份验证错误

如果您收到“未提供API密钥”或401/403错误:

  1. 使用n8n MCP客户端:设置承载令牌:

- 身份验证类型:承载令牌 - 代币:您的StatusGator API密钥

  1. 使用HTTP请求节点:添加授权标头:

- 名称:授权书 - 价值: Bearer YOUR_STATUSGATOR_API_KEY

  1. 替代:在中设置环境变量 .env:
   STATUSGATOR_API_KEY=your_key_here
   docker-compose restart

API速率限制

StatusGator有API速率限制。如果你超越了它们:

  • API将返回429个状态代码
  • 实施指数回退
  • 考虑缓存结果

安全注意事项

  • 永远不要承诺你的 .env 文件
  • 对敏感数据使用环境变量
  • 在生产中,限制CORS的来源 http-server.ts
  • 考虑为HTTP端点添加身份验证
  • 以非root用户身份运行容器(已配置)

api参考

此服务器使用 状态Gator API v3API提供:

  • 来自3500多个服务的实时状态数据
  • 历史事件数据
  • 服务状态信息
  • 事件详情和时间表

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

支持

关于以下问题:

致谢

目录标签

目录标签

TypeScriptClaude云端部署服务监控本地部署云服务状态电信网络实时警报API集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP