← Blog

MCP Approval Workflows: Human-in-the-Loop for Tool Calls

15 Research Lab
mcp-safetyagent-safetycomplianceguardrails

Not every tool call should execute automatically. Some actions need a human to review and approve before they proceed. Approval workflows add this checkpoint to the MCP tool-call pipeline.

When to Require Approval

Build approval triggers based on risk classification:

Always require approval: Data deletion, financial transactions above a threshold, external API calls to new endpoints, privilege changes, sending communications on behalf of the user.

Conditionally require approval: Tool calls with unusual parameters, actions that exceed cumulative session budgets, first-time use of a tool in a new context, actions flagged by content safety scanning.

Auto-approve: Read-only operations, queries against known safe data sources, actions within pre-approved parameter ranges.

This classification should be codified in policy, not left to the model's judgment. A policy engine evaluates each tool call against the rules and determines whether approval is needed.

How Approval Workflows Work

  1. The agent decides to call a tool.
  2. The policy engine evaluates the call against approval rules.
  3. If approval is required, execution pauses.
  4. The request is routed to a reviewer (human or automated approval system).
  5. The reviewer sees the tool name, parameters, context, and risk assessment.
  6. The reviewer approves, denies, or modifies the request.
  7. If approved, execution resumes. If denied, the agent is informed and must find an alternative.

The key requirement: the approval step is synchronous and blocking. The tool call cannot execute until approved. There is no "optimistic execution" where the action happens and approval is checked later.

Implementation Patterns

Webhook-based: When approval is needed, the system sends a webhook to your notification channel (Slack, Teams, email, custom dashboard). The reviewer responds through the notification interface.

Dashboard-based: A web interface shows pending approval requests with full context. Reviewers process queues of requests.

Escalation chains: If the primary reviewer does not respond within a timeout, escalate to a secondary reviewer. If no one responds, default to deny (fail closed).

Audit Trail

Every approval decision must be logged: who reviewed, what they decided, when, and any notes. These records join the tool-call audit trail, creating a complete chain from agent intent to human decision to actual execution.

Authensor generates hash-chained receipts for every action, including approval decisions. This provides tamper-evident records for compliance audits.

Practical Considerations

Latency. Human approval adds minutes to hours of latency. Design your agent to handle paused execution gracefully. The agent should not timeout or lose context while waiting for approval.

Reviewer fatigue. Too many approval requests lead to rubber-stamping. Tune your approval rules to minimize noise. Auto-approve what is genuinely low-risk so reviewers focus on what matters.

Mobile-friendly. Reviewers need to approve requests from wherever they are. The approval interface should work on mobile devices with a simple approve/deny action.