Sentry (Read-only Observability)
Quick start
- If not already authenticated, ask the user to provide a valid
SENTRY_AUTH_TOKEN (read-only scopes such as project:read, event:read) or to log in and create one before running commands.
- Set
SENTRY_AUTH_TOKEN as an env var.
- Optional defaults:
SENTRY_ORG, SENTRY_PROJECT, SENTRY_BASE_URL.
- Defaults: org/project
{your-org}/{your-project}, time range 24h, environment prod, limit 20 (max 50).
- Always call the Sentry API (no heuristics, no caching).
If the token is missing, give the user these steps:
- Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
- Create a token with read-only scopes such as
project:read, event:read, and org:read.
- Set
SENTRY_AUTH_TOKEN as an environment variable in their system.
- Offer to guide them through setting the environment variable for their OS/shell if needed.
- Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.
Core tasks (use bundled script)
Use scripts/sentry_api.py for deterministic API calls. It handles pagination and retries once on transient errors.
Scripts and references are located under {baseDir}/.
API requirements
Always use these endpoints (GET only):
- List issues:
/api/0/projects/{org_slug}/{project_slug}/issues/
- Issue detail:
/api/0/issues/{issue_id}/
- Events for issue:
/api/0/issues/{issue_id}/events/
- Event detail:
/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
Inputs and defaults
org_slug, project_slug: default to {your-org}/{your-project} (avoid non-prod orgs).
time_range: default 24h (pass as statsPeriod).
environment: default prod.
limit: default 20, max 50 (paginate until limit reached).
search_query: optional query parameter.
issue_short_id: resolve via list-issues query first.
Output formatting rules
- Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
- Event detail: include culprit, timestamp, environment, release, url.
- If no results, state explicitly.
- Redact PII in output (emails, IPs). Do not print raw stack traces.
- Never echo auth tokens.
Golden test inputs
- Org:
{your-org}
- Project:
{your-project}
- Issue short ID:
{ABC-123}
Example prompt: “List the top 10 open issues for prod in the last 24h.”
Expected: ordered list with titles, short IDs, counts, last seen.
When to Use
When NOT to Use
1---2name: openai-sentry3description: Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`. Originally from OpenAI's curated skills catalog.4---5
6# Sentry (Read-only Observability)
7
8## Quick start
9
10- If not already authenticated, ask the user to provide a valid `SENTRY_AUTH_TOKEN` (read-only scopes such as `project:read`, `event:read`) or to log in and create one before running commands.
11- Set `SENTRY_AUTH_TOKEN` as an env var.
12- Optional defaults: `SENTRY_ORG`, `SENTRY_PROJECT`, `SENTRY_BASE_URL`.
13- Defaults: org/project `{your-org}`/`{your-project}`, time range `24h`, environment `prod`, limit 20 (max 50).
14- Always call the Sentry API (no heuristics, no caching).
15
16If the token is missing, give the user these steps:
171. Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
182. Create a token with read-only scopes such as `project:read`, `event:read`, and `org:read`.
193. Set `SENTRY_AUTH_TOKEN` as an environment variable in their system.
204. Offer to guide them through setting the environment variable for their OS/shell if needed.
21- Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.
22
23## Core tasks (use bundled script)
24
25Use `scripts/sentry_api.py` for deterministic API calls. It handles pagination and retries once on transient errors.
26
27Scripts and references are located under `{baseDir}/`.
28
29## API requirements
30
31Always use these endpoints (GET only):
32
33- List issues: `/api/0/projects/{org_slug}/{project_slug}/issues/`
34- Issue detail: `/api/0/issues/{issue_id}/`
35- Events for issue: `/api/0/issues/{issue_id}/events/`
36- Event detail: `/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/`
37
38## Inputs and defaults
39
40- `org_slug`, `project_slug`: default to `{your-org}`/`{your-project}` (avoid non-prod orgs).
41- `time_range`: default `24h` (pass as `statsPeriod`).
42- `environment`: default `prod`.
43- `limit`: default 20, max 50 (paginate until limit reached).
44- `search_query`: optional `query` parameter.
45- `issue_short_id`: resolve via list-issues query first.
46
47## Output formatting rules
48
49- Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
50- Event detail: include culprit, timestamp, environment, release, url.
51- If no results, state explicitly.
52- Redact PII in output (emails, IPs). Do not print raw stack traces.
53- Never echo auth tokens.
54
55## Golden test inputs
56
57- Org: `{your-org}`
58- Project: `{your-project}`
59- Issue short ID: `{ABC-123}`
60
61Example prompt: “List the top 10 open issues for prod in the last 24h.”
62Expected: ordered list with titles, short IDs, counts, last seen.
63
64## When to Use
65
66<!-- TODO: review -->
67
68## When NOT to Use
69
70<!-- TODO: review -->
71