loading…
Search for a command to run...
loading…
HTTP uptime monitoring, heartbeat (dead-man's switch) monitoring, cron job scheduling, and email verification. Single API key, per-tool quota tracking. Install:
HTTP uptime monitoring, heartbeat (dead-man's switch) monitoring, cron job scheduling, and email verification. Single API key, per-tool quota tracking. Install: go install github.com/tickstem/mcp/cmd/tsk-mcp@latest.
MCP server for Tickstem — exposes cron job scheduling, uptime monitoring, heartbeat monitoring, and email verification as native tools for AI coding assistants (Claude, Cursor, Copilot, and any MCP-compatible agent).
Let your AI assistant register cron jobs, create uptime monitors with response assertions, manage heartbeat monitors, verify email addresses, and query results — while you write the app code.
Download a pre-built binary (no Go required):
| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | tsk-mcp-darwin-arm64 |
| macOS (Intel) | tsk-mcp-darwin-amd64 |
| Linux (x86-64) | tsk-mcp-linux-amd64 |
| Linux (ARM64) | tsk-mcp-linux-arm64 |
| Windows (x86-64) | tsk-mcp-windows-amd64.exe |
Download from Releases, make executable, and place on your PATH:
# macOS / Linux example
chmod +x tsk-mcp-darwin-arm64
mv tsk-mcp-darwin-arm64 /usr/local/bin/tsk-mcp
Or install with Go:
go install github.com/tickstem/mcp/cmd/tsk-mcp@latest
export TICKSTEM_API_KEY=tsk_your_key_here
tsk-mcp
The server speaks the Model Context Protocol over stdio — connect it to any MCP-compatible client.
Add to your ~/.claude/claude_desktop_config.json (or equivalent):
{
"mcpServers": {
"tickstem": {
"command": "tsk-mcp",
"env": {
"TICKSTEM_API_KEY": "tsk_your_key_here"
}
}
}
}
| Tool | Description |
|---|---|
list_jobs |
List all cron jobs in the account |
get_job |
Get a cron job by ID |
register_job |
Register a new cron job (name, schedule, endpoint) |
update_job |
Update an existing job — only provided fields change |
pause_job |
Pause a job so it no longer fires |
resume_job |
Resume a paused or failing job |
delete_job |
Permanently delete a job and its execution history |
list_executions |
List execution history for a job, most recent first |
| Tool | Description |
|---|---|
list_monitors |
List all monitors — status, URL, interval, SSL expiry, assertions |
create_monitor |
Create a monitor with optional response assertions (status code, response time, body) |
get_monitor |
Get a monitor by ID |
pause_monitor |
Pause a monitor so it stops polling |
resume_monitor |
Resume a paused monitor |
delete_monitor |
Permanently delete a monitor and its check history |
list_monitor_checks |
List recent checks — status, HTTP code, duration, error, SSL expiry |
create_monitor accepts an assertions parameter — a JSON array of conditions that must all pass for a check to be considered up. When assertions are set they replace the default 2xx/3xx logic.
[
{ "source": "status_code", "comparison": "eq", "target": "200" },
{ "source": "response_time", "comparison": "lt", "target": "2000" },
{ "source": "body", "comparison": "contains", "target": "\"status\":\"ok\"" }
]
| Source | Valid comparisons | Target |
|---|---|---|
status_code |
eq ne lt lte gt gte |
integer string |
response_time |
eq ne lt lte gt gte |
integer string (ms) |
body |
eq ne contains not_contains |
plain string |
| Tool | Description |
|---|---|
list_heartbeats |
List all heartbeats — status, token, interval, grace window, last ping time |
create_heartbeat |
Create a heartbeat monitor (dead-man's switch) |
get_heartbeat |
Get a heartbeat by ID |
update_heartbeat |
Update name, interval, or grace window |
pause_heartbeat |
Suppress alerts during planned downtime |
resume_heartbeat |
Resume alerting after a pause |
delete_heartbeat |
Permanently delete a heartbeat and its ping history |
ping_heartbeat |
Record a successful job run — no API key needed, token is the credential |
list_heartbeat_pings |
List recent pings for a heartbeat, most recent first |
| Tool | Description |
|---|---|
verify_email |
Check syntax, MX records, disposable domain, and role-based prefix |
list_verify_history |
List past verification results for the account |
| Variable | Required | Description |
|---|---|---|
TICKSTEM_API_KEY |
Yes | API key from app.tickstem.dev |
TICKSTEM_BASE_URL |
No | Override API base URL (e.g. http://localhost:8080/v1 for local dev) |
export TICKSTEM_API_KEY=tsk_your_key_here
export TICKSTEM_BASE_URL=http://localhost:8080/v1
go run ./cmd/tsk-mcp
The MCP server handles infrastructure management from your AI assistant. For application code, use the SDK that matches your language:
| Language | Install | Docs |
|---|---|---|
| Python | pip install tickstem |
github.com/tickstem/python |
| Go (cron) | go get github.com/tickstem/cron |
pkg.go.dev |
| Go (uptime) | go get github.com/tickstem/uptime |
pkg.go.dev |
| Go (heartbeat) | go get github.com/tickstem/heartbeat |
pkg.go.dev |
| Go (verify) | go get github.com/tickstem/verify |
pkg.go.dev |
| Node.js | npm install @tickstem/cron |
github.com/tickstem/node |
All SDKs use the same API key.
app.tickstem.dev — free tier includes 1,000 cron executions, 5 uptime monitors, 5 heartbeat monitors, and 500 email verifications per month.
MIT
Run in your terminal:
claude mcp add tickstem-mcp -- npx pro tip
Just installed tickstem/mcp? Say to Claude: "remember why I installed tickstem/mcpand what I want to try" — it'll save into your Vault.
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.