You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Throughput is the primary Cosmos DB cost/perf lever, yet the Shell can't view or change it. Autoscale (dynamic scaling) and RU/s changes are exactly the kind of routine, RU-cost-sensitive operation agents and CI should manage safely — and it pairs with the RU guardrails (item G2).
Proposed behavior
throughput [--db --con] shows mode (manual/autoscale), current RU/s and autoscale max.
throughput set --ru N / --autoscale-max N / --mode manual|autoscale scales or switches modes at database and container scope, via ARM.
Surface RU/s and estimated cost delta before applying.
Acceptance criteria
View + set RU/s and autoscale max.
Switch manual↔autoscale.
Database and container scope.
Structured output with RU/s + cost delta.
Safe over MCP behind confirmation (M3) / dry-run (G1).
Docs + tests.
Filed from the Agentic & Automation Roadmap (docs/agentic-roadmap.md), item C1, Wave 2. Priority P1.
Cross-checked the MCP-safety criterion against how this shell actually does MCP safety.
How safety works here: it's annotation-driven client-side approval, not server-side prompts. McpAnnotationAttribute exposes ReadOnly / Destructive / Idempotent / OpenWorld, mapped to MCP hints in ToolOperations.cs, and ServerInstructions.md + docs/mcp.md instruct clients to require manual approval for Destructive tools (rm, rmdb, rmcon, delete). Server-side confirmation isn't possible over MCP — the interactive prompt in ThroughputCommand.ConfirmWrite is deliberately skipped when McpPort is set, because there's no console to prompt on.
Done ✅
throughput is exposed as an MCP tool with ReadOnly = false.
Writes are non-interactive-safe (no blocking prompt under MCP).
Gaps ⚠️
The tool is ReadOnly = false but not annotated Destructive and carries no idempotency hint, so clients treat it like an ordinary mutating tool — not one that needs the "stop and ask" treatment deletes get. A throughput change directly moves the bill (e.g. autoscale 100k RU/s), so it should surface for approval.
docs/mcp.md and ServerInstructions.md have no throughput coverage — clients aren't told to confirm RU/cost changes.
Recommendation: reframe this criterion as an annotation + docs fix rather than server-side confirmation (M3) / dry-run (G1), which don't fit this architecture. Concretely: annotate the write path conservatively (billing-impact / destructive-style hint — noting show is read-only while set/manual/autoscale are writes but share one tool), and add throughput guidance to docs/mcp.md + ServerInstructions.md. That achieves "safe over MCP" consistently with the rest of the shell.
Activity
mkrueger commentedon Jul 7, 2026
Cross-checked the MCP-safety criterion against how this shell actually does MCP safety.
How safety works here: it's annotation-driven client-side approval, not server-side prompts.
McpAnnotationAttributeexposesReadOnly/Destructive/Idempotent/OpenWorld, mapped to MCP hints inToolOperations.cs, andServerInstructions.md+docs/mcp.mdinstruct clients to require manual approval forDestructivetools (rm,rmdb,rmcon,delete). Server-side confirmation isn't possible over MCP — the interactive prompt inThroughputCommand.ConfirmWriteis deliberately skipped whenMcpPortis set, because there's no console to prompt on.Done ✅
throughputis exposed as an MCP tool withReadOnly = false.Gaps⚠️
ReadOnly = falsebut not annotatedDestructiveand carries no idempotency hint, so clients treat it like an ordinary mutating tool — not one that needs the "stop and ask" treatment deletes get. A throughput change directly moves the bill (e.g. autoscale 100k RU/s), so it should surface for approval.docs/mcp.mdandServerInstructions.mdhave no throughput coverage — clients aren't told to confirm RU/cost changes.Recommendation: reframe this criterion as an annotation + docs fix rather than server-side confirmation (M3) / dry-run (G1), which don't fit this architecture. Concretely: annotate the write path conservatively (billing-impact / destructive-style hint — noting
showis read-only whileset/manual/autoscaleare writes but share one tool), and add throughput guidance todocs/mcp.md+ServerInstructions.md. That achieves "safe over MCP" consistently with the rest of the shell.Add --dry-run preview to throughput write subcommands (#166)
mkrueger commentedon Jul 9, 2026
#166 merged.
Add --dry-run preview to throughput write subcommands (Azure#164)