with one click
with one click
Create, list, deactivate, and reactivate API keys for rate limiting
Create, list, update, and delete API rate limiting tiers
Fetch the most urgent Linear issue with tag "studio" and size XS, then fix it
Setup Python virtual environment and run integration tests with gltest
Monitor Discord community channel for user-reported bugs and issues
Debug GenLayer Studio deployments via ArgoCD CLI
| name | sentry-issue-fixer |
| description | Fetch, analyze, fix Sentry issues, run tests, and create PRs |
| invocation | user |
Automatically fetch the most important open Sentry issue, analyze it, implement a fix, verify with tests, and create a pull request.
~/.claude/settings.json)gh) authenticatedmain branch and pull the latest changesThe Sentry MCP server should be configured in ~/.claude/settings.json:
{
"mcpServers": {
"Sentry": {
"url": "https://mcp.sentry.dev/mcp"
}
}
}
On first use, you'll be prompted to authenticate with Sentry via OAuth.
Use Sentry MCP tools to get the highest priority unresolved issue:
1. First, list available organizations:
mcp__Sentry__list_organizations
2. List projects in the organization:
mcp__Sentry__list_projects with organization_slug
3. Search for unresolved issues sorted by priority/frequency:
mcp__Sentry__search_issues with:
- organization_slug
- project_slug
- query: "is:unresolved"
- sort: "freq" or "priority"
4. Get detailed issue information:
mcp__Sentry__get_issue with issue_id
Use Sentry's analysis tools:
1. Get issue details and stack trace:
mcp__Sentry__get_issue_details
2. Find errors in specific files:
mcp__Sentry__find_errors_in_file with filename from stack trace
3. Use Seer AI for root cause analysis (if available):
mcp__Sentry__invoke_seer_agent for AI-powered fix suggestions
Gather from analysis:
Before implementing, create a plan:
Root Cause Analysis
Proposed Solution
Risk Assessment
Testing Strategy
Create a Feature Branch
git checkout main
git pull origin main
git checkout -b fix/sentry-<issue-id>-<short-description>
Make Code Changes
Commit Changes
git add <files>
git commit -m "fix: <description>
Fixes Sentry issue <issue-id>
Co-Authored-By: Claude <noreply@anthropic.com>"
IMPORTANT: You MUST run ALL of the following test suites before creating a PR. Do NOT skip any.
docker compose -f tests/db-sqlalchemy/docker-compose.yml --project-directory . run --build --rm tests
.venv/bin/pytest tests/unit/ -v --tb=short --ignore=tests/unit/test_rpc_endpoint_manager.py
cd frontend && npm run test
If any tests fail:
Follow the integration-tests skill:
# Ensure Docker is running with the studio
docker compose ps # Verify services are up
source .venv/bin/activate
export PYTHONPATH="$(pwd)"
# Run integration tests in parallel (excluding test_validators.py)
gltest --contracts-dir . tests/integration -n 4 --ignore=tests/integration/test_validators.py
# Run validator tests separately
gltest --contracts-dir . tests/integration/test_validators.py
If tests fail:
docker compose logs -fFollow the create-pr skill:
# Push branch
git push -u origin $(git branch --show-current)
# Create PR with Sentry context
gh pr create --title "fix: <description from Sentry issue>" --body "$(cat <<'EOF'
Fixes Sentry issue: <link-to-sentry-issue>
# What
- [Describe the error that was occurring]
- [List the changes made to fix it]
# Why
- This error was affecting [X users / occurring Y times]
- Root cause: [explanation]
# Testing done
- [x] Unit tests pass
- [x] Integration tests pass
- [x] Verified fix resolves the Sentry error pattern
# Decisions made
- [Document any non-obvious choices]
# Checks
- [x] I have tested this code
- [x] I have reviewed my own PR
- [x] I have set a descriptive PR title compliant with conventional commits
# Reviewing tips
- Focus on [specific areas]
- The main change is in [file/function]
# User facing release notes
- Fixed: [user-visible description of what was broken]
EOF
)"
Based on Sentry MCP documentation (https://docs.sentry.io/product/sentry-mcp/):
| Category | Tools |
|---|---|
| Core | Organizations, Projects, Teams, Issues, DSNs |
| Analysis | Error Searching, Issue Analysis, Seer Integration |
| Advanced | Release Management, Performance Monitoring, Custom Queries |
# List organizations you have access to
mcp__Sentry__list_organizations
# List projects in an organization
mcp__Sentry__list_projects(organization_slug)
# Search for issues
mcp__Sentry__search_issues(organization_slug, query="is:unresolved")
# Get issue details
mcp__Sentry__get_issue(issue_id)
# Find errors in a specific file
mcp__Sentry__find_errors_in_file(organization_slug, project_slug, filename)
# Use Seer AI agent for analysis
mcp__Sentry__invoke_seer(issue_id)
| Error Type | Typical Fix |
|---|---|
NoneType errors | Add null checks, validate inputs |
KeyError | Check dict key existence, use .get() |
| Timeout errors | Add retry logic, increase timeout |
| Connection errors | Add error handling, retry with backoff |
| Validation errors | Improve input validation, add type hints |
1. List organizations:
> mcp__Sentry__list_organizations
Result: [{"slug": "genlayer", ...}]
2. Search unresolved issues:
> mcp__Sentry__search_issues(org="genlayer", query="is:unresolved", sort="freq")
Result: Top issue: "KeyError: 'validator_address' in consensus/worker.py"
3. Get issue details:
> mcp__Sentry__get_issue(issue_id="12345")
Result: Stack trace showing error at worker.py:145
4. Analyze:
- Error in worker.py:145 accessing result['validator_address']
- Occurs when validator response is incomplete
- 47 events, affecting 12 users
5. Plan:
- Add validation before accessing key
- Log warning for incomplete responses
- Add unit test for edge case
6. Implement:
- Edit worker.py to add .get() with default
- Add test_worker_missing_validator_address test
7. Test:
- gltest --contracts-dir . tests/unit/test_worker*.py
- All pass
8. Create PR:
- gh pr create with Sentry context
~/.claude/settings.json has the mcpServers configuration--leader-only for faster integration tests