Repository navigation
Open
Description
This issue tracks the work that follows the sentry-cli + sentry-mcp merge into getsentry/toolkit. The goal is a CLI-first install path. The CLI is the only product surface, and the MCP exposes the CLI's commands.
The plan lives in #1669, as two OpenSpec changes:
cli-first-mcp: CLI parity with the MCP catalog; MCP tools that find and run CLI commands through the CLI SDK (search_sentry, plusexecute_sentry_readandexecute_sentry_write, split so hosts can allowlist reads, execute_sentry_tool breaks host allowlists and approval UX #1254); discovery from CLI introspection; published API routes throughsentry api/sentry schema; completion for agents; the CLI SDK on the hosted MCP; and an eval-gated catalog removal.unify-sentry-api-layer: one Sentry API client in@sentry/api, used by the CLI and by both MCP hosts.
Each task in the two tasks.md files links its issue. Merge tracker: getsentry/cli#1248
Done
- Complete the repository merge: Validate merged monorepo in sentry-mcp, then rename to getsentry/toolkit #1156 (MCP-1002)
- Expose a
sentry mcpshortcut that launches the stdio MCP server (feat(mcp-server): Ship @sentry/mcp-server as a slim bundle that shares CLI auth #1731,sentry mcp <org>/[<project>]in feat(mcp): Accept an <org>/<project> target for sentry mcp #1800) - Share the CLI's authentication with the stdio MCP server (feat(mcp-server): Ship @sentry/mcp-server as a slim bundle that shares CLI auth #1731, security fixes in fix(mcp): Keep the env token's startup host when serving #1801, multi-account routing in feat(mcp-server): Route stdio tool calls to the stored account that knows the org #1802)
1. @sentry/api, then release
- Move the shared API client into @sentry/api #1875 Move the shared API client into
@sentry/api - Switch toolkit to the @sentry/api client and delete the toolkit-core copy #1876 Switch toolkit to it and delete the
toolkit-corecopy - Release sentry and @sentry/mcp-server after the @sentry/api switch #1877 Release
sentryand@sentry/mcp-server(first sincecli@0.47.0; validates Craft 3.8, meta(cli): Use Craft's versioning.files instead of the bump script #1825) - Move the CLI's endpoint wrappers onto the @sentry/api client #1878 Move the CLI's endpoint wrappers onto the
@sentry/apiclient - Get the endpoints toolkit calls by raw path into @sentry/api #1879 Get the endpoints called by raw path into
@sentry/api
2. Command metadata (can start now)
- Add a permission class and an MCP exposure to every CLI command #1880 Permission class and MCP exposure on every command
- Generate command-catalog.json from the CLI route tree #1881 Generate
command-catalog.json
3. CLI parity with the MCP catalog (can start now; umbrella #1382)
- Add project edit, team create, and project team add/remove commands #1883 Projects and teams
- Add dsn create and dsn edit commands #1884 DSNs
- Add issue assign, issue comment, and issue activity commands #1885 Issue assign, comment, activity
- Add event attachment and dropped-events commands #1886 Event attachments and dropped events (feat(cli): add event analytics command for dropped events #1812)
- Add monitor view, cron create, env delete, and uptime monitor commands #1887 Monitors: view, cron create, env delete, uptime (feat(uptime): Create uptime monitors through the detectors endpoint #1837, feat(mcp): Add create_monitor tool for cron monitors #1846, feat(mcp): Add create_monitor tool for cron monitors #1861, No way to create a cron monitor, so agents send users to the UI #1845)
- Add profile command to surface profiling data #1381 Profiles
- Check snapshots, alert options, and the metrics dataset against the MCP tools #1888 Snapshots, alert options, metrics dataset
- Add sentry open <url> to resolve any Sentry URL #1889
sentry open <url>
4. The command surface on stdio
- Serve each exposed CLI command as its own MCP tool from sentry mcp #1890
search_sentryand the execute tools onsentry mcp - Add the all-tools mode: every exposed command as its own MCP tool #1891 All-tools mode
- Return markdown from MCP command calls #1892 Markdown output
- Expose sentry api and sentry schema through the MCP #1893
sentry apiandsentry schemathrough the MCP - Build sentry schema's index from the @sentry/api operation catalog #1894
sentry schemaindex from the@sentry/apioperation catalog - Use shell completers to suggest valid values to agents #1895 Completion for agents
- Document query syntax in search_sentry and drop the embedded search agents #1896 Query syntax in
search_sentry; drop the embedded search agents - Bundle the exposed commands into @sentry/mcp-server #1909 Bundle the exposed commands into
@sentry/mcp-server(the package stays)
5. Hosted MCP on the CLI SDK
One SDK instance per request, with the grant's token and persistence off.
- Spike: run the CLI SDK on workerd #1882 Spike: the CLI SDK on workerd (can start now)
- Add a no-persistence mode to the CLI SDK #1897 No-persistence mode
- Isolate module-level state between concurrent SDK invocations #1898 Isolate module-level state between concurrent invocations (builds on fix(cli): complete SDK invocation isolation #1427, closes bug(sdk): isolate cached auth identity between SDK invocations #1391)
- Run the command surface on the hosted MCP through the CLI SDK #1899 Serve the command surface on hosted
- Map hosted OAuth consent to command permission classes #1907 Map OAuth consent to permission classes
- Check the CLI's OAuth scopes cover every exposed command #1908 CLI OAuth scopes cover every exposed command
6. Eval gate and cutover
- Eval the command surface against the catalog #1910 Eval the command surface against the catalog (also decides the default mode and whether Code Mode, feat(mcp): add HTTP Code Mode with explicit API permissions #1670, is needed)
- Make the command surface the default and delete the MCP catalog #1911 Make the command surface the default and delete the catalog
Not yet filed
- Update the agent plugin to use the CLI and the stdio MCP
- Make agent installation possible through the CLI, so installation moves CLI-first and the agent comes with it
- Keep the agent plugin working well with the hosted MCP for HTTP-only clients such as claude.ai (depends on section 5)
- Audit the agent skills against the command surface (part of Make the command surface the default and delete the MCP catalog #1911)
Related
- Earlier proposal for a
sentry mcpsubcommand with shared credentials against the legacy CLI: Addsentry mcpsubcommand with shared credentials sentry-cli#3361 (CLI-347)
via @BYK.
--
Metadata
Metadata
Assignees
Labels
No labels
Activity
linear-code commentedon Oct 1, 2026
MCP-1040
fix(npm): Route bare "zlib" imports through the ESM namespace shim (g…
fix(npm): Route bare "zlib" imports through the ESM namespace shim (g…
feat(mcp): Accept an <org>/<project> target for sentry mcp (#1800)
sentry-junior commentedon Nov 4, 2026
Plan change (per BYK): no custom search/execute tools. Harnesses already search large tool lists natively, so the CLI-first MCP exposes each
exposedcommand as its own tool.sentry mcp --commands(sentry_issue_listetc.), annotated read/destructive from the derived permission class,--read-onlydrops write tools.examplesinstead of asearch_sentrycomplete mode.search.tsand the execute meta-tools, keep the execution path (args, constraints, validation, capped results, path-flag refusal).@sentry/apimove (sentry-api-schema#122 → Switch toolkit to the @sentry/api client and delete the toolkit-core copy #1876 → release).