ops-mcp
MCP server for managing maintenance windows across Atlassian Statuspage and Uptime Kuma from AI assistants like Claude.
Features
- Unified maintenance scheduling — create maintenance windows on both Statuspage and Uptime Kuma in a single call
- Statuspage management — create, update, and list incidents and scheduled maintenance
- Uptime Kuma management — create, end, and list maintenance windows; list monitors
- MCP protocol — works with any MCP-compatible client (Claude Desktop, Claude Code, etc.)
Tools
| Tool | Description |
|---|---|
ops_schedule_maintenance | Create a maintenance window on both Statuspage and Uptime Kuma in one call |
ops_create_maintenance | Create scheduled maintenance on Statuspage |
ops_update_maintenance | Update or resolve a Statuspage incident/maintenance |
ops_list_incidents | List Statuspage incidents and scheduled maintenance |
ops_list_components | List all Statuspage components (resolve names to IDs) |
ops_create_uk_maintenance | Create a maintenance window in Uptime Kuma |
ops_end_uk_maintenance | End an Uptime Kuma maintenance window early |
ops_list_uk_maintenance | List all Uptime Kuma maintenance windows |
ops_list_uk_monitors | List all Uptime Kuma monitors with current status |
Setup
Install
pip install -e .
Environment variables
Copy .env.example to .env and fill in your credentials:
STATUSPAGE_API_KEY=your_statuspage_oauth_token
STATUSPAGE_PAGE_ID=your_page_id
UPTIME_KUMA_URL=https://status.example.com
UPTIME_KUMA_USERNAME=admin
UPTIME_KUMA_PASSWORD=your_password
- Statuspage API key: Generate at manage.statuspage.io under your user profile > API keys
- Statuspage page ID: Found in your page URL or page settings
- Uptime Kuma URL: The base URL of your Uptime Kuma instance
- Uptime Kuma credentials: A user with permission to manage maintenance windows
MCP client configuration
Add to your MCP client config (e.g. .mcp.json):
{
"mcpServers": {
"ops-mcp": {
"command": "ops-mcp",
"env": {
"STATUSPAGE_API_KEY": "your_key",
"STATUSPAGE_PAGE_ID": "your_page_id",
"UPTIME_KUMA_URL": "https://status.example.com",
"UPTIME_KUMA_USERNAME": "admin",
"UPTIME_KUMA_PASSWORD": "your_password"
}
}
}
}
Usage examples
Schedule maintenance on both systems:
"Schedule a 2-hour database maintenance window starting at 2am AEST tomorrow"
The ops_schedule_maintenance tool handles both Statuspage and Uptime Kuma, so monitors are silenced and subscribers are notified in one step.
List current monitors:
"Show me all Uptime Kuma monitors and their status"
Update an incident:
"Mark incident abc123 as resolved with message 'Database migration complete'"
License
MIT