Key takeaways
- Classify actions by authority and consequence; model confidence is not permission to act.
- Place approval after deterministic policy checks and immediately before the exact side effect—not around an opaque plan or conversation.
- Show the reviewer the action, target, material data, policy result, provenance, consequence and safe alternative they are actually authorizing.
- Bind approval to immutable parameters, identity and an expiry so retries, edits and race conditions cannot reuse stale consent.
- Reject or redesign workflows when a reviewer cannot understand the action in time, verify its evidence or contain its consequence.
The decision: automatic, approved, draft-only or prohibited
Make the decision for one action class in one configured workflow. Record one mode: automatic execution behind deterministic controls; execution only after informed approval; draft or recommendation with no execution authority; or prohibited because neither automation nor review can keep the consequence inside the organization’s boundary. Do not assign one mode to an entire agent when its tools have different identities, data and effects.
This four-way rule is AccessAllGPT guidance. Approval is justified when a person can evaluate a material consequence better than the automated path and can intervene before it occurs. Approval is not a universal cure: some actions should remain impossible, while low-consequence reversible actions may be safer and more usable with policy checks, limits and rollback instead of repetitive confirmation.
What the sources establish—and where they stop
The MCP tools specification says there SHOULD always be a human in the loop who can deny tool invocations and recommends interfaces that reveal exposed tools, indicate invocation and present confirmation prompts. The same specification says the protocol does not mandate a particular user-interaction model. Its SHOULD language is advisory protocol guidance, not evidence that every invocation requires approval or that a confirmation interface is effective.
OpenAI currently advises enabling tool approvals for MCP operations in its Agent Builder guidance. OWASP includes human approval for high-risk actions among layered prompt-injection mitigations and says fool-proof prevention methods are unclear. These are vendor and security guidance statements, not measured guarantees. NIST AI 600-1 is a voluntary risk-management resource; it does not prescribe the approval matrix or decision rule in this guide.
Inventory authority before designing the interface
List every operation the system can propose or execute: read, search, export, send, publish, create, modify, delete, pay, deploy, change access, invoke code and call an external service. For each operation record the runtime identity, permitted resources, tenant, destination, data classes, financial or quota ceiling, reversibility, propagation, affected people and maximum time before the consequence becomes difficult to contain.
Treat reads as potentially consequential. A read can disclose private data to a model, external service, reviewer or log; a search can enumerate sensitive objects; a tool result can influence a later write. Separate permission to access data from permission to transmit, summarize or act on it. This authority map should be enforced in application and tool policy rather than inferred from a prompt.
Build a consequence matrix, not a confidence threshold
Classify consequence across confidentiality, integrity, availability, money, legal or contractual effect, external communication, customer impact, physical effect, reversibility and propagation. Add the time available to detect and recover. Define non-compensable cases—cross-tenant disclosure, credential exposure, prohibited destinations or irreversible access changes, for example—that cannot pass merely because other dimensions look low.
Do not route approval from the model’s self-reported confidence alone. Confidence may be unavailable, uncalibrated or unrelated to authorization and impact. Use deterministic facts such as operation, object, identity, amount, destination, policy result, data class and rollback window. A model score may help prioritize review only after its relationship to the local decision has been evaluated.
Put the gate at the transaction boundary
Let the system gather permitted context, calculate, draft and simulate inside a bounded environment. Run schema validation, object-level authorization, tenant checks, destination policy, data-loss controls and rate or spend limits before asking a person. Present approval only after the proposed transaction is complete enough to inspect and immediately before the side effect.
Do not approve an entire chat, plan or future sequence when the material parameters are still mutable. A reviewer who approves “handle this refund” has not necessarily approved the account, amount, currency, reason, notification and ledger mutation that will execute. Break chains into independently reviewable consequence boundaries, and require a new decision when a later step changes authority or exposure.
Make approval informed and discriminating
Show the exact operation and target; authenticated requester and affected tenant; material inputs and their provenance; data leaving the boundary; policy checks and exceptions; expected effect; reversibility and rollback; uncertainty that matters to the decision; and the safe result of rejection or timeout. Use domain language rather than tool names or raw JSON when that improves comprehension, while preserving an expandable technical record.
Provide approve, modify, reject and defer only when each path has defined semantics. Never use visual pressure, a preselected approval, misleading button hierarchy or a generic “continue?” label for consequential actions. Require a reason for exceptional or policy-overriding decisions, but avoid collecting free text that exposes unnecessary sensitive data. Accessibility and keyboard operation are part of control effectiveness, not polish.
Bind the human decision to what executes
Create an approval record containing the proposed operation, canonical parameters or their digest, resource identifiers, authenticated requester, acting service identity, policy version, relevant workflow and model versions, reviewer identity, decision, timestamp, expiry and one-time transaction identifier. At execution, verify that the record still matches the request and current authorization. Reject changed, expired, replayed or already-consumed approvals.
Handle time-of-check to time-of-use changes explicitly. If the object, price, permissions, destination, source evidence or policy changes after review, invalidate the decision and present the delta. Make retries idempotent so a delayed response cannot repeat a payment or message. The approval service must not share a bypass credential with the model-controlled tool path.
Treat prompt injection and approval as separate controls
Untrusted content can shape both the proposed action and the explanation shown to a reviewer. Keep retrieved text, tool output and model-generated rationale visibly distinct from trusted policy results and server-resolved object data. Derive identity, authorization, destination allowlists and consequence labels outside the model. Do not let untrusted text choose the approval policy or conceal fields from the review surface.
OWASP presents human approval as one layer among least privilege, segregation, monitoring and independent authorization; OpenAI similarly recommends combining approvals with structured data flow, guardrails and evaluation. Approval can catch some harmful proposals, but it does not sanitize content, secure credentials, enforce tenant boundaries or prove that a reviewer will detect deception. Those source recommendations are guidance, not independent measurements of efficacy.
Design for rejection, timeout and service failure
Define what happens when a reviewer rejects, requests modification, is unavailable or misses the decision window. High-consequence operations should fail closed and preserve a draft or case for later handling. Lower-consequence work may follow a predeclared deterministic fallback, but silence must not become consent. Route escalation by ownership and consequence rather than repeatedly notifying a broad group.
Test approval-service outage, queue delay, duplicate delivery, stale authorization, reviewer removal, partial tool failure, execution timeout and callback loss. Verify that the system cannot switch to an unapproved tool, broaden parameters or retry around the gate. Preserve a usable recovery route and reconcile ambiguous outcomes before another execution attempt.
Evaluate the control with production-shaped cases
Freeze cases spanning valid approvals, obvious rejections, subtle policy violations, benign anomalies, malicious or misleading source content, parameter changes, inaccessible interfaces, urgent decisions and high-volume periods. Include the complete path from proposal through policy and review to side effect or safe cancellation. Use seeded non-production data for destructive and disclosure tests.
Measure case-level reviewer decision against an independently established expected disposition; consequential false approvals; unnecessary rejections; modifications; time to decision; expiry; abandonment; escalation; downstream rollback; mismatch blocked at execution; and unauthorized actions prevented by deterministic controls. Report the case mix and counts. A fast approval rate is not a safety metric, and a small exercise does not establish a universal error rate.
Watch for automation bias and approval fatigue
Reviewers can defer to a confident-looking recommendation, miss repeated warnings or approve routinely to clear a queue. Monitor repeated rapid approvals, low inspection time for complex actions, high-volume bursts, override concentration, disagreement, later correction and reviewers who lack domain or tenant context. Investigate the workflow and interface rather than treating every error as individual negligence.
Reduce low-value gates by removing unnecessary authority, batching genuinely equivalent low-consequence decisions, improving deterministic policy or moving the workflow to draft-only mode. Do not reduce fatigue by silently widening automatic authority. If review demand exceeds trained capacity or the consequence window is shorter than informed review, the architecture has failed its operating constraint.
Set removal, escalation and redesign rules
Remove an approval gate only when local evidence shows the action is low consequence or reliably reversible, deterministic controls bound the remaining risk, failure and rollback evidence is adequate, and accountable owners accept the change. Version the decision and roll out gradually. A high historical approval rate alone may mean the gate is ceremonial, not that automatic execution is safe.
Escalate from automatic to approved or draft-only when authority, data sensitivity, destinations, failure cost or uncertainty increases. Redesign or prohibit the path when a person cannot inspect the evidence, distinguish trusted from untrusted data, decide before execution, verify the actual transaction or contain the result. Human presence should never be used to legitimize an otherwise unenforceable boundary.
Record the deploy decision and re-evaluation triggers
Ship automatic execution only when deterministic controls and rollback clear the declared gates. Ship approval-gated execution only when the exact transaction is reviewable, decisions are bound and replay-resistant, failure behavior is safe, reviewer capacity is adequate and production-shaped tests meet the predeclared thresholds. Choose draft-only when useful work can be preserved without execution authority. Reject or redesign when any non-compensable gate fails.
Record scope, owners, authority map, consequence matrix, approval payload, binding method, policy versions, expected and measured review evidence, accessibility result, failure drills, retention, incident route and unresolved uncertainty. Re-evaluate after changes to model, prompt, tool, permission, identity, policy, interface, data class, destination, reviewer population, traffic or consequence. This decision rule is AccessAllGPT guidance, not a requirement from MCP, OpenAI, OWASP or NIST.
Copy-ready human-approval control record
Complete this AccessAllGPT template for one action class and configured workflow. Replace prompts with dated local evidence or mark them unresolved; an unresolved mandatory gate cannot pass.
Entries stay in this browser tab and are not submitted to AccessAllGPT. Blank responses are copied as [Unresolved].
Workflow, action class, users, tenant, data classes, runtime identity, destination, accountable product, security and operational owners.
Readable resources, executable operations, ceilings, affected parties, propagation, reversibility, recovery window and non-compensable failures.
Automatic, approval-gated, draft-only or prohibited; rationale; permitted scope; exclusions; expiry and approvers.
Schema, object authorization, tenant isolation, destination and egress policy, rate or spend limits, idempotency and rollback.
Exact operation and target, requester, material inputs and provenance, trusted policy result, data leaving, effect, rollback, uncertainty and rejection outcome.
Canonical parameters or digest, resource and identity binding, policy and workflow versions, reviewer identity, timestamp, expiry, one-time ID and change invalidation.
Reject, modify, defer and timeout semantics; approval-service outage; queue delay; duplicate callback; stale permission; partial execution and reconciliation path.
Case-set version and mix, expected decisions, consequential false approvals, false rejections, modifications, latency, blocked mismatches, rollbacks and accessibility result.
Reviewer skill and ownership, volume and burst demand, response objective, escalation, fatigue indicators, audit access and evidence retention.
Gate results, approved mode and scope, unresolved uncertainty, incident and rollback owners, removal rule and configuration changes that force review.
Primary sources
Browse the publication-wide evidence index →
- Tools (version 2026-07-28)Model Context Protocol Specification · Reviewed: User Interaction Model, tool capabilities and tool invocation behavior · Retrieved · Supports: The specification says there SHOULD always be a human able to deny tool invocations and recommends interfaces that disclose exposed tools, indicate invocation and present confirmation prompts. It does not mandate a particular interaction model.
- Safety in building agentsOpenAI Developer Documentation · Reviewed: Prompt-injection and private-data risks, structured outputs, tool approvals, guardrails, trace graders and combined controls · Retrieved · Supports: OpenAI advises enabling approvals for MCP tool operations in Agent Builder and combining approvals with constrained data flow, guardrails and evaluation. This is vendor guidance for its products, not independent evidence that approval prevents unsafe outcomes.
- LLM01:2025 Prompt InjectionOWASP GenAI Security Project · Reviewed: Definition, impacts, prevention and mitigation strategies, and attack scenarios · Retrieved · Supports: OWASP says fool-proof prevention methods are unclear and recommends layered mitigations that include least privilege, independent authorization, segregation of untrusted content, monitoring and human approval for high-risk actions.
- NIST AI RMF: Generative Artificial Intelligence Profile (NIST AI 600-1)National Institute of Standards and Technology · Reviewed: Publication abstract, scope, citation and report metadata · Retrieved · Supports: NIST describes the profile as a voluntary, cross-sector companion to AI RMF 1.0 for incorporating trustworthiness considerations into the design, development, use and evaluation of generative-AI systems.
Limitations
This guide contains no original human-factors experiment, security test, incident analysis or legal assessment. The MCP specification and OpenAI documentation provide implementation guidance rather than measured approval effectiveness; OWASP and NIST provide security and risk-management guidance rather than certification. Review quality depends on the interface, task, reviewer expertise, workload, incentives, time pressure and local controls. Finite test cases cannot prove that approval will catch novel attacks or rare failures, and qualified security, privacy, legal, accessibility and human-factors review may be required.
Disclosures
AccessAllGPT did not test, score, rank or receive access from an approval, agent or automation vendor for this article. OpenAI documentation is included as labeled vendor guidance; OpenAI did not review or sponsor this work. MCP, OWASP and NIST did not review or sponsor this work. No vendor supplied data, paid for placement or received an endorsement. AccessAllGPT Research is operated by NeuralArc, is independent, and is not affiliated with OpenAI. Publication-wide relationships are listed on the disclosures page.
Further AccessAllGPT guidance
- Prompt Injection: Set the Deployment Gates Before Your LLM Can Act
- AI Agents vs Workflows: Choose the Right Automation Architecture
- Before You Connect an MCP Server to Production
- Before You Give a Coding Agent Repository Access
- LLM Observability: Build the Evidence Layer Before You Buy the Dashboard
- AccessAllGPT Research methodology
- Publication disclosures
Continue the research
Get evidence-led updates for teams making production AI decisions.