fastmcp.apps.approval
Approval — a Provider that adds human-in-the-loop approval to any server.
The LLM presents a summary of what it’s about to do, and the user
approves or rejects via buttons. The result is sent back into the
conversation as a message, prompting the LLM’s next turn.
Requires fastmcp[apps] (prefab-ui).
Usage::
from fastmcp import FastMCP
from fastmcp.apps.approval import Approval
mcp = FastMCP(“My Server”)
mcp.add_provider(Approval())
Classes
Approval
A Provider that adds human-in-the-loop approval to a server.
The LLM calls the request_approval tool with a summary and
optional details. The user sees an approval card with Approve and
Reject buttons. Clicking either sends a message back into the
conversation (via SendMessage), triggering the LLM’s next turn.
The message appears as if the user sent it, so the LLM sees
something like '"Deploy v3.2 to production" is APPROVED'.
Example::
from fastmcp import FastMCP
from fastmcp.apps.approval import Approval
mcp = FastMCP(“My Server”)
mcp.add_provider(Approval())
Customized::
Approval(
title=“Deploy Gate”,
approve_text=“Ship it”,
approve_variant=“default”,
reject_text=“Abort”,
reject_variant=“destructive”,
)
