Repository navigation
feat(uptime): add MVP tools for uptime monitors - #1229
Conversation
dcramer
left a comment
There was a problem hiding this comment.
Flow: feature
Risk: medium — new create/update/delete surface over live uptime monitors; reversible, catalog-only, but can store and re-surface request credentials
Verdict: request-changes
Adds a solid MVP for HTTP uptime monitors, separate from cron tools, with verified upstream routes/schemas and baseline snapshots. Direction matches existing catalog patterns. One privacy issue should be fixed before merge.
Findings
[should-fix]packages/mcp-core/src/tools/catalog/get-uptime-monitor-details.ts: details output dumps fullheadersandbodyinto the tool response (and the description even usesAuthorizationas the example). Uptime monitors commonly store bearer tokens / basic auth; those values then land in agent context and chat logs. Omit body/headers by default, or redact sensitive header names (authorization,cookie,set-cookie,x-api-key, etc.) and only show non-sensitive metadata (method/url/status/checks).
Checks
test/typecheck/smoke green; eval + warden still pending.
Notes
- Residual: update path cannot clear nullable fields (
owner/body/assertion) because toolnullis collapsed to omit — fine for MVP if not advertised as clear-support. - Residual: tests are baseline-only vs denser cron suites; not merge-blocking for this MVP, but constraint/empty-update coverage would help before ready-for-review.
- Scopes (
project:write/project:read) match upstreamProjectAlertRulePermissionalternatives and existing MCP scope set.
Add catalog tools for listing, inspecting, creating, updating, and deleting Sentry HTTP uptime monitors, backed by verified upstream API schemas and endpoints. Closes #1136 Co-Authored-By: David Cramer <david@sentry.io> Co-Authored-By: David Cramer <david@sentry.io>
Redact sensitive headers and omit request bodies from details output, normalize regional SaaS web URLs, make delete idempotent on 404, reject empty owners, and support clearing nullable update fields. Co-Authored-By: David Cramer <david@sentry.io> Co-Authored-By: David Cramer <david@sentry.io>
Slim list results, normalize uptimeStatus, use optional fields instead of null placeholders, drop opaque assertion inputs, and make update clear semantics omit-vs-null. Co-Authored-By: David Cramer <david@sentry.io>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fb874af. Configure here.
fb874af to
812ccde
Compare
dcramer
left a comment
There was a problem hiding this comment.
the hints are often describing things that should be descriptions on the params themselves. move the per-param hints, and if there is nothing left, you dont need to render the hints block...
…body Move create-tool param guidance out of the <hints> block onto existing parameter descriptions, and show the request-body omission note even when headers are also present. Co-Authored-By: David Cramer <david@sentry.io>

Summary
Adds an MVP for Sentry HTTP uptime monitor management in MCP, separate from existing cron monitor tools.
Closes #1136
Tools
find_uptime_monitors(inspect) — list org uptime monitorsget_uptime_monitor_details(inspect) — config + recent checkscreate_uptime_monitor(project-management)update_uptime_monitor(project-management) — includes enable/disabledelete_uptime_monitor(project-management)Catalog-only (not top-level
tools/list).Upstream schema verification (
getsentry/sentry)Verified request/response contracts against:
src/sentry/api/urls.pyroutes under/organizations/{org}/uptime/and/projects/{org}/{project}/uptime/src/sentry/uptime/endpoints/organiation_uptime_alert_index.py(list)src/sentry/uptime/endpoints/project_uptime_alert_index.py(create)src/sentry/uptime/endpoints/project_uptime_alert_details.py(get/update/delete)src/sentry/uptime/endpoints/project_uptime_alert_checks_index.py(checks)src/sentry/uptime/endpoints/validators.py(UptimeMonitorValidator, camelCase viaCamelSnakeSerializer)src/sentry/uptime/endpoints/serializers.py(UptimeDetectorSerializer)src/sentry/uptime/models.pyinterval/method enums:60/300/600/1200/1800/3600, HTTP methodsOut of scope (intentionally)
get_sentry_resourceURL wiring for uptimeChecks
pnpm --filter @sentry/mcp-core exec tsc --noEmittools.test.ts+skills.test.ts+url-utils.test.ts(87 passed)generate-definitionsregenerated tool/skill defsRequested by David Cramer.
--
View Junior Session [Sentry]