Use when the user shares a Sentry URL, says \"check Sentry\", or wants to investigate production errors. Uses Sentry MCP tools for deep analysis.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add event4u-app/agent-config --skill sentry-integration --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Sentry Integration?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/event4u-app-sentry-integration-agent-config)More formats (shields.io, HTML) on the badges page.
---
model_tier: medium
name: sentry-integration
description: "Use when the user shares a Sentry URL, says \"check Sentry\", or wants to investigate production errors. Uses Sentry MCP tools for deep analysis."
domain: devops
workspaces:
- engineering
packs:
- engineering-base
---
# Sentry Skill
## When to use
Use this skill when:
- Investigating a Sentry error or issue URL
- Analyzing error patterns, frequency, or affected users
- Working with Sentry MCP tools for issue details
- Adding error reporting or breadcrumbs to code
- Configuring Sentry alerts or release tracking
## Available MCP tools
### Issue investigation
| Tool | Purpose |
|---|---|
| `get_issue_details` | Full issue details: stacktrace, tags, metadata |
| `get_issue_tag_values` | Distribution by tag (browser, URL, environment, user) |
| `search_issues` | Find issues by criteria (unresolved, critical, etc.) |
| `search_events` | Count/aggregate events, find individual error logs |
| `search_issue_events` | Filter events within a specific issue |
| `analyze_issue_with_seer` | AI root cause analysis with code fix suggestions |
### Context tools
| Tool | Purpose |
|---|---|
| `get_trace_details` | Trace overview for performance issues |
| `get_event_attachment` | Download screenshots, logs attached to events |
| `find_organizations` | Find org slug (needed for most queries) |
| `find_projects` | Find project slug |
| `find_releases` | Check recent releases and deploy timing |
## Procedure: Investigate a Sentry error
### 1. Get issue details
From a Sentry URL:
```
get_issue_details(issueUrl='https://sentry.io/issues/PROJECT-123/')
```
From an issue ID:
```
get_issue_details(organizationSlug='my-org', issueId='PROJECT-123')
```
### 2. Analyze the stacktrace
- **Top frame** = where it crashed
- **Bottom frame** = entry point (HTTP request, job, command)
- Read each file in the call chain using `codebase-retrieval`
- Identify where data becomes invalid or assumptions break
### 3. Check distribution
```
get_issue_tag_values(issueId='PROJECT-123', tagKey='environment')
get_issue_tag_values(issueId='PROJECT-123', tagKey='url')
get_issue_tag_values(issueId='PROJECT-123', tagKey='browser')
```
Useful tags: `environment`, `url`, `browser`, `os`, `release`, `user`, `device`
### 4. Check frequency and timing
```
search_events(organizationSlug='my-org', naturalLanguageQuery='count of errors for PROJECT-123 in last 7 days')
```
### 5. AI analysis (if needed)
```
analyze_issue_with_seer(issueUrl='https://sentry.io/issues/PROJECT-123/')
```
Only use when you cannot determine the root cause from the stacktrace alone.
## Error reporting in code
### MonitoringHelper (project convention)
Always use the project's `MonitoringHelper` — never the Sentry SDK directly:
```php
// ✅ Correct
MonitoringHelper::captureException($exception);
// ❌ Wrong
\Sentry\captureException($exception);
```
### Breadcrumbs
Use project enums for structured breadcrumbs:
```php
use App\Enums\Sentry\BreadcrumbType;
use App\Enums\Sentry\BreadcrumbLevel;
```
### Context
Check the project for Sentry context enums and the tenant switching service that sets context automatically.
## Common error patterns
| Pattern | Root cause | Fix approach |
|---|---|---|
| `TypeError: null passed to non-nullable` | Missing null check on optional DB column | Add null guard or make parameter nullable |
| `ModelNotFoundException` | Deleted or missing related record | Add `optional()` or existence check |
| `ConnectionException` | Multi-tenant DB switch failed | Check tenant switching service flow |
| `ValidationException` in jobs | Job data changed between dispatch and execution | Re-validate in `handle()` |
| `Undefined array key` | External API/import data missing expected field | Add `array_key_exists()` or null coalescing |
## Search patterns
### Find issues by criteria
```
search_issues(organizationSlug='my-org', naturalLanguageQuery='unresolved errors in production last 24h')
search_issues(organizationSlug='my-org', naturalLanguageQuery='errors affecting more than 100 users')
search_issues(organizationSlug='my-org', naturalLanguageQuery='issues assigned to me')
```
### Count events
```
search_events(organizationSlug='my-org', naturalLanguageQuery='how many errors today')
search_events(organizationSlug='my-org', naturalLanguageQuery='count of database failures this week')
```
## Related
- **Skill:** `logging-monitoring` — full monitoring stack (Sentry + Grafana + Loki)
- **Skill:** `bug-analyzer` — uses Sentry as input for bug investigation
- **Command:** `/bug-investigate` — fetches Sentry details automatically
- **Config:** the SDK's config surface (`config/sentry.php` in Laravel, `sentry.client.config.ts` in Next.js) — Sentry DSN and configuration
## Output format
1. Sentry integration code with proper context and breadcrumbs
2. Error grouping configuration if needed
## Gotcha
- Sentry groups errors by stacktrace — different root causes may appear as the same issue. Check multiple events.
- The model tends to analyze only the latest event — check the "Events" tab for patterns across time.
- Don't use Sentry MCP tools for simple lookups — use the Sentry web UI link instead (saves tokens).
## Do NOT
- Do NOT use Sentry SDK directly — use MonitoringHelper.
- Do NOT ignore Sentry errors without investigating root cause.
- Do NOT expose sensitive data in Sentry error context.
## Auto-trigger keywords
- Sentry
- error tracking
- issue investigation
- error reporting
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!