From uptime
This skill should be used when the user asks to "set up monitoring", "plan monitoring for a domain", "monitor a website", "add monitoring for <domain>", "what checks do I need", or mentions comprehensive monitoring coverage. Covers domain analysis, check selection, phased setup workflow, upstream dependency detection, and CloudStatus monitoring for third-party providers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/uptime:monitoring-planningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
End-to-end workflow for planning and creating monitoring checks for a domain.
End-to-end workflow for planning and creating monitoring checks for a domain.
For check type parameters and constraints, see references/check-types.md. For domain-specific check recommendations, see references/checklist-domain-monitoring.md. For check selection and configuration guidance, see references/guide-check-selection.md. For alert routing and escalation design, see references/guide-alerting-patterns.md.
Execute the workflow directly. Do not present a plan for approval or ask the user to confirm each batch of checks. The tool invocation confirmations provide sufficient user control.
Only prompt the user when you need to:
HTTP, DNS, ICMP, TCP, UDP, SMTP, IMAP, POP, SSH, NTP. Select 3-5 probe locations, set sensitivity >= 2.
Page Speed has unique restrictions:
Dedicated-* location prefix (e.g. Dedicated-United Kingdom-London)Before starting any workflow, confirm that Uptime.com MCP tools are available (e.g. list_checks, create_http_check, list_contacts). If no uptime MCP tools are present:
/mcp to check the server status and authenticate."Before creating checks, query account limits and verify contacts exist.
Call get_account_usage to retrieve plan limits and current consumption. The response includes total check slots, per-type limits, and current counts.
Your plan allows 50 HTTP checks and you currently have 43. Adding 5 more brings you to 96% capacity. Proceed?
Adapt the check plan to fit within available capacity. Prioritize critical checks (HTTP, SSL, DNS A) over nice-to-have checks (Page Speed, Malware) when capacity is constrained.
list_contacts to see existing contact groups.create_contact with:
+15551234567) for SMS alertsChecks without a contact group alert silently (logged but no notification sent).
Create a tag before any checks. The tag is the primary organizational unit in Uptime.com: it drives Group check auto-selection, dashboard filtering, and SLA reporting scope.
Tag naming conventions:
example.com, not Example or www.example.com)example.com/production, example.com/stagingupstream-dependenciesAll checks within a batch are independent and can be created in a single parallel tool call.
Every check must include:
tags: always pass the domain tag. Every check must be tagged from the moment of creation. Untagged checks are invisible to Group checks, excluded from tag-based dashboards, and hard to manage at scale.contact_groups: at least one contact group so alerts are not silent.name: use a consistent pattern: <domain> <check-type> (e.g. example.com HTTP, example.com DNS A, realworld.show SSL).notes: brief description of purpose when not obvious from the name.After individual checks exist, create a Group check for the domain:
create_dashboard with a descriptive name (e.g. "example.com monitoring").If the domain is public-facing, suggest creating a status page. Do not create automatically; it's a public asset that requires user confirmation. See status-page-management skill for the full workflow.
Detect and offer to monitor upstream dependencies using CloudStatus checks.
DNS records reveal infrastructure providers without user input:
| Record type | Pattern | Reveals |
|---|---|---|
| CNAME chain | *.cloudfront.net | AWS CloudFront CDN |
| CNAME chain | *.cdn.cloudflare.net | Cloudflare CDN |
| CNAME chain | *.fastly.net | Fastly CDN |
| CNAME chain | *.akamaiedge.net, *.akamai.net | Akamai CDN |
| CNAME chain | *.azureedge.net | Azure CDN |
| CNAME chain | *.herokuapp.com | Heroku |
| CNAME chain | *.netlify.app | Netlify |
| CNAME chain | *.vercel-dns.com | Vercel |
| MX | *.google.com, *.googlemail.com | Google Workspace |
| MX | *.outlook.com, *.protection.outlook.com | Microsoft 365 |
| MX | *.pphosted.com | Proofpoint |
| MX | *.mimecast.com | Mimecast |
| NS | *.cloudflare.com | Cloudflare DNS |
| NS | awsdns-* | AWS Route 53 |
| NS | *.azure-dns.* | Azure DNS |
| NS | ns*.google.com | Google Cloud DNS |
| TXT (SPF) | include:_spf.google.com | Google email sending |
| TXT (SPF) | include:spf.protection.outlook.com | Microsoft email sending |
| TXT (SPF) | include:sendgrid.net | SendGrid |
| TXT (SPF) | include:amazonses.com | AWS SES |
| TXT (SPF) | include:mailgun.org | Mailgun |
Inspect DNS check results from Phase 1 for these patterns before proceeding.
Always confirm before creating dependency checks:
I detected these upstream dependencies from your DNS records:
- CDN: Cloudflare (CNAME -> cdn.cloudflare.net)
- Email: Google Workspace (MX -> google.com)
- DNS: Cloudflare (NS -> cloudflare.com)
Would you like me to monitor their status pages? Are there other dependencies I should include (e.g. payment processor, auth provider)?
For each confirmed dependency:
upstream-dependencies to keep them organized separately.Add dependency checks to the domain's dashboard in a separate "Dependencies" widget group.
For comprehensive DNS coverage, create three checks:
| Record | Target | Catches |
|---|---|---|
| A | subdomain (e.g. www.example.com) | resolution failures for the service |
| MX | parent domain (e.g. example.com) | mail routing breakage |
| NS | parent domain (e.g. example.com) | nameserver delegation issues |
NS breakage cascades into A and MX failures, so it provides the earliest signal.
| Check type | Target | Why |
|---|---|---|
| HTTP, ICMP, SSL, Blacklist, Malware | subdomain or full URL | checks the actual service endpoint |
| DNS A/AAAA/CNAME | subdomain | resolves the specific host |
| DNS MX/NS | parent (registered) domain | MX and NS are zone-level records |
| WHOIS, RDAP | parent (registered) domain | WHOIS/RDAP data exists only for registered domains |
WHOIS and RDAP both require expect_string set to the domain name (e.g. example.com). Creating both provides redundancy since WHOIS servers can be unreliable.
Dedicated-* location.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub uptime-com/uptime-skills --plugin uptime