thichcode

UptimeRobot MCP API

Community thichcode
Updated

uptimerobot_mcp

UptimeRobot MCP API

API quản lý UptimeRobot với khả năng xử lý ngôn ngữ tự nhiên thông qua Model Context Protocol (MCP).

Tính năng

  • Quản lý monitors (tạo, cập nhật, xóa, xem)
  • Quản lý maintenance windows
  • Tạo báo cáo (uptime, maintenance, performance)
  • Xử lý ngôn ngữ tự nhiên thông qua MCP
  • Hệ thống phân quyền người dùng
  • Cache management
  • Context management cho MCP
  • Tích hợp với n8n

Yêu cầu

  • Python 3.8+
  • FastAPI
  • UptimeRobot API Key
  • Ollama (cho MCP)
  • n8n (cho workflow automation)

Cài đặt

  1. Clone repository:
git clone https://github.com/thichcode/uptimerobot_mcp.git
cd uptimerobot_mcp
  1. Tạo môi trường ảo và cài đặt dependencies:
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
pip install -r requirements.txt
  1. Cấu hình biến môi trường:
cp .env.example .env
# Chỉnh sửa .env với các thông tin cần thiết

Sử dụng

  1. Khởi động server:
uvicorn app.main:app --reload
  1. Truy cập API documentation:
http://localhost:8000/docs

Tích hợp với n8n

Cài đặt n8n

  1. Cài đặt n8n:
npm install n8n -g
  1. Khởi động n8n:
n8n start

Tạo Workflow

  1. Truy cập n8n interface tại http://localhost:5678

  2. Tạo workflow mới và thêm các nodes:

    • HTTP Request node để gọi API
    • Function node để xử lý dữ liệu
    • Schedule Trigger node để tự động hóa
    • Email node để gửi thông báo

Ví dụ Workflow

  1. Tự động tạo maintenance window:
{
  "nodes": [
    {
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "interval": [
          {
            "field": "days",
            "value": 1
          }
        ]
      }
    },
    {
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "http://localhost:8000/maintenance",
        "method": "POST",
        "body": {
          "start_time": "{{$now}}",
          "duration": 3600,
          "description": "Bảo trì định kỳ",
          "monitors": [123, 456]
        }
      }
    }
  ]
}
  1. Tự động tạo báo cáo hàng tuần:
{
  "nodes": [
    {
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "interval": [
          {
            "field": "weeks",
            "value": 1
          }
        ]
      }
    },
    {
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "http://localhost:8000/reports",
        "method": "POST",
        "body": {
          "type": "uptime",
          "start_date": "{{$now.minus(7, 'days')}}",
          "end_date": "{{$now}}"
        }
      }
    },
    {
      "type": "n8n-nodes-base.emailSend",
      "parameters": {
        "to": "[email protected]",
        "subject": "Báo cáo uptime hàng tuần",
        "text": "{{$json}}"
      }
    }
  ]
}
  1. Tự động xử lý sự cố:
{
  "nodes": [
    {
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "path": "monitor-alert",
        "responseMode": "lastNode"
      }
    },
    {
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "http://localhost:8000/mcp/chat",
        "method": "POST",
        "body": {
          "message": "Phân tích sự cố và đề xuất giải pháp",
          "session_id": "{{$json.session_id}}"
        }
      }
    },
    {
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "#alerts",
        "text": "{{$json.ai_response.message}}"
      }
    }
  ]
}

Các tính năng n8n có thể tích hợp

  1. Tự động hóa:

    • Tạo maintenance window định kỳ
    • Tạo báo cáo tự động
    • Xử lý sự cố tự động
  2. Thông báo:

    • Gửi email báo cáo
    • Gửi thông báo Slack/Discord
    • Gửi SMS cho sự cố nghiêm trọng
  3. Tích hợp với các dịch vụ khác:

    • Jira để tạo ticket
    • Google Calendar để đồng bộ lịch
    • Grafana để hiển thị metrics

API Endpoints

Authentication

  • POST /auth/register - Đăng ký người dùng mới
  • POST /auth/token - Đăng nhập và lấy token

Monitors

  • GET /monitors - Lấy danh sách monitors
  • POST /monitors - Tạo monitor mới
  • PUT /monitors/{monitor_id} - Cập nhật monitor
  • DELETE /monitors/{monitor_id} - Xóa monitor
  • GET /monitors/{monitor_id}/uptime - Lấy thông tin uptime

Maintenance Windows

  • POST /maintenance - Tạo maintenance window
  • GET /maintenance - Lấy danh sách maintenance windows
  • DELETE /maintenance/{window_id} - Xóa maintenance window

Reports

  • POST /reports - Tạo báo cáo mới
  • GET /reports/{report_id} - Lấy thông tin báo cáo

Cache Management

  • GET /cache/stats - Lấy thống kê cache
  • DELETE /cache/{cache_name} - Xóa cache

MCP

  • POST /mcp/chat - Xử lý yêu cầu ngôn ngữ tự nhiên
  • DELETE /mcp/context/{session_id} - Xóa context

Ví dụ sử dụng

Tạo monitor mới

curl -X POST "http://localhost:8000/monitors" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
         "friendly_name": "Example Website",
         "url": "https://example.com",
         "type": "1",
         "interval": 300
     }'

Tạo maintenance window

curl -X POST "http://localhost:8000/maintenance" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
         "start_time": "2024-03-20T10:00:00Z",
         "duration": 3600,
         "description": "Bảo trì hệ thống",
         "monitors": [123, 456]
     }'

Sử dụng MCP

curl -X POST "http://localhost:8000/mcp/chat" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
         "message": "Tạo maintenance window cho tất cả các monitors có tag production vào ngày mai từ 10h đến 11h",
         "session_id": "abc123"
     }'

Phân quyền

  • ADMIN: Toàn quyền truy cập
  • MANAGER: Quản lý monitors và maintenance windows
  • VIEWER: Chỉ xem thông tin

Đóng góp

Xem CONTRIBUTING.md để biết thêm chi tiết về cách đóng góp.

License

MIT

MCP Server · Populars

MCP Server · New