Skip to content

OAuth token minted for Claude.ai sessions has empty scope set — blocks all Stackbilt MCP tool calls #30

@stackbilt-admin

Description

@stackbilt-admin

Bug

Claude.ai MCP sessions authenticated through stackbilt-mcp-gateway receive tokens with no scopes assigned. Every Stackbilt MCP tool call fails with an error of the shape:

MCP error -32600: Tool "<tool_name>" requires one of these scopes: read, generate. Your token has: (none).

Scope of blast

Confirmed blocked during a 2026-04-11 session attempting to dogfood the scaffold engine on new Stackbilt infrastructure work:

  • mcp__claude_ai_Stackbilt__scaffold_create → blocked (requires generate)
  • mcp__claude_ai_Stackbilt__scaffold_status → blocked (requires read or generate)
  • mcp__claude_ai_Stackbilt__image_list_models → blocked (requires read or generate)

The last one is the smoking gun — image_list_models is a read-only model catalog. If it fails with (none) scopes, the issue is gateway-wide scope provisioning, not scaffold- or image-specific.

Expected behavior

Tokens minted by stackbilt-mcp-gateway for authorized Claude.ai sessions should carry at minimum the read and generate scopes so the downstream internal tool servers behind the gateway can serve the canonical MCP surface.

Likely root cause surface (not yet verified)

One of:

  1. OAuth token mint step in the gateway is not including the scope claim
  2. Scope claim is present but under the wrong JWT field name (scope vs scopes vs scp)
  3. Downstream tool servers are reading the claim from a different field than the gateway writes to
  4. Claude.ai's OAuth discovery flow is requesting () scopes instead of read generate

A 15-minute trace of the token as it moves from Claude.ai OAuth callback → gateway mint → tool server scope check would pinpoint it.

Operator impact

This is a hard block on every Stackbilt MCP tool from Claude Code sessions. It was discovered while attempting to dogfood scaffold_create on the new stackbilt-emdash worker scaffold (hosting substrate for the aegis#453 wiki pilot). Manual scaffolding is the fallback, but the whole point of dogfooding was to find gaps like this — so this issue is the payoff for that exercise.

Cross-links

  • Stackbilt-dev/aegis#453 — wiki pilot that was trying to use scaffold_create as its starting point
  • Stackbilt-dev/aegis#456 — wiki-as-Pro-platform-bonus roadmap (depends on scaffold tooling working end-to-end for downstream Pro-tier tenant provisioning)

Priority

Not a pilot-blocker (I can hand-scaffold), but a regression on the "our tools are the first to stress-test our own infrastructure" thesis. Should be fixed before the next dogfood attempt — which is probably the wiki-lint plugin scaffold in ~1 week.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions