Docs

Cursor Automations

Cursor Automations + Herald

Run Herald MCP in background agents triggered by GitHub, cron, or webhooks.

Overview

Cursor Automations run cloud agents without you opening the IDE. Herald fits when the automation should notify Discord/Slack, read inbox webhooks, page on-call, or call scoped ops tools — not when you only need inline chat help.

MCP config and agent instructions go in different places than local Cursor chat. Do not paste everything into .cursor/mcp.json alone.

Local Agent vs Automations

SetupMCP configAgent instructions
Local Agent (chat).cursor/mcp.json or Settings → MCPSettings → Rules → User Rules, or .cursor/rules/herald.mdc
Cursor AutomationsAutomation → Tools → MCP server (URL + Bearer key)Automation → Instructions / prompt field

Step-by-step

  1. Install a Herald job pack and generate a scoped MCP key in your workspace Connect IDE wizard.
  2. Open cursor.com/automations and create an automation (or use the /automate skill in Cursor).
  3. Choose a trigger — e.g. Pull request opened, CI completed, cron schedule, or Herald webhook.
  4. Under Tools → MCP server, add Herald with your workspace MCP URL and Bearer token. See Cursor Automations docs.
  5. Copy agent instructions from Connect IDE (step 4, Automations mode) into the automation prompt. Include when to call each Herald tool.
  6. Save, activate, and fire the trigger to verify Herald tools run.

Example prompts by job pack

Copy from your Connect IDE wizard for live tool names, or use these as starting points:

On-call

Trigger: PagerDuty incident, cron health check, or manual webhook

When on-call escalation is warranted:
1. Assess severity from context (production down = critical, degraded = warning).
2. Call `pagerduty_trigger_incident` with summary, severity, and details.
3. Notify the team channel with `discord_send_notification` including incident link and next steps.
Do not page for low-severity or unconfirmed issues.

Web3 watch

Trigger: Herald inbox webhook (Alchemy / Tenderly / Forta) or cron monitor

When suspicious on-chain activity appears in Herald inbox:
1. Call `list_recent_events` then `get_event` for the relevant monitor event.
2. Call `discord_send_web3_alert` or `slack_send_web3_alert` with severity, chain, tx_hash, block, title, summary, explorer_url.
Use critical severity for exploit patterns or large unexpected outflows.

Solana watch

Trigger: Helius webhook (via Herald inbox) or scheduled Solana monitor

When a Solana monitor fires:
1. Read the event from Herald inbox with `list_recent_events` / `get_event`.
2. Call `discord_send_solana_alert` with chain, signature, slot, title, summary, explorer_url, and severity.

Stripe ops

Trigger: Stripe webhook (via Herald inbox) or scheduled billing check

When a Stripe payment or billing event indicates failure:
1. Read `list_recent_events` for the latest stripe-sourced event if needed.
2. Call `discord_send_stripe_alert` or `slack_send_stripe_alert` with title, summary, event_type, customer_or_account, amount_or_plan, severity, and dashboard context.
Use severity high for repeated failures; medium for single recoverable failures.

Ship guard

Trigger: GitHub — CI completed (failed) or Pull request opened

Point GitHub Actions or Vertel webhooks at Herald Inbox for richer context.

When this automation runs:
1. If CI failed or deploy status is failure, call `discord_send_ci_alert` with provider, repo_or_project, workflow_or_env, status, run_url, severity, title, and summary.
2. If severity is critical, also call `pagerduty_trigger_incident` with summary and details.
3. If unsure, call `list_recent_events` first to read the latest GitHub Actions or Vercel inbox event, then alert.
Do nothing if CI passed and there is no actionable failure.

Status room

Trigger: Sentry — Issue created (via Herald webhook) or cron every 15 minutes

Connect Sentry webhooks to Herald Inbox under Event sources.

When a Sentry-style error spike or new issue is detected:
1. Call `list_recent_events` and `get_event` to read the latest Sentry inbox event if event_id is not provided.
2. Call `slack_send_sentry_alert` with title, summary, project, level, issue_url, severity, and severity_color.
3. For customer-facing outages, call `statuspage_create_incident` with name, status, and body per schema.
Escalate only when user impact is confirmed or severity is high/critical.

Support desk

Trigger: Zendesk / Intercom webhook or manual triage request

When a support escalation is needed:
1. Create a ticket with `zendesk_create_ticket` or `intercom_create_conversation` using required fields from the tool schema.
2. Include customer context, severity, and recommended next action in the body.

Calendar agent

Trigger: Cal.com booking webhook or scheduled reminder

When a Cal.com event requires action:
1. Read inbox events if the booking came via Herald webhook.
2. Call `calcom_create_booking` when scheduling is requested.
3. Notify with `slack_send_message` confirming the booking or handoff.

Dev ship

Trigger: GitHub — Pull request merged or Issue created

After a PR is merged or when triage is requested:
1. If follow-up work is needed, call `github_create_issue` with owner, repo, title, and body summarizing what shipped and what remains.
2. Notify the team with `slack_send_message` including the issue link and one-line summary.
Skip if the PR is docs-only with no follow-ups.

Common mistakes

  • MCP only in .cursor/mcp.json — Automations run in the cloud; attach Herald under the automation's Tools → MCP server.
  • Instructions in MCP config — JSON is for server connection only; paste Herald playbooks in the automation prompt or User Rules.
  • Full catalog key — Prefer a job-pack scoped key so the agent sees few tools, not dozens.
  • Missing inbox — For webhook-driven flows, enable inbox tools on the key and tell the agent to call list_recent_events first.