Check if a website is up, SSL expiry and DNS. 24/7 uptime monitors. No account for a check.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get the expiry date of the SSL/TLS certificate of a host and the number of days left. No account and no API key are necessary.
A host name, for example example.com. A port is optional: example.com:8443.
Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http uptime https://getpingdeck.com/mcp
Get the expiry date of the SSL/TLS certificate of a host and the number of days left. No account and no API key are necessary.
| Argument | Type | Description |
|---|---|---|
| host* | string | A host name, for example example.com. A port is optional: example.com:8443. |
| api_key | string | Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address. |
{
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"description": "A host name, for example example.com. A port is optional: example.com:8443."
},
"api_key": {
"type": "string",
"description": "Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address."
}
},
"additionalProperties": false
}Check now if a website or a URL is up or down. The answer has the HTTP status, the response time and a plain verdict: up, down, reachable_but_refused or page_error. It is a real request from a PingDeck server in Singapore at the time of the call, not a stored value. No account and no API key are necessary.
| Argument | Type | Description |
|---|---|---|
| url* | string | A URL or a domain, for example https://example.com/health or example.com. |
| api_key | string | Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "A URL or a domain, for example https://example.com/health or example.com."
},
"api_key": {
"type": "string",
"description": "Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address."
}
},
"additionalProperties": false
}Start 24/7 monitoring of a URL. PingDeck checks the URL on a schedule and records each downtime and the SSL certificate expiry. An alert goes to the webhook of the account (see set_alert_webhook). An API key is necessary: call signup first.
| Argument | Type | Description |
|---|---|---|
| url* | string | The URL to monitor, for example https://example.com. |
| name | string | Optional. A short name for the monitor. |
| api_key | string | A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header "Authorization: Bearer <key>". |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL to monitor, for example https://example.com."
},
"name": {
"type": "string",
"description": "Optional. A short name for the monitor."
},
"api_key": {
"type": "string",
"description": "A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header \"Authorization: Bearer <key>\"."
}
},
"additionalProperties": false
}Get the DNS records of a domain: A, AAAA, CNAME, MX, TXT and NS. No account and no API key are necessary.
| Argument | Type | Description |
|---|---|---|
| domain* | string | A domain name, for example example.com. |
| api_key | string | Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address. |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "A domain name, for example example.com."
},
"api_key": {
"type": "string",
"description": "Optional. A PingDeck API key (pd_live_...). Without a key the check uses the free pool: 100 checks a day for each IP address."
}
},
"additionalProperties": false
}Show the plan of the account, the API calls used this month, the number of monitors and if an alert webhook is set. For a Free account the answer has an upgrade link for the account owner. This call does not use the quota. An API key is necessary.
| Argument | Type | Description |
|---|---|---|
| api_key | string | A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header "Authorization: Bearer <key>". |
{
"type": "object",
"required": [],
"properties": {
"api_key": {
"type": "string",
"description": "A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header \"Authorization: Bearer <key>\"."
}
},
"additionalProperties": false
}List the monitors of the account with the current status, the last response time and the SSL certificate expiry of each. An API key is necessary.
| Argument | Type | Description |
|---|---|---|
| api_key | string | A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header "Authorization: Bearer <key>". |
{
"type": "object",
"required": [],
"properties": {
"api_key": {
"type": "string",
"description": "A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header \"Authorization: Bearer <key>\"."
}
},
"additionalProperties": false
}Check if a popular online service is down for everyone: for example ChatGPT, Claude, WhatsApp, YouTube, Discord, Roblox or Mobile Legends. The answer has the live status, the uptime percent of the last 90 days from PingDeck checks and the recent incidents. PingDeck follows 61 services. Call the tool with no service to get the list. No account and no API key are necessary.
| Argument | Type | Description |
|---|---|---|
| service | string | The name, the slug or the domain of the service, for example "chatgpt", "Mobile Legends" or "whatsapp.com". Omit it to list all services. |
{
"type": "object",
"required": [],
"properties": {
"service": {
"type": "string",
"description": "The name, the slug or the domain of the service, for example \"chatgpt\", \"Mobile Legends\" or \"whatsapp.com\". Omit it to list all services."
}
},
"additionalProperties": false
}Set the webhook URL that gets a message when a monitor goes down, comes back or has an SSL certificate near its expiry. A Slack or Discord incoming webhook works, and any HTTPS endpoint that accepts a JSON POST. An empty webhook_url removes the webhook. An API key is necessary.
| Argument | Type | Description |
|---|---|---|
| api_key | string | A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header "Authorization: Bearer <key>". |
| webhook_url* | string | The webhook URL. An empty text removes the webhook. |
{
"type": "object",
"required": [
"webhook_url"
],
"properties": {
"api_key": {
"type": "string",
"description": "A PingDeck API key (pd_live_...) from the signup tool. Not necessary when the client sends the key in the header \"Authorization: Bearer <key>\"."
},
"webhook_url": {
"type": "string",
"description": "The webhook URL. An empty text removes the webhook."
}
},
"additionalProperties": false
}Create a free PingDeck account and get an API key in one call. An account is necessary only for 24/7 monitors or for more than 100 checks a day. Ask the person you work for first, and use the real email address of that person. The person can log in at https://getpingdeck.com/app with the same email and password. Free plan: 5 monitors, one check each 5 minutes, 300 API calls a month. Store the api_key: PingDeck shows it one time.
| Argument | Type | Description |
|---|---|---|
| email* | string | The email address of the account owner. |
| password* | string | A password of 8 characters or more. Make a strong one and give it to the account owner. |
{
"type": "object",
"required": [
"email",
"password"
],
"properties": {
"email": {
"type": "string",
"description": "The email address of the account owner."
},
"password": {
"type": "string",
"description": "A password of 8 characters or more. Make a strong one and give it to the account owner."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.