tickstem-mcp
Cron scheduling, uptime monitoring, heartbeat monitoring, and email verification as native MCP tools.
What it can do
- Create Heartbeat: Create a heartbeat monitor (dead-man's switch). Your job should POST to the returned ping URL after each successful run. If the ping stops arriving within the interval + grace window
- Create Monitor: Create an uptime monitor that polls an HTTP/HTTPS endpoint on a schedule and alerts on failure. Supports response assertions to validate that the response is correct — not just that th
- Delete Heartbeat: Permanently delete a heartbeat monitor and all its ping history. This cannot be undone.
What data it sees
Do you need an account
An API key from the service settings is required
Cron scheduling, uptime monitoring, heartbeat monitoring, and email verification as native MCP tools. Register scheduled jobs, create uptime and heartbeat monitors, and verify email addresses from Claude Code, Cursor, or any MCP-compatible agent.
How to connect
How to connect tickstem-mcp to Claude
The server address to paste into Claude settings:
https://tickstem-mcp--tickstem-info.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 tickstem-mcp to ChatGPT
The server address to paste into ChatGPT settings:
https://tickstem-mcp--tickstem-info.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 tickstem-mcp to Cursor
The server address to paste into Cursor settings:
https://tickstem-mcp--tickstem-info.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 (26)
Raw names from tools/list. Only developers need these.
| create_heartbeat | Create a heartbeat monitor (dead-man's switch). Your job should POST to the returned ping URL after each successful run. If the ping stops arriving within the interval + grace window, Tickstem sends an alert. |
| create_monitor | Create an uptime monitor that polls an HTTP/HTTPS endpoint on a schedule and alerts on failure. Supports response assertions to validate that the response is correct — not just that the server responded. Assertions use source (status_code, response_time, body) + comparison (eq, ne, lt, lte, gt, gte, contains, not_contains) + target. When assertions are set they replace the default 2xx/3xx success logic. For HTTPS endpoints, SSL certificate expiry is captured automatically and an alert is sent 30 days before expiry. Pass assertions as a JSON string, e.g.: [{"source":"status_code","comparison":"eq","target":"200"},{"source":"body","comparison":"contains","target":"\"status\":\"ok\""}] |
| delete_heartbeat | Permanently delete a heartbeat monitor and all its ping history. This cannot be undone. |
| delete_job | Permanently delete a cron job and its execution history |
| delete_monitor | Permanently delete an uptime monitor and all its check history. This cannot be undone. |
| get_heartbeat | Get a single heartbeat monitor by ID. Returns its status, ping token, interval, grace window, and last pinged time. |
| get_job | Get a cron job by ID |
| get_monitor | Get a single uptime monitor by ID. Returns current status, SSL expiry date, assertion rules, and next scheduled check time. |
| list_executions | List execution history for a cron job, most recent first |
| list_heartbeat_pings | List recent pings for a heartbeat monitor, most recent first. |
| list_heartbeats | List all heartbeat monitors in the account. Each heartbeat has a token used for pinging and a status: active, paused, or failing. |
| list_jobs | List all cron jobs in the account |
| list_monitor_checks | List recent check results for an uptime monitor, most recent first. Each check includes: status (up/down/timeout), HTTP status code, response time in ms, error message, SSL certificate expiry date, and timestamp. Use this to diagnose failures or verify that a monitor is healthy. |
| list_monitors | List all uptime monitors in the account. Returns each monitor's status (active/paused/failing), URL, check interval, SSL expiry date, and assertion rules. |
| list_verify_history | List past email verification results for the account |
| pause_heartbeat | Pause a heartbeat monitor. Alerts are suppressed while paused — useful during planned downtime or deployments. |
| pause_job | Pause a cron job so it no longer fires |
| pause_monitor | Pause an uptime monitor so it stops polling. No alerts will fire while paused. Use resume_monitor to restart. |
| ping_heartbeat | Ping a heartbeat to signal a successful job run. The token is the credential — no API key needed. Call this at the end of each successful execution. |
| register_job | Register a new cron job |
| resume_heartbeat | Resume a paused heartbeat monitor. Alerting restarts immediately. |
| resume_job | Resume a paused or failing cron job |
| resume_monitor | Resume a paused uptime monitor. Polling and alerting restart immediately. |
| update_heartbeat | Update a heartbeat's name, interval, or grace window. Only provided fields are changed. |
| update_job | Update an existing cron job. Only provided fields are changed |
| verify_email | Verify an email address: checks syntax, MX records, disposable domain list, and role-based prefixes |