Tickstem MCP Server
Cron scheduling, uptime monitoring, heartbeat monitoring, and email verification as native MCP tools for Claude Code, Cursor, and any MCP-compatible agent.
Documentation
tickstem/mcp
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.
Install
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
Quick start
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.
Claude Code
Add to your ~/.claude/claude_desktop_config.json (or equivalent):
{
"mcpServers": {
"tickstem": {
"command": "tsk-mcp",
"env": {
"TICKSTEM_API_KEY": "tsk_your_key_here"
}
}
}
}
Available tools
Cron jobs
| 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 |
Uptime monitoring
| 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 |
Response assertions
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 |
Heartbeat monitoring
| 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 |
Email verification
| Tool | Description |
|---|---|
verify_email | Check syntax, MX records, disposable domain, and role-based prefix |
list_verify_history | List past verification results for the account |
Environment variables
| 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) |
Local development
export TICKSTEM_API_KEY=tsk_your_key_here
export TICKSTEM_BASE_URL=http://localhost:8080/v1
go run ./cmd/tsk-mcp
SDKs
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.
Get an API key
app.tickstem.dev — free tier includes 1,000 cron executions, 5 uptime monitors, 5 heartbeat monitors, and 500 email verifications per month.
License
MIT