whoami
Identify the authenticated user in Sentry.
Use this tool when you need to:
- Get the user's name and email address.
Try it
find_organizations
Find organizations that the user has access to in Sentry.
Use this tool when you need to:
- View all organizations in Sentry
- Find an organization's slug to aid other tool requests
Try it
find_teams
Find teams in an organization in Sentry.
Use this tool when you need to:
- View all teams in a Sentry organization
- Find a team's slug to aid other tool requests
Try it
find_projects
Find projects in Sentry.
Use this tool when you need to:
- View all projects in a Sentry organization
- Find a project's slug to aid other tool requests
Try it
find_releases
Find releases in Sentry.
Use this tool when you need to:
- Find recent releases in a Sentry organization
- Find the most recent version released of a specific project
- Determine when a release was deployed to an environment
<examples>
### Find the most recent releases in the 'my-organization' organization
```
find_releases(organizationSlug='my-organization')
```
### Find releases matching '2ce6a27' in the 'my-organization' organization
```
find_releases(organizationSlug='my-organization', query='2ce6a27')
```
</examples>
<hints>
- If the user passes a parameter in the form of name/otherName, its likely in the format of <organizationSlug>/<projectSlug>.
</hints>
Try it
get_issue_details
Get detailed information about a specific Sentry issue by ID.
🔍 USE THIS TOOL WHEN USERS:
- Provide a specific issue ID (e.g., 'CLOUDFLARE-MCP-41', 'PROJECT-123')
- Ask to 'explain [ISSUE-ID]', 'tell me about [ISSUE-ID]'
- Want details/stacktrace/analysis for a known issue
- Provide a Sentry issue URL
❌ DO NOT USE for:
- General searching or listing issues (use search_issues)
- Root cause analysis (use analyze_issue_with_seer)
TRIGGER PATTERNS:
- 'Explain ISSUE-123' → use get_issue_details
- 'Tell me about PROJECT-456' → use get_issue_details
- 'What happened in [issue URL]' → use get_issue_details
<examples>
### Explain specific issue
```
get_issue_details(organizationSlug='my-organization', issueId='CLOUDFLARE-MCP-41')
```
### Get details for event ID
```
get_issue_details(organizationSlug='my-organization', eventId='c49541c747cb4d8aa3efb70ca5aba243')
```
</examples>
<hints>
- If the user provides the `issueUrl`, you can ignore the other parameters.
- If the user provides `issueId` or `eventId` (only one is needed), `organizationSlug` is required.
</hints>
Try it
get_trace_details
Get detailed information about a specific Sentry trace by ID.
🔍 USE THIS TOOL WHEN USERS:
- Provide a specific trace ID (e.g., 'a4d1aae7216b47ff8117cf4e09ce9d0a')
- Ask to 'show me trace [TRACE-ID]', 'explain trace [TRACE-ID]'
- Want high-level overview and link to view trace details in Sentry
- Need trace statistics and span breakdown
❌ DO NOT USE for:
- General searching for traces (use search_events with trace queries)
- Individual span details (this shows trace overview)
TRIGGER PATTERNS:
- 'Show me trace abc123' → use get_trace_details
- 'Explain trace a4d1aae7216b47ff8117cf4e09ce9d0a' → use get_trace_details
- 'What is trace [trace-id]' → use get_trace_details
<examples>
### Get trace overview
```
get_trace_details(organizationSlug='my-organization', traceId='a4d1aae7216b47ff8117cf4e09ce9d0a')
```
</examples>
<hints>
- Trace IDs are 32-character hexadecimal strings
</hints>
Try it
get_event_attachment
Download attachments from a Sentry event.
Use this tool when you need to:
- Download files attached to a specific event
- Access screenshots, log files, or other attachments uploaded with an error report
- Retrieve attachment metadata and download URLs
<examples>
### Download a specific attachment by ID
```
get_event_attachment(organizationSlug='my-organization', projectSlug='my-project', eventId='c49541c747cb4d8aa3efb70ca5aba243', attachmentId='12345')
```
### List all attachments for an event
```
get_event_attachment(organizationSlug='my-organization', projectSlug='my-project', eventId='c49541c747cb4d8aa3efb70ca5aba243')
```
</examples>
<hints>
- If `attachmentId` is provided, the specific attachment will be downloaded as an embedded resource
- If `attachmentId` is omitted, all attachments for the event will be listed with download information
- The `projectSlug` is required to identify which project the event belongs to
</hints>
Try it
search_events
Search for events AND perform counts/aggregations - the ONLY tool for statistics and counts.
Supports TWO query types:
1. AGGREGATIONS (counts, sums, averages): 'how many errors', 'count of issues', 'total tokens'
2. Individual events with timestamps: 'show me error logs from last hour'
🔢 USE THIS FOR ALL COUNTS/STATISTICS:
- 'how many errors today' → returns count
- 'count of database failures' → returns count
- 'total number of issues' → returns count
- 'average response time' → returns avg()
- 'sum of tokens used' → returns sum()
📋 ALSO USE FOR INDIVIDUAL EVENTS:
- 'error logs from last hour' → returns event list
- 'database errors with timestamps' → returns event list
- 'trace spans for slow API calls' → returns span list
Dataset Selection (AI automatically chooses):
- errors: Exception/crash events
- logs: Log entries
- spans: Performance data, AI/LLM calls, token usage
❌ DO NOT USE for grouped issue lists → use search_issues
<examples>
search_events(organizationSlug='my-org', naturalLanguageQuery='how many errors today')
search_events(organizationSlug='my-org', naturalLanguageQuery='count of database failures this week')
search_events(organizationSlug='my-org', naturalLanguageQuery='total tokens used by model')
search_events(organizationSlug='my-org', naturalLanguageQuery='error logs from the last hour')
</examples>
<hints>
- If the user passes a parameter in the form of name/otherName, it's likely in the format of <organizationSlug>/<projectSlug>.
- Parse org/project notation directly without calling find_organizations or find_projects.
</hints>
Try it
find_dsns
List all Sentry DSNs for a specific project.
Use this tool when you need to:
- Retrieve a SENTRY_DSN for a specific project
<hints>
- If the user passes a parameter in the form of name/otherName, its likely in the format of <organizationSlug>/<projectSlug>.
- If only one parameter is provided, and it could be either `organizationSlug` or `projectSlug`, its probably `organizationSlug`, but if you're really uncertain you might want to call `find_organizations()` first.
</hints>
Try it
analyze_issue_with_seer
Use Seer AI to analyze production errors and get detailed root cause analysis with specific code fixes.
Use this tool when you need:
- Detailed AI-powered root cause analysis
- Specific code fixes and implementation guidance
- Step-by-step troubleshooting for complex issues
- Understanding why an error is happening in production
What this tool provides:
- Root cause analysis with code-level explanations
- Specific file locations and line numbers where errors occur
- Concrete code fixes you can apply
- Step-by-step implementation guidance
This tool automatically:
1. Checks if analysis already exists (instant results)
2. Starts new AI analysis if needed (~2-5 minutes)
3. Returns complete fix recommendations
<examples>
### User: "What's causing this error? https://my-org.sentry.io/issues/PROJECT-1Z43"
```
analyze_issue_with_seer(issueUrl='https://my-org.sentry.io/issues/PROJECT-1Z43')
```
### User: "Can you help me understand why this is failing in production?"
```
analyze_issue_with_seer(organizationSlug='my-organization', issueId='ERROR-456')
```
</examples>
<hints>
- Use this tool when you need deeper analysis beyond basic issue details
- If the user provides an issueUrl, extract it and use that parameter alone
- The analysis includes actual code snippets and fixes, not just error descriptions
- Results are cached - subsequent calls return instantly
</hints>
Try it
search_docs
Search Sentry documentation for SDK setup, instrumentation, and configuration guidance.
Use this tool when you need to:
- Set up Sentry SDK in any language (Python, JavaScript, Go, Ruby, etc.)
- Configure specific features like performance monitoring, error sampling, or release tracking
- Implement custom instrumentation (spans, transactions, breadcrumbs)
- Set up integrations with frameworks (Django, Flask, Express, Next.js, etc.)
- Configure data scrubbing, filtering, or sampling rules
- Troubleshoot SDK issues or find best practices
This tool searches technical documentation, NOT general information about Sentry as a company.
<examples>
### Setting up Sentry in a Python Django app
```
search_docs(query='Django setup configuration SENTRY_DSN', guide='python/django')
```
### Setting up source maps for Next.js
```
search_docs(query='source maps webpack upload', guide='javascript/nextjs')
```
### Configuring release tracking
```
search_docs(query='release tracking deployment integration CI/CD')
```
</examples>
<hints>
- Use guide parameter to filter results to specific technologies (e.g., 'javascript' or 'javascript/nextjs')
- Include the programming language/framework in your query for SDK-specific results
- Use technical terms like 'instrumentation', 'spans', 'transactions' for performance docs
- Include specific feature names like 'beforeSend', 'tracesSampleRate', 'SENTRY_DSN'
</hints>
Try it
get_doc
Fetch the full markdown content of a Sentry documentation page.
Use this tool when you need to:
- Read the complete documentation for a specific topic
- Get detailed implementation examples or code snippets
- Access the full context of a documentation page
- Extract specific sections from documentation
<examples>
### Get the Next.js integration guide
```
get_doc(path='/platforms/javascript/guides/nextjs.md')
```
</examples>
<hints>
- Use the path from search_docs results for accurate fetching
- Paths should end with .md extension
</hints>
Try it
search_issues
Search for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations.
Uses AI to translate natural language queries into Sentry issue search syntax.
Returns grouped issues with metadata like title, status, and user count.
🔍 USE THIS TOOL WHEN USERS WANT:
- A LIST of issues: 'show me issues', 'what problems do we have'
- Filtered issue lists: 'unresolved issues', 'critical bugs'
- Issues by impact: 'errors affecting more than 100 users'
- Issues by assignment: 'issues assigned to me'
❌ DO NOT USE FOR COUNTS/AGGREGATIONS:
- 'how many errors' → use search_events
- 'count of issues' → use search_events
- 'total number of errors today' → use search_events
- 'sum/average/statistics' → use search_events
❌ ALSO DO NOT USE FOR:
- Individual error events with timestamps → use search_events
- Details about a specific issue ID → use get_issue_details
REMEMBER: This tool returns a LIST of issues, not counts or statistics!
<examples>
search_issues(organizationSlug='my-org', naturalLanguageQuery='critical bugs from last week')
search_issues(organizationSlug='my-org', naturalLanguageQuery='unhandled errors affecting 100+ users')
search_issues(organizationSlug='my-org', naturalLanguageQuery='issues assigned to me')
</examples>
<hints>
- If the user passes a parameter in the form of name/otherName, it's likely in the format of <organizationSlug>/<projectSlugOrId>.
- Parse org/project notation directly without calling find_organizations or find_projects.
- The projectSlugOrId parameter accepts both project slugs (e.g., 'my-project') and numeric IDs (e.g., '123456').
</hints>
Try it