Skip to content

fix(mcp): tools outside the baseline families ask for their own scope - #2564

Merged
Makisuo merged 3 commits into
mainfrom
sec/mcp-tool-scopes
Nov 13, 2026
Merged

Makisuo merged 3 commits into
mainfrom
sec/mcp-tool-scopes

test(mcp): pin the scope every one of the 24 tools asks for

a98700f
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 13, 2026 in 1m 35s

Confidence 8/10 · No issues found

🟢 Confidence 8/10 · likely safe to merge. Refusal path is pinned for all 24 tools, but nothing ties the demanded families to the grantable ones in Settings, where this branch already drifted once.
no findings · tests partial −1 · risk high −1

The change gives 24 MCP tools their own scope families, lets scopeFamily list several, and exposes six families in Settings. The McpQueryError issues in registry.ts are query failures this diff does not touch.

  • 24 MCP tools now declare a scope family outside the baseline set
  • scopeFamily accepts a list; get_status_page requires both status-page families
  • Six new families added to the key dialog and scope reference

Before merge

  • Manual · Restricted keys calling these 24 tools today get insufficient_scope after the deploy until the new scopes are added to them.

Production impact

Open errors in the changed files (2)
Issue Service Occurrences File
@maple/mcp/errors/McpQueryError (7 issues) maple-ai 33 apps/ai/src/mcp/tools/registry.ts
@maple/mcp/errors/McpQueryError (3 issues) maple-chat 15 apps/ai/src/mcp/tools/registry.ts

After this merges, Maple checks whether they stop.

Production traffic of the changed files (last 7 days)
File Calls/day Busiest operations
apps/ai/src/mcp/tools/uptime-monitors.ts 283 McpTool.listUptimeMonitors 283/day, 0.0% err
What was checked
  • Every readOnly hint among the 24 tools matches the test's read/write expectation (grep over the nine tool files)
  • scopeAllows makes write imply read (packages/domain/src/http/v2/auth.ts:174), so BASELINE covers baseline families both ways
  • On-call, escalation and maintenance tools sit under the baseline alerts family (/v2/alerts/oncall_schedules), so 24 is the full set outside it

a98700f · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.