PingZen Uptime Monitoring
Monitor websites, APIs, and services with 44 tools across 22 protocols (HTTP, TCP, DNS, SSL, gRPC, ICMP, and more).
What it can do
- Ping: Health check endpoint for MCP server. Returns server status and version information. Use this to verify the MCP server is running and accessible.
- List Monitors: List all monitors for a user or workspace. Returns monitor name, current status (up/down/degraded), URL, and uptime percentage. Common use cases: - 'Show me all my monitors' - 'What mon
- Get Monitor Status: Get real-time status of a specific monitor. Returns current status, last check time, response time, and error message if any. Common use cases: - 'What's the status of api.example.
What data it sees
Do you need an account
No: the server works without sign-in
Monitor websites, APIs, and services with 44 tools across 22 protocols (HTTP, TCP, DNS, SSL, gRPC, ICMP, and more). Manage monitors, alerts, incidents, status pages, heartbeats, and Telegram groups. Works in test mode with mock data — no account needed to try it out.
How to connect
How to connect PingZen Uptime Monitoring to Claude
The server address to paste into Claude settings:
https://uptime-monitoring--pingzen.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect PingZen Uptime Monitoring to ChatGPT
The server address to paste into ChatGPT settings:
https://uptime-monitoring--pingzen.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect PingZen Uptime Monitoring to Cursor
The server address to paste into Cursor settings:
https://uptime-monitoring--pingzen.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (44)
Raw names from tools/list. Only developers need these.
| ping | Health check endpoint for MCP server. Returns server status and version information. Use this to verify the MCP server is running and accessible. |
| list_monitors | List all monitors for a user or workspace. Returns monitor name, current status (up/down/degraded), URL, and uptime percentage. Common use cases: - 'Show me all my monitors' - 'What monitors are in workspace 1?' - 'List all down monitors' Returns: Array of monitors with id, name, status, url, uptime_percentage. |
| get_monitor_status | Get real-time status of a specific monitor. Returns current status, last check time, response time, and error message if any. Common use cases: - 'What's the status of api.example.com?' - 'Is monitor 42 up or down?' - 'When was the last check?' Returns: status, last_check_at, response_time_ms, http_status_code, error_message. |
| get_uptime_stats | Get uptime statistics for a monitor over a time period. Returns uptime percentage, total checks, failed checks, and average response time. Common use cases: - 'What was the uptime last month?' - 'Show me SLA report for Q4' - 'How many failed checks in the last week?' Returns: uptime_percentage, total_checks, successful_checks, failed_checks, avg_response_time_ms. |
| get_check_history | Get historical check results for a monitor. Returns list of checks with timestamp, status, response time, and errors. Common use cases: - 'Show me last 10 checks for api.example.com' - 'What errors occurred in the last hour?' - 'Get check history for monitor 42' Returns: Array of check results with timestamp, status, response_time, error_message. |
| create_monitor | Create a new uptime monitor. Supports 22 protocols (HTTP, HTTPS, TCP, DNS, SSL, etc.). Common use cases: - 'Monitor https://api.example.com every 60 seconds' - 'Add a TCP check for db.example.com:5432' - 'Create an SSL certificate monitor for example.com' Returns: Created monitor details with ID. |
| update_monitor | Update an existing monitor's settings. Only provided fields are changed; others keep current values. Common use cases: - 'Rename monitor 42 to Production API' - 'Pause monitor 42' - 'Change interval to 120 seconds' Returns: Updated monitor details. |
| delete_monitor | Delete a monitor and all its data (check results, alerts, incidents). This action is IRREVERSIBLE. Safety: You must pass confirm=true to actually delete. Without it, returns a warning listing what will be deleted. Returns: Confirmation message or deletion warning. |
| execute_check | Run an immediate health check for a monitor. Returns real-time result without waiting for the next scheduled check. The check is marked as manual (excluded from uptime SLA calculations). Common use cases: - 'Check if api.example.com is up right now' - 'Run a health check on monitor 42' Returns: Check result with status, response time, errors. |
| list_alerts | List all alert configurations. Returns alert name, channel, target, triggers, and active status. |
| create_alert | Create a new alert rule. Sends notifications via the chosen channel when triggers fire. |
| update_alert | Update an existing alert rule. Only provided fields are changed. |
| delete_alert | Delete an alert rule. Pass confirm=true to confirm deletion. |
| test_alert | Send a test notification for an alert to verify channel configuration. |
| list_incidents | List incidents. Filter by status (investigating, identified, monitoring, resolved). |
| get_incident | Get incident details including timeline of status updates. |
| update_incident | Add a status update to an incident. Optionally change status (investigating -> identified -> monitoring -> resolved). |
| resolve_incident | Resolve an incident. Shortcut for update_incident with status=resolved. |
| list_status_pages | List all status pages in the workspace. |
| create_status_page | Create a new public status page with a unique slug. |
| update_status_page | Update a status page's title, slug, description, theme, or visibility. |
| add_status_page_monitor | Add a monitor to a status page. |
| remove_status_page_monitor | Remove a monitor from a status page. |
| list_workspaces | List all workspaces for the current user. |
| register | Create a new PingZen account. Returns access token, refresh token, and a permanent API key. A default workspace and demo monitor are automatically created. The API key (pz_...) never expires — save it for permanent MCP access. Common use cases: - 'I want to start monitoring my website' - 'Create an account for me' Returns: user_id, email, workspace_id, access_token, refresh_token, api_key. |
| login | Log in to an existing PingZen account. Returns access token, refresh token, and a permanent API key. After login, all other tools become available. The API key (pz_...) never expires — save it for permanent MCP access. Common use cases: - 'Log me in to PingZen' - 'I already have an account' Returns: access_token, refresh_token, expires_in, user_id, api_key. |
| refresh_token | Refresh an expired access token using a refresh token. Returns a new access token and refresh token pair. Use this when the access token has expired. Returns: new access_token, refresh_token, expires_in. |
| get_current_user | Get profile information for the currently authenticated user. Returns: user_id, email, plan, limits (monitors, alerts, workspaces), created_at, last_login_at. |
| generate_api_key | Generate a permanent API key for MCP access. API keys never expire and replace JWT tokens for long-term use. The key is shown ONCE and cannot be retrieved later. Common use cases: - 'Generate an API key for my CI/CD pipeline' - 'I need a permanent token for my MCP client' Returns: raw API key (pz_...), setup instructions for MCP clients. |
| create_workspace | Create a new workspace for organizing monitors. Returns: workspace_id, name, color, is_default. |
| update_workspace | Update a workspace's name, description, or color. Only provided fields are changed. |
| list_monitor_groups | List all monitor groups. Returns group name, monitor count, status, and health percentage. |
| create_monitor_group | Create a monitor group for organizing related monitors. Returns: group_id, name, monitor_count. |
| update_monitor_group | Update a monitor group. Only provided fields are changed. To replace monitors, pass the full list of monitor_ids. |
| delete_monitor_group | Delete a monitor group. Monitors are NOT deleted, only ungrouped. Pass confirm=true to confirm deletion. |
| list_telegram_groups | List Telegram groups linked to the current user. Groups can receive alert notifications via the Telegram channel. Returns: Array of groups with id, chat_id, title, chat_type, workspace_id. |
| link_telegram_group | Generate a deep link URL for adding the PingZen bot to a Telegram group. Open the URL in Telegram to select a group. The link expires in 1 hour. After linking, the group's chat_id can be used as a target for Telegram alerts. Returns: Deep link URL, workspace name, expiry info. |
| delete_telegram_group | Unlink a Telegram group. The bot stays in the group, but alerts will no longer be sent to it. Pass confirm=true to confirm. |
| list_heartbeats | List all heartbeat monitors for cron job / scheduled task monitoring. Heartbeats work in reverse: your service pings PingZen to confirm it ran. Returns: Array of heartbeat monitors with id, name, slug, status, interval, grace period, last ping, total pings. |
| create_heartbeat | Create a new heartbeat monitor for cron jobs or scheduled tasks. Your service pings PingZen at the expected interval; if a ping is missed, an alert fires after the grace period. Returns: Heartbeat details with slug, secret, and ping URL. |
| get_heartbeat | Get detailed information about a specific heartbeat monitor. Returns: name, slug, status, interval, grace period, last ping, total pings, consecutive misses, ping URL. |
| delete_heartbeat | Delete a heartbeat monitor and all its ping history. This action is IRREVERSIBLE. Safety: Pass confirm=true to actually delete. |
| pause_heartbeat | Pause a heartbeat monitor. No alerts will be sent while paused. Use resume_heartbeat to reactivate. |
| resume_heartbeat | Resume a paused heartbeat monitor. Status resets to 'pending' until the next ping is received. |