Access Sentry Issue and Error details, create projects and query for project information, trigger Seer Issue Fix run to generate root cause analysis, and retrieve solutions. Access Sentry context to debug applications faster.
Authenticate to see and review all tools available on this MCP.
Protocol
MCP 2026-07-28
Server version
0.42.0
Supports
Tools
Overall score
B
Overall quality score: 77 out of 10077/100
Server metadata
3 of 8 fields30/1003 / 10 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
How to fix: Set the top-level tool.title to a short human-readable label (for example, "Search catalog"). Claude directory submission requires tool titles; annotations.title remains accepted only as a legacy fallback.
Add a human-readable title so users do not have to interpret the tool identifier.
Description98/100
Find organizations that the user has access to in Sentry.
Use this tool when you need to:
- View organizations in Sentry
- Find an organization's slug to aid other tool requests
- Search for specific organizations by name or slug
Returns up to 25 results per page. When hasMore is true, pass the returned nextCursor with the same filters and scope to fetch the next page.
The description explains the capability, when to use it, and what to expect.
Inputs0/100
0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
query
Not provided
Missing description. Explain what this value means and how to supply it.
cursor
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"name": "find_organizations",
"description": "Find organizations that the user has access to in Sentry.\n\nUse this tool when you need to:\n- View organizations in Sentry\n- Find an organization's slug to aid other tool requests\n- Search for specific organizations by name or slug\n\nReturns up to 25 results per page. When hasMore is true, pass the returned nextCursor with the same filters and scope to fetch the next page.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query": {
"anyOf": [
{
"type": "string",
"description": "Search query to filter results by name or slug. Use this to narrow down results when there are many items."
},
{
"type": "null"
}
],
"default": null
},
"cursor": {
"anyOf": [
{
"type": "string",
"description": "Pagination cursor from a previous call's nextCursor. Reuse it with the same filters and scope to fetch the next page."
},
{
"type": "null"
}
],
"default": null
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizations",
"hasMore",
"nextCursor"
],
"properties": {
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"webUrl",
"regionUrl"
],
"properties": {
"slug": {
"type": "string"
},
"webUrl": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Find projects in Sentry.
Use this tool when you need to:
- View projects in a Sentry organization
- Find a project's slug to aid other tool requests
- Search for specific projects by name or slug
Returns up to 25 results per page. When hasMore is true, pass the returned nextCursor with the same filters and scope to fetch the next page.
The description explains the capability, when to use it, and what to expect.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
query
Not provided
Missing description. Explain what this value means and how to supply it.
cursor
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"name": "find_projects",
"description": "Find projects in Sentry.\n\nUse this tool when you need to:\n- View projects in a Sentry organization\n- Find a project's slug to aid other tool requests\n- Search for specific projects by name or slug\n\nReturns up to 25 results per page. When hasMore is true, pass the returned nextCursor with the same filters and scope to fetch the next page.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"query": {
"anyOf": [
{
"type": "string",
"description": "Search query to filter results by name or slug. Use this to narrow down results when there are many items."
},
{
"type": "null"
}
],
"default": null
},
"cursor": {
"anyOf": [
{
"type": "string",
"description": "Pagination cursor from a previous call's nextCursor. Reuse it with the same filters and scope to fetch the next page."
},
{
"type": "null"
}
],
"default": null
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projects",
"hasMore",
"nextCursor"
],
"properties": {
"hasMore": {
"type": "boolean"
},
"projects": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
}
},
"additionalProperties": false
}
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Update a Sentry issue's status or assignment.
Use this to resolve, reopen, assign, unassign, or ignore an issue.
<examples>
```
update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='resolved')
update_issue(organizationSlug='my-org', issueId='PROJECT-123', assignedTo='user:123456')
update_issue(organizationSlug='my-org', issueId='PROJECT-123', assignedTo=null)
update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored')
update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='forever')
update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='untilOccurrenceCount', ignoreCount=100, ignoreWindowMinutes=60)
update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', reason='Ignoring because this is expected noise from the staging deploy')
```
</examples>
<hints>
- Provide `issueUrl` or `organizationSlug` + `issueId`.
- At least one of `status` or `assignedTo` is required.
- Omit `assignedTo` to leave assignment unchanged. Pass `null` to unassign; otherwise use `user:ID` or `team:ID_OR_SLUG`.
- Use `execute_sentry_tool(name='whoami', arguments={})` to find your user ID for self-assignment.
- Status values: `resolved`, `resolvedInNextRelease`, `unresolved`, `ignored`.
- `status='ignored'` defaults to `ignoreMode='untilEscalating'`.
- Ignore modes: `untilEscalating`, `forever`, `forDuration`, `untilOccurrenceCount`, `untilUserCount`.
- Matching ignore inputs are `ignoreDurationMinutes`, `ignoreCount` + optional `ignoreWindowMinutes`, or `ignoreUserCount` + optional `ignoreUserWindowMinutes`.
- To switch an already ignored issue between `untilEscalating`, `forever`, and condition-based ignore modes, first set `status='unresolved'`, then ignore it again with the new rule.
- `reason` is optional. When provided, it will be posted as a comment on the issue's activity feed explaining why the action was taken.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs87/100
12 of 13 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
issueId
The Issue ID. e.g. `PROJECT-1Z43`
Clear enough to supply this argument.
issueUrl
The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
status
The new status for the issue. Valid values are 'resolved', 'resolvedInNextRelease', 'unresolved', and 'ignored'.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
assignedTo
The assignee in format 'user:ID' or 'team:ID_OR_SLUG' where ID is numeric. Pass null to unassign the issue. Example: 'user:123456', 'team:789', or 'team:my-team-slug'. Use `execute_sentry_tool(name='whoami', arguments={})` to find your user ID.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
ignoreMode
How ignored issues should behave. Use 'untilEscalating' to match the Sentry UI default, 'forever' for a permanent ignore, 'forDuration' with ignoreDurationMinutes, 'untilOccurrenceCount' with ignoreCount and optional ignoreWindowMinutes, or 'untilUserCount' with ignoreUserCount and optional ignoreUserWindowMinutes.
Clear enough to supply this argument.
ignoreDurationMinutes
How many minutes to ignore the issue when ignoreMode is 'forDuration'.
Clear enough to supply this argument.
ignoreCount
How many times the issue must occur before it stops being ignored when ignoreMode is 'untilOccurrenceCount'.
Clear enough to supply this argument.
ignoreWindowMinutes
Optional time window in minutes for ignoreCount. If omitted, Sentry counts all future occurrences.
Clear enough to supply this argument.
ignoreUserCount
How many users must be affected before the issue stops being ignored when ignoreMode is 'untilUserCount'.
Clear enough to supply this argument.
ignoreUserWindowMinutes
Optional time window in minutes for ignoreUserCount. If omitted, Sentry counts all future affected users.
Clear enough to supply this argument.
reason
Optional reason for taking this action. When provided, it will be posted as a comment on the issue's activity feed.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "update_issue",
"description": "Update a Sentry issue's status or assignment.\n\nUse this to resolve, reopen, assign, unassign, or ignore an issue.\n\n<examples>\n```\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', status='resolved')\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', assignedTo='user:123456')\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', assignedTo=null)\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored')\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='forever')\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='untilOccurrenceCount', ignoreCount=100, ignoreWindowMinutes=60)\nupdate_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', reason='Ignoring because this is expected noise from the staging deploy')\n```\n</examples>\n\n<hints>\n- Provide `issueUrl` or `organizationSlug` + `issueId`.\n- At least one of `status` or `assignedTo` is required.\n- Omit `assignedTo` to leave assignment unchanged. Pass `null` to unassign; otherwise use `user:ID` or `team:ID_OR_SLUG`.\n- Use `execute_sentry_tool(name='whoami', arguments={})` to find your user ID for self-assignment.\n- Status values: `resolved`, `resolvedInNextRelease`, `unresolved`, `ignored`.\n- `status='ignored'` defaults to `ignoreMode='untilEscalating'`.\n- Ignore modes: `untilEscalating`, `forever`, `forDuration`, `untilOccurrenceCount`, `untilUserCount`.\n- Matching ignore inputs are `ignoreDurationMinutes`, `ignoreCount` + optional `ignoreWindowMinutes`, or `ignoreUserCount` + optional `ignoreUserWindowMinutes`.\n- To switch an already ignored issue between `untilEscalating`, `forever`, and condition-based ignore modes, first set `status='unresolved'`, then ignore it again with the new rule.\n- `reason` is optional. When provided, it will be posted as a comment on the issue's activity feed explaining why the action was taken.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"description": "Optional reason for taking this action. When provided, it will be posted as a comment on the issue's activity feed."
},
"status": {
"enum": [
"resolved",
"resolvedInNextRelease",
"unresolved",
"ignored"
],
"type": "string",
"description": "The new status for the issue. Valid values are 'resolved', 'resolvedInNextRelease', 'unresolved', and 'ignored'."
},
"issueId": {
"type": "string",
"description": "The Issue ID. e.g. `PROJECT-1Z43`"
},
"issueUrl": {
"type": "string",
"format": "uri",
"description": "The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43"
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"assignedTo": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
],
"description": "The assignee in format 'user:ID' or 'team:ID_OR_SLUG' where ID is numeric. Pass null to unassign the issue. Example: 'user:123456', 'team:789', or 'team:my-team-slug'. Use `execute_sentry_tool(name='whoami', arguments={})` to find your user ID."
},
"ignoreMode": {
"enum": [
"untilEscalating",
"forever",
"forDuration",
"untilOccurrenceCount",
"untilUserCount"
],
"type": "string",
"description": "How ignored issues should behave. Use 'untilEscalating' to match the Sentry UI default, 'forever' for a permanent ignore, 'forDuration' with ignoreDurationMinutes, 'untilOccurrenceCount' with ignoreCount and optional ignoreWindowMinutes, or 'untilUserCount' with ignoreUserCount and optional ignoreUserWindowMinutes."
},
"ignoreCount": {
"type": "integer",
"maximum": 9007199254740991,
"description": "How many times the issue must occur before it stops being ignored when ignoreMode is 'untilOccurrenceCount'.",
"exclusiveMinimum": 0
},
"ignoreUserCount": {
"type": "integer",
"maximum": 9007199254740991,
"description": "How many users must be affected before the issue stops being ignored when ignoreMode is 'untilUserCount'.",
"exclusiveMinimum": 0
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"ignoreWindowMinutes": {
"type": "integer",
"maximum": 10080,
"description": "Optional time window in minutes for ignoreCount. If omitted, Sentry counts all future occurrences.",
"exclusiveMinimum": 0
},
"ignoreDurationMinutes": {
"type": "integer",
"maximum": 9007199254740991,
"description": "How many minutes to ignore the issue when ignoreMode is 'forDuration'.",
"exclusiveMinimum": 0
},
"ignoreUserWindowMinutes": {
"type": "integer",
"maximum": 10080,
"description": "Optional time window in minutes for ignoreUserCount. If omitted, Sentry counts all future affected users.",
"exclusiveMinimum": 0
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Search Sentry error events: exceptions and crashes with stack traces. Use for error counts, statistics, trends, and individual error events.
`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.
Supports aggregations ('how many errors today', 'top error types'), individual events ('latest TypeErrors in checkout'), and time series ('errors per hour last 24h').
NOT for log messages, including error/warning logs (use search_logs), requests or latency (use search_traces), or grouped issue lists (use search_issues).
<examples>
search_errors(organizationSlug='my-org', query='how many errors today')
search_errors(organizationSlug='my-org', query='most common error types in production this week')
search_errors(organizationSlug='my-org', query='errors per hour last 24h')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs64/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here.
Clear enough to supply this argument.
fields
Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_errors",
"description": "Search Sentry error events: exceptions and crashes with stack traces. Use for error counts, statistics, trends, and individual error events.\n\n`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.\n\nSupports aggregations ('how many errors today', 'top error types'), individual events ('latest TypeErrors in checkout'), and time series ('errors per hour last 24h').\n\nNOT for log messages, including error/warning logs (use search_logs), requests or latency (use search_traces), or grouped issue lists (use search_issues).\n\n<examples>\nsearch_errors(organizationSlug='my-org', query='how many errors today')\nsearch_errors(organizationSlug='my-org', query='most common error types in production this week')\nsearch_errors(organizationSlug='my-org', query='errors per hour last 24h')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Search Sentry logs: application log entries, including error- and warning-severity log messages. Use for log counts, statistics, trends, and individual log lines.
`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.
Supports aggregations ('warning logs by service'), individual entries ('error logs from the last hour'), and time series ('error logs per hour').
NOT for exceptions/crashes (use search_errors). For requests or spans whose trace also has a matching log, use search_traces.
<examples>
search_logs(organizationSlug='my-org', query='error logs from the last hour')
search_logs(organizationSlug='my-org', query='logs mentioning payment timeout in production')
search_logs(organizationSlug='my-org', query='count warning logs by service over 7 days')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs67/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here.
Clear enough to supply this argument.
fields
Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations.
Clear enough to supply this argument.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_logs",
"description": "Search Sentry logs: application log entries, including error- and warning-severity log messages. Use for log counts, statistics, trends, and individual log lines.\n\n`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.\n\nSupports aggregations ('warning logs by service'), individual entries ('error logs from the last hour'), and time series ('error logs per hour').\n\nNOT for exceptions/crashes (use search_errors). For requests or spans whose trace also has a matching log, use search_traces.\n\n<examples>\nsearch_logs(organizationSlug='my-org', query='error logs from the last hour')\nsearch_logs(organizationSlug='my-org', query='logs mentioning payment timeout in production')\nsearch_logs(organizationSlug='my-org', query='count warning logs by service over 7 days')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Search Sentry spans and traces: requests, API/HTTP calls, endpoints, DB queries, AI/LLM calls, and other operations. Use for latency, throughput, slowness, and performance questions.
`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.
Also use for spans whose trace contains a matching log, metric, or other span, e.g. 'slow checkout requests that also logged an error'.
Supports aggregations ('p95 duration by span.op'), individual spans ('slowest API calls today'), and time series ('requests per minute last hour').
NOT for exceptions/crashes (use search_errors), standalone log lines (use search_logs), or a single trace's span tree (use get_sentry_resource with the trace).
<examples>
search_traces(organizationSlug='my-org', query='slowest API calls in the last 24 hours')
search_traces(organizationSlug='my-org', query='p95 duration of db spans grouped by span.op over 7 days')
search_traces(organizationSlug='my-org', query='checkout requests that also have an error log')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs67/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here.
Clear enough to supply this argument.
fields
Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations.
Clear enough to supply this argument.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_traces",
"description": "Search Sentry spans and traces: requests, API/HTTP calls, endpoints, DB queries, AI/LLM calls, and other operations. Use for latency, throughput, slowness, and performance questions.\n\n`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.\n\nAlso use for spans whose trace contains a matching log, metric, or other span, e.g. 'slow checkout requests that also logged an error'.\n\nSupports aggregations ('p95 duration by span.op'), individual spans ('slowest API calls today'), and time series ('requests per minute last hour').\n\nNOT for exceptions/crashes (use search_errors), standalone log lines (use search_logs), or a single trace's span tree (use get_sentry_resource with the trace).\n\n<examples>\nsearch_traces(organizationSlug='my-org', query='slowest API calls in the last 24 hours')\nsearch_traces(organizationSlug='my-org', query='p95 duration of db spans grouped by span.op over 7 days')\nsearch_traces(organizationSlug='my-org', query='checkout requests that also have an error log')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Search Sentry metrics: counters, gauges, and distributions, as rows or aggregates. Use for metric values, percentiles, totals, and trends.
`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.
Supports aggregations ('p95 http.request.duration by environment'), individual metric rows, and time series ('total tokens per day this week').
NOT for span or request latency recorded on traces (use search_traces).
<examples>
search_metrics(organizationSlug='my-org', query='p95 http.request.duration grouped by environment over the last 24 hours')
search_metrics(organizationSlug='my-org', query='total tokens used per day this week')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs67/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here.
Clear enough to supply this argument.
fields
Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations.
Clear enough to supply this argument.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_metrics",
"description": "Search Sentry metrics: counters, gauges, and distributions, as rows or aggregates. Use for metric values, percentiles, totals, and trends.\n\n`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.\n\nSupports aggregations ('p95 http.request.duration by environment'), individual metric rows, and time series ('total tokens per day this week').\n\nNOT for span or request latency recorded on traces (use search_traces).\n\n<examples>\nsearch_metrics(organizationSlug='my-org', query='p95 http.request.duration grouped by environment over the last 24 hours')\nsearch_metrics(organizationSlug='my-org', query='total tokens used per day this week')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Search Sentry profiles: transaction and continuous profile results, profile IDs, and profiled transactions. Use to find profiles to inspect.
`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.
Use get_profile or get_profile_details on a result for flamegraph and hotspot analysis.
<examples>
search_profiles(organizationSlug='my-org', query='recent profiles for the /checkout transaction')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs67/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here.
Clear enough to supply this argument.
fields
Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations.
Clear enough to supply this argument.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_profiles",
"description": "Search Sentry profiles: transaction and continuous profile results, profile IDs, and profiled transactions. Use to find profiles to inspect.\n\n`query` is natural language (preferred) or Sentry search syntax; a configured agent translates it into query, fields, and sort.\n\nUse get_profile or get_profile_details on a result for flamegraph and hotspot analysis.\n\n<examples>\nsearch_profiles(organizationSlug='my-org', query='recent profiles for the /checkout transaction')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n- Natural language is usually enough. Only pass fields/sort when you need exact columns or ordering.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Sort field (prefix with - for descending). Defaults to -timestamp. Use -count() for aggregations."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or Sentry search syntax. Include environment, release, or other filters here."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Fields to return. If not specified, uses sensible defaults. Include aggregate functions like count(), avg() for statistics."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Search Sentry session replays: rage clicks, dead clicks, visited pages, errors seen, and replay users.
`query` is natural language (preferred) or replay search syntax; a configured agent translates it into a replay search.
Returns replay lists only; count()/avg()/sum() are not supported. Use get_replay_details on a result for one replay.
<examples>
search_replays(organizationSlug='my-org', query='replays with rage clicks on checkout in the last day')
search_replays(organizationSlug='my-org', query='count_errors:>0', sort='-count_errors')
</examples>
<hints>
- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs67/100
7 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
What to find, in natural language (preferred) or replay search syntax.
Clear enough to supply this argument.
sort
Replay sort (prefix with - for descending): -started_at (default), -count_errors, -count_rage_clicks, or -duration.
Clear enough to supply this argument.
projectSlug
Not provided
Missing description. Explain what this value means and how to supply it.
environment
Optional environment filter. Use a string for one environment or an array for multiple. Omit when unused.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
period
Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of results to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeExplanation
Include explanation of how the query was translated or repaired
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_replays",
"description": "Search Sentry session replays: rage clicks, dead clicks, visited pages, errors seen, and replay users.\n\n`query` is natural language (preferred) or replay search syntax; a configured agent translates it into a replay search.\n\nReturns replay lists only; count()/avg()/sum() are not supported. Use get_replay_details on a result for one replay.\n\n<examples>\nsearch_replays(organizationSlug='my-org', query='replays with rage clicks on checkout in the last day')\nsearch_replays(organizationSlug='my-org', query='count_errors:>0', sort='-count_errors')\n</examples>\n\n<hints>\n- name/otherName notation means <organizationSlug>/<projectSlug>; parse it directly, don't call find_organizations/find_projects.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Replay sort (prefix with - for descending): -started_at (default), -count_errors, -count_rage_clicks, or -duration."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of results to return (1-100)"
},
"query": {
"type": "string",
"description": "What to find, in natural language (preferred) or replay search syntax."
},
"period": {
"type": "string",
"pattern": "^\\d+[hdw]$",
"description": "Relative time window, such as `24h`, `7d`, `14d`, `30d`, or `90d`. Controls which records fall within the search window."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"environment": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Optional environment filter. Use a string for one environment or an array for multiple. Omit when unused."
},
"projectSlug": {
"anyOf": [
{
"type": "string",
"description": "The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool."
},
{
"type": "null"
}
],
"default": null
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
Add a human-readable title so users do not have to interpret the tool identifier.
Description100/100
Use Seer to analyze production errors and get detailed root cause analysis with specific code fixes.
Use this tool when:
- The user explicitly asks for root cause analysis, Seer analysis, or help fixing/debugging an issue
- You are unable to accurately determine the root cause from the issue details alone
Do NOT call this tool as an automatic follow-up to get_sentry_resource.
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: "Run Seer on this issue"
```
analyze_issue_with_seer(issueUrl='https://my-org.sentry.io/issues/PROJECT-1Z43')
```
### User: "Analyze this issue and suggest a fix"
```
analyze_issue_with_seer(organizationSlug='my-organization', issueId='ERROR-456')
```
</examples>
<hints>
- Only use when the user explicitly requests analysis or you cannot determine the root cause from issue details alone
- Seer Autofix does not support metric alert issues (issueCategory: metric); use get_issue_details and search_metrics or search_traces instead
- 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>
The description explains the capability, when to use it, and what to expect.
Inputs60/100
4 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
issueId
The Issue ID. e.g. `PROJECT-1Z43`
Clear enough to supply this argument.
issueUrl
The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43
Explain the meaning of this value, not just its name.
instruction
Optional custom instruction for the AI analysis
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "analyze_issue_with_seer",
"description": "Use Seer to analyze production errors and get detailed root cause analysis with specific code fixes.\n\nUse this tool when:\n- The user explicitly asks for root cause analysis, Seer analysis, or help fixing/debugging an issue\n- You are unable to accurately determine the root cause from the issue details alone\n\nDo NOT call this tool as an automatic follow-up to get_sentry_resource.\n\nWhat this tool provides:\n- Root cause analysis with code-level explanations\n- Specific file locations and line numbers where errors occur\n- Concrete code fixes you can apply\n- Step-by-step implementation guidance\n\nThis tool automatically:\n1. Checks if analysis already exists (instant results)\n2. Starts new AI analysis if needed (~2-5 minutes)\n3. Returns complete fix recommendations\n\n<examples>\n### User: \"Run Seer on this issue\"\n\n```\nanalyze_issue_with_seer(issueUrl='https://my-org.sentry.io/issues/PROJECT-1Z43')\n```\n\n### User: \"Analyze this issue and suggest a fix\"\n\n```\nanalyze_issue_with_seer(organizationSlug='my-organization', issueId='ERROR-456')\n```\n</examples>\n\n<hints>\n- Only use when the user explicitly requests analysis or you cannot determine the root cause from issue details alone\n- Seer Autofix does not support metric alert issues (issueCategory: metric); use get_issue_details and search_metrics or search_traces instead\n- If the user provides an issueUrl, extract it and use that parameter alone\n- The analysis includes actual code snippets and fixes, not just error descriptions\n- Results are cached - subsequent calls return instantly\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"issueId": {
"type": "string",
"description": "The Issue ID. e.g. `PROJECT-1Z43`"
},
"issueUrl": {
"type": "string",
"format": "uri",
"description": "The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43"
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"instruction": {
"type": "string",
"description": "Optional custom instruction for the AI analysis"
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Search for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations.
Provide `query` as natural language or Sentry issue search syntax. When an embedded agent is configured, it fixes query and sort before running while preserving explicit Sentry search syntax.
Returns grouped issues with metadata like title, status, and user count.
Common Query Syntax:
- is:unresolved / is:resolved / is:ignored / is:for_review / is:new / is:regressed / is:escalating
- level:error / level:warning
- firstSeen:-24h / lastSeen:-7d
- assigned:me / assigned_or_suggested:me
- release:latest
- issue.category:feedback
- issue.priority:high
- environment:production
- userCount:>100
DO NOT USE FOR COUNTS/AGGREGATIONS → use search_errors
DO NOT USE FOR individual events with timestamps → use search_errors, search_logs, or search_traces
DO NOT USE FOR details about a specific issue → use get_sentry_resource
<examples>
search_issues(organizationSlug='my-org', query='critical bugs from last week')
search_issues(organizationSlug='my-org', query='is:unresolved is:unassigned', sort='freq')
search_issues(organizationSlug='my-org', query='level:error firstSeen:-24h', projectSlugOrId='my-project')
</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>
The description explains the capability, when to use it, and what to expect.
Inputs78/100
7 of 8 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
query
Natural language or Sentry issue search query syntax.
Clear enough to supply this argument.
sort
Sort order: date (last seen), freq (frequency), new (first seen), user (user count), recommended (Sentry's prioritized ranking)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
projectSlugOrId
The project's slug or numeric ID (optional)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
regionUrl
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum number of issues to return (1-100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
period
Time window for issue search results. Controls which issues are returned based on when they had activity. Default 30d is a balance between coverage and query performance; use 24h for very recent issues or 90d for broader historical searches.
Clear enough to supply this argument.
includeExplanation
Include explanation of how the query was translated or repaired
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_issues",
"description": "Search for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations.\n\nProvide `query` as natural language or Sentry issue search syntax. When an embedded agent is configured, it fixes query and sort before running while preserving explicit Sentry search syntax.\n\nReturns grouped issues with metadata like title, status, and user count.\n\nCommon Query Syntax:\n- is:unresolved / is:resolved / is:ignored / is:for_review / is:new / is:regressed / is:escalating\n- level:error / level:warning\n- firstSeen:-24h / lastSeen:-7d\n- assigned:me / assigned_or_suggested:me\n- release:latest\n- issue.category:feedback\n- issue.priority:high\n- environment:production\n- userCount:>100\n\nDO NOT USE FOR COUNTS/AGGREGATIONS → use search_errors\nDO NOT USE FOR individual events with timestamps → use search_errors, search_logs, or search_traces\nDO NOT USE FOR details about a specific issue → use get_sentry_resource\n\n<examples>\nsearch_issues(organizationSlug='my-org', query='critical bugs from last week')\nsearch_issues(organizationSlug='my-org', query='is:unresolved is:unassigned', sort='freq')\nsearch_issues(organizationSlug='my-org', query='level:error firstSeen:-24h', projectSlugOrId='my-project')\n</examples>\n\n<hints>\n- If the user passes a parameter in the form of name/otherName, it's likely in the format of <organizationSlug>/<projectSlugOrId>.\n- Parse org/project notation directly without calling find_organizations or find_projects.\n- The projectSlugOrId parameter accepts both project slugs (e.g., 'my-project') and numeric IDs (e.g., '123456').\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organizationSlug"
],
"properties": {
"sort": {
"enum": [
"date",
"freq",
"new",
"user",
"recommended"
],
"type": "string",
"default": "date",
"description": "Sort order: date (last seen), freq (frequency), new (first seen), user (user count), recommended (Sentry's prioritized ranking)"
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of issues to return (1-100)"
},
"query": {
"type": "string",
"default": "is:unresolved",
"description": "Natural language or Sentry issue search query syntax."
},
"period": {
"enum": [
"24h",
"7d",
"14d",
"30d",
"90d"
],
"type": "string",
"default": "30d",
"description": "Time window for issue search results. Controls which issues are returned based on when they had activity. Default 30d is a balance between coverage and query performance; use 24h for very recent issues or 90d for broader historical searches."
},
"regionUrl": {
"anyOf": [
{
"type": "string",
"description": "The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry installations, this parameter is usually not needed and should be omitted. You can find the correct regionUrl from the organization details using the `find_organizations()` tool."
},
{
"type": "null"
}
],
"default": null
},
"projectSlugOrId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The project's slug or numeric ID (optional)"
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
},
"includeExplanation": {
"type": "boolean",
"default": false,
"description": "Include explanation of how the query was translated or repaired"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
Add a human-readable title so users do not have to interpret the tool identifier.
Description96/100
Fetch a Sentry resource by URL, or by resourceType plus resourceId.
Pass a Sentry URL directly when possible; the resource type is auto-detected.
Supports issues, events, traces, spans, agent conversations, replays, monitors, preprod snapshots, and snapshot images.
Trace lookups return a condensed overview by default.
Agent Conversations: A conversation is a set of spans sharing the same gen_ai.conversation.id. Use resourceType='ai_conversation' with a conversation ID, or pass a Sentry conversation URL, to fetch the transcript/details. To discover or list conversations, use search_agent_conversations. Conversations are NOT issues — do not use search_issues for conversation queries.
For preprod snapshot URLs (matching 'sentry.io/preprod/snapshots/'):
- Without ?selectedSnapshot=: returns the snapshot diff summary (changed, added, removed images)
- With ?selectedSnapshot=<image_file_name>: returns the image preview and metadata. Use the Sentry tool `get_snapshot_image` for full-resolution image bytes.
Resource IDs:
- monitor: <monitorSlug>
- snapshot: <snapshotId>
<examples>
get_sentry_resource(url='https://sentry.io/issues/PROJECT-123/')
get_sentry_resource(resourceType='issue', organizationSlug='my-org', resourceId='PROJECT-123')
get_sentry_resource(resourceType='ai_conversation', organizationSlug='my-org', resourceId='conversation-123')
get_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/')
get_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/?selectedSnapshot=login_screen.png')
</examples>
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
url
Sentry URL. The resource type is auto-detected from the URL pattern.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
resourceType
Resource type. With a URL, can override a span-focused trace URL with `trace`. Use `monitor` with a monitor slug only when inspect monitor tools are available or `snapshot` with a snapshot artifact ID.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
resourceId
Resource identifier: issue shortId (e.g., 'PROJECT-123'), event ID, trace ID, agent conversation ID, replay ID, monitor slug when inspect monitor tools are available, or snapshot artifact ID. Required when not using a URL.
Clear enough to supply this argument.
organizationSlug
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_sentry_resource",
"description": "Fetch a Sentry resource by URL, or by resourceType plus resourceId.\nPass a Sentry URL directly when possible; the resource type is auto-detected.\n\nSupports issues, events, traces, spans, agent conversations, replays, monitors, preprod snapshots, and snapshot images.\nTrace lookups return a condensed overview by default.\n\nAgent Conversations: A conversation is a set of spans sharing the same gen_ai.conversation.id. Use resourceType='ai_conversation' with a conversation ID, or pass a Sentry conversation URL, to fetch the transcript/details. To discover or list conversations, use search_agent_conversations. Conversations are NOT issues — do not use search_issues for conversation queries.\n\nFor preprod snapshot URLs (matching 'sentry.io/preprod/snapshots/'):\n- Without ?selectedSnapshot=: returns the snapshot diff summary (changed, added, removed images)\n- With ?selectedSnapshot=<image_file_name>: returns the image preview and metadata. Use the Sentry tool `get_snapshot_image` for full-resolution image bytes.\n\nResource IDs:\n- monitor: <monitorSlug>\n- snapshot: <snapshotId>\n\n<examples>\nget_sentry_resource(url='https://sentry.io/issues/PROJECT-123/')\nget_sentry_resource(resourceType='issue', organizationSlug='my-org', resourceId='PROJECT-123')\nget_sentry_resource(resourceType='ai_conversation', organizationSlug='my-org', resourceId='conversation-123')\nget_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/')\nget_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/?selectedSnapshot=login_screen.png')\n</examples>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Sentry URL. The resource type is auto-detected from the URL pattern."
},
"resourceId": {
"type": "string",
"description": "Resource identifier: issue shortId (e.g., 'PROJECT-123'), event ID, trace ID, agent conversation ID, replay ID, monitor slug when inspect monitor tools are available, or snapshot artifact ID. Required when not using a URL."
},
"resourceType": {
"enum": [
"issue",
"event",
"trace",
"ai_conversation",
"replay",
"monitor",
"snapshot"
],
"type": "string",
"description": "Resource type. With a URL, can override a span-focused trace URL with `trace`. Use `monitor` with a monitor slug only when inspect monitor tools are available or `snapshot` with a snapshot artifact ID."
},
"organizationSlug": {
"type": "string",
"description": "The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
Add a human-readable title so users do not have to interpret the tool identifier.
Description97/100
Search the available Sentry MCP tool catalog by name and description.
Many Sentry operations are intentionally not exposed as top-level tools. Use this for any Sentry-related task when you do not see an obvious direct tool, including long-tail inspection, project management, documentation lookup, preprod snapshots, attachments, DSNs, releases, teams, and issue-specific pivots.
Use this tool when you need to:
- Find the right Sentry operation for a task
- Discover catalog tools and their schemas for a task
- Inspect the executable JSON input schema for an available tool
<examples>
search_sentry_tools(query='list projects')
search_sentry_tools(query='issue details')
search_sentry_tools(query='find dsn', limit=5)
search_sentry_tools(query='snapshot image')
</examples>
<hints>
- Results only include tools available in the current session.
- If a Sentry operation is not listed as a direct tool, search here before deciding it is unavailable.
- Returned schemas already account for active organization, project, and region constraints.
- Use the returned name and schema when executing a catalog result.
- This tool returns structured JSON. Do not parse markdown from its text content.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Natural language keywords describing the Sentry operation, resource, or workflow to find.
Clear enough to supply this argument.
limit
Maximum number of matching tools to return, up to 20.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"name": "search_sentry_tools",
"description": "Search the available Sentry MCP tool catalog by name and description.\n\nMany Sentry operations are intentionally not exposed as top-level tools. Use this for any Sentry-related task when you do not see an obvious direct tool, including long-tail inspection, project management, documentation lookup, preprod snapshots, attachments, DSNs, releases, teams, and issue-specific pivots.\n\nUse this tool when you need to:\n- Find the right Sentry operation for a task\n- Discover catalog tools and their schemas for a task\n- Inspect the executable JSON input schema for an available tool\n\n<examples>\nsearch_sentry_tools(query='list projects')\nsearch_sentry_tools(query='issue details')\nsearch_sentry_tools(query='find dsn', limit=5)\nsearch_sentry_tools(query='snapshot image')\n</examples>\n\n<hints>\n- Results only include tools available in the current session.\n- If a Sentry operation is not listed as a direct tool, search here before deciding it is unavailable.\n- Returned schemas already account for active organization, project, and region constraints.\n- Use the returned name and schema when executing a catalog result.\n- This tool returns structured JSON. Do not parse markdown from its text content.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"anyOf": [
{
"type": "integer",
"maximum": 20,
"exclusiveMinimum": 0
},
{
"type": "null"
}
],
"default": 8,
"description": "Maximum number of matching tools to return, up to 20."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Natural language keywords describing the Sentry operation, resource, or workflow to find."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query",
"results"
],
"properties": {
"query": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"description",
"inputSchema",
"annotations"
],
"properties": {
"name": {
"type": "string"
},
"annotations": {
"type": "object",
"properties": {
"readOnlyHint": {
"type": "boolean"
},
"openWorldHint": {
"type": "boolean"
},
"idempotentHint": {
"type": "boolean"
},
"destructiveHint": {
"type": "boolean"
}
},
"additionalProperties": false
},
"description": {
"type": "string"
},
"inputSchema": {
"type": "object",
"description": "JSON Schema for the matching tool's arguments. Session-constrained parameters are omitted.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
Add a human-readable title so users do not have to interpret the tool identifier.
Description81/100
Execute an available Sentry MCP tool discovered through search_sentry_tools.
Use this tool when you need to:
- Call a Sentry operation returned by search_sentry_tools
- Execute a tool by name using arguments that match its returned schema
<examples>
execute_sentry_tool(name='find_projects', arguments={ organizationSlug: 'my-org' })
execute_sentry_tool(name='whoami', arguments={})
</examples>
<hints>
- Use search_sentry_tools first if you are not sure which name or arguments to pass.
- Arguments are validated against the target tool's schema before execution.
- Active organization, project, and region constraints are injected automatically.
</hints>
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
The name of the available tool to execute.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
arguments
Arguments for the target tool, matching the schema returned by search_sentry_tools.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "execute_sentry_tool",
"description": "Execute an available Sentry MCP tool discovered through search_sentry_tools.\n\nUse this tool when you need to:\n- Call a Sentry operation returned by search_sentry_tools\n- Execute a tool by name using arguments that match its returned schema\n\n<examples>\nexecute_sentry_tool(name='find_projects', arguments={ organizationSlug: 'my-org' })\nexecute_sentry_tool(name='whoami', arguments={})\n</examples>\n\n<hints>\n- Use search_sentry_tools first if you are not sure which name or arguments to pass.\n- Arguments are validated against the target tool's schema before execution.\n- Active organization, project, and region constraints are injected automatically.\n</hints>",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "The name of the available tool to execute."
},
"arguments": {
"type": "object",
"default": {},
"description": "Arguments for the target tool, matching the schema returned by search_sentry_tools.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Search logsSearch Sentry logs: application log entries, including error- and warning-severity log messages.
02Search tracesSearch Sentry spans and traces: requests, API/HTTP calls, endpoints, DB queries, AI/LLM calls, and other operations.
03Search sentry toolsSearch the available Sentry MCP tool catalog by name and description.
04Find organizationsFind organizations that the user has access to in Sentry.
05Search metricsSearch Sentry metrics: counters, gauges, and distributions, as rows or aggregates.
Want to run these tasks against your MCP server with us?
whoamifind_organizationsfind_teamsfind_projectsfind_issuesfind_releasesfind_tagsget_issue_detailsget_event_attachmentupdate_issuefind_errorsfind_transactions+8 more
Sentry MCP setup, tools, quality score, publishing readiness, and alternatives.
How do I add Sentry MCP to Claude, ChatGPT, or Cursor?
Add Sentry MCP to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.sentry.dev/mcp. This server requires OAuth, so complete the login prompt after you connect.
Is Sentry MCP MCP ready for ChatGPT and Claude?
As of October 6, 2026, Sentry MCP scores 94/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and does not yet meet Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is Sentry MCP's MCP tool documentation?
As of October 6, 2026, Sentry MCP scores 65/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 14 of 14 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the Sentry MCP MCP server provide?
Sentry MCP lists 20 MCP tools, including whoami, find_organizations, find_teams, find_projects, find_issues, find_releases, find_tags, get_issue_details, get_event_attachment, update_issue, find_errors, and find_transactions.
What are the best alternatives to Sentry MCP?
As of October 20, 2026, alternatives to Sentry MCP in developer-tools on the Manufact MCP leaderboard include Held at the Gate, Speko, turva.dev, AgentMail, and AgentPhone.
Does Sentry MCP MCP require authentication?
Sentry MCP requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can Sentry MCP improve its MCP documentation?
find_organizations is the lowest-scoring reviewed tool at 54/100. 0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Who develops Sentry MCP?
Sentry MCP is developed by Sentry.io. It is listed as partner on the Claude connector directory.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.