-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
MCP's Tasks primitive (SEP-1686) enables long-running async operations. The 2026 MCP roadmap confirms retry semantics and expiry policies are coming next.
SatGate currently enforces budgets per-request. When Tasks land with retries, we need to track costs at the task level, not just the request level — otherwise retries silently drain budgets.
Problem
- Agent calls tool → task starts → costs N credits → task fails transiently
- Agent retries same task → costs another N credits
- Budget enforcement has no concept of "same logical operation"
- After K retries, agent burns K×N credits for something that should cost N
Proposed Solution
Phase 1: Task-ID Correlation
- Parse
task_idfrom MCP task responses - Group spend records by
task_idin the audit log - Expose task-level cost in the dashboard (not just per-request)
Phase 2: Retry Cost Policy
- New policy field:
retryCostMode: full | first-only | reducedfull— charge full cost per retry (default, backward-compatible)first-only— only charge the first attempt, retries are freereduced— charge a configurable fraction on retries
- Budget hold: reserve credits on first attempt, release on task completion/failure
Phase 3: Task Expiry Alignment
- When MCP finalizes expiry policies, align budget holds with task TTLs
- Auto-release held budget when task expires
- Configurable grace period for late completions
Context
- MCP 2026 roadmap: Enterprise Readiness is a top-4 priority
- Tasks retry semantics are in active development
- SatGate should be ready when the spec lands, not scrambling after
Labels
enhancement, mcp, budget-enforcement
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request