# StatusCake MCP

> StatusCake MCP Server lets your AI agent check website uptime, page speed, and SSL certificates directly from your terminal. It manages all infrastructure health checks—including heartbeats and maintenance windows—without you opening a single dashboard.

## Overview
- **Category:** cloud-infrastructure
- **Price:** Free
- **Tags:** uptime-monitoring, page-speed, ssl-monitoring, infrastructure-health, website-monitoring

## Description

You connect your agent to this server to handle all of your site’s core infrastructure health checks—uptime, speed, security, and internal processes. Your AI client manages these monitors directly from the terminal; you never gotta open a single dashboard to check anything.

**Checking Availability Status**
You can confirm if a website is working right now or set up continuous monitoring using `get_uptime` for the most recent availability test results. To track internal background tasks, use `get_heartbeat`, which gives you the current status and details of any running heartbeat job. You can build new monitors with `create_uptime`, `create_heartbeat`, and `create_pagespeed`; if a monitor fails or needs changing, you'll use `delete_uptime`, `delete_heartbeat`, or `delete_pagespeed`.

To keep an eye on all your running checks, call `list_uptimes` to get every configured uptime monitor, and for active internal tasks, run `list_heartbeats`. You can adjust settings using `update_uptime` or modify existing heartbeat schedules with `update_heartbeat`. The server lets you scope these checks by calling `list_uptime_locations` or checking the available points via `list_heartbeat_locations`.

**Analyzing Page Performance**
To measure how fast a page loads, your agent runs tests across global locations. Use `get_pagespeed` to get instant performance metrics for a specific URL and region; you can also check historical trends over time using `get_pagespeed_history`. You'll set up these checks with `create_pagespeed`, and if you gotta scrap one, use `delete_pagespeed`. To manage the whole suite of speed tests, call `list_pagespeeds` to see all active monitors. If you need to tweak a URL or location for an existing monitor, you'll run `update_pagespeed`. You can view every configured page speed check with `list_pagespeeds`, and you'll know what locations are available by checking `list_pagespeed_locations`.

**Validating Security Posture**
This server monitors your SSL certificates for security compliance and expiration dates. Run `get_ssl_check` to pull the current status, expiration date, and issuer details for any monitored certificate. You can set up these checks using `create_ssl_check`, or remove them later with `delete_ssl_check`. To see everything configured, call `list_ssl_checks`; you'll also get a list of all available geographic locations via `list_ssl_locations` and use that data when calling `update_ssl_check` to change the domain name or parameters.

**Managing Monitoring Assets and Utility**
You can monitor planned downtime by displaying scheduled service interruptions using `list_maintenance_windows`. For notification management, you'll pull all contact groups with `list_contact_groups`. When setting up any check—uptime, pagespeed, or SSL—you need to know where it’s running from. The agent gets a full list of active monitoring jobs for every service: use `list_uptimes` for uptime, `list_pagespeeds` for speed, and `list_ssl_checks` for security.

For maximum control, you can delete any monitor using dedicated tools like `delete_uptime`, `delete_pagespeed`, or `delete_ssl_check`. You'll find the list of all global points for uptime checks by running `list_uptime_locations`.

## Tools

### create_heartbeat
Sets up a new monitoring job to confirm that an internal process is running on schedule.

### create_pagespeed
Adds a new test to measure the loading speed of a specific page.

### create_ssl_check
Creates a monitor to track the security and expiration status of an SSL certificate.

### create_uptime
Sets up a new test to confirm that a website is accessible and performing correctly.

### delete_heartbeat
Removes an existing internal heartbeat monitoring job.

### delete_pagespeed
Deletes a specific page speed test monitor.

### delete_ssl_check
Removes an existing SSL certificate monitoring job.

### delete_uptime
Deletes a running uptime check monitor.

### get_heartbeat
Retrieves the current status and details of an internal heartbeat monitoring job.

### get_pagespeed_history
Retrieves historical data showing how a site's loading speed has changed over time.

### get_pagespeed
Gets the current page speed performance metrics for a specified URL and region.

### get_ssl_check
Pulls the current status, expiration date, and issuer details for an SSL monitor.

### get_uptime
Retrieves the most recent availability test results for a website.

### list_contact_groups
Lists all defined groups of contacts for notification purposes.

### list_heartbeat_locations
Shows the available geographical locations where heartbeat checks can be run from.

### list_heartbeats
Gets a list of all currently active internal heartbeat monitors.

### list_maintenance_windows
Displays scheduled periods when the site is expected to be offline for maintenance.

### list_pagespeed_locations
Lists all geographical locations available for running page speed tests.

### list_pagespeeds
Gets a list of all active page speed check monitors.

### list_ssl_locations
Shows the available geographical locations for running SSL checks.

### list_ssl_checks
Retrieves a comprehensive list of every configured SSL certificate monitor.

### list_uptime_locations
Gets a list of all global points from which an uptime check can be run.

### list_uptimes
Retrieves a comprehensive list of every configured uptime monitor.

### update_heartbeat
Modifies the schedule or settings for an existing internal heartbeat check.

### update_pagespeed
Updates the URL, location, or timing settings for a page speed monitor.

### update_ssl_check
Changes the domain name or monitoring parameters of an existing SSL check.

### update_uptime
Adjusts the settings for a running uptime monitor, such as the test frequency.

## Prompt Examples

**Prompt:** 
```
List all my active uptime monitors.
```

**Response:** 
```
I've retrieved your uptime monitors. You have 3 active tests: 'Main API' (ID: 101), 'Customer Portal' (ID: 102), and 'Legacy DB' (ID: 103). All are currently reporting 'Up'.
```

**Prompt:** 
```
Create a new heartbeat check named 'Daily Backup' with a period of 86400 seconds.
```

**Response:** 
```
Successfully created the heartbeat check 'Daily Backup'. The system will now expect a signal every 24 hours. The Test ID is 55012.
```

**Prompt:** 
```
Show me the details for SSL monitor ID 998877.
```

**Response:** 
```
Inspecting SSL monitor 998877... The certificate for 'secure.example.com' is valid. It expires in 45 days (2024-12-15) and is issued by Let's Encrypt.
```

## Capabilities

### Check Availability Status
Use the agent to check if a site is up or down, run uptime monitors (`get_uptime`), and confirm internal background tasks are running via heartbeat checks.

### Analyze Page Performance
The agent runs page speed tests across global locations, providing metrics on loading times to help optimize the user experience. Use `get_pagespeed` for instant readings or `get_pagespeed_history` for trend analysis.

### Validate Security Posture
Check SSL certificate status and expiration dates with `get_ssl_check`. This ensures your site's security layer is active and compliant before any deployment.

### Manage Monitoring Assets
Create, delete, and update all types of monitors—uptime, pagespeed, SSL, and heartbeats—using tools like `create_uptime` or `update_pagespeed`.

### List All Monitor States
Retrieve comprehensive lists of every active monitor, including uptime checks (`list_uptimes`), pagespeed checks (`list_pagespeeds`), and maintenance windows (`list_maintenance_windows`).

## Use Cases

### Pre-deployment Health Sweep
Before deploying a new version, the developer asks their agent to run a full pre-flight check. The agent executes `get_uptime` (for core service), `create_pagespeed` (for static assets), and `get_ssl_check` (for certificate validity). It gives a green light or flags exactly what needs fixing.

### Investigating Intermittent Failures
An SRE notices random, brief service drops. Instead of manual checks, the agent runs `list_heartbeats` to see if a background job is failing sporadically. They then use `get_heartbeat` on specific jobs to confirm the failure point.

### Global Performance Audit
A marketing manager needs to know why users in Europe report slow load times. The agent uses `list_pagespeed_locations` and then runs `get_pagespeed` against specific EU locations, proving if the issue is regional.

### Proactive Security Audit
The security team needs to ensure all new domains have valid certificates. They run `list_ssl_checks` and then use `get_ssl_check` on any monitor nearing expiration, preventing an unexpected outage.

## Benefits

- Stop logging into separate dashboards. You can check uptime, page speed, and SSL security all in one chat session. Use `get_uptime` and `get_ssl_check` together for a full picture.
- No more guessing if your internal jobs are running. By using `list_heartbeats`, you instantly see the status of every cron job or background task without SSHing into a server.
- Pinpoint exactly where performance lags. Instead of just knowing 'the site is slow,' use `get_pagespeed` and specify different locations to find the bottleneck (e.g., Asia vs. US).
- Manage failures before they happen. Use `list_maintenance_windows` to check if planned downtime conflicts with a critical deployment, or run `create_ssl_check` when adding new domains.
- Accelerate incident response time. When the site goes down, your agent can immediately pull data using `get_uptime` and then follow up with `get_heartbeat` status—all in minutes.

## How It Works

The bottom line is: you use natural language to control your infrastructure monitoring tools.

1. Subscribe to the StatusCake server and enter your API Key.
2. Tell your AI client exactly what you need (e.g., 'Check the uptime for my main portal').
3. The agent executes the correct tool, like `get_uptime`, and sends you a plain text status report.

## Frequently Asked Questions

**How do I check if an internal cron job is running using the StatusCake MCP Server?**
Use `list_heartbeats` to see all active jobs, then run `get_heartbeat` on a specific ID. This tells you if your background process is firing signals reliably.

**What's the difference between `list_uptimes` and running `get_uptime`?**
`list_uptimes` gives you a list of *all* monitors you set up. `get_uptime` runs a check against one specific monitor, giving you its current status.

**How do I make sure my site is fast in all regions?**
First, use `list_pagespeed_locations` to see where StatusCake tests. Then, run `get_pagespeed` repeatedly for the specific locations you need to check.

**Can I schedule an SSL monitor using the StatusCake MCP Server?**
Yes. You use `create_ssl_check` to set up a new monitoring task that tracks expiration dates and security configurations automatically.

**How do I check which contact groups are available using the `list_contact_groups` tool?**
The `list_contact_groups` tool shows all predefined notification recipient lists. This helps you ensure your AI agent sends alerts to the correct teams or individuals after an incident.

**What does the `get_pagespeed_history` tool provide?**
This tool returns a full record of past page speed performance data, not just the current status. You can analyze trends to see how loading times have changed over time.

**How do I check for scheduled downtime using the `list_maintenance_windows` tool?**
Running `list_maintenance_windows` displays all planned outages or maintenance periods. This prevents false alerts by showing when monitoring checks are expected to fail intentionally.

**What steps are needed to adjust a monitor's settings using `update_uptime`?**
The `update_uptime` tool allows you to modify existing check parameters, like the target URL or interval. You must pass the specific Monitor ID and desired changes in your API call.

**Can I check the status of all my heartbeat monitors at once?**
Yes! Use the `list_heartbeats` tool. You can also filter by status (up/down) or tags to find specific background jobs quickly.

**How do I create a new page speed test for a website?**
Simply use the `create_pagespeed` tool. You'll need to provide the website URL, a name for the check, the check rate, and the region you want to test from.

**Is it possible to see my configured maintenance windows?**
Yes, you can use the `list_maintenance_windows` tool to retrieve all scheduled maintenance periods across your infrastructure.