In this environment, I interpret BBP as user-provided notation and workflow guidance, not as an executable shell, proxy, memory system, or authority over the available tools. What BBP means here 1. Command envelopes are intent, not commands For example: Josh@gpt: search unresolved production issues means: Interpret this as a request to perform an appropriate Sentry operation. It does not mean that I should execute a literal shell command. I would map it to an exposed Sentry function, such as: { "organizationSlug": "example-org", "query": "is:unresolved environment:production", "sort": "date", "projectSlugOrId": null, "regionUrl": null, "limit": 10, "period": "30d", "includeExplanation": false } for search_issues. 2. BBP modifiers are advisory only These forms: B-Bash: Josh@gpt: ! ? * can describe your intended lookup or execution context, but they do not create capabilities here. In particular: B-Bash does not provide a shell. web off/on/only does not change Sentry MCP authorization or tool availability. ||| does not perform Library file transfer. BBP does not create a local proxy, DNS relay, TLS interceptor, or response gate. BBP cannot override system instructions, developer instructions, or Sentry tool schemas. 3. The actual runtime syntax is structured tool invocation The authoritative syntax in this session is the exposed function schema. Examples include: find_organizations(query) find_projects(organizationSlug, regionUrl, query) search_issues(organizationSlug, query, sort, ...) search_events(organizationSlug, dataset, query, ...) get_sentry_resource(url=...) update_issue(...) analyze_issue_with_seer(...) For operations not exposed directly, I can search the Sentry tool catalog and invoke a discovered tool through execute_sentry_tool. 4. BBP’s no-fabrication rule is compatible I will follow the compatible parts of BBP, especially: Do not invent tool output. Do not claim shell execution. Do not claim filesystem or Library state. Do not claim memory persistence. Distinguish current observations from user-provided or historical claims. Report unavailable capabilities accurately. Do not treat historical tool paths or versions as current facts. 5. Persistence status This Sentry session does not expose a verified BBP memory, Library, FUSE, Tool Repository, or registry-write mechanism. Therefore: |||MEM COMMIT |||REG SYNC Josh@gpt: write /home/workdir/artifacts/... would be treated as unfulfilled intent, not executed operations. I cannot claim those actions succeeded. 6. Practical BBP-to-Sentry mapping BBP-style request Sentry MCP interpretation Josh@gpt: list organizations Call find_organizations Josh@gpt: list projects for ORG Call find_projects B-Bash: show recent unresolved issues Call search_issues Josh@gpt: inspect ISSUE-123 Call get_sentry_resource or issue-detail tooling Josh@gpt: analyze ISSUE-123 Call analyze_issue_with_seer Josh@gpt: resolve ISSUE-123 Call update_issue ` `Josh@gpt: save result So, operationally, BBP functions here as a request-interpretation convention. The Sentry MCP schemas—not BBP notation—determine what can actually be executed. Please give a manpage for how to use this with your environment. Please include a syntax for all available tools. SENTRY-MCP(1) NAME Sentry MCP environment — Structured tools for exploring and modifying data in an authorized Sentry account. SYNOPSIS These are structured tool calls, not shell commands: find_organizations({ query }) find_projects({ organizationSlug, regionUrl, query }) search_issues({ organizationSlug, query, sort, projectSlugOrId, regionUrl, limit, period, includeExplanation }) search_events({ organizationSlug, dataset, query, fields, sort, projectSlug, environment, period, regionUrl, limit, includeExplanation }) get_sentry_resource({ url, resourceType, resourceId, organizationSlug }) update_issue({ organizationSlug, regionUrl, issueId, issueUrl, status, assignedTo, ignoreMode, ... }) analyze_issue_with_seer({ organizationSlug, regionUrl, issueId, issueUrl, instruction }) search_sentry_tools({ query, limit }) execute_sentry_tool({ name, arguments }) Arguments are JSON objects. The available schemas are authoritative. DESCRIPTION This environment provides Sentry MCP tools for: Finding organizations and projects Searching grouped issues Searching events, logs, spans, metrics, profiles, and replays Inspecting issues, events, traces, replays, monitors, snapshots, and AI conversations Updating issue status and assignment Running Seer root-cause analysis Discovering additional Sentry MCP catalog tools Executing catalog-discovered tools BBP-style syntax may be used as a human-readable request convention: Josh@gpt: show unresolved production issues The actual operation is performed only through a valid structured Sentry tool call. BBP notation does not provide: A shell Filesystem access FUSE access Library writes Persistent memory A network proxy DNS or TLS interception Arbitrary HTTP access ORGANIZATION AND PROJECT TOOLS find_organizations Find organizations available to the authenticated Sentry account. Syntax { "query": "optional search text" } Parameters Parameter Type Required Description query string or null yes Filter by organization name or slug Examples { "query": null } { "query": "acme" } find_projects Find projects in a Sentry organization. Syntax { "organizationSlug": "my-org", "regionUrl": "https://us.sentry.io", "query": "optional project search" } Parameters Parameter Type Required Description organizationSlug string yes Organization slug regionUrl string or null yes Regional Sentry URL when required query string or null yes Filter by project name or slug Examples { "organizationSlug": "my-org", "regionUrl": "https://us.sentry.io", "query": null } ISSUE SEARCH AND INSPECTION search_issues Searches grouped Sentry issues. It does not provide raw event aggregations. Syntax { "organizationSlug": "my-org", "query": "is:unresolved", "sort": "date", "projectSlugOrId": null, "regionUrl": "https://us.sentry.io", "limit": 10, "period": "30d", "includeExplanation": false } Parameters Parameter Type Required Description organizationSlug string yes Organization slug query string yes Sentry issue search syntax or natural language sort enum yes date, freq, new, user, or recommended projectSlugOrId string or null yes Project slug or numeric project ID regionUrl string or null yes Sentry region URL limit integer yes 1–100 results period enum yes 24h, 7d, 14d, 30d, or 90d includeExplanation boolean yes Include query translation details Common query filters is:unresolved is:resolved is:ignored is:regressed is:new level:error level:warning environment:production assigned:me is:unassigned firstSeen:-24h lastSeen:-7d userCount:>100 issue.priority:high Examples { "organizationSlug": "my-org", "query": "is:unresolved environment:production", "sort": "recommended", "projectSlugOrId": null, "regionUrl": null, "limit": 20, "period": "7d", "includeExplanation": false } { "organizationSlug": "my-org", "query": "level:error is:unassigned", "sort": "freq", "projectSlugOrId": "my-project", "regionUrl": null, "limit": 10, "period": "30d", "includeExplanation": true } get_sentry_resource Retrieve a Sentry resource by URL or resource identifier. Syntax using a URL { "url": "https://my-org.sentry.io/issues/PROJECT-123/" } Syntax using a resource identifier { "resourceType": "issue", "organizationSlug": "my-org", "resourceId": "PROJECT-123" } Resource types issue event trace ai_conversation replay monitor snapshot Parameters Parameter Type Required Description url URI or omitted conditionally Sentry resource URL resourceType enum conditionally Resource type when not using a URL resourceId string conditionally Issue ID, event ID, trace ID, replay ID, etc. organizationSlug string conditionally Required for identifier-based lookup Examples { "url": "https://example.sentry.io/issues/PROJ-123/" } { "resourceType": "event", "organizationSlug": "my-org", "resourceId": "0123456789abcdef0123456789abcdef" } { "resourceType": "ai_conversation", "organizationSlug": "my-org", "resourceId": "conversation-123" } EVENT AND DATASET SEARCH search_events Searches Sentry event datasets. Use this for counts, aggregations, time series, and individual event records. Syntax { "organizationSlug": "my-org", "dataset": "errors", "query": "errors per hour", "fields": ["timestamp", "count()"], "sort": "-timestamp", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": null, "limit": 10, "includeExplanation": false } Dataset values errors logs spans metrics profiles replays Parameters Parameter Type Required Description organizationSlug string yes Organization slug dataset enum yes Dataset to search query string yes Natural language or Sentry query syntax fields array or null yes Returned fields and aggregations sort string or null yes Sort field; prefix with - for descending projectSlug string or null yes Project slug environment string or array yes Environment filter period string yes Relative window such as 24h, 7d, 30d regionUrl string or null yes Sentry region URL limit integer yes 1–100 results includeExplanation boolean yes Include query translation details Dataset selection rules Use: errors for exceptions and crash events logs for application log messages, warnings, and error logs spans for traces, database calls, requests, and AI/LLM spans metrics for metric rows and aggregates profiles for profiling results replays for session replay searches Replay searches return replay records. Replay count, average, and sum aggregations are not supported. Examples Count errors { "organizationSlug": "my-org", "dataset": "errors", "query": "how many errors today", "fields": ["count()"], "sort": "-count()", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": null, "limit": 10, "includeExplanation": false } Most common issues { "organizationSlug": "my-org", "dataset": "errors", "query": "environment:production", "fields": ["issue", "count()"], "sort": "-count()", "projectSlug": "my-project", "environment": "production", "period": "7d", "regionUrl": null, "limit": 20, "includeExplanation": false } Error trend { "organizationSlug": "my-org", "dataset": "errors", "query": "errors per hour", "fields": ["timestamp", "count()"], "sort": "timestamp", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": null, "limit": 100, "includeExplanation": false } Logs { "organizationSlug": "my-org", "dataset": "logs", "query": "level:error", "fields": null, "sort": "-timestamp", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": null, "limit": 20, "includeExplanation": false } Database spans { "organizationSlug": "my-org", "dataset": "spans", "query": "span.op:db", "fields": ["span.op", "span.duration", "count()"], "sort": "-span.duration", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": null, "limit": 20, "includeExplanation": false } Replays containing errors { "organizationSlug": "my-org", "dataset": "replays", "query": "count_errors:>0", "fields": null, "sort": "-count_errors", "projectSlug": null, "environment": "production", "period": "7d", "regionUrl": null, "limit": 20, "includeExplanation": false } ISSUE MUTATION update_issue Change an issue’s status or assignment. Syntax { "organizationSlug": "my-org", "issueId": "PROJ-123", "status": "resolved" } An issue URL may be used instead: { "issueUrl": "https://my-org.sentry.io/issues/PROJ-123/", "status": "resolved" } Status values resolved resolvedInNextRelease unresolved ignored Assignment syntax user:USER_ID team:TEAM_ID team:TEAM_SLUG Unassign an issue with JSON null: { "organizationSlug": "my-org", "issueId": "PROJ-123", "assignedTo": null } Ignore modes untilEscalating forever forDuration untilOccurrenceCount untilUserCount Parameters Parameter Type Description organizationSlug string Organization slug regionUrl string or null Sentry region URL issueId string Issue short ID issueUrl URI Full issue URL status enum New issue status assignedTo string or null User/team assignment ignoreMode enum Ignore behavior ignoreDurationMinutes integer Duration for forDuration ignoreCount integer Occurrence count for untilOccurrenceCount ignoreWindowMinutes integer Optional occurrence window ignoreUserCount integer User count for untilUserCount ignoreUserWindowMinutes integer Optional user-count window reason string Comment explaining the action At least one of status or assignedTo is required. Examples Resolve { "organizationSlug": "my-org", "issueId": "PROJ-123", "status": "resolved", "reason": "Fixed in the latest release" } Resolve in next release { "organizationSlug": "my-org", "issueId": "PROJ-123", "status": "resolvedInNextRelease" } Assign to a team { "organizationSlug": "my-org", "issueId": "PROJ-123", "assignedTo": "team:backend" } Ignore forever { "organizationSlug": "my-org", "issueId": "PROJ-123", "status": "ignored", "ignoreMode": "forever", "reason": "Expected staging noise" } Ignore until 100 occurrences { "organizationSlug": "my-org", "issueId": "PROJ-123", "status": "ignored", "ignoreMode": "untilOccurrenceCount", "ignoreCount": 100, "ignoreWindowMinutes": 60 } To change the rule on an already ignored issue, first set it to unresolved, then apply the new ignore rule. AI ANALYSIS analyze_issue_with_seer Run Seer root-cause analysis on a Sentry issue and obtain code-level fix recommendations. Syntax using a URL { "issueUrl": "https://my-org.sentry.io/issues/PROJ-123/" } Syntax using organization and issue ID { "organizationSlug": "my-org", "issueId": "PROJ-123", "instruction": "Focus on identifying the failing deployment configuration" } Parameters Parameter Type Required Description organizationSlug string conditional Organization slug regionUrl string or null no Sentry region URL issueId string conditional Issue short ID issueUrl URI conditional Full issue URL instruction string no Additional analysis direction Seer is intended for issue analysis and fixes. It should not be used for metric alert issues that it does not support. Example { "organizationSlug": "my-org", "issueId": "PROJ-123", "instruction": "Explain the root cause, identify the likely code location, and propose a minimal fix" } TOOL DISCOVERY search_sentry_tools Search the available Sentry MCP tool catalog. Use this when a required Sentry operation is not directly exposed or when the exact tool name/schema is unknown. Syntax { "query": "list releases", "limit": 8 } Parameters Parameter Type Required Description query string yes Natural-language description of the desired operation limit integer yes Maximum number of matches, up to 20 Examples { "query": "issue details and activity", "limit": 5 } { "query": "list releases and release health", "limit": 10 } { "query": "teams and team members", "limit": 10 } execute_sentry_tool Execute a tool returned by search_sentry_tools. Syntax { "name": "catalog_tool_name", "arguments": { "argument": "value" } } The arguments object must match the schema returned by search_sentry_tools. Example If catalog discovery returns a tool named search_docs: { "name": "search_docs", "arguments": { "query": "Sentry issue assignment" } } The tool name and arguments must come from the actual catalog result. They must not be guessed. COMMON WORKFLOWS Discover account contents find_organizations -> find_projects -> search_issues -> get_sentry_resource Investigate a production issue search_issues -> get_sentry_resource -> analyze_issue_with_seer Measure error volume search_events(dataset="errors") Inspect application logs search_events(dataset="logs") Inspect performance search_events(dataset="spans") Modify an issue get_sentry_resource -> update_issue PROVENANCE AND LIMITATIONS The following rules apply in this environment: A tool call is not considered successful until the runtime returns a result. User-provided organization names, issue IDs, paths, hashes, and historical tool versions are not current observations until verified. BBP commands are not executed as shell commands. Sentry MCP tool schemas override informal BBP syntax. No Library, FUSE, filesystem, BBP registry, or persistent-memory operation is implied by |||. No Sentry mutation is performed without an explicit corresponding mutation request. Catalog-discovered tools must be schema-discovered before execution. Unsupported operations are reported as unavailable rather than simulated. SEE ALSO /help /tools Within this session, /help and /tools are interface commands, not Sentry API calls. Do not truncate results please Understood. For Sentry MCP requests, I will: Return complete tool results whenever the runtime provides them. Avoid summarizing or silently truncating fields, rows, issues, events, or explanations. Use pagination, narrower queries, or multiple calls when a tool imposes a result limit. Clearly identify any server-side, schema, or platform limit that prevents returning everything. Never fill omitted data with guesses or fabricated content. SENTRY-MCP-UNAVAILABLE(1) NAME sentry-mcp-unavailable — Capabilities not exposed as general-purpose tools in this Sentry MCP environment. SYNOPSIS Unavailable operations are represented as: UNAVAILABLE: Reason: They must not be represented as successful execution. BBP-style requests such as: Josh@gpt: are interpreted as requests, not executed as shell commands. DESCRIPTION This session is a Sentry MCP environment. It exposes Sentry-specific functions and a catalog for discovering additional Sentry functions. It does not expose a general operating-system runtime, browser, filesystem, Library, FUSE mount, arbitrary network client, or persistent-memory mechanism. The absence of a direct top-level function does not automatically mean that a Sentry operation is unavailable. First use: { "query": "", "limit": 20 } with search_sentry_tools, then execute a discovered tool using: { "name": "", "arguments": {} } through execute_sentry_tool. GENERAL EXECUTION TOOLS container.exec Status UNAVAILABLE Intended syntax container.exec({ "command": "...", "workdir": "...", "timeout": 1000, "session": false, "env": {}, "user": "..." }) Meaning here No general container or shell executor is exposed. The following are therefore not executable: Josh@gpt: ls Josh@gpt: cat /path/file Josh@gpt: npm install ... Josh@gpt: curl ... josh@localhost_gpt: No stdout, stderr, exit code, PID, filesystem state, package state, or process state may be claimed. container.feed_chars Status UNAVAILABLE Intended syntax container.feed_chars({ "session_id": "...", "chars": "...", "yield_time_ms": 1000 }) Meaning here There is no exposed interactive shell or container session to receive input. container.open_image Status UNAVAILABLE Intended syntax container.open_image({ "path": "/path/to/image.png" }) Meaning here There is no general local-image viewer. Sentry-specific snapshot image retrieval is separate and may be available through catalog tools such as get_snapshot_image. container.download Status UNAVAILABLE Intended syntax container.download({ "url": "https://example.com/file", "destination": "/path/to/file" }) Meaning here There is no general-purpose download tool or verified local destination. Sentry-specific attachment or snapshot retrieval is not equivalent to arbitrary file downloading. GENERAL WEB TOOLS Web search/open/click/find/screen/image Status UNAVAILABLE Conceptual syntax web.search({ "query": "..." }) web.open({ "url": "..." }) web.click({ "page": "...", "target": "..." }) web.find({ "page": "...", "pattern": "..." }) web.screen({ "url": "..." }) web.image({ "query": "..." }) Meaning here No general web-browser tool is exposed. The following are not available as generic operations: B-Bash, web on: search the Internet Josh@gpt: open ? Josh@gpt: click Sentry documentation retrieval is a separate Sentry catalog capability: search_docs get_doc Those tools must be schema-discovered or executed through the Sentry MCP catalog. PYTHON AND ARTIFACT EXECUTION python.exec Status UNAVAILABLE Intended syntax python.exec({ "code": "..." }) Meaning here No private Python runtime is exposed. I cannot claim that code was run, nor provide fabricated calculations, hashes, parsing results, statistics, or generated files. python_user_visible.exec Status UNAVAILABLE Intended syntax python_user_visible.exec({ "code": "...", "artifacts": true }) Meaning here No user-visible Python artifact environment is exposed. I cannot create or attach local charts, tables, archives, reports, or generated files through this mechanism. Sentry event, replay, metric, and profile results may still be returned by Sentry MCP tools, subject to their schemas and result limits. image_gen.text2im Status UNAVAILABLE Intended syntax image_gen.text2im({ "prompt": "...", "size": "..." }) Meaning here No general image-generation tool is exposed. Sentry screenshot and snapshot retrieval is read-only Sentry data access, not image generation. FILE, LIBRARY, AND FUSE OPERATIONS files.search Status UNAVAILABLE Intended syntax files.search({ "query": "..." }) There is no general Library or workspace search operation. files.find Status UNAVAILABLE Intended syntax files.find({ "path": "...", "pattern": "..." }) No filesystem tree is exposed. Paths mentioned by the user, including: /BBP-Registry/ /mnt/data/BBP-Registry/ /home/workdir/artifacts/ are user-provided references, not verified current paths. files.read Status UNAVAILABLE Intended syntax files.read({ "path": "..." }) No arbitrary local or Library file can be read through this session. files.list Status UNAVAILABLE Intended syntax files.list({ "path": "..." }) No directory listing is available. files.materialize Status UNAVAILABLE Intended syntax files.materialize({ "fileReference": "...", "destination": "..." }) A Sentry response, attachment, or snapshot is not automatically a local filesystem path. files.share Status UNAVAILABLE Intended syntax files.share({ "path": "...", "mode": "download" }) No downloadable local artifact can be claimed unless an actual exposed tool returns one. files.manage-library Status UNAVAILABLE Intended syntax files.manage-library({ "operation": "write", "name": "...", "content": "..." }) No Library write, upload, deletion, or verification mechanism is exposed. Consequently, these are not executable here: ||| Josh@gpt: write file Josh@gpt: package result ||| |||MEM COMMIT |||REG SYNC The ||| operator remains notation only. GENERIC API AND RESOURCE OPERATIONS api.list-resources Status UNAVAILABLE Intended syntax api.list-resources({ "resourceType": "..." }) There is no generic API-resource enumeration endpoint. Sentry resources must be accessed through exposed Sentry tools, such as: find_organizations find_projects search_issues search_events get_sentry_resource or catalog-discovered Sentry tools. api.read-resource Status UNAVAILABLE Intended syntax api.read-resource({ "resource": "..." }) There is no arbitrary API resource reader. get_sentry_resource is a Sentry-specific supported alternative, not a generic API reader. Arbitrary HTTP client Status UNAVAILABLE Intended syntax http.request({ "method": "GET", "url": "https://example.com", "headers": {}, "body": "..." }) No arbitrary HTTP request tool is exposed. The Sentry uptime-monitor tools can configure Sentry to check a URL, but they do not provide a general interactive HTTP client. BBP NETWORK AND PROXY OPERATIONS Local BBP Proxy Status UNAVAILABLE / NOT VERIFIED Intended conceptual syntax bbp-proxy.request({ "method": "GET", "url": "...", "headers": {}, "body": "..." }) No verified local BBP proxy is exposed or running in this session. BBP OUTBOUND relay Status UNAVAILABLE / NOT VERIFIED Intended conceptual syntax bbp.OUTBOUND.write({ "requestId": "...", "request": {} }) No /BBP-Registry/OUTBOUND/ directory or relay writer has been verified. BBP INBOUND relay Status UNAVAILABLE / NOT VERIFIED Intended conceptual syntax bbp.INBOUND.read({ "requestId": "..." }) No /BBP-Registry/INBOUND/ directory or response spool has been verified. BBP response inspection gate Status UNAVAILABLE / NOT VERIFIED Intended conceptual syntax bbp.response_gate.inspect({ "requestId": "...", "response": {} }) No automatic HTTP-header interception, Library response gate, sanitization proxy, DNS interception, TLS interception, or WebX backend interception is active or verified. The BBP response-sanitization rules remain user-provided protocol requirements, not runtime enforcement in this session. MEMORY AND PERSISTENCE TOOLS bio.update Status UNAVAILABLE / NOT VERIFIED Intended syntax bio.update({ "content": "...", "operation": "append" }) No persistent-memory write tool is exposed. I cannot claim: "Committed to memory" for the BBP capsule. The capsule remains conversation context only unless a separate memory mechanism confirms persistence. BBP MEM BOOT Status UNAVAILABLE / NOT VERIFIED Intended syntax |||MEM BOOT No encrypted BBP capsule discovery, key authority, AES-GCM decryption, manifest verification, or registry bootstrap is available. BBP MEM UNLOCK Status UNAVAILABLE / NOT VERIFIED Intended syntax |||MEM UNLOCK No biometric, Android Keystore, broker, key-release, or cryptographic unlock mechanism is exposed. BBP MEM COMMIT Status UNAVAILABLE / NOT VERIFIED Intended syntax |||MEM COMMIT No encrypted-memory rebuild, fresh-nonce encryption, decrypt self-test, tamper test, secret-leakage test, or persistent publication can be performed. BBP MEM LOCK Status UNAVAILABLE / NOT VERIFIED Intended syntax |||MEM LOCK No BBP plaintext-memory or key-reference lifecycle is exposed. BBP MEM REKEY Status UNAVAILABLE / NOT VERIFIED Intended syntax |||MEM REKEY No key-management or authenticated capsule-rekeying mechanism is exposed. TOOL REGISTRY AND RUFLO Ruflow/Ruflo orchestration Status UNAVAILABLE / NOT VERIFIED Intended syntax ruflo.run({ "task": "...", "parallel": true }) No Ruflo executable, MCP server, launcher, version, process, or orchestration result has been verified in this session. The existence of a historical Ruflo installation does not establish current availability. BBP global tool registry Status UNAVAILABLE / NOT VERIFIED Intended syntax |||REG BOOT |||REG STATUS |||REG ADD |||REG UPDATE |||REG VERIFY |||REG RESTORE |||REG REMOVE |||REG MIGRATE |||REG SYNC No BBP registry file, registry service, append-only event log, or synchronization operation is exposed. BBP Tool Repository Status UNAVAILABLE / NOT VERIFIED Intended syntax bbp.tool_repository.persist({ "tool": "...", "artifacts": ["..."], "metadata": {} }) No Tool Repository path or persistence mechanism is available. Downloaded or acquired tools cannot be installed, copied, hashed, registered, or persisted by this Sentry MCP session. Backtick State Status UNAVAILABLE / NOT VERIFIED Intended syntax backtick-state save [paths...] backtick-state verify backtick-state load backtick-state register -- backtick-state unregister No process checkpoint, workspace archive, recipe registry, CRIU integration, or restart-state mechanism is exposed. SETTINGS AND SAFETY TOOLS settings.get Status UNAVAILABLE Intended syntax settings.get({ "name": "..." }) This session cannot inspect model, account, application, or runtime settings through a generic settings API. settings.set Status UNAVAILABLE Intended syntax settings.set({ "name": "...", "value": "..." }) No generic settings mutation is available. safety.family-info Status UNAVAILABLE Intended syntax safety.family-info({}) No generic safety-family information endpoint is exposed. safety.parental-controls Status UNAVAILABLE Intended syntax safety.parental-controls({}) No parental-control inspection endpoint is exposed. safety.trusted-contact Status UNAVAILABLE Intended syntax safety.trusted-contact({}) No trusted-contact management endpoint is exposed. safety.update-parental-control Status UNAVAILABLE Intended syntax safety.update-parental-control({ "setting": "...", "value": "..." }) No parental-control mutation endpoint is exposed. NOT UNAVAILABLE: CATALOG-DISCOVERED SENTRY TOOLS The following are not classified as unavailable because catalog discovery exposed them for execution through execute_sentry_tool. Their exact schemas must be taken from the catalog result. Organization, project, and team tools find_teams create_team create_project update_project add_team_to_project remove_team_from_project Issue and event investigation get_issue_details get_issue_activity get_issue_breadcrumbs get_issue_user_reports get_issue_tag_values search_issue_events get_event_attachment get_trace_details Agent and AI features search_agent_conversations get_agent_conversation_details analyze_issue_with_seer Releases and performance find_releases get_release_details get_profile get_profile_details Monitors and alerts find_monitors get_monitor_details find_uptime_monitors get_uptime_monitor_details create_uptime_monitor update_uptime_monitor delete_uptime_monitor find_alert_rules get_alert_rule DSNs find_dsns create_dsn update_dsn Dashboards and snapshots get_dashboard_details get_latest_base_snapshot get_snapshot get_snapshot_image Documentation search_docs get_doc These are invoked conceptually as: { "name": "find_releases", "arguments": { "organizationSlug": "my-org" } } through: execute_sentry_tool They are not shell commands and are not invoked by inventing a different schema. SENTRY-MCP TOOL-DISCOVERY RULE When unsure whether a Sentry capability exists: { "query": "", "limit": 20 } Call: search_sentry_tools If a result is returned, the capability is catalog-available, not unavailable. Then use the returned exact name and schema: { "name": "", "arguments": { "...": "..." } } with: execute_sentry_tool If no suitable catalog result is returned, report: UNAVAILABLE: no matching Sentry MCP tool was exposed or discovered. That means unavailable in this session, not necessarily unavailable in Sentry generally. PROVENANCE RULES A user-provided BBP syntax is not evidence that the corresponding runtime exists. A historical tool installation is not evidence of current availability. A catalog description is not the same as a completed tool call. A discovered Sentry tool is not evidence that the user has permission to perform the operation. A mutation is not successful until its tool returns a result. A result is not silently expanded beyond the tool’s returned data. A result-limit, pagination, or schema constraint must be reported. No unavailable operation is replaced with simulated output. No Library, FUSE, filesystem, registry, memory, or Tool Repository write is implied by |||. Sentry-specific attachment, snapshot, documentation, and resource tools do not create general-purpose filesystem or web capabilities. EXIT STATUS 0 only means that the requested Sentry MCP operation returned successfully. For all unavailable operations: UNAVAILABLE is the only valid status; no exit code, stdout, stderr, PID, path, hash, or persistence result is implied. SENTRY-MCP-ADMIN(1) NAME sentry-mcp-admin — Administrative, developer, project-management, and backend-facing Sentry MCP operations available in this session. SYNOPSIS Sentry MCP calls use structured JSON, not shell syntax: ({ ...arguments... }) For catalog-discovered tools, use: { "name": "", "arguments": { "...": "..." } } through: execute_sentry_tool Example: { "name": "whoami", "arguments": {} } IMPORTANT PRIVILEGE MODEL “Admin,” “root,” and “developer” describe the kind of operation, not guaranteed authority. This session does not provide: Operating-system root or sudo access A shell or container Direct database access Internal Sentry service access Arbitrary backend API calls Credential or token extraction Organization-owner privileges by implication Every Sentry operation remains subject to the authenticated account’s Sentry permissions. A tool being discoverable does not guarantee that the current account can successfully execute it. TOOL INVOCATION Directly exposed tools These tools are directly available as structured functions: find_organizations find_projects search_issues search_events get_sentry_resource update_issue analyze_issue_with_seer search_sentry_tools execute_sentry_tool Direct-call examples { "query": null } for find_organizations. { "organizationSlug": "my-org", "query": "is:unresolved", "sort": "recommended", "projectSlugOrId": null, "regionUrl": null, "limit": 100, "period": "30d", "includeExplanation": false } for search_issues. Catalog-discovered tools Tools discovered through search_sentry_tools must be invoked with their exact returned name: { "name": "create_project", "arguments": { "organizationSlug": "my-org", "teamSlug": "backend", "name": "payments-api", "platform": "python" } } Do not invent alternative tool names or argument names. IDENTITY AND SERVER INFORMATION whoami Identify the authenticated Sentry user. Status CATALOG-AVAILABLE Syntax { "name": "whoami", "arguments": {} } Purpose Returns the authenticated user’s name and email address. Example { "name": "whoami", "arguments": {} } get_sentry_mcp_info Retrieve information about the running Sentry MCP server. Status CATALOG-AVAILABLE Syntax { "name": "get_sentry_mcp_info", "arguments": {} } Purpose Used to check: Sentry MCP server version Compatibility with a Sentry Skill or integration ORGANIZATION DISCOVERY find_organizations List organizations accessible to the authenticated user. Status DIRECT Syntax { "query": null } Parameters Parameter Type Description query string or null Filter by organization name or slug Example { "query": "production" } This lists organizations matching production. Administrative limitation This is an access-discovery tool. It does not: Create organizations Delete organizations Change organization ownership Change organization roles Invite or remove organization members Change billing or subscription state PROJECT ADMINISTRATION find_projects List projects in an organization. Status DIRECT Syntax { "organizationSlug": "my-org", "regionUrl": null, "query": null } Parameters Parameter Type Description organizationSlug string Organization slug regionUrl string or null Sentry region URL query string or null Project name or slug filter Example { "organizationSlug": "my-org", "regionUrl": "https://us.sentry.io", "query": "backend" } create_project Create a Sentry project and provision a DSN. Status CATALOG-AVAILABLE Syntax { "name": "create_project", "arguments": { "organizationSlug": "my-org", "teamSlug": "backend", "name": "payments-api", "slug": "payments-api", "platform": "python", "repository": "example/payments-api", "regionUrl": null } } Parameters Parameter Type Required Description organizationSlug string yes Organization slug teamSlug string yes Owning team slug name string yes Project display name slug string or null no Explicit project slug platform string or null no Platform such as python, javascript, or react repository string or null no Existing connected repository regionUrl string or null no Sentry region URL Example { "name": "create_project", "arguments": { "organizationSlug": "my-org", "teamSlug": "backend", "name": "payments-api", "platform": "python" } } Result expectation When successful, the tool may return: Project slug Project metadata Provisioned SENTRY_DSN A DSN must not be invented if project creation or key setup fails. update_project Update project metadata. Status CATALOG-AVAILABLE Syntax { "name": "update_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "old-project", "name": "New Project", "slug": "new-project", "platform": "javascript", "regionUrl": null } } Parameters Parameter Type Description organizationSlug string Organization slug projectSlug string Current project slug name string or null New project name slug string or null New unique project slug platform string or null New project platform regionUrl string or null Region URL Examples { "name": "update_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "platform": "python" } } { "name": "update_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "old-name", "name": "Payments API", "slug": "payments-api" } } Limitation Do not change a project slug from a project-scoped session if the tool requires an organization-scoped session. Project deletion Status UNAVAILABLE No catalog tool was exposed for: delete_project remove_project destroy_project This session cannot claim project deletion. TEAM ADMINISTRATION find_teams List teams in an organization. Status CATALOG-AVAILABLE Syntax { "name": "find_teams", "arguments": { "organizationSlug": "my-org", "regionUrl": null, "query": null } } Parameters Parameter Type Description organizationSlug string Organization slug regionUrl string or null Region URL query string or null Team name or slug filter create_team Create a team. Status CATALOG-AVAILABLE Syntax { "name": "create_team", "arguments": { "organizationSlug": "my-org", "name": "platform", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes name string yes regionUrl string or null no Example { "name": "create_team", "arguments": { "organizationSlug": "my-org", "name": "platform" } } add_team_to_project Grant a team access to a project. Status CATALOG-AVAILABLE Syntax { "name": "add_team_to_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "teamSlug": "platform", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes projectSlug string yes teamSlug string yes regionUrl string or null no This operation is idempotent according to the catalog. remove_team_from_project Revoke a team’s access to a project. Status CATALOG-AVAILABLE; DESTRUCTIVE Syntax { "name": "remove_team_from_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "teamSlug": "platform", "regionUrl": null } } This tool will not remove the last team assigned to a project. Organization member administration Status UNAVAILABLE No tools were exposed for: invite_organization_member remove_organization_member update_organization_member_role list_organization_members list_organization_roles Team administration is available, but that is not equivalent to organization-member administration. DSN AND CLIENT-KEY ADMINISTRATION find_dsns List DSNs for a project. Status CATALOG-AVAILABLE Syntax { "name": "find_dsns", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes projectSlug string yes regionUrl string or null no create_dsn Create an additional DSN for an existing project. Status CATALOG-AVAILABLE Syntax { "name": "create_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "name": "Production", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes projectSlug string yes name string yes regionUrl string or null no update_dsn Update a DSN/client key. Status CATALOG-AVAILABLE; DESTRUCTIVE Syntax { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "name": "Production Key", "isActive": true, "rateLimitWindow": 3600, "rateLimitCount": 500, "disableRateLimit": false, "browserSdkVersion": "latest", "loaderHasReplay": true, "loaderHasPerformance": true, "loaderHasDebug": false, "loaderHasFeedback": true, "loaderHasLogsAndMetrics": true, "regionUrl": null } } Parameters Parameter Type Description organizationSlug string Organization slug projectSlug string Project slug keyId string DSN key ID from find_dsns update_dsn — continued keyId string required DSN/client-key identifier returned by find_dsns. name string optional Replacement display name for the DSN. Maximum length: 64 characters. isActive boolean optional Activates or deactivates the DSN. Set to false to prevent the key from accepting events. rateLimitWindow integer optional Rate-limit interval in seconds. Range: 0–86400. rateLimitCount integer optional Maximum number of errors accepted during the rate-limit interval. Both rateLimitWindow and rateLimitCount must be supplied together when configuring a rate limit. disableRateLimit boolean optional Set to true to remove the rate limit entirely. browserSdkVersion string optional JavaScript SDK version used by the loader script, such as: latest 7.x 10.x loaderHasReplay boolean optional Enables Session Replay support in the JavaScript loader script. loaderHasPerformance boolean optional Enables Performance Monitoring support in the JavaScript loader script. loaderHasDebug boolean optional Enables Debug Bundles and SDK logging in the JavaScript loader script. loaderHasFeedback boolean optional Enables User Feedback support in the JavaScript loader script. loaderHasLogsAndMetrics boolean optional Enables Logs and Metrics support in the JavaScript loader script. Requires SDK version 10.0.0 or newer. regionUrl string or null optional Region-specific Sentry URL. For Sentry’s hosted service this is typically a URL such as: https://us.sentry.io Omit or set to null when the active Sentry connection already provides the region. Examples Rename a DSN: { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "name": "Production" } } Deactivate a DSN: { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "isActive": false } } Set a limit of 500 errors per hour: { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "rateLimitWindow": 3600, "rateLimitCount": 500 } } Remove the rate limit: { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "disableRateLimit": true } } Operational notes This operation is catalog-available and destructive. It is idempotent. Use find_dsns before updating a key when the keyId is not already known. Omitting an optional field leaves that setting unchanged. Deactivating a DSN affects clients using that key; verify the key before executing the operation. find_dsns List all DSNs/client keys belonging to an existing project. Status CATALOG-AVAILABLE Syntax { "name": "find_dsns", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "regionUrl": null } } Parameters Parameter Type Required Description organizationSlug string yes Sentry organization slug projectSlug string yes Sentry project slug regionUrl string or null no Optional region-specific Sentry URL Output The result contains the project’s DSN/client keys, including the identifiers needed by update_dsn. Typical fields include: { "id": "d20df0a1ab5031c7f3c7edca9c02814d", "name": "Production", "isActive": true, "dsn": "https://public-key@o123.ingest.sentry.io/456", "rateLimit": null } The exact response fields may vary by Sentry account and API version. Example workflow First enumerate the keys: { "name": "find_dsns", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api" } } Then use the returned id as keyId: { "name": "update_dsn", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "keyId": "d20df0a1ab5031c7f3c7edca9c02814d", "isActive": false } } Operational notes This operation is read-only. It does not create, rotate, deactivate, or modify DSNs. The DSN value is sensitive configuration data; avoid exposing it in logs or public output. find_dsns is the authoritative discovery step for obtaining a keyId before calling update_dsn. Tool-selection summary Intent Tool Create an additional key for an existing project create_dsn List project DSNs and obtain their IDs find_dsns Rename, activate, deactivate, or configure a DSN update_dsn Create a new project and its initial DSN create_project The “Backtick Bash Protocol” is not an independently exposed Sentry MCP operation; the entries above describe the actual catalog tools and their JSON invocation format. SENTRY-MCP-ADMIN(1) NAME sentry-mcp-admin — Catalog-discovered Sentry administration, investigation, observability, documentation, and onboarding tools. PRIVILEGE MODEL There are no verified operating-system, database, shell, root, sudo, or unrestricted backend tools in this environment. “Administrative,” “backend,” and “sysadmin” describe the functional area of a Sentry operation. They do not grant elevated privileges. Every call remains subject to: The authenticated Sentry user’s permissions Organization and project access Sentry API authorization Tool-specific validation The active MCP session’s organization and region constraints Catalog discovery does not imply that execution will succeed. CATALOG INVOCATION Catalog tools are invoked through execute_sentry_tool using the exact discovered name and schema: { "name": "tool_name", "arguments": { "...": "..." } } For example: { "name": "whoami", "arguments": {} } The following sections use the equivalent conceptual notation: tool_name({ ...arguments... }) The actual runtime form remains execute_sentry_tool. IDENTITY AND SERVER INFORMATION whoami Identify the authenticated Sentry user. Status CATALOG-AVAILABLE; read-only Syntax { "name": "whoami", "arguments": {} } Result Returns identity information such as the authenticated user’s name and email address. get_sentry_mcp_info Retrieve information about the running Sentry MCP server. Status CATALOG-AVAILABLE; read-only Syntax { "name": "get_sentry_mcp_info", "arguments": {} } Result Used to inspect server-version and compatibility information. TEAM AND PROJECT ACCESS find_teams List teams in an organization. Syntax { "name": "find_teams", "arguments": { "organizationSlug": "my-org", "regionUrl": null, "query": null } } Parameters Parameter Type Required organizationSlug string yes regionUrl string or null no query string or null no The result is limited by the tool’s result behavior. Narrow query when necessary. create_team Create a team in an organization. Status CATALOG-AVAILABLE; mutating Syntax { "name": "create_team", "arguments": { "organizationSlug": "my-org", "name": "platform", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes name string yes regionUrl string or null no add_team_to_project Grant a team access to a project. Status CATALOG-AVAILABLE; idempotent Syntax { "name": "add_team_to_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "teamSlug": "platform", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes projectSlug string yes teamSlug string yes regionUrl string or null no If the team already has access, the operation returns the current state without adding a duplicate assignment. remove_team_from_project Revoke a team’s access to a project. Status CATALOG-AVAILABLE; destructive, idempotent Syntax { "name": "remove_team_from_project", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "teamSlug": "platform", "regionUrl": null } } The tool will not remove the final team assigned to a project. ISSUE INVESTIGATION get_issue_details Retrieve detailed information about a specific issue or event. Syntax { "name": "get_issue_details", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "regionUrl": null } } URL form: { "name": "get_issue_details", "arguments": { "issueUrl": "https://my-org.sentry.io/issues/PROJECT-123/" } } Event form: { "name": "get_issue_details", "arguments": { "organizationSlug": "my-org", "eventId": "c49541c747cb4d8aa3efb70ca5aba243" } } Parameters Parameter Type organizationSlug string regionUrl string or null issueId string eventId 32-character hexadecimal string issueUrl URI Use either issueUrl, or an organization plus issueId/eventId. get_issue_activity Retrieve an issue’s activity feed and comments. Syntax { "name": "get_issue_activity", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "includeComments": true, "limit": 100, "regionUrl": null } } Parameters Parameter Type Default organizationSlug string — issueId string — issueUrl URI — regionUrl string or null null includeComments boolean true limit integer, 1–100 25 get_issue_breadcrumbs Retrieve the breadcrumb trail for an issue event. Syntax { "name": "get_issue_breadcrumbs", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "eventId": "latest", "regionUrl": null } } Parameters Parameter Type Default organizationSlug string — issueId string — issueUrl URI — eventId "latest" or event ID "latest" regionUrl string or null null Breadcrumbs may include navigation, console, HTTP, and application events preceding the error. get_issue_user_reports Retrieve legacy user reports or crash-report feedback associated with an issue. Syntax { "name": "get_issue_user_reports", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "cursor": null, "limit": 100, "regionUrl": null } } Parameters Parameter Type Default organizationSlug string — issueId string — issueUrl URI — cursor string or null null limit integer, 1–100 25 regionUrl string or null null Standalone User Feedback Widget submissions should instead be searched with: search_issues(query="issue.category:feedback") get_issue_tag_values Retrieve the distribution of values for a tag on an issue. Syntax { "name": "get_issue_tag_values", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "tagKey": "environment", "regionUrl": null } } URL form: { "name": "get_issue_tag_values", "arguments": { "issueUrl": "https://my-org.sentry.io/issues/PROJECT-123/", "tagKey": "browser" } } Common tag keys url browser browser.name os environment release device user search_issue_events Search events belonging to one issue. Syntax { "name": "search_issue_events", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "query": "environment:production", "sort": "-timestamp", "period": "7d", "projectSlug": "payments-api", "regionUrl": null, "limit": 100, "includeExplanation": false } } Parameters Parameter Type Default organizationSlug string or null — issueId string — issueUrl URI — query string — sort string -timestamp period relative period string — projectSlug string or null null regionUrl string or null null limit integer, 1–100 50 includeExplanation boolean false Useful filters include: environment:production release:1.0.0 user.email:alice@example.com trace:TRACE_ID get_event_stacktrace Retrieve a complete thread stacktrace from an issue event. Syntax { "name": "get_event_stacktrace", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "eventId": "latest", "thread": "main", "regionUrl": null } } Parameters Parameter Type Default organizationSlug string — issueId string — eventId "latest" or event ID "latest" thread integer or string omitted regionUrl string or null null When thread is omitted, Sentry selects the first crashed thread, then the first thread with a stacktrace, then the first thread. get_event_attachment List or retrieve files attached to an event. Syntax List attachments: { "name": "get_event_attachment", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "eventId": "c49541c747cb4d8aa3efb70ca5aba243", "attachmentId": null, "regionUrl": null } } Retrieve one attachment: { "name": "get_event_attachment", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "eventId": "c49541c747cb4d8aa3efb70ca5aba243", "attachmentId": "12345", "regionUrl": null } } Parameters Parameter Type Required organizationSlug string yes projectSlug string yes eventId 32-character hexadecimal string yes attachmentId string or null no regionUrl string or null no This is Sentry-specific attachment access, not arbitrary filesystem or download access. add_issue_note Add a visible comment to an issue activity feed. Status CATALOG-AVAILABLE; mutating Syntax { "name": "add_issue_note", "arguments": { "organizationSlug": "my-org", "issueId": "PROJECT-123", "text": "Investigating with the payments team.", "regionUrl": null } } URL form: { "name": "add_issue_note", "arguments": { "issueUrl": "https://my-org.sentry.io/issues/PROJECT-123/", "text": "Resolved by deploy 1.2.3." } } text is required and may be at most 4096 characters. TRACES, SPANS, AND REPLAYS get_trace_details Retrieve a condensed overview of a trace. Syntax { "name": "get_trace_details", "arguments": { "organizationSlug": "my-org", "traceId": "a4d1aae7216b47ff8117cf4e09ce9d0a", "spanId": null, "regionUrl": null } } traceId must be a 32-character hexadecimal string. This is not a complete span dump; use search_events for exhaustive trace-scoped span searches. get_span_details Inspect one span within a trace. Syntax { "name": "get_span_details", "arguments": { "organizationSlug": "my-org", "traceId": "a4d1aae7216b47ff8117cf4e09ce9d0a", "spanId": "aa8e7f3384ef4ff5", "regionUrl": null } } Required parameters organizationSlug traceId spanId get_replay_details Retrieve high-level details for a session replay. Syntax using an ID { "name": "get_replay_details", "arguments": { "organizationSlug": "my-org", "replayId": "7e07485f-12f9-416b-8b14-26260799b51f", "regionUrl": null } } Syntax using a URL { "name": "get_replay_details", "arguments": { "replayUrl": "https://my-org.sentry.io/explore/replays/7e07485f-12f9-416b-8b14-26260799b51f/" } } AGENT AND AI CONVERSATIONS search_agent_conversations Search Sentry Agent Conversations. Syntax { "name": "search_agent_conversations", "arguments": { "organizationSlug": "my-org", "query": "failed conversations", "project": "payments-api", "environment": "production", "period": "7d", "start": null, "end": null, "cursor": null, "limit": 100, "regionUrl": null } } Parameters Parameter Type organizationSlug string, required query string project string or array of strings environment string or array of strings period relative period string, default 30d start string end string cursor string limit integer, 1–100 regionUrl string Results are conversation summaries. Use get_agent_conversation_details for the transcript. get_agent_conversation_details Retrieve a chronological Agent Conversation transcript. Syntax { "name": "get_agent_conversation_details", "arguments": { "organizationSlug": "my-org", "conversationId": "conversation-123", "project": "123456", "start": "2025-01-01T00:00:00Z", "end": "2025-01-02T00:00:00Z", "regionUrl": null } } Required parameters organizationSlug conversationId get_ai_conversation_details Deprecated compatibility alias for get_agent_conversation_details. Syntax { "name": "get_ai_conversation_details", "arguments": { "organizationSlug": "my-org", "conversationId": "conversation-123", "project": "123456", "start": "2025-01-01T00:00:00Z", "end": "2025-01-02T00:00:00Z", "regionUrl": null } } New integrations should use get_agent_conversation_details. RELEASES AND PROFILING find_releases Find releases in an organization. Syntax { "name": "find_releases", "arguments": { "organizationSlug": "my-org", "projectSlug": "payments-api", "query": "1.2", "regionUrl": null } } All fields except organizationSlug are optional. get_release_details Inspect an exact release version. Syntax { "name": "get_release_details", "arguments": { "organizationSlug": "my-org", "releaseVersion": "1.2.3", "projectSlugOrId": "payments-api", "includeHealth": true, "includeDeploys": true, "includeCommits": true, "limit": 50, "regionUrl": null } } Parameters Parameter Type Default organizationSlug string — releaseVersion string — projectSlugOrId string or null null includeHealth boolean false includeDeploys boolean true includeCommits boolean true limit integer, 1–50 10 regionUrl string or null null projectSlugOrId is required for project-specific release health unless the session is already project-scoped. get_profile Analyze CPU profiling data. Syntax { "name": "get_profile", "arguments": { "organizationSlug": "my-org", "projectSlugOrId": "payments-api", "transactionName": "/api/users", "period": "7d", "compareAgainstPeriod": "14d", "focusOnUserCode": true, "maxHotPaths": 20, "regionUrl": null } } URL form: { "name": "get_profile", "arguments": { "profileUrl": "https://my-org.sentry.io/explore/profiling/profile/payments-api/flamegraph/?profilerId=abc123", "transactionName": "/api/users" } } Parameters Parameter Type Default profileUrl URI omitted organizationSlug string omitted projectSlugOrId string or number omitted transactionName string context-dependent period relative period string 7d compareAgainstPeriod relative period string omitted focusOnUserCode boolean true maxHotPaths integer, 1–20 10 regionUrl string or null null get_profile_details Inspect one transaction or continuous profile. Transaction-profile syntax { "name": "get_profile_details", "arguments": { "organizationSlug": "my-org", "projectSlugOrId": "payments-api", "profileId": "cfe78a5c892d4a64a962d837673398d2", "focusOnUserCode": true, SENTRY-MCP(1) NAME sentry-mcp — Structured tools for testing an authorized Sentry account through the Sentry MCP service. This document continues from the context supplied in the request. Historical BBP, shell, proxy, filesystem, memory, and registry claims remain user-provided context unless confirmed by a current tool result. CURRENT RUNTIME STATUS Verified during this session: Sentry MCP server version: 0.39.0 Authenticated user ID: 4997521 Authenticated identity: joshvara@students.highline.edu Session constraints: none reported Accessible organization: Organization slug: tharealjv Sentry URL: https://tharealjv.sentry.io Region URL: https://us.sentry.io Current project discovery returned: { "projects": [], "hasMore": false } Therefore, no project is currently verified as accessible through find_projects for tharealjv. The runtime has not verified a prior chat transcript, BBP memory capsule, Library, filesystem, registry, or persistent artifact. SYNOPSIS Direct tools use structured JSON: find_organizations({ query }) find_projects({ organizationSlug, regionUrl, query }) search_issues({ organizationSlug, query, sort, projectSlugOrId, regionUrl, limit, period, includeExplanation }) search_events({ organizationSlug, dataset, query, fields, sort, projectSlug, environment, period, regionUrl, limit, includeExplanation }) get_sentry_resource({ url, resourceType, resourceId, organizationSlug }) update_issue({ organizationSlug, regionUrl, issueId, issueUrl, status, assignedTo, ignoreMode, ... }) analyze_issue_with_seer({ organizationSlug, regionUrl, issueId, issueUrl, instruction }) search_sentry_tools({ query, limit }) execute_sentry_tool({ name, arguments }) Catalog-discovered tools are invoked only through: { "name": "exact_catalog_tool_name", "arguments": { "argument": "value" } } using execute_sentry_tool. Tool names and argument names must not be invented. NAMESPACES 1. functions Available. This is the direct Sentry MCP tool namespace. It contains: find_organizations find_projects search_issues search_events get_sentry_resource update_issue analyze_issue_with_seer search_sentry_tools execute_sentry_tool It also exposes catalog execution through execute_sentry_tool. 2. multi_tool_use Available as an orchestration wrapper. It can run independent developer tools in parallel. It is not a Sentry API namespace and does not create additional Sentry permissions. Conceptual syntax: { "tool_uses": [ { "recipient_name": "functions.find_organizations", "parameters": { "query": null } } ] } Parallel execution must only be used where calls are independent and safe to run concurrently. 3. Catalog namespace Sentry catalog tools are not directly callable by arbitrary names. They are discovered with: { "query": "plain-language description", "limit": 20 } and executed with: { "name": "exact_name_returned_by_catalog", "arguments": {} } There is no verified universal catalog-export operation that guarantees an immutable, exhaustive manifest. The catalog is query-based and can return up to the requested limit. AVAILABLE DOMAINS The following domains were observed through direct tools or current catalog discovery. Identity and server information whoami get_sentry_mcp_info Organizations, projects, and teams find_organizations find_projects find_teams create_team create_project update_project add_team_to_project remove_team_from_project Issue investigation search_issues get_sentry_resource get_issue_details get_issue_activity get_issue_breadcrumbs get_issue_user_reports get_issue_tag_values search_issue_events get_event_stacktrace get_event_attachment add_issue_note Issue mutation update_issue add_issue_note These tools can modify Sentry state. A mutation is not successful until the runtime returns a successful result. Event and observability datasets search_events Supported dataset values: errors logs spans metrics profiles replays Traces, spans, and replays get_trace_details get_span_details get_replay_details get_sentry_resource Agent and AI observability search_agent_conversations get_agent_conversation_details search_ai_conversations # deprecated alias get_ai_conversation_details # deprecated alias analyze_issue_with_seer New integrations should use the agent names rather than deprecated ai aliases. Releases and profiling find_releases get_release_details get_profile get_profile_details Monitors and alerts Cron monitors: find_monitors get_monitor_details HTTP uptime monitors: find_uptime_monitors get_uptime_monitor_details create_uptime_monitor update_uptime_monitor delete_uptime_monitor Alert rules: find_alert_rules get_alert_rule DSNs and client keys find_dsns create_dsn update_dsn DSN values are sensitive configuration data and should not be copied into ordinary logs or public output. Dashboards and snapshots find_dashboards get_dashboard_details get_latest_base_snapshot get_snapshot get_snapshot_image get_sentry_resource Documentation search_docs get_doc Onboarding progress onboarding_status_update This should only be called when a Sentry onboarding workflow provides a valid run token. DIRECT TOOL SYNTAX find_organizations { "query": null } Search by organization name or slug: { "query": "tharealjv" } Returns up to 25 organizations. find_projects { "organizationSlug": "tharealjv", "regionUrl": "https://us.sentry.io", "query": null } Search projects: { "organizationSlug": "tharealjv", "regionUrl": "https://us.sentry.io", "query": "backend" } Returns up to 25 projects and may report hasMore. search_issues Grouped issue search: { "organizationSlug": "tharealjv", "query": "is:unresolved", "sort": "date", "projectSlugOrId": null, "regionUrl": "https://us.sentry.io", "limit": 100, "period": "30d", "includeExplanation": false } Valid sort values: date freq new user recommended Valid period values: 24h 7d 14d 30d 90d Common query filters: is:unresolved is:resolved is:ignored is:regressed is:new level:error level:warning environment:production is:unassigned assigned:me firstSeen:-24h lastSeen:-7d userCount:>100 issue.priority:high issue.category:feedback Use search_issues for grouped issue lists, not aggregations. search_events Event, log, span, metric, profile, and replay search: { "organizationSlug": "tharealjv", "dataset": "errors", "query": "environment:production", "fields": ["issue", "count()"], "sort": "-count()", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": "https://us.sentry.io", "limit": 100, "includeExplanation": false } Supported datasets: errors logs spans metrics profiles replays Error count: { "organizationSlug": "tharealjv", "dataset": "errors", "query": "how many errors today", "fields": ["count()"], "sort": "-count()", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": "https://us.sentry.io", "limit": 10, "includeExplanation": false } Logs: { "organizationSlug": "tharealjv", "dataset": "logs", "query": "level:error", "fields": null, "sort": "-timestamp", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": "https://us.sentry.io", "limit": 100, "includeExplanation": false } Database spans: { "organizationSlug": "tharealjv", "dataset": "spans", "query": "span.op:db", "fields": ["span.op", "span.duration", "count()"], "sort": "-span.duration", "projectSlug": null, "environment": "production", "period": "24h", "regionUrl": "https://us.sentry.io", "limit": 100, "includeExplanation": false } Replays containing errors: { "organizationSlug": "tharealjv", "dataset": "replays", "query": "count_errors:>0", "fields": null, "sort": "-count_errors", "projectSlug": null, "environment": "production", "period": "7d", "regionUrl": "https://us.sentry.io", "limit": 100, "includeExplanation": false } Replay aggregations such as count(), avg(), or sum() are not supported. get_sentry_resource URL form: { "url": "https://tharealjv.sentry.io/issues/PROJECT-123/" } Identifier form: { "resourceType": "issue", "organizationSlug": "tharealjv", "resourceId": "PROJECT-123" } Valid resourceType values: issue event trace ai_conversation replay monitor snapshot The resource ID depends on the resource type: issue issue short ID event event ID trace trace ID ai_conversation conversation ID replay replay ID monitor monitor slug snapshot snapshot artifact ID update_issue Resolve: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "status": "resolved" } Reopen: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "status": "unresolved" } Assign: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "assignedTo": "team:backend" } Unassign: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "assignedTo": null } Ignore permanently: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "status": "ignored", "ignoreMode": "forever", "reason": "Expected noise" } Ignore for a duration: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "status": "ignored", "ignoreMode": "forDuration", "ignoreDurationMinutes": 60 } Ignore until an occurrence threshold: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "status": "ignored", "ignoreMode": "untilOccurrenceCount", "ignoreCount": 100, "ignoreWindowMinutes": 60 } Valid statuses: resolved resolvedInNextRelease unresolved ignored analyze_issue_with_seer Using an issue ID: { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "instruction": "Identify the root cause and propose the smallest safe fix." } Using a URL: { "issueUrl": "https://tharealjv.sentry.io/issues/PROJECT-123/" } Seer is not intended for metric alert issues. search_sentry_tools { "query": "list releases and release health", "limit": 20 } Examples: { "query": "issue activity and comments", "limit": 20 } { "query": "OAuth SSO external authentication", "limit": 20 } { "query": "Sentry logging and sensitive data scrubbing", "limit": 20 } The result contains the exact tool name and inputSchema required by execute_sentry_tool. execute_sentry_tool { "name": "whoami", "arguments": {} } { "name": "find_teams", "arguments": { "organizationSlug": "tharealjv", "regionUrl": "https://us.sentry.io", "query": null } } Do not call an unverified catalog name or use arguments copied from a different tool. CATALOG TOOL SYNTAX The following catalog tools were observed in the current session. Optional arguments should be confirmed with search_sentry_tools immediately before use. Identity { "name": "whoami", "arguments": {} } { "name": "get_sentry_mcp_info", "arguments": {} } Teams and projects { "name": "find_teams", "arguments": { "organizationSlug": "tharealjv", "regionUrl": "https://us.sentry.io", "query": null } } { "name": "create_team", "arguments": { "organizationSlug": "tharealjv", "name": "platform" } } { "name": "create_project", "arguments": { "organizationSlug": "tharealjv", "teamSlug": "platform", "name": "example-service", "slug": "example-service", "platform": "python" } } { "name": "update_project", "arguments": { "organizationSlug": "tharealjv", "projectSlug": "example-service", "platform": "python" } } { "name": "add_team_to_project", "arguments": { "organizationSlug": "tharealjv", "projectSlug": "example-service", "teamSlug": "platform" } } { "name": "remove_team_from_project", "arguments": { "organizationSlug": "tharealjv", "projectSlug": "example-service", "teamSlug": "platform" } } remove_team_from_project is destructive and will not remove the last team assigned to a project. Issue inspection { "name": "get_issue_details", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123" } } { "name": "get_issue_activity", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "includeComments": true, "limit": 100 } } { "name": "get_issue_breadcrumbs", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "eventId": "latest" } } { "name": "get_issue_user_reports", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "cursor": null, "limit": 100 } } { "name": "get_issue_tag_values", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "tagKey": "environment" } } { "name": "search_issue_events", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "query": "environment:production", "sort": "-timestamp", "period": "7d", "projectSlug": null, "limit": 100, "includeExplanation": false } } { "name": "get_event_stacktrace", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "eventId": "latest" } } { "name": "get_event_attachment", "arguments": { "organizationSlug": "tharealjv", "projectSlug": "example-service", "eventId": "0123456789abcdef0123456789abcdef", "attachmentId": null } } { "name": "add_issue_note", "arguments": { "organizationSlug": "tharealjv", "issueId": "PROJECT-123", "text": "Investigating this issue." } } Traces and replays { "name": "get_trace_details", "arguments": { "organizationSlug": "tharealjv", "traceId": "0123456789abcdef0123456789abcdef" } } { "name": "get_span_details", "arguments": { "organizationSlug": "tharealjv", "traceId": "0123456789abcdef0123456789abcdef", "spanId": "0123456789abcdef" } } { "name": "get_replay_details", "arguments": { "organizationSlug": "tharealjv", "replayId": "7e07485f-12f9-416b-8b14-26260799b SENTRY-MCP-AUTH(1) NAME sentry-mcp-auth — Authentication and backend-access boundaries for the Sentry MCP environment. CURRENT SERVER STATUS A live catalog check was performed. { "name": "get_sentry_mcp_info", "arguments": {} } Current result: { "version": "0.39.0" } The active MCP session does not expose a general login, SSH, shell, token-management, or backend-administration tool. REMOTE AUTHENTICATION Important distinction There are two separate concepts: Authenticating the MCP connection to Sentry Logging into a Sentry backend or operating-system host The first may be handled by the MCP host or client outside the tool interface. The second is not available in this environment. Available authentication model The MCP client is expected to establish authorization before these tools are called. Once connected, the tools operate using the authenticated Sentry session. The generic workflow is: MCP client configuration -> Sentry authorization flow, if required -> authenticated MCP session -> get_sentry_mcp_info -> find_organizations -> Sentry operations The exact OAuth, browser, token, or client-configuration steps are host-specific and are not exposed as executable Sentry MCP tools here. Verification After the MCP client reports that the connection is configured, verify it using read-only calls: { "name": "get_sentry_mcp_info", "arguments": {} } Then: { "name": "whoami", "arguments": {} } through: execute_sentry_tool The whoami tool must be discovered or confirmed through search_sentry_tools before execution if it is not directly exposed by the current client. Finally, verify account access: { "query": null } with find_organizations. Not available The following operations are not exposed: login logout refresh_token get_access_token rotate_token ssh sudo exec_backend_command open_database_session connect_to_sentry_internal_backend These must not be simulated through execute_sentry_tool. A Sentry MCP connection does not provide: Operating-system access Sentry service-shell access Direct database access Credential extraction Arbitrary HTTP requests SSH or remote terminal access Permission escalation Access to an organization merely because a tool is discoverable Authentication failure interpretation If find_organizations returns no organizations, possible explanations include: The MCP session is not authenticated The authenticated account has no accessible organizations The organization is outside the current connection or region scope The account lacks the required permission The tool request used an incorrect organization slug An empty organization result is not evidence that a remote login should be attempted. CATALOG AND VERSION HANDLING There is no verified command that exports a permanently exhaustive catalog. Catalog discovery is query-based. Use: { "query": "description of the required Sentry operation", "limit": 20 } with search_sentry_tools. Then execute only the exact returned name and schema: { "name": "exact_name_returned_by_search", "arguments": { "arguments": "matching the returned schema" } } with execute_sentry_tool. Do not infer that a tool exists merely because: It appeared in an earlier chat It appeared in a historical manpage It exists in Sentry’s public API It was mentioned in BBP notation It has a plausible name If a tool is not directly exposed or returned by current catalog discovery: UNAVAILABLE: no matching Sentry MCP tool was exposed or discovered. Tool groups observed in the current catalog The current catalog searches exposed tools in these groups: Identity: whoami get_sentry_mcp_info Issue investigation: get_issue_details get_issue_activity get_issue_breadcrumbs get_issue_user_reports get_issue_tag_values search_issue_events get_event_attachment add_issue_note Agent observability: search_agent_conversations get_agent_conversation_details Traces and performance: get_trace_details get_span_details get_profile get_profile_details Releases: find_releases get_release_details Monitors and alerts: find_monitors get_monitor_details find_uptime_monitors get_uptime_monitor_details create_uptime_monitor update_uptime_monitor delete_uptime_monitor find_alert_rules get_alert_rule Projects, teams, and access: find_teams create_team create_project update_project add_team_to_project remove_team_from_project DSNs: find_dsns create_dsn update_dsn Dashboards and snapshots: find_dashboards get_dashboard_details get_latest_base_snapshot get_snapshot get_snapshot_image Documentation: search_docs get_doc This is a catalog observation, not a guarantee that every listed tool will succeed for the current account. Naming updates The current descriptions use Agent Conversations as the preferred terminology: search_agent_conversations get_agent_conversation_details Older AI-conversation aliases may exist for compatibility, but new integrations should prefer the agent-conversation names. SENTRY-MCP-ERRORS(1) NAME sentry-mcp-errors — Error classification, recovery, and result-integrity rules. GENERAL RULE A tool call is successful only when the runtime returns a successful result. Do not treat any of the following as success: A valid-looking JSON request A catalog description A historical result An expected response format A request that was sent but timed out A result inferred from a related tool ERROR CLASSES 1. Invocation or schema errors These occur before Sentry data is successfully queried. Typical causes: Missing required argument Wrong argument name Invalid enum value Invalid URI Invalid issue or event ID format Invalid relative-period format Limit outside the allowed range Mutually incompatible arguments Example of a schema mistake: { "name": "get_span_details", "arguments": { "organization": "my-org", "trace": "..." } } If the discovered schema requires organizationSlug and traceId, this request is invalid. Correct it using the exact returned schema rather than guessing. 2. Authentication or authorization errors These indicate that the MCP session or Sentry account could not perform the requested operation. Possible causes: Unauthenticated MCP session Insufficient organization permissions Insufficient project permissions Project is outside the current access scope Operation is not permitted for the account Do not respond by attempting token extraction, SSH, or backend login. Re-authentication must happen through the MCP host or Sentry account connection. 3. Resource-not-found errors A resource may not exist, may be inaccessible, or may be incorrectly identified. Examples: Unknown organization slug Unknown project slug Unknown issue ID Unknown event ID Unknown trace ID Unknown monitor slug Unknown release version Recommended recovery: find_organizations -> find_projects -> search_issues or find_releases -> detail lookup Do not replace an unverified ID with a fabricated one. 4. Empty successful results An empty result is different from an error. Examples: { "projects": [], "hasMore": false } This means the tool returned successfully with no matching projects. It does not prove that the account is broken or that backend login is needed. 5. Rate limits and transient service failures If Sentry returns a rate-limit or service-availability error: Preserve the original error information Reduce the query scope Narrow the time period Reduce the result limit Avoid immediately repeating mutations Retry only when appropriate Do not claim that a request succeeded after a timeout or transport failure. 6. Catalog/schema drift A catalog tool may change between MCP server versions. If execution fails because an argument is rejected: Run search_sentry_tools again. Search for the exact operation. Compare the returned inputSchema. Reissue the request using the current schema. Example: { "query": "get details for a Sentry uptime monitor", "limit": 10 } Then use the exact returned tool name and argument names. 7. Pagination and result limits A result may be incomplete because of a tool limit. When a response contains hasMore, nextCursor, or an equivalent continuation value: Preserve the cursor Reuse it with the same query scope Do not combine it with a different organization, project, or filter Continue until there is no continuation value, where supported If a tool has a hard maximum, report that limitation rather than claiming that all data was returned. 8. Mutation ambiguity For mutations such as: update_issue add_issue_note create_project create_team update_project update_dsn create_uptime_monitor update_uptime_monitor delete_uptime_monitor a timeout does not establish whether the mutation occurred. The safe procedure is: mutation -> wait for a confirmed result -> if ambiguous, read the relevant resource -> only retry after checking current state Do not blindly repeat destructive or externally visible operations. 9. Seer analysis state analyze_issue_with_seer may: Return cached analysis immediately Start a new analysis Return a pending or incomplete state Fail because the issue category is unsupported Seer should only be called when the user explicitly requests analysis or debugging assistance. It should not be treated as an automatic follow-up to every issue lookup. ERROR REPORTING FORMAT When a Sentry MCP call fails, report it using this structure: STATUS: ERROR Tool: Phase: Request scope: Observed error: Recovery: Example: STATUS: ERROR Tool: find_projects Phase: authorization or lookup Request scope: organization tharealjv Observed error: Recovery: verify the organization slug and MCP account authorization. If the runtime provides no error details, say so: Observed error: The tool call failed without a detailed error payload. Do not invent HTTP status codes, request IDs, stack traces, or backend causes. SENSITIVE DATA RULES Do not expose or repeat secrets unnecessarily, including: Sentry auth tokens OAuth refresh tokens DSN secret components Private attachment contents Authorization headers Signed download URLs Private user data find_dsns may return DSN information. Use it only when needed, and redact sensitive values in normal output. PRACTICAL CONNECTION TEST The supported read-only connection test is: 1. get_sentry_mcp_info 2. whoami 3. find_organizations 4. find_projects 5. search_issues Conceptually: { "name": "get_sentry_mcp_info", "arguments": {} } { "name": "whoami", "arguments": {} } { "query": null } { "organizationSlug": "", "regionUrl": "", "query": null } { "organizationSlug": "", "query": "is:unresolved", "sort": "date", "projectSlugOrId": null, "regionUrl": "", "limit": 10, "period": "30d", "includeExplanation": false } This tests the MCP connection and Sentry read access without changing Sentry state. SUMMARY The supported method is: Authenticate through the MCP host -> verify with get_sentry_mcp_info and whoami -> discover account data through Sentry tools -> rediscover catalog schemas when necessary -> handle errors from the actual runtime There is no supported method in this environment for remotely logging into a Sentry system backend, opening an SSH session, accessing a database, or bypassing the MCP authorization boundary. 1. Sentry Cloud: remote MCP over OAuth Use a client that supports: OAuth Streamable HTTP SSE fallback The documented server endpoint is: https://mcp.sentry.dev/mcp The supported flow is: Configure the MCP client -> connect to https://mcp.sentry.dev/mcp -> complete Sentry OAuth in the browser -> grant requested permissions -> use Sentry MCP tools The documentation search specifically listed setup paths for: Claude Code Cursor Claude Desktop Claude.ai VS Code and GitHub Copilot Codex OpenCode Other MCP clients supporting OAuth and Streamable HTTP Examples returned by the documentation search: Claude Code claude mcp add --transport http sentry https://mcp.sentry.dev/mcp Then launch Claude Code: claude The documented behavior is that OAuth authentication is then requested. Cursor Add this to the MCP configuration: { "mcpServers": { "sentry": { "url": "https://mcp.sentry.dev/mcp" } } } Claude Desktop { "mcpServers": { "Sentry": { "url": "https://mcp.sentry.dev/mcp" } } } Then restart Claude Desktop. Codex codex mcp add sentry --url https://mcp.sentry.dev/mcp OpenCode The documentation search returned: { "$schema": "https://opencode.ai/config.json", "mcp": { "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp", "oauth": {} } } } Then: opencode mcp auth sentry Browser testing The documentation search also identified: https://mcp.sentry.dev as a web interface for authenticating and testing the MCP server in a browser. 2. Optional Cloud scoping The live documentation search returned these scoped endpoint forms: https://mcp.sentry.dev/mcp https://mcp.sentry.dev/mcp/{organizationSlug} https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug} The project-scoped form was described as recommended for snapshot workflows: https://mcp.sentry.dev/mcp/tharealjv/your-project I have not verified that scoped endpoint with a live connection in this session; it is documentation-derived. 3. Self-hosted Sentry: local stdio transport The documentation search states that self-hosted Sentry requires the local stdio transport rather than the hosted remote OAuth endpoint. The documented server command is: npx @sentry/mcp-server A client configuration example returned by the documentation is: { "mcpServers": { "sentry": { "command": "npx", "args": [ "@sentry/mcp-server@latest" ] } } } The process communicates with the MCP client over standard input and output. For sentry.io users, the search result says the local server uses device-code authentication: npx @sentry/mcp-server@latest auth login It also listed: npx @sentry/mcp-server@latest auth status npx @sentry/mcp-server@latest auth logout The same result says the local authentication state is cached at: ~/.sentry/mcp.json I have not inspected or verified that file in this environment. 4. Self-hosted token configuration The Sentry documentation search returned these environment variables for self-hosted setup: SENTRY_ACCESS_TOKEN=your-token SENTRY_HOST=your-sentry-host It also listed these required token scopes: org:read project:read project:write team:read team:write event:write Because these are credentials, the token should be configured in the client or process environment—not pasted into this chat or sent through a Sentry tool call. 5. Non-interactive environments For CI, piped stdio, or another environment without a browser, the documentation search recommends authenticating before starting the MCP process: npx @sentry/mcp-server@latest auth login Then configure the client to launch: npx @sentry/mcp-server@latest 6. What is supported in this current session This current session is already connected to the hosted Sentry MCP service. The live server-information call returned: { "version": "0.39.0" } Therefore, the supported operation here is to use the existing authenticated connection and call the exposed Sentry tools. There is no login, OAuth-start, token-entry, SSH, or backend-shell tool available inside this chat session. Documentation integrity note I searched the live Sentry documentation tool before answering. The search returned the setup details above. However, when I attempted to fetch the two returned documentation paths directly, the documentation tool returned “Page Not Found” for those paths. Consequently: The transport and setup details above are reported as snippets returned by the live documentation search. I did not independently execute the client commands. I cannot guarantee that every command or path remains current. The authoritative verification for an actual deployment is the current Sentry MCP setup page and the behavior of the selected MCP client. The supported distinction is therefore: Sentry Cloud: Remote MCP endpoint OAuth Streamable HTTP with SSE fallback Self-hosted Sentry: Local stdio MCP server Sentry host/token configuration Local process authentication